Method and apparatus for encoding/decoding motion vector
Summary by NHIP
Image Motion Vector Decoding
The method decodes an image by selecting a motion vector predictor from candidates derived from adjacent blocks. Adjacent blocks include a first block positioned outside the current block on a lower-left side, defined by hierarchical splitting of maximum coding units into rectangular data units at specific coded depths.
Claim Score by NHIP
Abstract
Provided are methods and apparatuses for encoding and decoding a motion vector. The method of encoding the motion vector includes: selecting, as a mode of encoding information about a motion vector predictor of the current block, a first mode in which information indicating the motion vector predictor from among at least one motion vector predictor is encoded or a second mode in which information indicating generation of the motion vector predictor based on blocks or pixels included in a previously encoded area adjacent to the current block is encoded; determining the motion vector predictor of the current block according to the selected mode and encoding the information about the motion vector predictor of the current block; and encoding a difference vector between the motion vector of the current block and the motion vector predictor of the current block.

Term
3.9 yearsleft in the term
Expires 13 August 2030.
- Priority
- Filed
- Granted
- Today
- Expires
2 claims: 2 independent, 0 dependent
- 1Broadest claimClaim Score 58, broad(NHIP)A method of decoding an image, the method comprising:obtaining a prediction mode information of a current block from a bitstream;determining motion vector predictor candidates from among motion vectors of adjacent blocks adjacent to the current block;and determining a motion vector predictor of the current block from among the motion vector predictor candidates based on prediction mode information of the current block, wherein the adjacent blocks comprise a first block outside the current block located adjacent and to the left of a leftmost block among blocks adjacent to a lower side of the current block and located adjacent and below a lowermost block among blocks adjacent to a left side of the current block.
- 2A method of decoding an image, the method comprising:obtaining a prediction mode information of a current block from a bitstream;determining motion vector predictor candidates from among motion vectors of adjacent blocks adjacent to the current block;and determining a motion vector predictor of the current block from among the motion vector predictor candidates based on prediction mode information of the current block, wherein the adjacent blocks comprise a first block outside the current block located on a lower-left side of the current block, wherein the image is hierarchically split from a plurality of maximum coding units, according to information about a maximum size of a coding unit, into coding units of coded depths according to depths, wherein a coding unit of a current depth is one of rectangular data units split from a coding unit of an upper depth, wherein the coding unit of the current depth is split into coding units of a lower depth, independently from neighboring coding units, and wherein coding units of a hierarchical structure comprise encoded coding units among the coding units split from a maximum coding unit.
Independent claims2
158 paragraphs in 5 sections, as filed
CROSS-REFERENCE TO RELATED PATENT APPLICATION
0001This application is a continuation application of U.S. application Ser. No. 13/670,018, filed Nov. 6, 2012 in the United States Patent and Trademark Office, which is a continuation application of U.S. application Ser. No. 13/403,476, filed on Feb. 23, 2012, in the United States Patent and Trademark Office, now U.S. Pat. No. 8,311,118 issued Nov. 13, 2012, which is a continuation of U.S. application Ser. No. 12/856,197, filed on Aug. 13, 2010, in the U.S. Patent and Trademark Office, which claims priority from Korean Patent Application No. 10-2009-0074896, filed on Aug. 13, 2009, in the Korean Intellectual Property Office, the disclosures of which are incorporated herein by reference in their entireties.
BACKGROUND
00021. Field
0003Apparatuses and methods consistent with exemplary embodiments relate to a method and apparatus for encoding a motion vector, and more particularly, to a method and apparatus for encoding a motion vector predictor of a current block.
00042. Description of Related Art
0005A codec, such as Moving Pictures Experts Group (MPEG)-4 H.264/MPEG-4 Advanced Video Coding (AVC), uses motion vectors of previously encoded blocks adjacent to a current block to predict a motion vector of the current block. That is, a median of motion vectors of previously encoded blocks adjacent to left, upper, and upper-right sides of a current block is used as a motion vector predictor of the current block.
SUMMARY
0006Exemplary embodiments provide a method and apparatus for encoding and decoding a motion vector, and a computer readable recording medium storing a computer readable program for executing the method.
0007According to an aspect of an exemplary embodiment, there is provided a method of encoding a motion vector of a current block, the method including: selecting, as a mode of encoding information about a motion vector predictor of the current block, a first mode in which information indicating the motion vector predictor from among at least one motion vector predictor is encoded or a second mode in which information indicating generation of the motion vector predictor based on blocks or pixels included in a previously encoded area adjacent to the current block is encoded; determining the motion vector predictor of the current block according to the selected mode and encoding the information about the motion vector predictor of the current block; and encoding a difference vector between the motion vector of the current block and the motion vector predictor of the current block.
0008The selecting of the first mode or the second mode may include selecting the first mode or the second mode based on a depth indicating a degree of decreasing from a size of a maximum coding unit of a current picture or slice to a size of the current block.
0009The selecting of the first mode or the second mode may include selecting the first mode or the second mode in a unit of a current picture or slice including the current block.
0010The selecting of the first mode or the second mode may include selecting the first mode or the second mode based on whether the current block is encoded in a skip mode.
0011The at least one motion vector predictor may include a first motion vector of a block adjacent to a left side of the current block, a second motion vector of a block adjacent to an upper side of the current block, and a third motion vector of a block adjacent to an upper-right side of the current block.
0012The at least one motion vector predictor may further include a median value of the first motion vector, the second motion vector, and the third motion vector.
0013The at least one motion vector predictor may further include a motion vector predictor generated based on a motion vector of a block co-located with the current block in a reference picture and a temporal distance between the reference picture and a current picture.
0014The information indicating generation of the motion vector predictor based on blocks or pixels included in a previously encoded area adjacent to the current block may be information indicating generation of the motion vector predictor of the current block based on a median value of a first motion vector of a block adjacent to a left side of the current block, a second motion vector of a block adjacent to an upper side of the current block, and a third motion vector of a block adjacent to an upper-right side of the current block.
0015The information indicating generation of the motion vector predictor based on blocks or pixels included in a previously encoded area adjacent to the current block may be information indicating generation of the motion vector predictor of the current block based on a motion vector generated by searching a reference picture using pixels included in the previously encoded area adjacent to the current block.
0016According to an aspect of another exemplary embodiment, there is provided an apparatus for encoding a motion vector of a current block, the apparatus including: a predictor which selects, as a mode of encoding information about a motion vector predictor of the current block, a first mode in which information indicating the motion vector predictor from among at least one motion vector predictor is encoded or a second mode in which information indicating generation of the motion vector predictor based on blocks or pixels included in a previously encoded area adjacent to the current block is encoded, and which determines the motion vector predictor of the current block based on the selected mode; a first encoder which encodes the information about the motion vector predictor of the current block determined based on the selected mode; and a second encoder which encodes a difference vector between a motion vector of the current block and the motion vector predictor of the current block.
0017According to an aspect of another exemplary embodiment, there is provided a method of decoding a motion vector of a current block, the method including: decoding information about a motion vector predictor of the current block encoded according to a mode selected from among a first mode and a second mode; decoding a difference vector between the motion vector of the current block and the motion vector predictor of the current block; generating the motion vector predictor of the current block based on the decoded information about the motion vector predictor of the current block; and restoring the motion vector of the current block based on the motion vector predictor and the difference vector, wherein the first mode is a mode in which information indicating the motion vector predictor from among at least one motion vector predictor is encoded and the second mode is a mode in which information indicating generation of the motion vector predictor based on blocks or pixels included in a previously decoded area adjacent to the current block is encoded.
0018According to an aspect of another exemplary embodiment, there is provided an apparatus for decoding a motion vector of a current block, the apparatus including: a first decoder which decodes information about a motion vector predictor of the current block encoded according to a mode selected from among a first mode and a second mode; a second decoder which decodes a difference vector between the motion vector of the current block and the motion vector predictor of the current block; a predictor which generates the motion vector predictor of the current block based on the decoded information about the motion vector predictor of the current block; and a motion vector restoring unit which restores the motion vector of the current block based on the motion vector predictor and the difference vector, wherein the first mode is a mode in which information indicating the motion vector predictor from among at least one motion vector predictor is encoded and the second mode is a mode in which information indicating generation of the motion vector predictor based on blocks or pixels included in a previously decoded area adjacent to the current block is encoded.
0019According to an aspect of another exemplary embodiment, there is provided a computer readable recording medium storing a computer readable program for executing the method of encoding a motion vector and the method of decoding a motion vector.
BRIEF DESCRIPTION OF THE DRAWINGS
0020The above and/or other aspects will become more apparent by describing in detail exemplary embodiments with reference to the attached drawings in which:
0021<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram of an apparatus for encoding an image according to an exemplary embodiment;
0022<figref idref="DRAWINGS">FIG. 2</figref> is a block diagram of an apparatus for decoding an image according to an exemplary embodiment;
0023<figref idref="DRAWINGS">FIG. 3</figref> illustrates hierarchical coding units according to an exemplary embodiment;
0024<figref idref="DRAWINGS">FIG. 4</figref> is a block diagram of an image encoder based on a coding unit, according to an exemplary embodiment;
0025<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram of an image decoder based on a coding unit, according to an exemplary embodiment;
0026<figref idref="DRAWINGS">FIG. 6</figref> illustrates a maximum coding unit, a sub coding unit, and a prediction unit, according to an exemplary embodiment;
0027<figref idref="DRAWINGS">FIG. 7</figref> illustrates a coding unit and a transformation unit, according to an exemplary embodiment;
0028<figref idref="DRAWINGS">FIGS. 8A and 8B</figref> illustrate division shapes of a coding unit, a prediction unit, and a transformation unit, according to an exemplary embodiment;
0029<figref idref="DRAWINGS">FIG. 9</figref> is a block diagram of an apparatus for encoding a motion vector, according to an exemplary embodiment;
0030<figref idref="DRAWINGS">FIGS. 10A and 10B</figref> illustrate motion vector predictor candidates of an explicit mode, according to an exemplary embodiment;
0031<figref idref="DRAWINGS">FIGS. 11A to 11C</figref> illustrate motion vector predictor candidates of an explicit mode, according to another exemplary embodiment;
0032<figref idref="DRAWINGS">FIG. 12</figref> illustrates a method of generating a motion vector predictor in an implicit mode, according to an exemplary embodiment;
0033<figref idref="DRAWINGS">FIG. 13</figref> is a block diagram of an apparatus for decoding a motion vector, according to an exemplary embodiment;
0034<figref idref="DRAWINGS">FIG. 14</figref> is a flowchart of a method of encoding a motion vector, according to an exemplary embodiment; and
0035<figref idref="DRAWINGS">FIG. 15</figref> is a flowchart of a method of decoding a motion vector, according to an exemplary embodiment.
DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
0036Exemplary embodiments will now be described more fully with reference to the accompanying drawings, in which like reference numerals refer to like elements throughout. Expressions such as “at least one of,” when preceding a list of elements, modify the entire list of elements and do not modify the individual elements of the list. In the present specification, an “image” may denote a still image for a video or a moving image, that is, the video itself.
0037<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram of an apparatus <b>100</b> for encoding an image, according to an exemplary embodiment. Referring to <figref idref="DRAWINGS">FIG. 1</figref>, the apparatus <b>100</b> includes a maximum coding unit divider <b>110</b>, an encoding depth determiner <b>120</b>, an image data encoder <b>130</b>, and an encoding information encoder <b>140</b>.
0038The maximum coding unit divider <b>110</b> can divide a current picture or slice based on a maximum coding unit that is an encoding unit of a largest size. That is, the maximum coding unit divider <b>110</b> can divide the current picture or slice to obtain at least one maximum coding unit.
0039According to an exemplary embodiment, a coding unit may be represented using a maximum coding unit and a depth. As described above, the maximum coding unit indicates a coding unit having the largest size from among coding units of the current picture, and the depth indicates the size of a sub coding unit obtained by hierarchically decreasing the coding unit. As the depth increases, the coding unit can decrease from a maximum coding unit to a minimum coding unit, wherein a depth of the maximum coding unit is defined as a minimum depth and a depth of the minimum coding unit is defined as a maximum depth. Since the size of the coding unit decreases from the maximum coding unit as the depth increases, a sub coding unit of a k<sup>th </sup>depth can include a plurality of sub coding units of a (k+n)<sup>th </sup>depth (where k and n are integers equal to or greater than 1).
0040According to an increase of the size of a picture to be encoded, encoding an image in a greater coding unit can cause a higher image compression ratio. However, if a greater coding unit is fixed, an image may not be efficiently encoded by reflecting continuously changing image characteristics.
0041For example, when a smooth area such as the sea or the sky is encoded, the greater a coding unit is, the more a compression ratio can increase. However, when a complex area such as people or buildings is encoded, the smaller a coding unit is, the more a compression ratio can increase.
0042Accordingly, according to an exemplary embodiment, a different maximum image coding unit and a different maximum depth are set for each picture or slice. Since a maximum depth denotes the maximum number of times by which a coding unit can decrease, the size of each minimum coding unit included in a maximum image coding unit can be variably set according to a maximum depth.
0043The encoding depth determiner <b>120</b> determines a maximum depth. For example, the maximum depth can be determined based on calculation of Rate-Distortion (R-D) cost. Furthermore, the maximum depth may be determined differently for each picture or slice or for each maximum coding unit. The determined maximum depth is provided to the encoding information encoder <b>140</b>, and image data according to maximum coding units is provided to the image data encoder <b>130</b>.
0044The maximum depth denotes a coding unit having the smallest size that can be included in a maximum coding unit, i.e., a minimum coding unit. In other words, a maximum coding unit can be divided into sub coding units having different sizes according to different depths. This will be described in detail later with reference to <figref idref="DRAWINGS">FIGS. 8A and 8B</figref>. In addition, the sub coding units having different sizes, which are included in the maximum coding unit, can be predicted or transformed based on processing units having different sizes. In other words, the apparatus <b>100</b> can perform a plurality of processing operations for image encoding based on processing units having various sizes and various shapes. To encode image data, processing operations such as prediction, transformation, and entropy encoding are performed, wherein processing units having the same size may be used for every operation or processing units having different sizes may be used for every operation.
0045For example, the apparatus <b>100</b> may select a processing unit that is different from a coding unit to predict the coding unit. When the size of a coding unit is 2N×2N (where N is a positive integer), processing units for prediction may be 2N×2N, 2N×N, N×2N, and N×N. In other words, motion prediction may be performed based on a processing unit having a shape whereby at least one of height and width of a coding unit is equally divided by two. Hereinafter, a processing unit, which is the base of prediction, is referred to as a prediction unit.
0046A prediction mode may be at least one of an intra mode, an inter mode, and a skip mode, and a specific prediction mode may be performed for only a prediction unit having a specific size or shape. For example, the intra mode may be performed for only prediction units having sizes of 2N×2N and N×N of which the shape is a square. Further, the skip mode may be performed for only a prediction unit having a size of 2N×2N. If a plurality of prediction units exist in a coding unit, the prediction mode with the least encoding errors may be selected after performing prediction for every prediction unit.
0047Alternatively, the apparatus <b>100</b> may perform frequency transformation on image data based on a processing unit having a different size from a coding unit. For the frequency transformation in the coding unit, the frequency transformation can be performed based on a processing unit having a size equal to or less than that of the coding unit. Hereinafter, a processing unit, which is the base of frequency transformation, is referred to as a transformation unit. The frequency transformation may be a Discrete Cosine Transform (DCT) or a Karhunen-Loeve Transform (KLT).
0048The encoding depth determiner <b>120</b> can determine sub coding units included in a maximum coding unit using R-D optimization based on a Lagrangian multiplier. In other words, the encoding depth determiner <b>120</b> can determine which shape a plurality of sub coding units divided from the maximum coding unit have, wherein the plurality of sub coding units have different sizes according to their depths. The image data encoder <b>130</b> outputs a bitstream by encoding the maximum coding unit based on the division shapes determined by the encoding depth determiner <b>120</b>.
0049The encoding information encoder <b>140</b> encodes information about an encoding mode of the maximum coding unit determined by the encoding depth determiner <b>120</b>. In other words, the encoding information encoder <b>140</b> outputs a bitstream by encoding information about a division shape of the maximum coding unit, information about the maximum depth, and information about an encoding mode of a sub coding unit for each depth. The information about the encoding mode of the sub coding unit may include at least one of information about a prediction unit of the sub coding unit, information about a prediction mode for each prediction unit, and information about a transformation unit of the sub coding unit.
0050Since sub coding units having different sizes exist for each maximum coding unit and information about an encoding mode is determined for each sub coding unit, information about at least one encoding mode may be determined for one maximum coding unit.
0051The apparatus <b>100</b> may generate sub coding units by equally dividing both height and width of a maximum coding unit by two according to an increase of depth. That is, when the size of a coding unit of a k<sup>th </sup>depth is 2N×2N, the size of a coding unit of a (k+1)<sup>th </sup>depth may be N×N.
0052Accordingly, the apparatus <b>100</b> according to an exemplary embodiment can determine an optimal division shape for each maximum coding unit based on sizes of maximum coding units and a maximum depth in consideration of image characteristics. By variably adjusting the size of a maximum coding unit in consideration of image characteristics and encoding an image through division of a maximum coding unit into sub coding units of different depths, images having various resolutions can be more efficiently encoded.
0053<figref idref="DRAWINGS">FIG. 2</figref> is a block diagram of an apparatus <b>200</b> for decoding an image according to an exemplary embodiment. Referring to <figref idref="DRAWINGS">FIG. 2</figref>, the apparatus <b>200</b> includes an image data acquisition unit <b>210</b>, an encoding information extractor <b>220</b>, and an image data decoder <b>230</b>.
0054The image data acquisition unit <b>210</b> acquires image data according to maximum coding units by parsing a bitstream received by the apparatus <b>200</b> and outputs the image data to the image data decoder <b>230</b>. The image data acquisition unit <b>210</b> may extract information about a maximum coding unit of a current picture or slice from a header of the current picture or slice. In other words, the image data acquisition unit <b>210</b> divides the bitstream in the maximum coding unit so that the image data decoder <b>230</b> can decode the image data according to maximum coding units.
0055The encoding information extractor <b>220</b> extracts information about a maximum coding unit, a maximum depth, a division shape of the maximum coding unit, and an encoding mode of sub coding units by parsing the bitstream received by the apparatus <b>200</b>. For example, the encoding information extractor <b>220</b> may extract the above-described information from the header of the current picture. The information about the division shape and the information about the encoding mode are provided to the image data decoder <b>230</b>.
0056The information about the division shape of the maximum coding unit may include information about sub coding units having different sizes according to depths included in the maximum coding unit, and the information about the encoding mode may include at least one of information about a prediction unit according to sub coding unit, information about a prediction mode, and information about a transformation unit.
0057The image data decoder <b>230</b> restores the current picture by decoding image data of every maximum coding unit based on the information extracted by the encoding information extractor <b>220</b>. The image data decoder <b>230</b> can decode sub coding units included in a maximum coding unit based on the information about the division shape of the maximum coding unit. A decoding process may include at least one of a prediction process including intra prediction and motion compensation and an inverse transformation process.
0058Furthermore, the image data decoder <b>230</b> can perform intra prediction or inter prediction based on the information about the prediction unit and the information about the prediction mode in order to predict a prediction unit. The image data decoder <b>230</b> can also perform inverse transformation for each sub coding unit based on the information about the transformation unit of a sub coding unit.
0059<figref idref="DRAWINGS">FIG. 3</figref> illustrates hierarchical coding units according to an exemplary embodiment. Referring to <figref idref="DRAWINGS">FIG. 3</figref>, the exemplary hierarchical coding units include coding units whose sizes are 64×64, 32×32, 16×16, 8×8, and 4×4. Furthermore, coding units whose sizes are 64×32, 32×64, 32×16, 16×32, 16×8, 8×16, 8×4, and 4×8 may also exist.
0060In the exemplary embodiment illustrated in <figref idref="DRAWINGS">FIG. 3</figref>, for first image data <b>310</b> whose resolution is 1920×1080, the size of a maximum coding unit is set to 64×64, and a maximum depth is set to 2. For second image data <b>320</b> whose resolution is 1920×1080, the size of a maximum coding unit is set to 64×64, and a maximum depth is set to 3. For third image data <b>330</b> whose resolution is 352×288, the size of a maximum coding unit is set to 16×16, and a maximum depth is set to 1.
0061When the resolution is high or the amount of data is great, a maximum size of a coding unit may be relatively large to increase a compression ratio and exactly reflect image characteristics. Accordingly, for the first and second image data <b>310</b> and <b>320</b> having higher resolution than the third image data <b>330</b>, 64×64 may be selected as the size of the maximum coding unit.
0062A maximum depth indicates the total number of layers in the hierarchical coding units. Since the maximum depth of the first image data <b>310</b> is 2, a coding unit <b>315</b> of the image data <b>310</b> can include a maximum coding unit whose longer axis size is 64 and sub coding units whose longer axis sizes are 32 and 16, according to an increase of a depth.
0063On the other hand, since the maximum depth of the third image data <b>330</b> is 1, a coding unit <b>335</b> of the image data <b>330</b> can include a maximum coding unit whose longer axis size is 16 and coding units whose longer axis sizes is 8, according to an increase of a depth.
0064However, since the maximum depth of the second image data <b>320</b> is 3, a coding unit <b>325</b> of the image data <b>320</b> can include a maximum coding unit whose longer axis size is 64 and sub coding units whose longer axis sizes are 32, 16, and 8 according to an increase of a depth. Since an image is encoded based on a smaller sub coding unit as a depth increases, exemplary embodiments are suitable for encoding an image including more minute scenes.
0065<figref idref="DRAWINGS">FIG. 4</figref> is a block diagram of an image encoder <b>400</b> based on a coding unit, according to an exemplary embodiment. Referring to <figref idref="DRAWINGS">FIG. 4</figref>, an intra predictor <b>410</b> performs intra prediction on prediction units of the intra mode in a current frame <b>405</b>, and a motion estimator <b>420</b> and a motion compensator <b>425</b> perform inter prediction and motion compensation on prediction units of the inter mode using the current frame <b>405</b> and a reference frame <b>495</b>.
0066Residual values are generated based on the prediction units output from the intra predictor <b>410</b>, the motion estimator <b>420</b>, and the motion compensator <b>425</b>. The generated residual values are output as quantized transform coefficients by passing through a transformer <b>430</b> and a quantizer <b>440</b>.
0067The quantized transform coefficients are restored to residual values by passing through an inverse-quantizer <b>460</b> and an inverse transformer <b>470</b>. The restored residual values are post-processed by passing through a deblocking unit <b>480</b> and a loop filtering unit <b>490</b> and output as the reference frame <b>495</b>. The quantized transform coefficients may be output as a bitstream <b>455</b> by passing through an entropy encoder <b>450</b>.
0068To perform encoding based on an encoding method according to an exemplary embodiment, components of the image encoder <b>400</b>, i.e., the intra predictor <b>410</b>, the motion estimator <b>420</b>, the motion compensator <b>425</b>, the transformer <b>430</b>, the quantizer <b>440</b>, the entropy encoder <b>450</b>, the inverse-quantizer <b>460</b>, the inverse-transformer <b>470</b>, the deblocking unit <b>480</b> and the loop filtering unit <b>490</b>, perform image encoding processes based on a maximum coding unit, a sub coding unit according to depths, a prediction unit, and a transformation unit.
0069<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram of an image decoder <b>500</b> based on a coding unit, according to an exemplary embodiment. Referring to <figref idref="DRAWINGS">FIG. 5</figref>, a bitstream <b>505</b> passes through a parser <b>510</b> so that encoded image data to be decoded and encoding information used for decoding are parsed. The encoded image data is output as inverse-quantized data by passing through an entropy decoder <b>520</b> and an inverse-quantizer <b>530</b> and restored to residual values by passing through an inverse-transformer <b>540</b>. The residual values are restored according to coding units by being added to an intra prediction result of an intra predictor <b>550</b> or a motion compensation result of a motion compensator <b>560</b>. The restored coding units are used for prediction of next coding units or a next picture by passing through a deblocking unit <b>570</b> and a loop filtering unit <b>580</b>.
0070To perform decoding based on a decoding method according to an exemplary embodiment, components of the image decoder <b>500</b>, i.e., the parser <b>510</b>, the entropy decoder <b>520</b>, the inverse-quantizer <b>530</b>, the inverse-transformer <b>540</b>, the intra predictor <b>550</b>, the motion compensator <b>560</b>, the deblocking unit <b>570</b> and the loop filtering unit <b>580</b>, perform image decoding processes based on a maximum coding unit, a sub coding unit according to depths, a prediction unit, and a transformation unit.
0071In particular, the intra predictor <b>550</b> and the motion compensator <b>560</b> determine a prediction unit and a prediction mode in a sub coding unit by considering a maximum coding unit and a depth, and the inverse-transformer <b>540</b> performs inverse transformation by considering the size of a transformation unit.
0072<figref idref="DRAWINGS">FIG. 6</figref> illustrates a maximum coding unit, a sub coding unit, and a prediction unit, according to an exemplary embodiment.
0073As described above, the encoding apparatus <b>100</b> and the decoding apparatus <b>200</b> according to one or more exemplary embodiments use hierarchical coding units to perform encoding and decoding in consideration of image characteristics. A maximum coding unit and a maximum depth can be adaptively set according to the image characteristics or variously set according to requirements of a user.
0074Referring to <figref idref="DRAWINGS">FIG. 6</figref>, a hierarchical coding unit structure <b>600</b> according to an exemplary embodiment illustrates a maximum coding unit <b>610</b> whose height and width are 64 and maximum depth is 4. A depth increases along a vertical axis of the hierarchical coding unit structure <b>600</b>, and as a depth increases, heights and widths of sub coding units <b>620</b> to <b>650</b> decrease. Prediction units of the maximum coding unit <b>610</b> and the sub coding units <b>620</b> to <b>650</b> are shown along a horizontal axis of the hierarchical coding unit structure <b>600</b>.
0075The maximum coding unit <b>610</b> has a depth of 0 and a size, i.e., height and width, of 64×64. A depth increases along the vertical axis, such that there exist a sub coding unit <b>620</b> whose size is 32×32 and depth is 1, a sub coding unit <b>630</b> whose size is 16×16 and depth is 2, a sub coding unit <b>640</b> whose size is 8×8 and depth is 3, and a sub coding unit <b>650</b> whose size is 4×4 and depth is 4. The sub coding unit <b>650</b> whose size is 4×4 and depth is 4 is a minimum coding unit. The minimum coding unit <b>650</b> may be divided into prediction units, each of which is less than the minimum coding unit.
0076In the exemplary embodiment illustrated in <figref idref="DRAWINGS">FIG. 6</figref>, examples of a prediction unit are shown along the horizontal axis according to each depth. That is, a prediction unit of the maximum coding unit <b>610</b> whose depth is 0 may be a prediction unit whose size is equal to the coding unit <b>610</b>, i.e., 64×64, or a prediction unit <b>612</b> whose size is 64×32, a prediction unit <b>614</b> whose size is 32×64, or a prediction unit <b>616</b> whose size is 32×32, which have a size smaller than the coding unit <b>610</b> whose size is 64×64.
0077A prediction unit of the coding unit <b>620</b> whose depth is 1 and size is 32×32 may be a prediction unit whose size is equal to the coding unit <b>620</b>, i.e., 32×32, or a prediction unit <b>622</b> whose size is 32×16, a prediction unit <b>624</b> whose size is 16×32, or a prediction unit <b>626</b> whose size is 16×16, which have a size smaller than the coding unit <b>620</b> whose size is 32×32.
0078A prediction unit of the coding unit <b>630</b> whose depth is 2 and size is 16×16 may be a prediction unit whose size is equal to the coding unit <b>630</b>, i.e., 16×16, or a prediction unit <b>632</b> whose size is 16×8, a prediction unit <b>634</b> whose size is 8×16, or a prediction unit <b>636</b> whose size is 8×8, which have a size smaller than the coding unit <b>630</b> whose size is 16×16.
0079A prediction unit of the coding unit <b>640</b> whose depth is 3 and size is 8×8 may be a prediction unit whose size is equal to the coding unit <b>640</b>, i.e., 8×8, or a prediction unit <b>642</b> whose size is 8×4, a prediction unit <b>644</b> whose size is 4×8, or a prediction unit <b>646</b> whose size is 4×4, which have a size smaller than the coding unit <b>640</b> whose size is 8×8.
0080The coding unit <b>650</b> whose depth is 4 and size is 4×4 is a minimum coding unit and a coding unit of a maximum depth. A prediction unit of the coding unit <b>650</b> may be a prediction unit <b>650</b> whose size is 4×4, a prediction unit <b>652</b> having a size of 4×2, a prediction unit <b>654</b> having a size of 2×4, or a prediction unit <b>656</b> having a size of 2×2.
0081<figref idref="DRAWINGS">FIG. 7</figref> illustrates a coding unit and a transformation unit, according to an exemplary embodiment. The encoding apparatus <b>100</b> and the decoding apparatus <b>200</b>, according to one or more exemplary embodiments, perform encoding with a maximum coding unit itself or with sub coding units, which are equal to or smaller than the maximum coding unit and divided from the maximum coding unit.
0082In the encoding process, the size of a transformation unit for frequency transformation is selected to be no larger than that of a corresponding coding unit. For example, when a current coding unit <b>710</b> has a size of 64×64, frequency transformation can be performed using a transformation unit <b>720</b> having a size of 32×32.
0083<figref idref="DRAWINGS">FIGS. 8A and 8B</figref> illustrate division shapes of a coding unit, a prediction unit, and a transformation unit, according to an exemplary embodiment. <figref idref="DRAWINGS">FIG. 8A</figref> illustrates a coding unit and a prediction unit, according to an exemplary embodiment.
0084A left side of <figref idref="DRAWINGS">FIG. 8A</figref> shows a division shape selected by an encoding apparatus <b>100</b> according to an exemplary embodiment in order to encode a maximum coding unit <b>810</b>. The apparatus <b>100</b> divides the maximum coding unit <b>810</b> into various shapes, performs encoding, and selects an optimal division shape by comparing encoding results of various division shapes with each other based on R-D cost. When it is optimal that the maximum coding unit <b>810</b> is encoded as is, the maximum coding unit <b>810</b> may be encoded without dividing the maximum coding unit <b>810</b> as illustrated in <figref idref="DRAWINGS">FIGS. 8A and 8B</figref>.
0085Referring to the left side of <figref idref="DRAWINGS">FIG. 8A</figref>, the maximum coding unit <b>810</b> whose depth is 0 is encoded by dividing the maximum coding unit into sub coding units whose depths are equal to or greater than 1. That is, the maximum coding unit <b>810</b> is divided into 4 sub coding units whose depths are 1, and all or some of the sub coding units whose depths are 1 are divided into sub coding units whose depths are 2.
0086A sub coding unit located in an upper-right side and a sub coding unit located in a lower-left side among the sub coding units whose depths are 1 are divided into sub coding units whose depths are equal to or greater than 2. Some of the sub coding units whose depths are equal to or greater than 2 may be divided into sub coding units whose depths are equal to or greater than 3.
0087The right side of <figref idref="DRAWINGS">FIG. 8A</figref> shows a division shape of a prediction unit for the maximum coding unit <b>810</b>. Referring to the right side of <figref idref="DRAWINGS">FIG. 8A</figref>, a prediction unit <b>860</b> for the maximum coding unit <b>810</b> can be divided differently from the maximum coding unit <b>810</b>. In other words, a prediction unit for each of sub coding units can be smaller than a corresponding sub coding unit.
0088For example, a prediction unit for a sub coding unit <b>854</b> located in a lower-right side among the sub coding units whose depths are 1 can be smaller than the sub coding unit <b>854</b>. In addition, prediction units for some sub coding units <b>814</b>, <b>816</b>, <b>850</b>, and <b>852</b> of sub coding units <b>814</b>, <b>816</b>, <b>818</b>, <b>828</b>, <b>850</b>, and <b>852</b> whose depths are 2 can be smaller than the sub coding units <b>814</b>, <b>816</b>, <b>850</b>, and <b>852</b>, respectively. In addition, prediction units for sub coding units <b>822</b>, <b>832</b>, and <b>848</b> whose depths are 3 can be smaller than the sub coding units <b>822</b>, <b>832</b>, and <b>848</b>, respectively. The prediction units may have a shape whereby respective sub coding units are equally divided by two in a direction of height or width or have a shape whereby respective sub coding units are equally divided by four in directions of height and width.
0089<figref idref="DRAWINGS">FIG. 8B</figref> illustrates a prediction unit and a transformation unit, according to an exemplary embodiment. A left side of <figref idref="DRAWINGS">FIG. 8B</figref> shows a division shape of a prediction unit for the maximum coding unit <b>810</b> shown in the right side of <figref idref="DRAWINGS">FIG. 8A</figref>, and a right side of <figref idref="DRAWINGS">FIG. 8B</figref> shows a division shape of a transformation unit of the maximum coding unit <b>810</b>.
0090Referring to the right side of <figref idref="DRAWINGS">FIG. 8B</figref>, a division shape of a transformation unit <b>870</b> can be set differently from the prediction unit <b>860</b>. For example, even though a prediction unit for the coding unit <b>854</b> whose depth is 1 is selected with a shape whereby the height of the coding unit <b>854</b> is equally divided by two, a transformation unit can be selected with the same size as the coding unit <b>854</b>. Likewise, even though prediction units for coding units <b>814</b> and <b>850</b> whose depths are 2 are selected with a shape whereby the height of each of the coding units <b>814</b> and <b>850</b> is equally divided by two, a transformation unit can be selected with the same size as the original size of each of the coding units <b>814</b> and <b>850</b>.
0091A transformation unit may be selected with a smaller size than a prediction unit. For example, when a prediction unit for the coding unit <b>852</b> whose depth is 2 is selected with a shape whereby the width of the coding unit <b>852</b> is equally divided by two, a transformation unit can be selected with a shape whereby the coding unit <b>852</b> is equally divided by four in directions of height and width, which has a smaller size than the shape of the prediction unit.
0092<figref idref="DRAWINGS">FIG. 9</figref> is a block diagram of an apparatus <b>900</b> for encoding a motion vector, according to an exemplary embodiment. The apparatus <b>900</b> for encoding a motion vector may be included in the apparatus <b>100</b> described above with reference to <figref idref="DRAWINGS">FIG. 1</figref> or the image encoder <b>400</b> described above with reference to <figref idref="DRAWINGS">FIG. 4</figref>. Referring to <figref idref="DRAWINGS">FIG. 9</figref>, the motion vector encoding apparatus <b>900</b> includes a predictor <b>910</b>, a first encoder <b>920</b>, and a second encoder <b>930</b>.
0093In order to decode a block encoded using inter prediction, i.e., inter-picture prediction, information about a motion vector indicating a position difference between a current block and a similar block in a reference picture is used. Thus, information about motion vectors is encoded and inserted into a bitstream in an image encoding process. However, if the information about motion vectors is encoded and inserted as is, an overhead for encoding the information about motion vectors increases, thereby decreasing a compression ratio of image data.
0094Therefore, in an image encoding process, information about a motion vector is compressed by predicting a motion vector of a current block, encoding only a differential vector between a motion vector predictor generated as a result of prediction and an original motion vector, and inserting the encoded differential vector into a bitstream. <figref idref="DRAWINGS">FIG. 9</figref> illustrates an apparatus <b>900</b> for encoding a motion vector which uses such a motion vector predictor.
0095Referring to <figref idref="DRAWINGS">FIG. 9</figref>, the predictor <b>910</b> determines whether a motion vector of a current block is prediction-encoded based on an explicit mode or an implicit mode.
0096As described above, such a codec as MPEG-4 H.264/MPEG-4 AVC uses motion vectors of previously encoded blocks adjacent to a current block to predict a motion vector of the current block. That is, a median of motion vectors of previously encoded blocks adjacent to left, upper, and upper-right sides of the current block is used as a motion vector predictor of the current block. Since motion vectors of all blocks encoded using inter prediction are predicted using the same method, information about a motion vector predictor does not have to be encoded separately. However, the apparatus <b>100</b> or the image decoder <b>400</b> according to one or more exemplary embodiments uses both a mode in which information about a motion vector predictor is not encoded separately and a mode in which information about a motion vector predictor is encoded in order to more exactly predict a motion vector, which will now be described in detail.
0097(1) Explicit Mode
0098One of methods of encoding a motion vector predictor, which can be selected by the predictor <b>910</b>, may implement a mode of explicitly encoding information about a motion vector predictor of a current block. This explicit mode is a mode of calculating at least one motion vector predictor candidate and separately encoding information indicating which motion vector predictor is used to predict a motion vector of a current block. Motion vector predictor candidates according to one or more exemplary embodiments will now be described with reference to <figref idref="DRAWINGS">FIGS. 10A</figref>, <b>10</b>B, and <b>11</b>A to <b>11</b>C.
0099<figref idref="DRAWINGS">FIGS. 10A and 10B</figref> illustrate motion vector predictor candidates of an explicit mode, according to one or more exemplary embodiments. Referring to <figref idref="DRAWINGS">FIG. 10A</figref>, a motion vector predicting method according to an exemplary embodiment can use one of motion vectors of previously encoded blocks adjacent to a current block as a motion vector predictor of the current block. A block a<b>0</b> in the leftmost among blocks adjacent to an upper side of the current block, a block b<b>0</b> in the upper-most among blocks adjacent to a left side thereof, a block c adjacent to an upper-right side thereof, a block d adjacent to an upper-left side thereof, and a block e adjacent to a lower-left side thereof can be used for motion vector predictors of the current block.
0100Referring to <figref idref="DRAWINGS">FIG. 10B</figref>, motion vectors of all blocks adjacent to a current block can be used as motion vector predictors of the current block. In other words, motion vectors of not only a block a<b>0</b> in the leftmost among blocks adjacent to an upper side of the current block, but all blocks adjacent to the upper side thereof can be used as motion vector predictors of the current block. Furthermore, motion vectors of not only a block b<b>0</b> in the upper-most among blocks adjacent to a left side thereof, but all blocks adjacent to the left side thereof can be used as motion vector predictors of the current block.
0101Alternatively, a median value of motion vectors of adjacent blocks can be used as a motion vector predictor. For example, median(mv_a<b>0</b>, mv_b<b>0</b>, mv_c) can be used a motion vector predictor of the current block, wherein mv_a<b>0</b> denotes a motion vector of the block a<b>0</b>, mv_b<b>0</b> denotes a motion vector of the block b<b>0</b>, and mv_c denotes a motion vector of the block c.
0102<figref idref="DRAWINGS">FIGS. 11A to 11C</figref> illustrate motion vector predictor candidates of an explicit mode, according to another exemplary embodiment. <figref idref="DRAWINGS">FIG. 11A</figref> illustrates a method of calculating a motion vector predictor of a Bi-directional Predictive Picture (referred to as a B picture), according to an exemplary embodiment. When a current picture including a current block is a B picture in which bi-directional prediction is performed, a motion vector generated based on a temporal distance may be a motion vector predictor.
0103Referring to <figref idref="DRAWINGS">FIG. 11A</figref>, a motion vector predictor of a current block <b>1100</b> of a current picture <b>1110</b> can be generated using a motion vector of a block <b>1120</b> in a co-located position of a temporally preceding picture <b>1112</b>. For example, if a motion vector mv_colA of the block <b>1120</b> in a position co-located with the current block <b>1100</b> is generated for a searched block <b>1122</b> of a temporally following picture <b>1114</b> of the current picture <b>1110</b>, motion vector predictor candidates mv_L<b>0</b>A and mv_L<b>1</b>A of the current block <b>1100</b> can be generated in accordance with the equations below: <br /><i>mv</i><sub>—</sub><i>L</i>1<i>A</i>=(<i>t</i>1/<i>t</i>2)×<i>mv</i><sub>—</sub><i>colA </i><br /><i>mv</i><sub>—</sub><i>L</i>0<i>A=mv</i><sub>—</sub><i>L</i>1<i>A−mv</i><sub>—</sub><i>colA </i><br /> where mv_L<b>0</b>A denotes a motion vector predictor of the current block <b>1100</b> for the temporally preceding picture <b>1112</b>, and mv_L<b>1</b>A denotes a motion vector predictor of the current block <b>1100</b> for the temporally following picture <b>1114</b>.
0104<figref idref="DRAWINGS">FIG. 11B</figref> illustrates a method of generating a motion vector predictor of a B picture, according to another exemplary embodiment. Compared with the method illustrated in <figref idref="DRAWINGS">FIG. 11A</figref>, a block <b>1130</b> in a position co-located with the current block <b>1100</b> exists in the temporally following picture <b>1114</b> in <figref idref="DRAWINGS">FIG. 11B</figref>.
0105Referring to <figref idref="DRAWINGS">FIG. 11B</figref>, a motion vector predictor of the current block <b>1100</b> of the current picture <b>1110</b> can be generated using a motion vector of a block <b>1130</b> in a co-located position of the temporally following picture <b>1114</b>. For example, if a motion vector mv_colB of the block <b>1130</b> in a position co-located with the current block <b>1100</b> is generated for a searched block <b>1132</b> of the temporally preceding picture <b>1112</b> of the current picture <b>1110</b>, motion vector predictor candidates mv_LOB and mv_L<b>1</b>B of the current block <b>1100</b> can be generated in accordance with the equations below: <br /><i>mv</i><sub>—</sub><i>L</i>0<i>B</i>=(<i>t</i>3/<i>t</i>4)×<i>mv</i><sub>—</sub><i>colB </i><br /><i>mv</i><sub>—</sub><i>L</i>1<i>B=mv</i><sub>—</sub><i>L</i>0<i>B−mv</i><sub>—</sub><i>colB </i><br /> where mv_L<b>0</b>B denotes a motion vector predictor of the current block <b>1100</b> for the temporally preceding picture <b>1112</b>, and mv_L<b>1</b>B denotes a motion vector predictor of the current block <b>1100</b> for the temporally following picture <b>1114</b>.
0106In the generation of a motion vector of the current block <b>1100</b> of a B picture, at least one of the methods illustrated in <figref idref="DRAWINGS">FIGS. 11A and 11B</figref> can be used. In other words, since a motion vector predictor is generated using a motion vector and a temporal distance of the block <b>1120</b> or <b>1130</b> in a position co-located with the current block <b>1100</b>, motion vector predictors can be generated using the methods illustrated in <figref idref="DRAWINGS">FIGS. 11A and 11B</figref> if motion vectors of the blocks <b>1120</b> and <b>1130</b> in the co-located position exist. Thus, the predictor <b>910</b> according to an exemplary embodiment may generate a motion vector predictor of the current block <b>1100</b> using only a block having a motion vector among the blocks <b>1120</b> and <b>1130</b> in the co-located position.
0107For example, when the block <b>1120</b> in a co-located position of the temporally preceding picture <b>1112</b> is encoded using intra prediction instead of inter prediction, a motion vector of the block <b>1120</b> does not exist, and thus a motion vector predictor of the current block <b>1100</b> cannot be generated using the method of generating a motion vector predictor as illustrated in <figref idref="DRAWINGS">FIG. 11A</figref>.
0108<figref idref="DRAWINGS">FIG. 11C</figref> illustrates a method of generating a motion vector predictor of a B picture, according to an exemplary embodiment. Referring to <figref idref="DRAWINGS">FIG. 11C</figref>, a motion vector predictor of the current block <b>1100</b> of the current picture <b>1110</b> can be generated using a motion vector of a block <b>1140</b> in a co-located position of the temporally preceding picture <b>1112</b>. For example, if a motion vector mv_colC of the block <b>1130</b> in a position co-located with the current block <b>1100</b> is generated for a searched block <b>1142</b> of another temporally preceding picture <b>1116</b>, a motion vector predictor candidate mv_L<b>0</b>C of the current block <b>1100</b> can be generated in accordance with the equation below: <br /><i>mv</i><sub>—</sub><i>L</i>0<i>C</i>=(<i>t</i>6/<i>t</i>5)×<i>mv</i><sub>—</sub><i>colC. </i>
0109Since the current picture <b>1110</b> is a P picture, the number of motion vector predictors of the current block <b>1100</b> is 1, unlike <figref idref="DRAWINGS">FIGS. 11A and 11B</figref>.
0110In summary, a set C of motion vector predictor candidates according to <figref idref="DRAWINGS">FIGS. 10A</figref>, <b>10</b>B, and <b>11</b>A to <b>11</b>C can be generated in accordance with the equation below: <br /><i>C</i>={median(<i>mv</i><sub>—</sub><i>a</i>0<i>, mv</i><sub>—</sub><i>b</i>0<i>, mv</i><sub>—</sub><i>c</i>), <i>mv</i><sub>—</sub><i>a</i>0<i>, mv</i><sub>—</sub><i>a</i>1 <i>. . . , mv</i><sub>—</sub><i>aN, mv</i><sub>—</sub><i>b</i>0<i>, mv</i><sub>—</sub><i>b</i>1<i>, . . . , mv</i><sub>—</sub><i>aN, mv</i><sub>—</sub><i>c, mv</i><sub>—</sub><i>d, mv</i><sub>—</sub><i>e, mv</i>_temporal}.
0111Alternatively, the set C may be generated by reducing the number of motion vector predictor candidates in accordance with the equation below: <br /><i>C</i>={median(<i>mv</i><sub>—</sub><i>a′, mv</i><sub>—</sub><i>b′, mv</i><sub>—</sub><i>c</i>′), <i>mv</i><sub>—</sub><i>a′, mv</i><sub>—</sub><i>b′, mv</i><sub>—</sub><i>c′, mv</i>_temporal}.
0112Herein, mv_x denotes a motion vector of a block x, median( ) denotes a median value, and mv_temporal denotes motion vector predictor candidates generated using a temporal distance described above in association with <figref idref="DRAWINGS">FIGS. 11A to 11C</figref>.
0113In addition, mv_a′ denotes a very first valid motion vector among mv_a<b>0</b>, mv_a<b>1</b> . . . , mv_aN. For example, when a block a<b>0</b> is encoded using intra prediction, a motion vector mv_a<b>0</b> of the block a<b>0</b> is not valid, and thus mv_a′=mv_a<b>1</b>, and if a motion vector of a block a<b>1</b> is also not valid, mv_a′=mv_a<b>2</b>.
0114Likewise, mv_b′ denotes a first valid motion vector among mv_b<b>0</b>, mv_b<b>1</b> . . . , mv_bN, and mv_c′ denotes a first valid motion vector among mv_c, mv_d, and mv_e.
0115The explicit mode is a mode of encoding information indicating which motion vector has been used for a motion vector predictor of a current block. For example, when a motion vector is encoded in the explicit mode, a binary number can be allocated to each of elements of the set C, i.e., motion vector predictor candidates, and if one of the candidates is used as a motion vector predictor of a current block, a corresponding binary number can be output.
0116It will be easily understood by those of ordinary skill in the art that other motion vector predictor candidates besides those described above in association with the explicit mode can be used.
0117(2) Implicit Mode
0118Another one of the methods of encoding a motion vector predictor, which can be selected by the predictor <b>910</b>, implements a mode of encoding information indicating that a motion vector predictor of a current block is generated based on blocks or pixels included in a previously encoded area adjacent to the current block. Unlike the explicit mode, this mode is a mode of encoding information indicating generation of a motion vector predictor in the implicit mode without encoding information for specifying a motion vector predictor.
0119As described above, such a codec as MPEG-4 H.264/MPEG-4 AVC uses motion vectors of previously encoded blocks adjacent to a current block to predict a motion vector of the current block. That is, a median of motion vectors of previously encoded blocks adjacent to left, upper, and upper-right sides of the current block is used as a motion vector predictor of the current block. In this case, unlike the explicit mode, information for selecting one of motion vector predictor candidates may not be encoded.
0120In other words, if only information indicating that a motion vector predictor of a current block has been encoded in the implicit mode is encoded in an image encoding process, a median value of motion vectors of previously encoded blocks adjacent to left, upper, and upper-right sides of the current block can be used as a motion vector predictor of the current block in an image decoding process.
0121In addition, an image encoding method according to an exemplary embodiment provides a new implicit mode besides the method of using a median value of motion vectors of previously encoded blocks adjacent to left, upper, and upper-right sides of a current block as a motion vector predictor of the current block. This will now be described in detail with reference to <figref idref="DRAWINGS">FIG. 12</figref>.
0122<figref idref="DRAWINGS">FIG. 12</figref> illustrates a method of generating a motion vector predictor in an implicit mode, according to an exemplary embodiment. Referring to <figref idref="DRAWINGS">FIG. 12</figref>, pixels <b>1222</b> included in a previously encoded area <b>1220</b> adjacent to a current block <b>1200</b> of a current picture <b>1210</b> are used to generate a motion vector predictor of the current block <b>1200</b>. Corresponding pixels <b>1224</b> are determined by searching a reference picture <b>1212</b> using the adjacent pixels <b>1222</b>. The corresponding pixels <b>1224</b> can be determined by calculating a Sum of Absolute Differences (SAD). When the corresponding pixels <b>1224</b> are determined, a motion vector mv_template of the adjacent pixels <b>1222</b> is generated, and the motion vector mv_template can be used as a motion vector predictor of the current block <b>1200</b>.
0123If a mode of using a median of motion vectors of adjacent blocks as a motion vector predictor is defined as “implicit mode_<b>1</b>,” and if a mode of generating a motion vector predictor using pixels adjacent to a current block is defined as “implicit mode_<b>2</b>,” a motion vector predictor can be generated using one of the two implicit modes implicit mode_<b>1</b> and implicit mode_<b>2</b> by encoding information about one of the two implicit modes in an image encoding process and referring to the information about a mode in an image decoding process.
0124(3) Mode Selection
0125There may be various criteria for the predictor <b>910</b> to select one of the above-described explicit mode and implicit mode.
0126Since one of a plurality of motion vector predictor candidates is selected in the explicit mode, a motion vector predictor more similar to a motion vector of a current block can be selected. However, since information indicating one of a plurality of motion vector predictor candidates is encoded, a greater overhead than in the implicit modes may occur. Thus, for a coding unit having a great size, a motion vector may be encoded in the explicit mode because a probability of increasing an error occurring when a motion vector is wrongly predicted is higher for a coding unit having a great size than a coding unit having a small size and the number of overhead occurrence times decreases for each picture.
0127For example, when a picture equally divided into m coding units having a size of 64×64 is encoded in the explicit mode, the number of overhead occurrence times is m. However, when a picture, which has the same size, equally divided into 4 m coding units having the size of 32×32 is encoded in the explicit mode, the number of overhead occurrence times is 4 m.
0128Accordingly, the predictor <b>910</b> according to an exemplary embodiment may select one of the explicit mode and the implicit mode based on the size of a coding unit when a motion vector of a current block is encoded.
0129Since the size of a coding unit in the image encoding method and the image decoding method according to exemplary embodiments described above with reference to <figref idref="DRAWINGS">FIGS. 1 to 8</figref> is represented using a depth, the predictor <b>910</b> determines based on a depth of a current block whether a motion vector of the current block is encoded in the explicit mode or the implicit mode. For example, when coding units whose depths are 0 and 1 are inter-predicted, motion vectors of the coding units are encoded in the explicit mode, and when coding units whose depths are equal to or greater than 2 are inter-predicted, motion vectors of the coding units are encoded in the implicit mode.
0130According to another exemplary embodiment, the predictor <b>910</b> may select the explicit mode or the implicit mode for each picture or slice unit. Since image characteristics are different for each picture or slice unit, the explicit mode or the implicit mode can be selected for each picture or slice unit by considering these image characteristics. Motion vectors of coding units included in a current picture or slice can be prediction-encoded by selecting an optimal mode from among the explicit mode and the implicit mode in consideration of R-D cost.
0131For example, if motion vectors of coding units included in a picture or slice can be exactly predicted without using the explicit mode, motion vectors of all coding units included in the picture or slice may be prediction-encoded in the implicit mode.
0132According to another exemplary embodiment, the predictor <b>910</b> may select the explicit mode or the implicit mode based on whether a current block has been encoded in the skip mode. The skip mode is an encoding mode in which flag information indicating that a current block has been encoded in the skip mode is encoded without encoding a pixel value.
0133Furthermore, the skip mode is a mode in which a pixel value of a current block is not encoded since a prediction block generated by performing motion compensation using a motion vector predictor as a motion vector of the current block is similar to the current block. Thus, as a motion vector predictor is generated more similarly to a motion vector of a current block, a probability of encoding the current block in the skip mode is higher. Accordingly, a block encoded in the skip mode can be encoded in the explicit mode.
0134Referring back to <figref idref="DRAWINGS">FIG. 9</figref>, when the predictor <b>910</b> selects one of the explicit mode and the implicit mode and determines a motion vector predictor according to the selected mode, the first encoder <b>920</b> and the second encoder <b>930</b> encode information about an encoding mode and a motion vector.
0135Specifically, the first encoder <b>920</b> encodes information about a motion vector predictor of a current block. In more detail, when the predictor <b>910</b> determines that a motion vector of the current block is encoded in the explicit mode, the first encoder <b>920</b> encodes information indicating that a motion vector predictor has been generated in the explicit mode and information indicating which motion vector predictor candidate has been used as the motion vector predictor of the current block.
0136In contrast, when the predictor <b>910</b> selects that the motion vector of the current block is encoded in the implicit mode, the first encoder <b>920</b> encodes information indicating that the motion vector predictor of the current block has been generated in the implicit mode. In other words, the first encoder <b>920</b> encodes information indicating the motion vector predictor of the current block has been generated using blocks or pixels adjacent to the current block. If two or more implicit modes are used, the first encoder <b>920</b> may further encode information indicating which implicit mode has been used to generate the motion vector predictor of the current block.
0137The second encoder <b>930</b> encodes a motion vector of a current block based on a motion vector predictor determined by the predictor <b>910</b>. Alternatively, the second encoder <b>930</b> generates a difference vector by subtracting the motion vector predictor generated by the predictor <b>910</b> from the motion vector of the current block generated as a result of motion compensation and encodes information about the difference vector.
0138<figref idref="DRAWINGS">FIG. 13</figref> is a block diagram of an apparatus <b>1300</b> for decoding a motion vector, according to an exemplary embodiment. The apparatus <b>1300</b> for decoding the motion vector may be included in the image decoding apparatus <b>200</b> described above with reference <figref idref="DRAWINGS">FIG. 2</figref> or the image decoder <b>500</b> described above with reference to <figref idref="DRAWINGS">FIG. 5</figref>. Referring to <figref idref="DRAWINGS">FIG. 13</figref>, a motion vector decoding apparatus <b>1300</b> includes a first decoder <b>1310</b>, a second decoder <b>1320</b>, a predictor <b>1330</b>, and a motion vector restorer <b>1340</b>.
0139The first decoder <b>1310</b> decodes information about a motion vector predictor of a current block, which is included in a bitstream. In detail, the first decoder <b>1310</b> decodes information indicating whether the motion vector predictor of the current block has been encoded in the explicit mode or the implicit mode. When the motion vector predictor of the current block has been encoded in the explicit mode, the first decoder <b>1310</b> further decodes information indicating a motion vector predictor used as the motion vector predictor of the current block among a plurality of motion vector predictors. When the motion vector predictor of the current block has been encoded in the implicit mode, the first decoder <b>1310</b> may further decode information indicating which of a plurality of implicit modes has been used to encode the motion vector predictor of the current block.
0140The second decoder <b>1320</b> decodes a difference vector between a motion vector and the motion vector predictor of the current block included in the bitstream.
0141The predictor <b>1330</b> generates a motion vector predictor of the current block based on the information about the motion vector predictor of the current block, which has been decoded by the first decoder <b>1310</b>.
0142When the information about the motion vector predictor of the current block, which has been encoded in the explicit mode, is decoded, the predictor <b>1330</b> generates a motion vector predictor among the motion vector predictor candidates described above with reference to <figref idref="DRAWINGS">FIGS. 10A</figref>, <b>10</b>B, and <b>11</b>A to <b>11</b>C and uses the generated motion vector predictor as the motion vector predictor of the current block.
0143When the information about the motion vector predictor of the current block, which has been encoded in the implicit mode, is decoded, the predictor <b>1330</b> generates the motion vector predictor of the current block using blocks or pixels included in a previously encoded area adjacent to the current block. In more detail, the predictor <b>1330</b> generates a median value of motion vectors of blocks adjacent to the current block as the motion vector predictor of the current block or generates the motion vector predictor of the current block by searching a reference picture using pixels adjacent to the current block.
0144The motion vector restorer <b>1340</b> restores a motion vector of the current block by summing the motion vector predictor generated by the predictor <b>1330</b> and the difference vector decoded by the second decoder <b>1320</b>. The restored motion vector is used for motion compensation of the current block.
0145<figref idref="DRAWINGS">FIG. 14</figref> is a flowchart of a method of encoding a motion vector, according to an exemplary embodiment. Referring to <figref idref="DRAWINGS">FIG. 14</figref>, a motion vector encoding apparatus <b>900</b> according to an exemplary embodiment of selects one of an explicit mode and an implicit mode as a mode of encoding information about a motion vector predictor in operation <b>1410</b>.
0146The explicit mode is a mode of encoding information indicating a motion vector predictor candidate among at least one motion vector predictor candidate as information about a motion vector predictor, and the implicit mode is a mode of encoding information indicating that a motion vector predictor has been generated based on blocks or pixels included in a previously encoded area adjacent to a current block as information about the motion vector predictor. Detailed descriptions thereof have been given above with reference to <figref idref="DRAWINGS">FIGS. 10A</figref>, <b>10</b>B, <b>11</b>A to <b>11</b>C, and <b>12</b>.
0147A mode may be selected based on the size of a current block, i.e., a depth of the current block, or selected in a unit of a current picture or slice in which the current block is included. Alternatively, a mode may be selected according to whether the current block has been encoded in a skip mode.
0148In operation <b>1420</b>, the motion vector encoding apparatus <b>900</b> determines a motion vector predictor according to the mode selected in operation <b>1410</b>. In detail, the motion vector encoding apparatus <b>900</b> determines a motion vector predictor of the current block based on the explicit mode or implicit mode selected in operation <b>1410</b>. In more detail, the motion vector encoding apparatus <b>900</b> determines a motion vector predictor candidate among at least one motion vector predictor candidate as the motion vector predictor of the current block in the explicit mode or determines the motion vector predictor of the current block based on blocks or pixels adjacent to the current block in the implicit mode.
0149In operation <b>1430</b>, the motion vector encoding apparatus <b>900</b> encodes information about the motion vector predictor determined in operation <b>1420</b>. In the case of the explicit mode, the motion vector encoding apparatus <b>900</b> encodes information indicating a motion vector predictor candidate among at least one motion vector predictor candidate as the motion vector predictor of the current block and information indicating that information about the motion vector predictor of the current block has been encoded in the explicit mode. In the case of the implicit mode, the motion vector encoding apparatus <b>900</b> encodes information indicating that the motion vector predictor of the current block has been generated based on blocks or pixels included in a previously encoded area adjacent to the current block. In the case of a plurality of implicit modes, the motion vector encoding apparatus <b>900</b> may further encode information indicating one of the plurality of implicit modes.
0150In operation <b>1440</b>, the motion vector encoding apparatus <b>900</b> encodes a difference vector generated by subtracting the motion vector predictor determined in operation <b>1420</b> from a motion vector of the current block.
0151<figref idref="DRAWINGS">FIG. 15</figref> is a flowchart of a method of decoding a motion vector, according to an exemplary embodiment. Referring to <figref idref="DRAWINGS">FIG. 15</figref>, a motion vector decoding apparatus <b>1300</b> according to an exemplary embodiment decodes information about a motion vector predictor of a current block, which is included in a bitstream, in operation <b>1510</b>. In detail, the motion vector decoding apparatus <b>1300</b> decodes information about a mode used to encode the motion vector predictor of the current block from among an explicit mode and an implicit mode.
0152In the case of the explicit mode, the motion vector decoding apparatus <b>1300</b> decodes information indicating that the motion vector predictor of the current block has been encoded in the explicit mode and information about a motion vector predictor candidate among at least one motion vector predictor candidate. In the case of the implicit mode, the motion vector decoding apparatus <b>1300</b> decodes information indicating that the motion vector predictor of the current block has been generated based on blocks or pixels included in a previously decoded area adjacent to the current block. In the case of a plurality of implicit modes, the motion vector decoding apparatus <b>1300</b> may further decode information indicating one of the plurality of implicit modes.
0153In operation <b>1520</b>, the motion vector decoding apparatus <b>1300</b> decodes information about a difference vector. The difference vector is a vector of a difference between the motion vector predictor of the current block and a motion vector of the current block.
0154In operation <b>1530</b>, the motion vector decoding apparatus <b>1300</b> generates the motion vector predictor of the current block based on the information about the motion vector predictor, which has been decoded in operation <b>1510</b>. In detail, the motion vector decoding apparatus <b>1300</b> generates the motion vector predictor of the current block according to the explicit mode or the implicit mode. In more detail, the motion vector decoding apparatus <b>1300</b> generates the motion vector predictor of the current block by selecting a motion vector predictor candidate among at least one motion vector predictor candidate or using blocks or pixels included in a previously decoded area adjacent to the current block.
0155In operation <b>1540</b>, the motion vector decoding apparatus <b>1300</b> restores the motion vector of the current block by summing the difference vector decoded in operation <b>1520</b> and the motion vector predictor generated in operation <b>1530</b>.
0156While exemplary embodiments have been particularly shown and described above, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present inventive concept as defined by the following claims.
0157In addition, a system according to an exemplary embodiment can be implemented using a computer readable code in a computer readable recording medium. For example, at least one of an apparatus <b>100</b> for encoding an image, an apparatus <b>200</b> for decoding an image, an image encoder <b>400</b>, an image decoder <b>500</b>, a motion vector encoding apparatus <b>900</b>, and a motion vector decoding apparatus <b>1300</b>, according to exemplary embodiments, may include a bus coupled to units of each of the devices shown in <figref idref="DRAWINGS">FIGS. 1</figref>, <b>2</b>, <b>4</b>, <b>5</b>, <b>9</b>, and <b>13</b> and at least one processor connected to the bus. In addition, a memory coupled to at least one processor for performing commands as described above can be included and connected to the bus to store the commands and received messages or generated messages.
0158The computer readable recording medium is any data storage device that can store data which can be thereafter read by a computer system. Examples of the computer readable recording medium include read-only memory (ROM), random-access memory (RAM), CD-ROMs, magnetic tapes, floppy disks and, optical data storage devices. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
Contents5
14 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14
Every citation, both waysCites: the store holds 37 of 38
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2014294311A1 | Cited by | United States of America | Pre-grant |
| US9386325B2 | Cited by | United States of America | Applicant |
| US8971650B2 | Cited by | United States of America | Search report |
| US8971649B2 | Cited by | United States of America | Search report |
| US2014286585A1 | Cited by | United States of America | Pre-grant |
| EP0551599B1 | Cites | European Patent Office (EPO) | Applicant |
| CN100456833C | Cites | China | Applicant |
| CN101415122A | Cites | China | Applicant |
| TW200402662A | Cites | Taiwan Province of China | Applicant |
| JP2004241880A | Cites | Japan | Applicant |
| US2005013498A1 | Cites | United States of America | Applicant |
| WO2005027496A2 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2005053144A1 | Cites | United States of America | Applicant |
| RU2005106280A | Cites | Russian Federation | Applicant |
| JP2005510985A | Cites | Japan | Applicant |
| WO2006012383A2 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2006018381A1 | Cites | United States of America | Applicant |
| US2006256851A1 | Cites | United States of America | Applicant |
| JP2007006399A | Cites | Japan | Applicant |
| US2007014361A1 | Cites | United States of America | Applicant |
| WO2007034918A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| JP2007329528A | Cites | Japan | Applicant |
| WO2008027192A2 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO2008082158A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2008159401A1 | Cites | United States of America | Applicant |
| TW200850013A | Cites | Taiwan Province of China | Applicant |
| WO2009052742A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2009129472A1 | Cites | United States of America | Applicant |
| TW200922338A | Cites | Taiwan Province of China | Applicant |
| US2010086028A1 | Cites | United States of America | Applicant |
| US2010208814A1 | Cites | United States of America | Applicant |
| US2011085593A1 | Cites | United States of America | Applicant |
| JP2011501542A | Cites | Japan | Applicant |
| EP2202985A1 | Cites | European Patent Office (EPO) | Applicant |
| CA2230567A1 | Cites | Canada | Applicant |
| US7444026B2 | Cites | United States of America | Applicant |
| US7469070B2 | Cites | United States of America | Applicant |
| US8345754B2 | Cites | United States of America | Applicant |
| JPH10178639A | Cites | Japan | Applicant |
| JPH11146367A | Cites | Japan | Applicant |
| TWI272013B | Cites | Taiwan Province of China | Applicant |
| TWI287927B | Cites | Taiwan Province of China | Applicant |
133 members in 22 offices
Priority claims19
| Document | Office | Kind | Date |
|---|---|---|---|
| 1020090074896 | Republic of Korea | – | |
| 20090074896 | Republic of Korea | A | |
| 20090074896 | Republic of Korea | A | |
| 85619710 | United States of America | A | |
| 85619710 | United States of America | A | |
| 201213403476 | United States of America | A | |
| 201213403476 | United States of America | A | |
| 201213670018 | United States of America | A | |
| 201213670018 | United States of America | A | |
| 201313925337 | United States of America | A | |
| 1020090074896 | – | – | – |
| 12856197 | – | – | – |
| 13403476 | – | – | – |
| 13670018 | – | – | – |
| KR20090074896 | – | – | – |
| US20100856197 | – | – | – |
| US201213403476 | – | – | – |
| US201213670018 | – | – | – |
| US201313925337 | – | – | – |
Members133
| Document | Office | Kind | |
|---|---|---|---|
| CA2768182A1 | Canada | A1 | |
| CA2820901A1 | Canada | A1 | |
| CA2820905A1 | Canada | A1 | |
| CA2877202A1 | Canada | A1 | |
| CA2877229A1 | Canada | A1 | |
| US2011038420A1 | United States of America | A1 | |
| WO2011019247A2 | World Intellectual Property Organization (WIPO) | A2 | |
| KR20110017301A | Republic of Korea | A | |
| TW201114264A | Taiwan Province of China | A | |
| WO2011019247A3 | World Intellectual Property Organization (WIPO) | A3 | |
| AU2010283121A1 | Australia | A1 | |
| MX2011013557A | Mexico | A | |
| EP2452500A2 | European Patent Office (EPO) | A2 | |
| CN102474610A | China | A | |
| US2012147966A1 | United States of America | A1 | |
| US2012281764A1 | United States of America | A1 | |
| US8311118B2 | United States of America | B2 | |
| JP2013502141A | Japan | A | |
| US8369410B2 | United States of America | B2 | |
| US2013058415A1 | United States of America | A1 | |
| US8472525B2 | United States of America | B2 | |
| RU2488972C1 | Russian Federation | C1 | |
| TW201334554A | Taiwan Province of China | A | |
| TW201334555A | Taiwan Province of China | A | |
| TW201334556A | Taiwan Province of China | A | |
| CN103260029A | China | A | |
| CN103260031A | China | A | |
| US8537897B2 | United States of America | B2 | |
| CN103313052A | China | A | |
| AU2010283121B2 | Australia | B2 | |
| CA2820553A1 | Canada | A1 | |
| TWI413417B | Taiwan Province of China | B | |
| JP2013219824A | Japan | A | |
| JP2013219825A | Japan | A | |
| JP2013219826A | Japan | A | |
| US2013279593A1 | United States of America | A1 | |
| US2013279594A1 | United States of America | A1 | |
| TW201349875A | Taiwan Province of China | A | |
| TW201349876A | Taiwan Province of China | A | |
| EP2677749A2 | European Patent Office (EPO) | A2 | |
| EP2677752A2 | European Patent Office (EPO) | A2 | |
| EP2677753A2 | European Patent Office (EPO) | A2 | |
| US2014016705A1 | United States of America | A1 | |
| TWI424749B | Taiwan Province of China | B | |
| TW201406165A | Taiwan Province of China | A | |
| EP2452500A4 | European Patent Office (EPO) | A4 | |
| EP2677749A3 | European Patent Office (EPO) | A3 | |
| EP2677752A3 | European Patent Office (EPO) | A3 | |
| EP2677753A3 | European Patent Office (EPO) | A3 | |
| TWI432033B | Taiwan Province of China | B | |
| US8787463B2This record | United States of America | B2 | |
| US8792558B2 | United States of America | B2 | |
| JP5571827B2 | Japan | B2 | |
| US8811488B2 | United States of America | B2 | |
| MY152395A | Malaysia | A | |
| RU2013112250A | Russian Federation | A | |
| RU2013112365A | Russian Federation | A | |
| RU2013112367A | Russian Federation | A | |
| KR101452859B1 | Republic of Korea | B1 | |
| JP5624178B2 | Japan | B2 | |
| JP5624179B2 | Japan | B2 | |
| US2014334550A1 | United States of America | A1 | |
| TWI462593B | Taiwan Province of China | B | |
| TWI468019B | Taiwan Province of China | B | |
| JP2015019420A | Japan | A | |
| JP2015029335A | Japan | A | |
| CN104506863A | China | A | |
| CN104539952A | China | A | |
| JP5756106B2 | Japan | B2 | |
| MY154795A | Malaysia | A | |
| RU2559737C2 | Russian Federation | C2 | |
| RU2559738C2 | Russian Federation | C2 | |
| RU2559740C2 | Russian Federation | C2 | |
| ZA201201158B | South Africa | B | |
| EP2928186A2 | European Patent Office (EPO) | A2 | |
| CA2820553C | Canada | C | |
| MY155891A | Malaysia | A | |
| EP2928186A3 | European Patent Office (EPO) | A3 | |
| CN102474610B | China | B | |
| JP5856267B2 | Japan | B2 | |
| JP5856268B2 | Japan | B2 | |
| TWI526048B | Taiwan Province of China | B | |
| BR112012001514A2 | Brazil | A2 | |
| BR122013019016A2 | Brazil | A2 | |
| BR122013019017A2 | Brazil | A2 | |
| BR122013019018A2 | Brazil | A2 | |
| CA2820901C | Canada | C | |
| CA2877229C | Canada | C | |
| TWI547150B | Taiwan Province of China | B | |
| RU2597521C1 | Russian Federation | C1 | |
| CN104506863B | China | B | |
| CA2768182C | Canada | C | |
| RU2015120764A | Russian Federation | A | |
| US9544588B2 | United States of America | B2 | |
| RU2608264C2 | Russian Federation | C2 | |
| CN103260031B | China | B | |
| US2017085882A1 | United States of America | A1 | |
| CN103260029B | China | B | |
| CN103313052B | China | B | |
| CA2877202C | Canada | C |
88 transactions on the USPTO file
Allowed after 1 non-final rejection and 1 RCE.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Email NotificationEML_NTR | EML_NTR | |
| Printer Rush- No mailingTCPB | TCPB | |
| Printer Rush- No mailingTCPB | TCPB | |
| Mail Miscellaneous Communication to ApplicantMM327 | MM327 | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Miscellaneous Communication to Applicant - No Action CountM327 | M327 | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Email NotificationEML_NTR | EML_NTR | |
| Printer Rush- No mailingTCPB | TCPB | |
| Mail Miscellaneous Communication to ApplicantMM327 | MM327 | |
| Miscellaneous Communication to Applicant - No Action CountM327 | M327 | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| track 1 ONT1ON | T1ON | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Email NotificationEML_NTR | EML_NTR | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Priority document has successfully retrieved via PDX/DASPD.RECVD | PD.RECVD | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Track 1 Request GrantedT1GR | T1GR | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail-Record Petition Decision of Granted to Make SpecialMP003 | MP003 | |
| Record Petition Decision of Granted to Make SpecialP003 | P003 | |
| Application Is Now CompleteCOMP | COMP | |
| Email NotificationEML_NTR | EML_NTR | |
| Email NotificationEML_NTR | EML_NTR | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| FITF set to NO - revise initial settingFTFI | FTFI | |
| Application Is Now CompleteCOMP | COMP | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Cleared by OIPE CSRL194 | L194 | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Request from applicant for the USPTO to retrieve the Priority DocumentPDREQUST | PDREQUST | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| Track 1 RequestTK1R | TK1R | |
| Petition EnteredPET. | PET. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Entity status set to undiscounted (initial default setting or status change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
5 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP |
Numbers
- Publication
- 08787463
- Publication, DOCDB
- 8787463
- Publication, EPODOC
- US8787463
- Application
- 13925337
- Application, DOCDB
- 201313925337
- Application, EPODOC
- US201313925337
Titles
- English
- Method and apparatus for encoding/decoding motion vector
Patent term adjustment
- Applicant delay
- −9 days
- Net adjustment
- 0 days
Classification
- CPC, 24
- H04N19/176
- H04N19/00684
- H04N19/103
- H04N19/50
- H04N19/139
- H04N19/52
- H04N19/00733
- H04N19/96
- H04N19/00696
- H04N19/00278
- H04N19/00024
- H04N19/00781
- H04N19/51
- H04N19/513
- G06T9/00
- H04N19/105
- H04N19/70
- H04N19/147
- H04N19/61
- H04N19/117
- H04N19/124
- H04N19/159
- H04N19/184
- H04N19/865
- IPC, 6
- H04N7 12
- H04N19 593
- H04N19 94
- H04N7 36
- H04N7 26
- H04N7 50
- USPC, 6
- 375240160
- 375240010
- 375240120
- 375240230
- 375240240
- 375240260