METHOD OF BLOCK PARTITION FOR H.264 INTER PREDICTION
Provided is a method for partitioning a block in inter prediction including selecting one standard reference frame from at least one reference frame which is a comparison target in inter prediction, searching whether or not a higher-level macroblock of a current frame is partitioned based on the selected standard reference frame, determining a partition size of the higher-level macroblock of the current frame, searching whether or not the higher-level macroblock in which the partition size is determined is partitioned by comparing with any certain reference frame other than the standard reference frame, and stopping a block size search on the higher-level macroblock of the current frame if a partition size of the higher-level macroblock of the current frame determined by comparing with the standard reference frame and a partition size of the higher-level macroblock of the current frame determined by comparing with the certain reference frame are different from each other.
Latest ELECTRONICS AND TELECOMMUNICATIONS RESEARCH INSTITUTE Patents:
- Video encoding/decoding method, apparatus, and recording medium having bitstream stored thereon
- Method and apparatus for transmitting sounding reference signal in wireless communication system of unlicensed band and method and apparatus for triggering sounding reference signal transmission
- Video encoding/decoding method and device, and recording medium having bitstream stored therein
- Method for coding and decoding scalable video and apparatus using same
- Impact motion recognition system for screen-based multi-sport coaching
1. Technical Field
The present invention relates to a method and apparatus for partitioning a block for motion compensation in inter prediction in which a block is effectively partitioned using a cost of a ½ block.
This work was partly supported by the IT R&D program of MIC/IITA [2006-S-026-01, MPCore platform-based multi-format multimedia SoC].
2. Background Art
H.264/MPEG-4 AVC is a video compression standard which was jointly developed in 2003 by the ITU-T Video Coding Experts Group (VCEG) and the ISO/IEC Moving Picture Experts Group (MPEG). H.264 is 1.5 to 2 times higher in compression rate than MPEG-2 or MPEG-4 but requires a large amount of encoding process. A ratio of the amount of inter prediction process to the whole encoding process is increased due to functions such as variable block size, a maximum of five reference frames, and ¼ pixel motion compensation, which were adopted to increase encoding efficiency.
Many studies have been conducted to effectively perform encoding process, but a study on high speed processing of a function which is newly added to H.264 has not sufficiently been conducted. A technique for effectively selecting a search block size using pixel value differences between a target macroblock to be encoded and a macroblock of a reference frame has been suggested. However, when this technique is applied to searching a plurality of reference frames, a search block size differs among the reference frames, and it is less likely to partition a block into two blocks either vertically or horizontally when selecting a search block size, so that the encoding rate deteriorates.
Referring to
However, since determination of a block partition size in a frame requires a long process time and a large amount of process, there is a need for a method for effectively partitioning a block.
DISCLOSURE Technical ProblemThe present invention is directed to a method and apparatus for partitioning a block in inter prediction.
The present invention is also directed to a method and apparatus for partitioning a block in which the computation amount is reduced when a block is partitioned in inter prediction.
Technical Solution
One aspect of the present invention provides a method for partitioning a block in inter prediction, comprising: selecting one standard reference frame from at least one reference frame which is a comparison target in inter prediction; searching whether or not a higher-level macroblock of a current frame is partitioned based on the selected standard reference frame; determining a partition size of the higher-level macroblock of the current frame; searching whether or not the higher-level macroblock in which the partition size is determined is partitioned by comparing with any certain reference frame other than the standard reference frame; and stopping a block size search on the higher-level macroblock of the current frame if a partition size of the higher-level macroblock of the current frame determined by comparing with the standard reference frame and a partition size of the higher-level macroblock of the current frame determined by comparing with the certain reference frame are different from each other.
Searching whether or not the higher-level macroblock of the current frame is partitioned may comprise measuring a minimum cost of the higher-level macroblock of the current frame, measuring a minimum cost of a ½ block included in the higher-level macroblock of the current frame, comparing the minimum cost of the ½ block and the minimum cost of the higher-level macroblock and searching the macroblock of the current frame using the ½ block if the minimum cost of the ½ block is smaller than the minimum cost of the higher-level macroblock.
The method for partitioning a block in inter prediction may further comprise comparing the minimum cost of the ½ block and the minimum cost of the higher-level macroblock and comparing motion vector locations of sub-blocks in which the higher-level macroblock is partitioned into four if the minimum cost of the ½ block is larger than the minimum cost of the higher-level macroblock, stopping partitioning of the higher-level macroblock of the current frame if four motion vector locations are adjacent to each other, searching the higher-level macroblock of the current frame using the ½ block and the ¼ block if three motion vector locations are adjacent to each other, searching the higher-level macroblock of the current frame using the ½ block if three motion vector locations are adjacent to each other; and searching the higher-level macroblock of the current frame using the ¼ block if there are no motion vector locations which are adjacent to each other.
The higher-level macroblock of the current frame may be either a 16×16 macroblock or an 8×8 sub-macroblock. At most 16 frames may be used as the reference frame. A partition size of the higher-level macroblock of the current frame may be one of 16×8, 8×16 and 8×8 when a block size of the higher-level macroblock is 16×16, and a partition size of the higher-level macroblock of the current frame may be one of 8×4, 4×8 and 4×4 when a block size of the higher-level macroblock is 8×8. The method for partitioning a block in inter prediction may further comprise partitioning the higher-level macroblock of the current frame using the partition size if the partition size of the higher-level macroblock of the current frame determined by comparing with the standard reference frame and the partition size of the higher-level macroblock of the current frame determined by comparing with the certain reference frame are equal to each other.
The sub-block may have a ¼ size of the higher-level macroblock of the current frame, and the ½ block may have a ½ size of the higher-level macroblock of the current frame. The motion vector may be a point of a sub-macroblock in which a cost value obtained by adding a Sum of Absolute Differences (SAD) and a motion vector value is minimum.
Another aspect of the present invention provides an apparatus for partitioning a block in inter prediction, comprising: a first reference frame selecting unit which selects one from at least one reference frame which is a comparison target in inter prediction; a reference frame partition search unit which searches whether or not a higher-level macroblock of a current frame is partitioned based on the reference frame; a first macroblock partition determining unit which determines a partition size of the higher-level macroblock of the current frame based on the reference frame; a second reference frame selecting unit which selects a new reference frame based on the higher-level macroblock in which the partition size is determined; a second macroblock partition determining unit which determines a partition size of the higher-level macroblock of the current frame based on the new reference frame selected by the second reference frame selecting unit; and a final macroblock partition determining unit which determines a partition size of the higher-level macroblock by comparing the partition size determined by the first macroblock partition determining unit and the partition size determined by the second macroblock partition determining unit.
The reference frame partition search unit may comprise a higher-level block measuring unit which measures a cost of the higher-level macroblock of the current frame, a ½ block measuring unit which measures a cost of a ½ block included in the higher-level macroblock of the current frame, a block partition search unit which compares a minimum cost of the ½ block and a minimum cost of the higher-level macroblock and searches the macroblock of the current frame using the ½ block if a Sum of Absolute Differences (SAD) value of the ½ block is smaller.
Advantageous EffectsAccording to the present invention, a method and apparatus for partitioning a block in inter prediction can be provided.
Also, when a block is partitioned in inter prediction, the computation amount can be reduced and partitioning can be easily determined.
Mode for InventionHereinafter, a method and apparatus for partitioning a block in inter prediction according to an exemplary embodiment of the present invention will be described in detail with reference to the accompanying drawings.
Referring to
When the search on the partition size of the higher-level block starts, after the higher-level block is partitioned into 4 sub-blocks, a sum of absolute differences (SAD) and a cost of a motion vector for each sub-block is obtained. Here, a cost of a block is obtained by adding the SAD value and the cost of the motion vector for the block. A motion vector location value of each sub-block is also obtained. The obtained values are stored in a table in a reference memory. (step 203)
After searching at each search point, motion vectors of sub-blocks are compared to each other (step 205). If four motion vector location values are adjacent to each other, that is, if motion vector locations are identical in adjacent form to each other (step 206), block partitioning is stopped (step 215). In this case, there is no longer any need to partition a higher-level block.
If two motion vector values are adjacent to each other regardless of whether partitioning is vertical or horizontal, a size of two blocks partitioned is searched according to an adjacent direction (step 209). On the other hand, if there are no motion vector values which are adjacent to each other, a block size of all of four sub-blocks is searched. If three motion vector values are adjacent to each other, a block size is searched with respect to both a ½ size and a ¼ size (step 211).
Referring to
Referring to
Therefore, in the above-described case, it is difficult to find an optimum block partitioning method since a block partitioning method depends on a reference frame, and thus the computation amount is further increased.
Referring to
A block size search is performed using the standard reference frame (step 503). In this block size search step, information of sub-blocks is stored in a way similar to the conventional art, but unlike the conventional art, a cost value of a ½ block is stored together, which will be described later with reference to
After the block size search, a block size is determined (step 505). The block size search method and the block size determining method will be described later in detail with reference to
When a block size is determined, a block size of the block in which a block size has been determined is searched again using another fame among the reference frames other than the standard reference frame (step 507).
Therefore, a block size for another reference frame is determined (step 509).
Next, the block size determined by using the standard reference frame and the block size determined by using another reference frame is compared (step 511). If the block size determined by using the standard reference frame and the block size determined by using another reference frame are the same as each other, block partitioning is performed using the block size (step 513), and if they are not the same, a block is not partitioned using it (step 515).
Here, in the above block partitioning method, a method for searching a block size is very important.
Referring to
A minimum cost value of the higher-level block and a minimum cost value of the ½ block are compared (step 607). If the minimum cost value of the higher-level block is larger than the minimum cost value of the ½ block, it is determined to search for a block size using the ½ block (step 611).
On the other hand, if the minimum cost value of the higher-level block is smaller than the minimum cost value of the ½ block, motion vector values of sub-blocks in which the higher-level block is partitioned into four are compared (step 609).
If two motion vector values are equal, it is determined to search for the ½ block, the ¼ block and the higher-level block (step 615). If four motion vector values are the same, the higher-level block is used, and block partitioning is finished without partitioning (step 619). If there are no motion vectors which are the same as each other, a search is performed using the ¼ block (step 613). If three motion vectors are the same, all of the ½ block, the ¼ block and the higher-level block are searched (step 617).
Referring to
Reference numeral 705 represents sub-blocks partitioned from a higher-level block. In this instance, as can be seen in a table 707, a cost of a horizontal ½ block and a cost of a vertical ½ block as well as a cost of each sub-block are computed.
The computed values can be applied when a block partition search is performed using the method of
While the invention has been shown and described with reference to certain exemplary embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.
- 301: higher-level block
- 401: target frame that will be partitioned into blocks
- 403: first reference frame
- 405: second reference frame
Claims
1. A method for partitioning a block in inter prediction, comprising:
- selecting one standard reference frame from at least one reference frame which is a comparison target in inter prediction;
- searching whether or not a higher-level macroblock of a current frame is partitioned based on the selected standard reference frame;
- determining a partition size of the higher-level macroblock of the current frame;
- searching whether or not the higher-level macroblock in which the partition size is determined is partitioned by comparing with any certain reference frame other than the standard reference frame; and
- stopping a block size search on the higher-level macroblock of the current frame if a partition size of the higher-level macroblock of the current frame determined by comparing with the standard reference frame and a partition size of the higher-level macroblock of the current frame determined by comparing with the certain reference frame are different from each other.
2. The method of claim 1, wherein searching whether or not the higher-level macroblock of the current frame is partitioned comprises:
- measuring a minimum cost of the higher-level macroblock of the current frame;
- measuring a minimum cost of a ½ block included in the higher-level macroblock of the current frame; and
- comparing the minimum cost of the ½ block and the minimum cost of the higher-level macroblock and searching the macroblock of the current frame using the ½ block if the minimum cost of the ½ block is smaller than the minimum cost of the higher-level macroblock.
3. The method of claim 2, further comprising:
- comparing the minimum cost of the ½ block and the minimum cost of the higher-level macroblock and comparing motion vector locations of sub-blocks in which the higher-level macroblock is partitioned into four if the minimum cost of the ½ block is larger than the minimum cost of the higher-level macroblock;
- stopping partitioning of the higher-level macroblock of the current frame if four motion vector locations are adjacent to each other;
- searching the higher-level macroblock of the current frame using the ½ block and the ¼ block if three motion vector locations are adjacent to each other;
- searching the higher-level macroblock of the current frame using the ½ block if three motion vector locations are adjacent to each other; and
- searching the higher-level macroblock of the current frame using the ¼ block if there are no motion vector locations which are adjacent to each other.
4. The method of claim 1, wherein the higher-level macroblock of the current frame is either a 16×16 macroblock or an 8×8 sub-macroblock.
5. The method of claim 1, wherein at most 16 frames are used as the reference frame.
6. The method of claim 4, wherein a partition size of the higher-level macroblock of the current frame is one of 16×8, 8×16 and 8×8 when a block size of the higher-level macroblock is 16×16, and a partition size of the higher-level macroblock of the current frame is one of 8×4, 4×8 and 4×4 when a block size of the higher-level macroblock is 8×8.
7. The method of claim 1, further comprising partitioning the higher-level macroblock of the current frame using the partition size if the partition size of the higher-level macroblock of the current frame determined by comparing with the standard reference frame and the partition size of the higher-level macroblock of the current frame determined by comparing with the certain reference frame are equal to each other.
8. The method of claim 2, wherein the sub-block has a ¼ size of the higher-level macroblock of the current frame, and the ½ block has a ½ size of the higher-level macroblock of the current frame.
9. The method of claim 2, wherein the motion vector is a point of a sub-macroblock in which a cost value obtained by adding a Sum of Absolute Differences (SAD) and a motion vector value is minimum.
10. An apparatus for partitioning a block in inter prediction, comprising:
- a first reference frame selecting unit which selects one from at least one reference frame which is a comparison target in inter prediction;
- a reference frame partition search unit which searches whether or not a higher-level macroblock of a current frame is partitioned based on the reference frame;
- a first macroblock partition determining unit which determines a partition size of the higher-level macroblock of the current frame based on the reference frame;
- a second reference frame selecting unit which selects a new reference frame based on the higher-level macroblock in which the partition size is determined;
- a second macroblock partition determining unit which determines a partition size of the higher-level macroblock of the current frame based on the new reference frame selected by the second reference frame selecting unit; and
- a final macroblock partition determining unit which determines a partition size of the higher-level macroblock by comparing the partition size determined by the first macroblock partition determining unit and the partition size determined by the second macroblock partition determining unit.
11. The apparatus of claim 10, wherein the reference frame partition search unit comprises:
- a higher-level block measuring unit which measures a cost of the higher-level macroblock of the current frame;
- a ½ block measuring unit which measures a cost of a ½ block included in the higher-level macroblock of the current frame;
- a block partition search unit which compares a minimum cost of the ½ block and a minimum cost of the higher-level macroblock and searches the macroblock of the current frame using the ½ block if a Sum of Absolute Differences (SAD) value of the ½ block is smaller.
Type: Application
Filed: Sep 24, 2009
Publication Date: Jul 8, 2010
Patent Grant number: 8265155
Applicant: ELECTRONICS AND TELECOMMUNICATIONS RESEARCH INSTITUTE (Daejeon)
Inventors: Ig Kyun Kim (Daejeon), Kyoung Seon Shin (Daejeon), Seong Mo Park (Daejeon), Nak Woong Eum (Daejeon)
Application Number: 12/565,949
International Classification: H04N 7/32 (20060101);