[go: up one dir, main page]

WO2013031071A1 - 動画像復号装置、動画像復号方法、及び集積回路 - Google Patents

動画像復号装置、動画像復号方法、及び集積回路 Download PDF

Info

Publication number
WO2013031071A1
WO2013031071A1 PCT/JP2012/004154 JP2012004154W WO2013031071A1 WO 2013031071 A1 WO2013031071 A1 WO 2013031071A1 JP 2012004154 W JP2012004154 W JP 2012004154W WO 2013031071 A1 WO2013031071 A1 WO 2013031071A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion vector
block
motion
motion compensation
blocks
Prior art date
Application number
PCT/JP2012/004154
Other languages
English (en)
French (fr)
Inventor
一憲 岡嶋
Original Assignee
パナソニック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニック株式会社 filed Critical パナソニック株式会社
Publication of WO2013031071A1 publication Critical patent/WO2013031071A1/ja
Priority to US14/191,253 priority Critical patent/US20140177726A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Definitions

  • the present invention relates to a moving image decoding apparatus and a moving image decoding method for decoding a moving image encoded stream encoded using motion prediction.
  • H.264 has been standardized jointly by ITU-T and ISO as an encoding method that can be applied to a wider range of devices, such as mobile information terminals represented by smartphones and network distribution, and has a higher compression rate.
  • the amount of information is compressed by reducing redundancy in the time direction and the spatial direction.
  • motion vectors are calculated by detecting motion in units of blocks with reference to the front or rear image of the encoding target image. Further, a predicted image is generated from the block indicated by the motion vector, and the difference value between the obtained predicted image and the encoding target image is encoded together with the motion vector to generate a moving image encoded stream.
  • motion compensation processing is performed in units of macroblocks each consisting of 16 pixels ⁇ 16 pixels. That is, since one or a plurality of motion vectors are provided for each macroblock, the decoding apparatus reads data of an image area indicated by these motion vectors from reference image data (for example, a frame memory), and a moving image encoded stream The image can be restored by adding the difference value from the original image given by the data and the read data.
  • reference image data for example, a frame memory
  • MV motion vector
  • PMV prediction MV
  • MVD predicted motion vector
  • MV PMV + MVD (Formula 1) H.
  • the MV of which adjacent block is used or its derivation method is determined according to the block size (also referred to as macroblock type) to be compensated for motion. And it is determined that MVD is encoded into a moving image encoding stream according to the macroblock type (for example, in H.264, when it is an inter macroblock and not a skip macroblock) MVD is encoded).
  • the PMV in VP8 (see Non-Patent Document 2) has a flag indicating which adjacent block MV is used, whether the MV value is 0, or whether the MVD is included in the moving image encoded stream.
  • the MVD is encoded into a moving image encoded stream according to the value of the flag indicating the PMV.
  • the MV may be directly encoded in the moving image encoded stream.
  • how to include MV in a moving image encoded stream is defined in each moving image encoding standard.
  • a decoding circuit that executes the above-described decoding processing is usually configured to temporarily store decoded image data in an external memory. For this reason, in order to decode an image using motion prediction, it is necessary to read the reference image data from an external memory.
  • a region to be subjected to motion prediction is a block. Or a motion compensation target block.
  • a macroblock can be further divided into 16 blocks each having a size of 4 pixels ⁇ 4 pixels.
  • the reference image data indicated by the motion vector is read from an external memory for each area corresponding to the divided block.
  • the number of divisions increases, the number of accesses to the memory increases.
  • the motion vector can usually indicate not only the reference image position, that is, the integer position of the reference image, but also the decimal position (for example, a 1/2 position or a 1/4 position). .
  • the decimal position for example, a 1/2 position or a 1/4 position.
  • FIG. 9 is used in a 6-tap filter when the block size of motion compensation processing (hereinafter referred to as the partition size) is 4 horizontal pixels ⁇ 4 vertical pixels (hereinafter referred to as 4 ⁇ 4). It is a figure which shows the reference image data.
  • a cross indicates a predicted pixel calculated after the motion compensation process
  • a circle indicates a pixel necessary for the motion compensation process using a 6-tap filter. That is, reference image data of 9 pixels ⁇ 9 pixels (broken line in FIG. 10A) is required for motion compensation of a block having a partition size of 4 ⁇ 4 (solid line in FIG. 10A). Similarly, in the case of a block having a partition size of 16 ⁇ 16 (solid line in FIG. 10B), reference image data of 21 pixels ⁇ 21 pixels (broken line in FIG. 10B) is required. Furthermore, in the case of a block having a partition size of 8 ⁇ 8, reference image data of 13 pixels ⁇ 13 pixels is necessary (not shown).
  • the reference image data necessary for generating the prediction image of the luminance component is the reference image data of 21 pixels ⁇ 21 pixels as shown in FIG. 10B.
  • the amount of reference image data read can be increased depending on the bus width of the bus connected to the external memory, the amount of data accessed once, the AC characteristics of the external memory (for example, CAS latency and wait cycle of SDRAM), and the like. There is sex.
  • the partition size is 4 ⁇ 4, it is necessary to read an area of 9 pixels ⁇ 9 pixels as shown in FIG. 10A.
  • the reference image data read amount is reduced by collecting the reference image data necessary for one macroblock in one two-dimensional data area.
  • a moving picture decoding circuit see, for example, Patent Document 1 and Patent Document 2.
  • FIG. 11A and 11B show examples of reference image data necessary for the motion compensation processing according to the conventional technique.
  • FIG. 11A is a diagram showing four blocks of 8 ⁇ 8 partitions included in one macroblock and their motion vectors.
  • FIG. 11B is a diagram showing reference image data required by each block in FIG. 11A, and a case where the blocks are combined into one image region is indicated by a broken line 1100.
  • by collecting a plurality of reference image data in one image area it is not necessary to repeatedly acquire overlapping image data from an external memory (frame memory), so that the memory bandwidth can be reduced.
  • FIGS. 12A and 12B are diagrams illustrating examples of pixels, intermediate pixels, and output pixels used for motion compensation processing.
  • a decimal pixel position for example, a 1 ⁇ 2 pixel position in the X direction and a 1 ⁇ 2 pixel position in the Y direction
  • a horizontal direction is obtained by performing a 6-tap filter in the horizontal direction.
  • a horizontal filter for obtaining the decimal pixel position is combined with a vertical filter for obtaining the decimal pixel position in the vertical direction by performing a 6-tap filter in the vertical direction using the pixels obtained by the horizontal filter.
  • FIG. 12A is a diagram showing pixels necessary for motion compensation (circles), output pixels after horizontal filtering ( ⁇ marks), and output pixels after motion compensation (x marks) when the partition size is 4 ⁇ 4. is there.
  • FIG. 12B is a diagram showing pixels necessary for motion compensation (marked with ⁇ ), output pixels after horizontal filtering (marked with ⁇ ), and output pixels after motion compensation (marked with ⁇ ) when the partition size is 4 ⁇ 8. .
  • the horizontal filter and the vertical filter are performed in this order.
  • the number of executions (processing amount) of the 6-tap filter process necessary for generating a predicted image (256 bytes) of the luminance component of one macroblock is 4 ⁇ 4 for the horizontal filter.
  • [Pixel] ⁇ 9 [Pixel] 36 times (marked with ⁇ in FIG. 12A)
  • An object of the present invention is to provide a moving image decoding apparatus and method capable of realizing motion compensation processing at high speed and with low power consumption.
  • the moving picture decoding apparatus decodes a moving picture encoded stream that has been encoded using block-based motion prediction. Specifically, in the video decoding device, the prediction direction indicating the same motion vector as that of the adjacent block, the motion vector is 0, and motion vector difference information is encoded in the video encoded stream. In order to extract a flag relating to a motion vector indicating any one of the above, a decoding means for decoding the moving picture encoded stream, and a flag relating to the motion vector of a plurality of blocks extracted by the decoding means.
  • a motion vector comparison unit that determines whether or not adjacent blocks have the same motion vector, and a block that integrates a plurality of blocks that have been determined to have the same motion vector by the motion vector comparison unit into one motion compensation target block Integration means; and motion vector generation means for generating a motion vector based on the flag relating to the motion vector;
  • reference image acquisition means for acquiring a reference image for each motion compensation target block from reference image data decoded in the past and stored in a memory; and the reference Motion compensation is performed using the reference image acquired by the image acquisition means, a motion compensation means for generating a predicted image for each of the motion compensation target blocks, and an image using the prediction image generated by the motion compensation means Restoring means for restoring.
  • the block sizes are integrated, and reference image data can be acquired for each integrated motion compensation target block. it can.
  • the number of pixels to be read out of the reference image data from the frame memory is reduced, and the block size for performing the motion compensation processing is greatly integrated, so that the motion compensation processing is speeded up and realized with low power consumption. be able to.
  • the block integration means may use individual motion compensation target blocks for blocks determined by the motion vector comparison means as not having the same motion vector as an adjacent block.
  • the reference image can be acquired for each individual motion compensation target block.
  • the number of pixels to be read out of the reference image data from the frame memory is reduced, and the block size for performing the motion compensation processing is greatly integrated, so that the motion compensation processing is speeded up and realized with low power consumption. be able to.
  • the prediction direction of the flag relating to the motion vector is the same as the motion vector of the block adjacent to the flag in the upward direction, or the same motion vector as the block adjacent to the left direction. It may indicate any of the above.
  • the adjacent blocks are the same. It is possible to easily determine whether or not there is a motion vector. And when it becomes the same motion vector, after integrating a block size, a reference image can be acquired for every block after integration.
  • the number of pixels to be read out of the reference image data from the frame memory is reduced, and the block size for performing the motion compensation processing is greatly integrated, so that the motion compensation processing is speeded up and realized with low power consumption. be able to.
  • the size of the block to be compared by the motion vector comparison unit and the block before being integrated by the block integration unit may be 4 pixels ⁇ 4 pixels or 8 pixels ⁇ 8 pixels.
  • a plurality of adjacent blocks have the same motion vector based on a flag related to the prediction direction of the motion vector of the block of 4 pixels ⁇ 4 pixels or 8 pixels ⁇ 8 pixels. If so, adjacent blocks that have the same motion vector can be integrated, and a reference image can be acquired for each integrated motion compensation block.
  • the number of pixels to be read out of the reference image data from the frame memory is reduced, and the block size for performing the motion compensation processing is greatly integrated, so that the motion compensation processing is speeded up and realized with low power consumption. be able to.
  • the block to be compared by the motion vector comparing means may be a block in one macro block.
  • the number of pixels to be read out of the reference image data from the frame memory is reduced, and the block size for performing the motion compensation processing is greatly integrated, so that the motion compensation processing is speeded up and realized with low power consumption. be able to.
  • the motion vector comparison means determines whether the motion vector is the same for each of the plurality of blocks as a block adjacent to the block in the upward direction, a block adjacent to the left direction, or a block adjacent to the upper left direction. You may judge.
  • the block sizes are integrated.
  • a reference image can be acquired for each block after integration.
  • the number of pixels to be read out of the reference image data from the frame memory is reduced, and the block size for performing the motion compensation processing is greatly integrated, so that the motion compensation processing is speeded up and realized with low power consumption. be able to.
  • the motion vector comparison means has the same motion vector as the motion compensation target block included in the macroblock adjacent to the two blocks, with respect to each of the two adjacent blocks to be compared.
  • the two blocks may be integrated into one motion compensation target block.
  • the block size is determined when a plurality of adjacent blocks refer to the motion vector of the adjacent macroblock and become the same motion vector.
  • the reference image can be acquired for each block after integration.
  • the number of pixels to be read out of the reference image data from the frame memory is reduced, and the block size for performing the motion compensation processing is greatly integrated, so that the motion compensation processing is speeded up and realized with low power consumption. be able to.
  • the size of the motion compensation target block included in the adjacent macroblock may be 16 pixels ⁇ 16 pixels or 8 pixels ⁇ 8 pixels.
  • the adjacent macroblock is used in the motion vector comparison unit, so that When the block has the same motion vector as the motion compensation block of the adjacent macroblock that is referenced, the block image is integrated and a reference image can be acquired for each integrated block.
  • the number of pixels to be read out of the reference image data from the frame memory is reduced, and the block size for performing the motion compensation processing is greatly integrated, so that the motion compensation processing is speeded up and realized with low power consumption. be able to.
  • the moving image encoded stream may be encoded by VP8.
  • the number of pixels to be read out of the reference image data from the frame memory is reduced, and the block size for performing the motion compensation processing is greatly integrated, so that the motion compensation processing is speeded up and realized with low power consumption. be able to.
  • the moving picture decoding apparatus decodes a moving picture encoded stream that has been encoded using motion prediction in units of blocks.
  • the moving picture decoding apparatus includes a decoding unit that decodes a difference value of a motion vector from the moving image encoded stream, a prediction vector calculation unit that calculates a prediction vector that is a prediction value of the motion vector, A motion vector generation unit that generates a motion vector by adding the prediction vector calculated by the prediction vector calculation unit and a difference value of the motion vector decoded by the decoding unit; and the motion vector generation unit
  • the generated motion vector is compared with the motion vectors of a plurality of adjacent blocks to determine whether or not the same motion vector is obtained, and the motion vector comparing unit determines that the motion vectors are the same.
  • Block integration means for integrating the plurality of blocks into one motion compensation target block, and the motion vector Based on the motion vector generated by the generation unit, a reference image acquisition unit that acquires a reference image for each motion compensation target block from reference image data decoded in the past and stored in a memory; and the reference image acquisition unit A motion compensation unit that performs motion compensation using the reference image acquired in step S1 and generates a predicted image for each motion compensation target block, and a restoration that restores the image using the predicted image generated by the motion compensation unit Means.
  • the block sizes are integrated, and reference image data can be acquired for each integrated motion compensation target block.
  • the number of pixels to be read out of the reference image data from the frame memory is reduced, and the block size for performing the motion compensation processing is greatly integrated, so that the motion compensation processing is speeded up and realized with low power consumption. be able to.
  • the moving picture decoding method is a method for decoding a moving picture encoded stream that has been encoded using block-based motion prediction. Specifically, in the video decoding method, the prediction direction indicating the same motion vector as that of an adjacent block, the motion vector is 0, and motion vector difference information is encoded in the video encoded stream.
  • a decoding step of decoding the video encoded stream, and a flag related to the motion vector of a plurality of blocks extracted in the decoding step A motion vector comparison step for determining whether or not adjacent blocks have the same motion vector, and a block for integrating a plurality of blocks determined to have the same motion vector in the motion vector comparison step into one motion compensation target block Based on the integration step and the flag relating to the motion vector, a motion vector is generated.
  • Reference image acquisition for acquiring a reference image for each motion compensation target block from reference image data decoded in the past and stored in a memory based on the vector generation step and the motion vector generated in the motion vector generation step
  • a motion compensation step for performing motion compensation using the reference image acquired in the reference image acquisition step, and generating a prediction image for each motion compensation target block; and the prediction image generated in the motion compensation step.
  • the block sizes are integrated, and the reference image data can be acquired for each block after integration.
  • the integrated circuit decodes a moving image encoded stream that is encoded using motion prediction in units of blocks. Specifically, the integrated circuit has a prediction direction indicating the same motion vector as that of the adjacent block, the motion vector is 0, and motion vector difference information is encoded in the video encoded stream.
  • a decoding unit that decodes the moving image encoded stream, and a flag related to the motion vector of a plurality of blocks extracted by the decoding unit
  • a motion vector comparison unit that determines whether or not adjacent block motion vectors are the same, and a block integration unit that integrates a plurality of blocks determined to have the same motion vector by the motion vector comparison unit into one motion compensation target block
  • a motion vector generation unit that generates a motion vector based on the flag relating to the motion vector, and the motion vector
  • a reference image acquisition unit that acquires a reference image for each of the motion compensation target blocks from reference image data that has been decoded in the past and stored in a memory based on the motion vector generated by the generation unit; and the reference image acquisition unit
  • a motion compensation unit that performs motion compensation using the reference image acquired in step S1 and generates a predicted image for each motion compensation target block, and a restoration that restores the image using the predicted image generated by the motion compensation unit A part.
  • the block sizes are integrated, and the reference image data can be acquired for each block after integration.
  • the memory bandwidth can be reduced and the amount of processing during the motion compensation process can be reduced by integrating blocks that are processing units of the motion compensation process. It can be carried out.
  • the decoding performance can be improved and the decoding process can be speeded up, and the power consumption can be reduced by reducing the processing amount.
  • FIG. 1 is a block diagram showing a configuration of a video decoding apparatus according to Embodiment 1.
  • FIG. 2A is a diagram illustrating a flag related to a motion vector, and is a diagram illustrating that the motion vector is the same as a block adjacent on the left side.
  • FIG. 2B is a diagram illustrating a flag related to a motion vector, and is a diagram illustrating that the motion vector is the same as that of an adjacent block on the upper side.
  • FIG. 2C is a diagram for explaining a flag relating to a motion vector, and showing that the motion vector is 0.
  • FIG. 2D is a diagram for explaining a flag related to a motion vector, and illustrates that motion vector data is included in a moving image encoded stream.
  • FIG. 2A is a diagram illustrating a flag related to a motion vector, and is a diagram illustrating that the motion vector is the same as a block adjacent on the left side.
  • FIG. 2B is a diagram illustrating a flag related to
  • FIG. 3A is a diagram illustrating an example of a flag related to a motion vector of each block included in a macroblock.
  • FIG. 3B is a diagram illustrating a result of integrating the blocks in FIG. 3A.
  • FIG. 3C is a diagram illustrating an example of a flag related to the motion vector of each block included in the macroblock.
  • FIG. 3D is a diagram illustrating a result of integrating the blocks illustrated in FIG. 3C.
  • FIG. 3E is a diagram illustrating a result of further integrating the blocks in FIG. 3D.
  • FIG. 3F is a diagram illustrating a result of further integrating the blocks in FIG. 3E.
  • FIG. 4 is a flowchart of predictive image generation according to the first embodiment.
  • FIG. 4 is a flowchart of predictive image generation according to the first embodiment.
  • FIG. 5A is a diagram illustrating a positional relationship between a plurality of blocks included in an 8 ⁇ 8 partition.
  • FIG. 5B is a list of cases that can be integrated into each block of FIG. 5A.
  • FIG. 5C is a list of cases that can be integrated into each block of FIG. 5A.
  • FIG. 6A is a diagram illustrating an example of a flag related to the motion vector of each block included in the macroblock.
  • FIG. 6B is a diagram illustrating a result of integrating the blocks in FIG. 6A.
  • FIG. 6C is a diagram illustrating a result of further integrating the blocks in FIG. 6B.
  • FIG. 7A is a diagram illustrating a positional relationship between a plurality of blocks included in an 8 ⁇ 8 partition and other adjacent macroblocks.
  • FIG. 7B is a list of cases that can be integrated with each block in FIG. 7A.
  • FIG. 7C is a list of cases that can be integrated into each block of FIG. 7A.
  • FIG. 8 is a flowchart of predicted image generation according to the second embodiment.
  • FIG. 9 is a diagram for explaining motion compensation processing using a 6-tap filter.
  • FIG. 10A is a diagram illustrating an example of reference image data necessary for motion compensation of a block having a partition size of 4 ⁇ 4.
  • FIG. 10B is a diagram illustrating an example of reference image data necessary for motion compensation of a block having a partition size of 16 ⁇ 16.
  • FIG. 11A is a diagram showing four blocks of 8 ⁇ 8 partitions and their motion vectors.
  • FIG. 10A is a diagram showing four blocks of 8 ⁇ 8 partitions and their motion vectors.
  • FIG. 11B is a diagram showing reference image data required by each block in FIG. 11A.
  • FIG. 12A is a diagram illustrating pixels, intermediate pixels, and output pixels necessary for motion compensation of a 4 ⁇ 4 partition block.
  • FIG. 12B is a diagram illustrating pixels, intermediate pixels, and output pixels necessary for motion compensation of a 4 ⁇ 8 partition block.
  • FIG. 1 is a block diagram showing a configuration of a moving picture decoding apparatus 100 according to Embodiment 1 of the present invention.
  • the moving picture decoding apparatus 100 includes a decoding unit 110, a motion vector comparison unit 120, a block integration unit 130, a motion vector generation unit 140, a frame memory transfer control unit 150, and a buffer 160.
  • the decoding unit 110 decodes the moving image encoded stream input to the decoding unit 110, and includes a flag relating to a motion vector, motion vector data, and a difference value between an encoding target image and a predicted image (hereinafter, “residual image”). ) Is output. Then, the decoding unit 110 outputs a flag and motion vector data regarding the motion vector to the motion vector comparison unit 120 and the motion vector generation unit 140, and outputs a residual image to the adder 190.
  • the flag relating to the motion vector is any of a prediction direction indicating that the adjacent block has the same motion vector, that the motion vector is 0, and that motion vector data is included in the moving image encoded stream. This flag is stored for each block in the moving image encoded stream.
  • the motion vector data is the difference value of the motion vector or the motion vector itself.
  • this motion vector data only needs to be stored in the moving image encoded stream only when a flag relating to the motion vector indicates that the moving image encoded stream includes the motion vector data.
  • the motion vector generation unit 140 When the motion vector generation unit 140 receives a flag related to the motion vector from the decoding unit 110, the motion vector generation unit 140 generates a motion vector of the decoding target block using the motion vector of the adjacent block. Further, when the motion vector generation unit 140 receives the difference value of the motion vector, the motion vector generation unit 140 adds the motion vector of the adjacent block or the prediction MV calculated from the motion vector of the adjacent block and the difference value of the motion vector, and performs decoding. Generate block motion vectors.
  • the motion vector comparison unit 120 compares the flag related to the motion vector received from the decoding unit 110 or the motion vector generation unit 140 with the flag related to the motion vector of a plurality of adjacent blocks, and the motion vectors in the plurality of adjacent blocks are the same. It is determined whether or not, and the determination result is output to the block integration unit 130.
  • the block integration unit 130 that has received the comparison result, when a plurality of adjacent blocks have the same motion vector, has those adjacent blocks having a block size (hereinafter referred to as a partition size) as a motion compensation processing unit. It is determined to be integrated into the motion compensation target block, and the result is output to the motion vector generation unit 140. On the other hand, the block integration unit 130 determines that a block different from any motion vector of a plurality of adjacent blocks is to be a motion compensation target block alone, and outputs the result to the motion vector generation unit 140.
  • a partition size a block size
  • the flag is illustrated as four types shown in FIGS. 2A to 2D (Left, Above, Zero, New). )are categorized.
  • the flag regarding said motion vector is demonstrated as an example, it may be another case. For example, it may indicate the same as the motion vector of the adjacent block in the upper left or upper right, or may indicate the same as the motion vector of a block two or more away.
  • H In a moving picture coding standard such as H.264, a motion vector prediction direction is obtained from a moving picture coded stream. That is, the contents are not limited to those shown in FIGS. 2A to 2D.
  • the block described as “Left” shown in FIG. 2A indicates that the motion vector (hereinafter referred to as MV) is the same as that of the adjacent block on the left side.
  • the block labeled “Above” shown in FIG. 2B indicates that the MV is the same as the adjacent block on the upper side.
  • the block labeled “Zero” shown in FIG. 2C indicates that MV is zero. However, when MV becomes 0, there is naturally a possibility of having the same MV as the adjacent block.
  • the block described as “New” shown in FIG. 2D indicates that the moving image encoded stream includes a difference value from the predicted MV calculated from the new MV or the MV of the decoded peripheral block. That is, it can be said that the MV of the encoding target block is different from any MV of a plurality of adjacent blocks.
  • the derivation method of the prediction MV derived from the MVs of the peripheral blocks is determined by the moving picture coding standard, and will not be described in detail here (see, for example, H.264 and VP8).
  • the partition size of the adjacent block is different from the partition size of the current block (for example, when the partition size of the current block is 8 pixels ⁇ 8 pixels and the partition size of the adjacent block is 4 pixels ⁇ 4 pixels), it is adjacent It may be considered that the block is composed of two blocks each having a partition size of 4 pixels ⁇ 4 pixels.
  • the partition size of the adjacent block is 8 pixels ⁇ 8 pixels and the partition size of the adjacent block is 4 pixels ⁇ 4 pixels
  • the block is composed of two blocks each having a partition size of 4 pixels ⁇ 4 pixels.
  • replacement with a certain value (for example, 0) or not used as a candidate prediction MV may be determined.
  • replacement with a certain value (for example, 0) or not used as a candidate prediction MV may be defined.
  • the motion vector generation unit 140 generates the motion vector of the decoding target block using the motion vector of the adjacent block specified by the flag related to the motion vector received from the decoding unit 110.
  • a difference value from the predicted MV is required in addition to the flag related to the motion vector (in the case of FIG. 2D)
  • the decoded motion vector difference value is received from the decoding unit 110, and the predicted MV and the difference value are added together. To generate a motion vector.
  • the frame memory transfer control unit 150 for each motion compensation target block of the partition size that is the integration result in the block integration unit 130, the reference image area indicated by the generated motion vector and the pixels necessary for motion compensation (when the predicted image is generated). Data including necessary pixels is transferred from the buffer 160 to the local reference memory 170.
  • the motion compensation unit 180 obtains a predicted image for each motion compensation target block from the data stored in the local reference memory 170, and outputs the predicted image to the adder 190.
  • the adder 190 adds the residual image output from the decoding unit 110 and the predicted image acquired from the motion compensation unit 180, and outputs the result to the buffer 160. Thereafter, the decoded image data is output from the buffer 160 to a display unit (not shown).
  • the residual image output from the decoding unit 110 is obtained by inversely quantizing the frequency component coefficient data (for example, DCT coefficients) decoded by the decoding unit 110, and further converting it into pixel data (for example, inverse conversion or IDCT). : Inverted Discrete Cosine Transform).
  • a predicted image can be calculated by using intra prediction.
  • the buffer 160 may be configured with an external memory or may be configured with a built-in memory.
  • the motion vector comparison unit 120 uses a flag related to the motion vector output from the decoding unit 110 (details are as described above with reference to FIGS. 2A to 2D, for example) and a flag related to the motion vectors of a plurality of adjacent blocks. The motion vectors are compared. Note that a flag related to the motion vector of the adjacent block may be held in the motion vector comparison unit 120 or may be held in the motion vector generation unit 140.
  • the motion vector comparison unit 120 compares motion vectors based on flags related to motion vectors of a plurality of adjacent blocks. When the same motion vector is obtained between adjacent blocks, the motion vector comparison unit 120 integrates a plurality of blocks having the same motion vector as motion compensation target blocks having a new partition size for performing motion compensation processing. .
  • the adjacent block on the upper side for example, the partition size 4 ⁇ 4 and the flag related to the motion vector is “Above”
  • the adjacent block on the upper side for example, the partition size 4 ⁇ 4
  • the current block have the same motion vector. It is integrated as a motion compensation target block having a partition size of 4 ⁇ 8.
  • the frame memory transfer control unit 150 acquires a reference image corresponding to the motion compensation target block having the new integrated partition size.
  • the motion compensation unit 180 performs motion compensation processing on the motion compensation target block using the acquired reference image, and generates a predicted image.
  • FIG. 3A and 3B are diagrams showing an example of block integration according to the embodiment of the present invention.
  • FIG. 3A is a diagram illustrating an example in which the partition size of a plurality of blocks included in one macroblock is 4 ⁇ 4.
  • FIG. 3A shows the contents of flags relating to the motion vector of each block.
  • the flag of the blocks 200, 206, 208, and 215 is “New (indicating that another MV exists as shown in FIG. 2D)”.
  • the flag of the blocks 201, 203, 207, 210, and 214 is “Left (shows the same MV as the adjacent block on the left side as shown in FIG. 2A)”.
  • the flags of the blocks 202 and 209 indicate “Zero (MV indicates 0 as in FIG. 2C)”.
  • the flags of the blocks 204, 205, 211, 212, and 213 are “Above (shows the same MV as the adjacent block on the upper side as shown in FIG. 2B)”.
  • the flags of the blocks 201 and 204 indicate that the block 200 and the MV are the same.
  • the flag of the block 205 indicates that the block 201 and the MV are the same. That is, it can be seen from the flags relating to the respective motion vectors that these four blocks 200, 201, 204, and 205 have the same MV. That is, the four blocks 200, 201, 204, and 205 included in the upper left 8 ⁇ 8 partition of FIG. 3A can be integrated as a motion compensation target block 301 of 8 ⁇ 8 partition, as shown in FIG. 3B.
  • the four blocks 202, 203, 206, and 207 included in the upper right 8 ⁇ 8 partition in FIG. 3A are integrated as two motion compensation target blocks 302 and 303 in the 8 ⁇ 4 partition, as shown in FIG. 3B. can do.
  • the four blocks 208, 209, 212, and 213 included in the lower left 8 ⁇ 8 partition of FIG. 3A are integrated as two motion compensation target blocks 304 and 305 of the 4 ⁇ 8 partition, as shown in FIG. 3B. be able to.
  • the above is based on flags relating to motion vectors of a plurality of blocks included in an 8 ⁇ 8 partition, which is one of motion compensation processing units, and it is determined whether or not a plurality of adjacent blocks can be integrated.
  • the partition size to be compared there is no limitation on the partition size to be compared.
  • the flags may be compared in units of 8 ⁇ 4 partitions, or the flags may be compared in units of 4 ⁇ 8 partitions.
  • the flags may be compared in a plurality of adjacent blocks within the macroblock and across the macroblock boundary. For example, since the four 4 ⁇ 4 partition blocks 209, 210, 213, and 214 in FIG. 3A have the same motion vector, they can be integrated into the motion compensation target block of 8 ⁇ 8 partition.
  • motion compensation target blocks 305, 306, and 308 after integration in FIG. 3B have the same motion vector, they can be further integrated into a motion compensation target block of 8 ⁇ 8 partitions.
  • FIG. 3C, FIG. 3D, FIG. 3E, and FIG. 3F are diagrams showing another example of block integration according to the embodiment of the present invention.
  • FIG. 3C is a diagram illustrating an example in which the partition size of a plurality of blocks included in one macroblock is 4 ⁇ 4.
  • FIG. 3C shows the contents of the flags related to the motion vector of each block.
  • the flags of the blocks 220, 221, 222, 223, 225, 226, 227, 228, 229, 230, 231, 233, 234, and 235 are “Left”.
  • the flag of the blocks 224 and 232 is “Above”.
  • the four blocks 220, 221, 224, and 225 included in the upper left 8 ⁇ 8 partition have the same MV, respectively. You can see from the flag. That is, the four blocks 220, 221, 224, and 225 included in the upper left 8 ⁇ 8 partition of FIG. 3C can be integrated as a motion compensation target block 321 of the 8 ⁇ 8 partition, as illustrated in FIG. 3D.
  • the four blocks 222, 223, 226, 227 included in the upper right 8 ⁇ 8 partition of FIG. 3C are integrated as two motion compensation target blocks 322, 323 of the 8 ⁇ 4 partition, as shown in FIG. 3D.
  • the flag relating to motion compensation of each of the motion compensation target blocks 322 and 323 is “Left”.
  • the motion compensation target blocks 322 and 323 there is a motion compensation target block 321 after the integration of 8 ⁇ 8 partitions. That is, the motion vectors of the two motion compensation target blocks 322 and 323 in the 8 ⁇ 4 partition are equal to the motion vector of the motion compensation target block 321 in FIG. 3D as a result. Therefore, the two motion compensation target blocks 322 and 323 in FIG. 3D can be further integrated into a motion compensation target block 332 of 8 ⁇ 8 partitions, as shown in FIG. 3E.
  • the four blocks 228, 229, 232, and 233 included in the lower left 8 ⁇ 8 partition of FIG. 3C can be integrated as a motion compensation target block 324 of the 8 ⁇ 8 partition, as shown in FIG. 3D.
  • the four blocks 230, 231, 234, and 235 included in the lower right 8 ⁇ 8 partition of FIG. 3C are integrated as two motion compensation target blocks 325 and 326 of the 8 ⁇ 4 partition as shown in FIG. 3D.
  • the flag relating to motion compensation of each of the motion compensation target blocks 325 and 326 is “Left”.
  • the motion vectors of the two motion compensation target blocks 325 and 326 of the 8 ⁇ 4 partition become equal to the motion vector of the motion compensation target block 324 in FIG. 3D as a result. Therefore, the two motion compensation target blocks 325 and 326 in FIG. 3D can be further integrated into a motion compensation target block 334 of 8 ⁇ 8 partitions, as shown in FIG. 3E.
  • the motion compensation target block 332 after integration shown in FIG. 3E is an 8 ⁇ 8 partition, and the flag related to the motion vector is “Left”.
  • the motion compensation target block 331 after the integration of 8 ⁇ 8 partitions there is a motion compensation target block 331 after the integration of 8 ⁇ 8 partitions. That is, the motion vectors of the two motion compensation target blocks 331 and 332 of the 8 ⁇ 8 partition are equal. Therefore, the two motion compensation target blocks 331 and 332 in FIG. 3E can be further integrated into a motion compensation target block 341 of 16 ⁇ 8 partitions, as shown in FIG. 3F.
  • the motion compensation target block 334 after integration shown in FIG. 3E is an 8 ⁇ 8 partition, and the flag related to the motion vector is “Left”.
  • the motion compensation target block 334 On the left side of the motion compensation target block 334, there is a motion compensation target block 333 after the integration of 8 ⁇ 8 partitions. That is, the motion vectors of the two motion compensation target blocks 333 and 334 of the 8 ⁇ 8 partition are equal. Therefore, the two motion compensation target blocks 333 and 334 in FIG. 3E can be further integrated into a motion compensation target block 342 of 16 ⁇ 8 partitions, as shown in FIG. 3F.
  • a recursive integration process is performed to determine whether the motion compensation target block can be further integrated.
  • the flag related to the motion vector of the motion compensation target block is compared for each 8 ⁇ 8 partition.
  • the flag related to the motion vector of the motion compensation target block in the 16 ⁇ 16 partition may be compared. Absent.
  • a plurality of blocks having the same motion vector are integrated into a motion compensation target block having a larger partition size, and motion compensation processing can be performed for each motion compensation target block.
  • the memory transfer size at the time of acquiring the reference image from the buffer 160 is a reference image of 9 pixels ⁇ 9 pixels when a 6-tap filter is used for motion compensation of a block having a partition size of 4 ⁇ 4. I need data.
  • a 6-tap filter when a 6-tap filter is used for motion compensation of a block having a partition size of 16 ⁇ 16, reference image data of 21 pixels ⁇ 21 pixels is necessary.
  • the reference image data necessary for generating the prediction image of the luminance component is 21 pixels ⁇ 21 pixels for one motion compensation target block.
  • the partition size of the motion compensation target block is 4 ⁇ 4, as shown in FIG. 10A, it is necessary to read out reference image data of 9 pixels ⁇ 9 pixels for one motion compensation target block.
  • the four 4 ⁇ 4 blocks 200, 201, 204, and 205 included in the upper left 8 ⁇ 8 partition of FIG. 3A described in FIG. 3A and FIG. 3B are motion compensation targets of the 8 ⁇ 8 partition shown in FIG. 3B.
  • the read amount of the reference image data when integrated as the block 301 will be described.
  • the partition size of the motion compensation target block before integration is 4 ⁇ 4, it is necessary to read out 9 ⁇ 9 reference image data for the partition size 4 ⁇ 4 of one motion compensation target block.
  • the partition size of the motion compensation target block after integration is 8 ⁇ 8
  • the memory transfer size of the motion compensation target block with the partition size of 8 ⁇ 8 after the integration is the same as that when the partition size of the original motion compensation target block is 8 ⁇ 8.
  • access to the buffer 160 for example, an external memory such as SDR-SDRAM, DDR-SDRAM, DDR2-SDRAM, or DDR3-SDRAM
  • the order for example, address to SDRAM, control command and control signal
  • data transfer order are the same.
  • the read amount and access time of the reference image data of the luminance component include the bus width of the bus connected to the external memory, the amount of data accessed once, and the AC characteristics of the external memory (for example, the CAS latency and wait cycle of SDRAM) ), Etc., may increase. Further, during the reading of the reference data of the luminance component from the buffer 160, other access (for example, reading of the reference data of the color difference component corresponding to the motion compensation target block and image data for outputting the image to the display unit) There is a possibility of interruption due to reading or access from the CPU.
  • the processing amount at the time of motion compensation As shown in FIGS. 12A and 12B, assuming that the processing amount at the time of motion compensation is equivalent to the number of output pixels including intermediate pixels, the luminance component of one macroblock
  • 4 [pixels] ⁇ 8 [pixels] 32 times ( ⁇ in FIG. 12B)
  • (52 + 32) ⁇ 8 [number of partitions] 672 [times]. That is, in the case of 4 ⁇ 8 partitions, the number of filters is reduced compared to the case of 4 ⁇ 4 partitions.
  • the motion compensation target block is a 16 ⁇ 16 partition
  • the partition size of the motion compensation target block increases, the number of times of filtering (processing amount) can be reduced. Therefore, the number of pixels for reading reference image data from the buffer 160 can be reduced, and motion compensation processing can be realized at high speed and with low power consumption.
  • FIG. 4 is a flowchart of predictive image generation according to Embodiment 1 of the present invention.
  • the decoding unit 110 acquires a flag related to a motion vector from the moving image encoded stream, and outputs the flag to the motion vector comparison unit 120 (step S401).
  • the motion vector comparison unit 120 uses the flags related to the input motion vectors and the flags related to the motion vectors of the adjacent blocks already acquired, so that the motion vectors of the adjacent blocks are the same. It is determined whether or not there is, and the result is output to the block integration unit 130 (step S402).
  • step S403 when it is determined that the blocks can be integrated (that is, the motion vectors of the plurality of blocks are the same in step S402) (Yes in step S403), the block integration unit 130 sets the plurality of blocks having the same motion vector to 1 It is changed so as to become a motion compensation target block of one partition size (step S404).
  • the motion vector generation unit 140 calculates a motion vector and outputs the motion vector to the frame memory transfer control unit 150.
  • the motion vector generation unit 140 may calculate a motion vector for each motion compensation target block. More specifically, it is sufficient to calculate a motion vector of one block among a plurality of blocks included in the motion compensation target block.
  • the frame memory transfer control unit 150 acquires the reference image area indicated by the motion vector, that is, the reference image data necessary for the motion compensation processing of the motion compensation target block, from the buffer 160 and transfers it to the local reference memory 170 (step S405).
  • the motion compensation unit 180 uses the reference image data acquired from the local reference memory 170 to perform motion compensation processing for each motion compensation target block, and outputs the generated predicted image to the adder 190 (step S406).
  • step S403 when a plurality of adjacent blocks cannot be integrated, the reference image acquisition and the motion compensation process are performed for each motion compensation target block of the original partition size without changing the partition size (step S405). , S406).
  • the flowchart in FIG. 4 can be integrated for each 8 ⁇ 8 partition as a comparison target block for determining whether or not integration is possible based on flags relating to motion vectors of a plurality of blocks included in this partition. It may be determined whether or not it is every other partition size (for example, 16 ⁇ 16, 16 ⁇ 8, 8 ⁇ 16, 8 ⁇ 4, 4 ⁇ 8). Naturally, if the partition size of the block is larger than the comparison target block size for determining whether or not integration is possible, the reference image of the reference image is changed for each motion compensation target block of the original partition size without changing the partition size. Acquisition and motion compensation processing may be performed.
  • FIG. 5A, FIG. 5B, and FIG. 5C show an example in which integration is possible based on flags relating to motion vectors of four blocks included in an 8 ⁇ 8 partition.
  • FIG. 5A is a diagram showing the positional relationship of four blocks having a partition size of 4 ⁇ 4.
  • the upper left block is block 0, the upper right block is block 1, the lower left block is block 2, and the lower right block is block 3.
  • 5B and 5C are diagrams showing examples of combinations of flags that can integrate four blocks 0, 1, 2, and 3 included in the 8 ⁇ 8 partition shown in FIG. 5A.
  • 5B and 5C show the partition sizes after integration in each case.
  • the case 43 in FIG. 5C shows the case of the four blocks 200, 201, 204, and 205 in the upper left of FIG. 3A. In this case, it can be integrated into the motion compensation target block of the 8 ⁇ 8 partition.
  • the comparison process is simplified by using the comparison result of FIG. 5B or 5C. Is possible. Further, by using it as a comparison circuit, it is possible to realize a moving picture decoding apparatus and a moving picture decoding circuit with a relatively simple circuit.
  • one motion compensation target block of 8 ⁇ 4 partition and two motion compensation target blocks of 4 ⁇ 4 partition are integrated. Sometimes it is done. It is also possible to compare the flags of a plurality of blocks included in a 16 ⁇ 16 macroblock. In addition, it is also possible to compare flags of a plurality of blocks included in a partition having a size of 16 ⁇ 8 or 8 ⁇ 16.
  • FIGS. 6A to 6C show an example related to block integration according to Embodiment 1 of the present invention.
  • FIG. 6A is a diagram showing a case where the partition size of each block included in one macroblock is 4 ⁇ 4, and a case where the partition size of each block included in an adjacent macroblock is 8 ⁇ 8. .
  • the contents of flags relating to motion vectors are described for each block in a macro block having a block size of 4 ⁇ 4.
  • the four blocks 420, 421, 422, and 423 of the left 8 ⁇ 8 partition are, for example, motion compensation target blocks that have already been integrated by the block integration unit 130.
  • the flag of the block 406 is “New (indicating that another MV exists as shown in FIG. 2D)” and the blocks 400, 401, 403, 404, 405, 407, 408, 409, 410
  • the flags of 411, 412, 413, and 415 are “Left (shows the same MV as the left adjacent block as shown in FIG. 2A)”, and the flag of the block 402 is “Zero (MV is 0 as shown in FIG. 2C).
  • the flag of the block 414 indicates “Above (shows the same MV as the upper adjacent block as shown in FIG. 2B)”.
  • the blocks 400 and 401 have the same MV, and the blocks 404 and 405 have the same MV. (Left) in this case. That is, the four blocks 400, 401, 404, and 405 of the 4 ⁇ 4 partition in FIG. 6A can be integrated as two motion compensation target blocks 501 and 502 of the 8 ⁇ 4 partition as shown in FIG. 6B.
  • FIG. 6A four blocks 402, 403, 406, and 407 included in the upper right 8 ⁇ 8 partition in FIG. 6A are integrated as two motion compensation target blocks 503 and 504 in the 8 ⁇ 4 partition as shown in FIG. 6B. can do.
  • the four blocks 408, 409, 412, and 413 included in the lower left 8 ⁇ 8 partition in FIG. 6A are integrated as two motion compensation target blocks 505 and 506 in the 8 ⁇ 4 partition, as shown in FIG. 6B. be able to.
  • the four blocks 410, 411, 414, and 415 included in the lower right 8 ⁇ 8 partition of FIG. 6A are integrated as one motion compensation target block 507 of the 8 ⁇ 8 partition as shown in FIG. 6B. Can do.
  • the blocks included in the upper left 8 ⁇ 8 partition in FIG. 6A are integrated into two motion compensation target blocks 501 and 502 of the 8 ⁇ 4 partition, and each motion compensation target block 501 and 502 is integrated.
  • the flag relating to the motion vector is “left”.
  • the motion vectors of the two motion compensation target blocks 501 and 502 of the 8 ⁇ 4 partition are equal to the motion vector of the block 421 in FIG. 6A as a result. Therefore, the two motion compensation target blocks 501 and 502 in FIG. 6B can be further integrated into a motion compensation target block 601 of 8 ⁇ 8 partitions, as shown in FIG. 6C.
  • the motion vectors of the two blocks to be compared are adjacent to the two blocks and have a larger partition size than the two blocks.
  • the two blocks can be integrated into one motion compensation target block (the motion compensation target block 601 in the above example).
  • the flags related to the motion vectors of the two motion compensation target blocks 505 and 506 included in the lower left 8 ⁇ 8 partition in FIG. 6B are “left”.
  • the motion vectors of the two motion compensation target blocks 505 and 506 in the 8 ⁇ 4 partition are equal to the motion vector of the block 423 in FIG. 6A as a result. Therefore, the two motion compensation target blocks 505 and 506 in FIG. 6B can be further integrated into a motion compensation target block 604 of 8 ⁇ 8 partitions, as shown in FIG. 6C.
  • the motion compensation target block 605 after integration shown in FIG. 6C is an 8 ⁇ 8 partition, and the flag related to the motion vector is “Left”.
  • the motion compensation target block 605 after the integration shown in FIG. 6C is an 8 ⁇ 8 partition, and the flag related to the motion vector is “Left”.
  • the partition size of each block included in the adjacent macroblock is 8 ⁇ 8.
  • the motion compensation target block size in the adjacent macroblock is 16 ⁇ 16, 8 ⁇ 16, or 16 Even in the case of ⁇ 8 and an intra macroblock (for example, when the motion vector can be handled as 0), the motion compensation target block size after the integration is the same result.
  • FIG. 7A, FIG. 7B, and FIG. 7C based on the flags related to the motion vectors of the four blocks included in the 8 ⁇ 8 partition, further considering the adjacent block in the upper direction and the adjacent block in the left direction. An example when motion vectors are compared is shown.
  • FIG. 7A is a diagram showing a positional relationship between four 4 ⁇ 4 partition blocks adjacent to each other.
  • the upper left block is block 0, the upper right block is block 1, the lower left block is block 2, and the lower right block is block 3.
  • FIG. 7A shows the positions of blocks adjacent in the upward direction (described as “upper / adjacent”) and blocks adjacent in the left direction (described as “left / adjacent”).
  • 7B and 7C can be integrated with the four blocks 0, 1, 2, and 3 included in the 8 ⁇ 8 partition shown in FIG. 7A and the blocks of the 8 ⁇ 8 partition adjacent in the upward and left directions. It is the figure which showed an example of the combination of a flag. 7B and 7C show the partition sizes after integration in each case.
  • Case 1 in FIG. 7B shows the case of blocks 400, 401, 404, and 405 included in the upper left 8 ⁇ 8 partition in FIG. 6A.
  • the block is integrated into the motion compensation target block of 8 ⁇ 8 partition. Show what is possible.
  • the comparison process is simplified by using the comparison result of FIG. 7B or FIG. 7C. Is possible. Further, by using it as a comparison circuit, it is possible to realize a moving picture decoding apparatus and a moving picture decoding circuit with a relatively simple circuit.
  • a single motion compensation target block of 8 ⁇ 4 partition and two motion compensation target blocks of 4 ⁇ 4 partition are integrated.
  • the moving picture decoding apparatus does not use a flag relating to a motion vector, but first calculates the motion vector of each block first, and compares the motion vectors in a plurality of adjacent blocks. And different. A detailed description of points common to the first embodiment will be omitted, and differences will be mainly described.
  • FIG. 8 is a flowchart of predictive image generation according to Embodiment 2 of the present invention.
  • the decoding unit 110 acquires a difference value between a motion vector or a predicted motion vector from the moving image encoded stream, and outputs the difference value to the motion vector generation unit 140.
  • the motion vector generation unit 140 calculates a motion vector from the received motion vector or the motion vector difference value and the predicted motion vector, and outputs the motion vector to the motion vector comparison unit 120 (step S801).
  • the motion vector comparison unit 120 compares the motion vector input from the motion vector generation unit 140 with the motion vectors of a plurality of adjacent blocks, and whether or not the motion vectors of the plurality of adjacent blocks are the same. And the determination result is output to the block integration unit 130 (step S802).
  • the block integration unit 130 includes a plurality of blocks that have the same motion vector. Are changed to become one motion compensation target block having a large partition size, and the result is output to the motion vector generation unit 140 (step S804).
  • the motion vector generation unit 140 calculates a motion vector of the motion compensation target block, and outputs the calculated motion vector to the frame memory transfer control unit 150. Note that the motion vector calculated in step S801 may be used.
  • the frame memory transfer control unit 150 acquires, from the buffer 160, reference image data necessary for motion compensation processing of the reference image region indicated by the motion vector, that is, the motion compensation target block, based on the result of the block integration unit 130. Then, it is transferred to the local reference memory 170 (step S805).
  • the motion compensation unit 180 performs motion compensation processing of the motion compensation target block using the reference image data acquired from the local reference memory 170, and outputs the generated predicted image to the adder 190 (step S806).
  • step S803 if a plurality of adjacent blocks cannot be integrated, the reference image acquisition and the motion compensation process are performed for each motion compensation target block of the original partition size without changing the partition size (step S805). , S806).
  • a comparison target block for determining whether or not integration is possible for each 8 ⁇ 8 partition, it is possible to integrate based on motion vectors of a plurality of blocks included in this partition. Or may be determined for every other partition size (for example, 16 ⁇ 16, 16 ⁇ 8, 8 ⁇ 16, 8 ⁇ 4, 4 ⁇ 8).
  • the partition size of the block is larger than the comparison target block size for determining whether or not integration is possible, the reference image of the reference image is changed for each motion compensation target block of the original partition size without changing the partition size. Acquisition and motion compensation processing may be performed.
  • the embodiment may be realized as a single-chip LSI as well as this, or may be configured as an individual LSI. Further, if integrated circuit technology comes out to replace LSI's as a result of the advancement of semiconductor technology or a derivative other technology, it is naturally also possible to carry out function block integration using this technology. Biotechnology can be applied. Moreover, you may implement
  • the moving picture decoding apparatus is useful for a moving picture decoding apparatus that decodes a moving picture encoded stream that has been encoded using motion prediction, and a playback method thereof.
  • the present invention can also be applied to applications such as DVD recorders, DVD players, Blu-ray disc recorders, Blu-ray disc players, digital TVs, and portable information terminals such as smartphones.
  • Video decoding device 110 Decoding part 120 Motion vector comparison part 130 Block integration part 140 Motion vector generation part 150 Frame memory transfer control part 160 Buffer 170 Local reference memory 180 Motion compensation part 190 Adder 0, 1, 2, 3, 200 , 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229 , 230, 231, 232, 233, 234, 235, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 420, 421, 422 , 423 Block 301 302,303,304,305,306,307,308,309,321,322,323,324,325,326,331,332,333,334,341,342,501,502,503,504,505

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

動画像復号装置は、動画像符号化ストリームから動きベクトルに関するフラグを抽出する復号部と、隣接するブロックの動きベクトルが同じか否かを判断する動きベクトル比較部と、動きベクトルが同じと判断された複数のブロックを1つの動き補償対象ブロックに統合するブロック統合部と、動きベクトルを生成する動きベクトル生成部と、動き補償対象ブロック毎の参照画像をメモリに格納された参照画像データから取得する参照画像取得部と、動き補償対象ブロック毎に予測画像を生成する動き補償部と、動き補償部で生成された予測画像を利用して画像を復元する加算器とを備える。動き補償処理を高速かつ低消費電力で実現できる動画像復号装置を提供する。

Description

動画像復号装置、動画像復号方法、及び集積回路
 本発明は、動き予測を用いて符号化された動画像符号化ストリームを復号する動画像復号装置及び動画像復号方法に関するものである。
 近年、マルチメディア技術の発展に伴い、動画、静止画、音声やテキストなどあらゆる情報がデジタル信号として、配信されるようになってきた。特に、動画像に関しては、ITU-T(International Telecommunication Union Telecommunication Standardization Sector)によって標準化されたH.261、H.263やISO/IEC(International Organization for Standardization / International Electrotechnical Commission)によって標準化されたMPEG(Motion Picture Experts Group)-1、MPEG-2、MPEG-4などの動画符号化技術が標準規格として用いられている。
 また最近では、スマートフォンに代表される携帯情報端末やネットワーク配信など、より広範囲に適用可能で、より圧縮率の高い符号化方式として、ITU-TとISOが共同で標準化を行ったH.264(MPEG-4 AVC)や、標準規格では無く、メーカー独自の動画符号化規格である、Google社のVP8などが注目されている。
 一般に動画像の符号化では、時間方向および空間方向の冗長性を削減することによって情報量の圧縮を行う。
 そこで、時間的な冗長性の削減を目的とする画面間予測符号化では、符号化対象画像の前方または後方の画像を参照してブロック単位で動きの検出を行うことで動きベクトルの算出を行い、さらに動きベクトルの指すブロックから予測画像の作成を行い、得られた予測画像と符号化対象画像との差分値を、動きベクトルと共に符号化して動画像符号化ストリームを生成する。
 そして、このような手法により、符号化された動画像符号化ストリームの復号の際には、過去に復号した画像である参照画像データを示す動きベクトルの復号と、動きベクトルによって算出される予測画像を生成する動き補償処理と、動き補償処理で生成された予測画像と動画像符号化ストリームから与えられる差分値とを加算することで元の画像を復元する復元処理とを行う。
 通常、動き補償処理は、16画素×16画素からなるマクロブロック単位で行われる。すなわち、マクロブロック毎に1つあるいは複数の動きベクトルが与えられるので、復号装置は、それらの動きベクトルの指し示す画像領域のデータを参照画像データ(例えば、フレームメモリ)から読み出し、動画像符号化ストリームから与えられる原画像との差分値と読み出したデータとを加算することにより、画像を復元することができる。
 また、動きベクトル(以後、MVと呼ぶ。)は、通常そのまま符号化されず、以下の式1に示されるように、予測動きベクトル(以後、PMVまたは予測MVと呼ぶ。)とその差分値(以後、MVDまたはMV差分と呼ぶ。)とで構成され、PMVとMVDとが別々に符号化される。
 MV=PMV+MVD (式1)
 H.264(非特許文献1を参照)におけるPMVは、動き補償対象のブロックサイズ(マクロブロックタイプとも呼ぶ)により、どの隣接ブロックのMVを使用するか、または、その導出方法が決められている。そして、MVDは、そのマクロブロックタイプに応じて動画像符号化ストリームに符号化されることが決められている(例えば、H.264では、インターマクロブロックであり、且つスキップマクロブロックで無い場合にMVDが符号化されている)。
 また、VP8(非特許文献2を参照)におけるPMVは、どの隣接ブロックのMVを使うか、MV値が0であるか、または、MVDが動画像符号化ストリームに含まれるかを示すフラグが動画像符号化ストリームに符号化されており、MVDは、そのPMVを示すフラグの値に応じて、動画像符号化ストリームに符号化されている。
 なお、当然、MVがそのまま動画像符号化ストリームに符号化されていてもよい。このように、MVをどのように動画像符号化ストリームに含めるかは、各動画像符号化規格に規定される。
 ところで、上記の復号処理を実行する復号回路は、通常、復号した画像のデータを一旦外部のメモリに格納する構成とされている。このため、動き予測を利用した画像の復号処理のためには、外部のメモリから参照画像のデータを読み出すことが必要となる。
 ここで、例えばMPEG-2では、マクロブロックを2つの領域に分割し、分割した領域ごとに動き予測を行うことが可能となっている(以後、動き予測を行う対象となる領域のことをブロック、または、動き補償対象ブロックとも呼ぶ)。また、H.264及びVP8ではさらに、マクロブロックを4画素×4画素のサイズのブロックに16分割することが可能となっている。このようにマクロブロックを複数のブロックに分割した場合、従来は、動きベクトルが指し示す参照画像データを、分割したブロックに対応する領域ごとに外部のメモリから読み出していた。その結果、分割数が増加すると、メモリにアクセスする回数が増加する。また、メモリと復号回路との間のデータトラフィックが増大する、つまり、メモリバンド幅が増大するという問題があった。
 さらに、通常、動きベクトルは、参照画像位置、つまり、参照画像の整数位置を指し示すのみならず、小数位置をも指し示すことが可能である(例えば、1/2の位置や1/4の位置)。小数画素位置の予測画像を算出するためには、動きベクトルが指し示す参照画像とその周辺画素とを用いて、フィルタ処理を行う必要がある。
 例えば、H.264やVP8の動き補償処理では、6タップフィルタを使用する場合がある(非特許文献1、非特許文献2を参照)。ここで、図9は、動き補償処理のブロックサイズ(以後、パーティションサイズと呼ぶ。)が横4画素×縦4画素(以後、4×4と呼ぶ。)の場合に、6タップフィルタで使用される参照画像データを示す図である。
 図中の×印は、動き補償処理後に算出される予測画素を示し、○印は、6タップフィルタを使用した動き補償処理に必要な画素を示す。つまり、パーティションサイズが4×4のブロック(図10Aの実線)の動き補償には、9画素×9画素(図10Aの破線)の参照画像データが必要である。同様に、パーティションサイズが16×16のブロック(図10Bの実線)の場合、21画素×21画素(図10Bの破線)の参照画像データが必要である。さらに、パーティションサイズが8×8のブロックの場合、13画素×13画素の参照画像データが必要である(図は省略)。
 従って、例えば、パーティションサイズが16×16のときに、輝度成分の予測画像を生成するために必要な参照画像データは、図10Bに示すように21画素×21画素の参照画像データとなる。この場合、1マクロブロックの輝度成分の予測画像(例えば、輝度成分1画素当り1バイトの場合)を生成するために必要な参照画像データの最大読み出し量は、一つの予測方向につき、21[画素]×21[画素]×1[ベクトル数]=441[バイト]となる。なお、参照画像データの読み出し量は、外部メモリと接続するバスのバス幅や1回のアクセスするデータ量などにより、さらに増加する可能性がある。また、参照画像データの読み出し量は、外部メモリと接続するバスのバス幅や1回のアクセスするデータ量や外部メモリのAC特性(例えば、SDRAMのCASレイテンシやウェートサイクル)などにより、増加する可能性がある。
 一方、パーティションサイズが4×4のときには、図10Aに示すように9画素×9画素の領域を読み出す必要がある。この場合に1マクロブロックの輝度成分の予測画像を生成するために必要な参照画像データの最大読み出し量は、一つの予測方向につき、9[画素]×9[画素]×16[ベクトル数]=1296[バイト]となり、パーティションサイズが16×16の場合と比較して、読み出し量が増大することがわかる。
 なお、上記の参照画像データの読み出し量が増大する課題に対して、1つのマクロブロックで必要な参照画像データを1つの2次元データ領域にまとめることで、参照画像データの読み出し量を削減しようとする動画像復号回路がある(例えば、特許文献1及び特許文献2を参照)。
 図11A及び図11Bに、従来技術による動き補償処理に必要な参照画像データの例を示す。図11Aは、1つのマクロブロックに含まれる8×8パーティションの4つのブロックと、その動きベクトルとを示す図である。図11Bは、図11Aの各ブロックが必要とする参照画像データを示す図であり、1つの画像領域にまとめた場合を破線1100で示す。つまり、複数の参照画像データを1つの画像領域にまとめることで、重複する画像データを外部のメモリ(フレームメモリ)から繰り返し取得しなくてもよいために、メモリバンド幅の削減が可能となる。
 図12A及び図12Bは、動き補償処理に使用する画素、中間画素、及び出力画素の例を示す図である。通常、動き補償処理で小数画素位置(例えば、X方向に1/2画素位置、Y方向に1/2画素位置)を求めるためには、水平方向に6タップフィルタを実施することによって水平方向の小数画素位置を求める水平フィルタと、水平フィルタで求めた画素を使って垂直方向に6タップフィルタを実施することによって垂直方向の小数画素位置を求める垂直フィルタとを組み合わせる。
 水平フィルタ及び垂直フィルタの順番、フィルタ係数、及び丸め処理は、各動画符号化規格によって異なる(例えば、非特許文献1、非特許文献2を参照)。図12Aは、パーティションサイズが4×4の場合の動き補償に必要な画素(○印)、水平フィルタ後の出力画素(◆印)、及び動き補償後の出力画素(×印)を示す図である。図12Bは、パーティションサイズが4×8の場合の動き補償に必要な画素(○印)、水平フィルタ後の出力画素(◆印)及び動き補償後の出力画素(×印)を示す図である。なお、この例では、水平フィルタ、垂直フィルタの順に実施されるものとする。
 この場合、1マクロブロックの輝度成分の予測画像(256バイト)を生成するために必要な6タップフィルタ処理の実施回数(処理量)は、4×4のパーティションサイズの場合、水平フィルタが、4[画素]×9[画素]=36回(図12Aの◆印)、垂直フィルタが、4[画素]×4[画素]=16回(図12Aの×印)である。すなわち、1マクロブロックでは、(36+16)×16[パーティション数]=832[回]必要である。
 一方、4×8のパーティションサイズの場合、水平フィルタが、4[画素]×13[画素]=52回(図12Bの◆印)、垂直フィルタが、4[画素]×8[画素]=32回(図12Bの×印)である。すなわち、1マクロブロックでは、(52+32)×8[パーティション数]=672[回]となり、4×4の場合よりもフィルタ実施回数は減少する。同様に、16×16のパーティションサイズの場合、水平フィルタが、16[画素]×21[画素]=336回、垂直フィルタが、16[画素]×16[画素]=256回となる。すなわち、(336+256)×1[パーティション数]=592[回]となり、更にフィルタ実施回数は減少する。
 つまり、パーティションサイズが小さくなると、フィルタ処理回数が増加するため、性能の劣化となる課題があった。
 なお、フィルタ処理を水平方向または垂直方向に一度に複数画素を出力可能な回路構成をとることで、処理性能を向上することは可能である。例えば、8画素分を同時に6タップフィルタ処理して出力することが可能な場合、4×4のパーティションサイズの場合(図12A)、水平フィルタを9回、垂直フィルタを4回実施すればよい。すなわち、1マクロブロックでは、(9+4)×16[パーティション数]=208[回]となる。4×8のパーティションサイズの場合(図12B)、水平フィルタを13回、垂直フィルタを4回実施すればよい。すなわち、1マクロブロックでは、(13+4)×8[パーティション数]=136[回]となる。
 つまり、この場合でもパーティションサイズが小さくなると、フィルタ処理回数が増加するため、性能の劣化となる課題がある。
特開2005-354673号公報 国際公開第2007/055013号
ITU-T(International Telecommunication Union Telecommunication Standardization Sector)勧告「H.264(03/10)」、2010年6月発行 VP8 Data Format and Decoding Guide
 上述した従来技術のように、1つのマクロブロックで必要な参照画像を1つの画像領域にまとめることで参照画像の読み出し量を削減することは可能である。しかしながら、パーティション毎に、動き補償処理、つまり、フィルタ処理を実施する必要があり、パーティションサイズが小さくなればなるほど、フィルタ処理量が増大し、処理性能の悪化を招いてしまう課題がある。処理性能の悪化は、復号処理の高速化を阻害する要因になる。また、高速化のために動作周波数を高めると、消費電力が増加してしまうことが問題である。
 本発明は、このような課題に鑑みてなされたものであり、動き予測を用いて符号化された符号化ストリームを復号する際に、フレームメモリからの参照画像データの読み出し画素数を削減し、動き補償処理を高速かつ低消費電力で実現できる動画像復号装置及びその方法を提供することを目的とする。
 本発明の一形態に係る動画像復号装置は、ブロック単位の動き予測を利用して符号化された動画像符号化ストリームを復号する。具体的には、動画像復号装置は、隣接するブロックと同じ動きベクトルを示す予測方向、動きベクトルが0であること、及び動きベクトルの差分情報が前記動画像符号化ストリームに符号化されていること、のいずれか1つを示す動きベクトルに関するフラグを抽出するために、前記動画像符号化ストリームを復号する復号手段と、前記復号手段で抽出された複数のブロックの前記動きベクトルに関するフラグを基に、隣接するブロックの動きベクトルが同じか否かを判断する動きベクトル比較手段と、前記動きベクトル比較手段で動きベクトルが同じと判断された複数のブロックを1つの動き補償対象ブロックに統合するブロック統合手段と、前記動きベクトルに関するフラグに基づいて、動きベクトルを生成する動きベクトル生成手段と、前記動きベクトル生成手段で生成された動きベクトルに基づいて、前記動き補償対象ブロック毎の参照画像を、過去に復号されてメモリに格納された参照画像データから取得する参照画像取得手段と、前記参照画像取得手段で取得された参照画像を用いて動き補償を行い、前記動き補償対象ブロック毎に予測画像を生成する動き補償手段と、前記動き補償手段で生成された予測画像を利用して画像を復元する復元手段とを備える。
 これによれば、動きベクトルに関するフラグを基に、隣接する複数のブロックが同じ動きベクトルとなる場合にはブロックサイズを統合し、統合後の動き補償対象ブロック毎に参照画像データを取得することができる。
 これらにより、フレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
 また、前記ブロック統合手段は、前記動きベクトル比較手段で動きベクトルが隣接するブロックと同じでないと判断されたブロックを個別の動き補償対象ブロックとするものであってもよい。
 これによれば、隣接する複数のブロックの動きベクトルが異なる場合においても、個別の動き補償対象ブロック毎に参照画像を取得することができる。
 これらにより、フレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
 また、前記動きベクトルに関するフラグの予測方向は、前記フラグが対応付けられたブロックに、上方向に隣接するブロックと動きベクトルが同じであること、または、左方向に隣接するブロックと動きベクトルが同じであることのうちのいずれかを示すものであってもよい。
 これによれば、動きベクトルの予測方向を示すフラグ、すなわち、上方向の隣接ブロック又は左方向の隣接ブロックと同じ動きベクトルをもつことを示すフラグだけを用いることで、隣接する複数のブロックが同じ動きベクトルを持つかどうかを容易に判断することが可能である。そして、同じ動きベクトルとなる場合には、ブロックサイズを統合したうえで、統合後のブロック毎に参照画像を取得することができる。
 これらにより、フレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
 また、前記動きベクトル比較手段で比較の対象となるブロック、及び前記ブロック統合手段で統合される前のブロックの大きさは、4画素×4画素または8画素×8画素であってもよい。
 これによれば、4画素×4画素または8画素×8画素のブロックの動きベクトルの予測方向に関するフラグを基に、隣接する複数のブロックが同じ動きベクトルとなるかを判断し、もし同じ動きベクトルであれば、同じ動きベクトルとなる隣接するブロックを統合し、統合後の動き補償対象ブロック毎に参照画像を取得することができる。
 これらにより、フレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
 また、前記動きベクトル比較手段で比較の対象となるブロックは、1つのマクロブロック内のブロックであってもよい。
 これによれば、マクロブロック内の複数のブロックの動きベクトルに関するフラグを基に、同じ動きベクトルとなるかを判断し、もし同じ動きベクトルであれば、同じ動きベクトルとなる隣接するブロックを統合し、統合後の動き補償対象ブロック毎に参照画像を取得することができる。
 これらにより、フレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
 また、前記動きベクトル比較手段は、前記複数のブロックそれぞれについて、当該ブロックに上方向に隣接するブロック、左方向に隣接するブロック、または、左上方向に隣接するブロックと動きベクトルが同じか否かを判断してもよい。
 これによれば、上方向の隣接ブロック、左方向の隣接ブロック、及び左上方向の隣接する複数のブロックの動きベクトルに関するフラグを基に、同じ動きベクトルとなる場合にはブロックサイズを統合したうえで、統合後のブロック毎に参照画像を取得することができる。
 これらにより、フレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
 また、前記動きベクトル比較手段は、比較対象となる2つの隣接するブロックそれぞれの前記動きベクトルに関するフラグが、当該2つのブロックに隣接するマクロブロックに含まれる動き補償対象ブロックと動きベクトルが同じであることを示す場合に、当該2つのブロックを1つの動き補償対象ブロックに統合してもよい。
 これによれば、隣接するマクロブロックの動き補償対象ブロックを動きベクトル比較手段で用いることで、隣接する複数のブロックが隣接マクロブロックの動きベクトルを参照し、同じ動きベクトルになる場合に、ブロックサイズを統合したうえで、統合後のブロック毎に参照画像を取得することができる。
 これらにより、フレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
 また、前記隣接するマクロブロックに含まれる前記動き補償対象ブロックのサイズは、16画素×16画素または8画素×8画素であってもよい。
 これによれば、隣接するマクロブロックの動き補償を行うブロックサイズが16画素×16画素または8画素×8を画素の場合に、隣接マクロブロックを動きベクトル比較手段で用いることで、隣接する複数のブロックが参照する隣接するマクロブロックの動き補償ブロックと同じ動きベクトルとなる場合には、ブロックサイズを統合したうえで、統合後のブロック毎に参照画像を取得することができる。
 これらにより、フレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
 また、前記動画像符号化ストリームは、VP8で符号化されていてもよい。
 これによれば、VP8の場合に、動きベクトルに関するフラグを動きベクトル比較手段で用いることで、同じ動きベクトルとなる場合にはブロックサイズを統合し、統合後のブロック毎に参照画像データを取得することができる。
 これらにより、フレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
 本発明の他の形態に係る動画像復号装置は、ブロック単位の動き予測を利用して符号化された動画像符号化ストリームを復号する。具体的には、動画像復号装置は、前記動画像符号化ストリームから動きベクトルの差分値を復号する復号手段と、前記動きベクトルの予測値である予測ベクトルを算出する予測ベクトル算出手段と、前記予測ベクトル算出手段で算出された前記予測ベクトルと、前記復号手段で復号された前記動きベクトルの差分値とを足し合わせることによって、動きベクトルを生成する動きベクトル生成手段と、前記動きベクトル生成手段で生成された前記動きベクトルと、隣接する複数のブロックの動きベクトルとを比較し、同じ動きベクトルとなるか否かを判断する動きベクトル比較手段と、前記動きベクトル比較手段で動きベクトルが同じと判断された複数のブロックを1つの動き補償対象ブロックに統合するブロック統合手段と、前記動きベクトル生成手段で生成された動きベクトルに基づいて、前記動き補償対象ブロック毎の参照画像を、過去に復号されてメモリに格納された参照画像データから取得する参照画像取得手段と、前記参照画像取得手段で取得された参照画像を用いて動き補償を行い、前記動き補償対象ブロック毎に予測画像を生成する動き補償手段と、前記動き補償手段で生成された予測画像を利用して画像を復元する復元手段とを備える。
 これによれば、隣接する複数の動き補償対象ブロックが同じ動きベクトルとなる場合にはブロックサイズを統合し、統合後の動き補償対象ブロック毎に参照画像データを取得することができる。
 これらにより、フレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
 本発明の一形態に係る動画像復号方法は、ブロック単位の動き予測を利用して符号化された動画像符号化ストリームを復号する方法である。具体的には、動画像復号方法は、隣接するブロックと同じ動きベクトルを示す予測方向、動きベクトルが0であること、及び動きベクトルの差分情報が前記動画像符号化ストリームに符号化されていること、のいずれか1つを示す動きベクトルに関するフラグを抽出するために、前記動画像符号化ストリームを復号する復号ステップと、前記復号ステップで抽出された複数のブロックの前記動きベクトルに関するフラグを基に、隣接するブロックの動きベクトルが同じか否かを判断する動きベクトル比較ステップと、前記動きベクトル比較ステップで動きベクトルが同じと判断された複数のブロックを1つの動き補償対象ブロックに統合するブロック統合ステップと、前記動きベクトルに関するフラグに基づいて、動きベクトルを生成する動きベクトル生成ステップと、前記動きベクトル生成ステップで生成された動きベクトルに基づいて、前記動き補償対象ブロック毎の参照画像を、過去に復号されてメモリに格納された参照画像データから取得する参照画像取得ステップと、前記参照画像取得ステップで取得された参照画像を用いて動き補償を行い、前記動き補償対象ブロック毎の予測画像を生成する動き補償ステップと、前記動き補償ステップで生成された予測画像を利用して画像を復元する復元ステップとを含む。
 これによれば、動きベクトルの予測方向を示すフラグを基に、同じ動きベクトルとなる場合にはブロックサイズを統合し、統合後のブロック毎に参照画像データを取得することができる。
 これらによりフレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
 本発明の一形態に係る集積回路は、ブロック単位の動き予測を利用して符号化された動画像符号化ストリームを復号する。具体的には、集積回路は、隣接するブロックと同じ動きベクトルを示す予測方向、動きベクトルが0であること、及び動きベクトルの差分情報が前記動画像符号化ストリームに符号化されていること、のいずれか1つを示す動きベクトルに関するフラグを抽出するために、前記動画像符号化ストリームを復号する復号部と、前記復号部で抽出された複数のブロックの前記動きベクトルに関するフラグを基に、隣接するブロックの動きベクトルが同じか否かを判断する動きベクトル比較部と、前記動きベクトル比較部で動きベクトルが同じと判断された複数のブロックを1つの動き補償対象ブロックに統合するブロック統合部と、前記動きベクトルに関するフラグに基づいて、動きベクトルを生成する動きベクトル生成部と、前記動きベクトル生成部で生成された動きベクトルに基づいて、前記動き補償対象ブロック毎の参照画像を、過去に復号されてメモリに格納された参照画像データから取得する参照画像取得部と、前記参照画像取得部で取得された参照画像を用いて動き補償を行い、前記動き補償対象ブロック毎に予測画像を生成する動き補償部と、前記動き補償部で生成された予測画像を利用して画像を復元する復元部とを備える。
 これによれば、動きベクトルの予測方向を示すフラグを基に、同じ動きベクトルとなる場合にはブロックサイズを統合し、統合後のブロック毎に参照画像データを取得することができる。
 これらによりフレームメモリからの参照画像データの読み出し画素数を削減し、かつ、動き補償処理を行うブロックサイズを大きく統合しているため、動き補償処理の高速化を図り、低消費電力で実現することができる。
 以上のように、本発明にかかる動画像復号装置によれば、動き補償処理の処理単位であるブロックを統合することで、メモリバンド幅を削減できるとともに、動き補償処理時の処理量の削減を行うことができる。その結果、デコード性能の向上及びデコード処理の高速化が実現でき、処理量の削減による低消費電力化を行うことができる。
図1は、実施の形態1に係る動画像復号装置の構成を示すブロック図である。 図2Aは、動きベクトルに関するフラグを説明する図であって、動きベクトルが左側に隣接するブロックと同じであることを示す図である。 図2Bは、動きベクトルに関するフラグを説明する図であって、動きベクトルが上側に隣接するブロックと同じであることを示す図である。 図2Cは、動きベクトルに関するフラグを説明する図であって、動きベクトルが0であることを示す図である。 図2Dは、動きベクトルに関するフラグを説明する図であって、動きベクトルデータが動画像符号化ストリームに含まれていることを示す図である。 図3Aは、マクロブロックに含まれる各ブロックの動きベクトルに関するフラグの例を示す図である。 図3Bは、図3Aの各ブロックを統合した結果を示す図である。 図3Cは、マクロブロックに含まれる各ブロックの動きベクトルに関するフラグの例を示す図である。 図3Dは、図3Cの各ブロックを統合した結果を示す図である。 図3Eは、図3Dの各ブロックをさらに統合した結果を示す図である。 図3Fは、図3Eの各ブロックをさらに統合した結果を示す図である。 図4は、実施の形態1に係る予測画像生成のフローチャートである。 図5Aは、8×8パーティションに含まれる複数のブロックの位置関係を示す図である。 図5Bは、図5Aの各ブロックの統合可能なケースの一覧である。 図5Cは、図5Aの各ブロックの統合可能なケースの一覧である。 図6Aは、マクロブロックに含まれる各ブロックの動きベクトルに関するフラグの例を示す図である。 図6Bは、図6Aの各ブロックを統合した結果を示す図である。 図6Cは、図6Bの各ブロックをさらに統合した結果を示す図である。 図7Aは、8×8パーティションに含まれる複数のブロックと、隣接する他のマクロブロックとの位置関係を示す図である。 図7Bは、図7Aの各ブロックの統合可能なケースの一覧である。 図7Cは、図7Aの各ブロックの統合可能なケースの一覧である。 図8は、実施の形態2に係る予測画像生成のフローチャートである。 図9は、6タップフィルタを用いた動き補償処理を説明する図である。 図10Aは、パーティションサイズが4×4のブロックの動き補償に必要な参照画像データの例を示す図である。 図10Bは、パーティションサイズが16×16のブロックの動き補償に必要な参照画像データの例を示す図である。 図11Aは、8×8パーティションの4つのブロックと、その動きベクトルとを示す図である。 図11Bは、図11Aの各ブロックが必要とする参照画像データを示す図である。 図12Aは、4×4パーティションのブロックの動き補償に必要な画素、中間画素、及び出力画素を示す図である。 図12Bは、4×8パーティションのブロックの動き補償に必要な画素、中間画素、及び出力画素を示す図である。
 以下、図面を参照しつつ、本発明の実施の形態について説明する。
 (実施の形態1)
 以下、本発明の実施の形態1における動画像復号装置について説明する。
 図1は、本発明の実施の形態1における動画像復号装置100の構成を示すブロック図である。
 図1の示すように、この動画像復号装置100は、復号部110と、動きベクトル比較部120と、ブロック統合部130と、動きベクトル生成部140と、フレームメモリ転送制御部150と、バッファ160と、局所参照メモリ170と、動き補償部180と、加算器(復元部)190とを備える。
 復号部110は、復号部110に入力された動画像符号化ストリームを復号して、動きベクトルに関するフラグ、動きベクトルデータ、及び符号化対象画像と予測画像との差分値(以下「残差画像」)を出力する。そして、復号部110は、動きベクトルに関するフラグ及び動きベクトルデータを動きベクトル比較部120及び動きベクトル生成部140に出力し、残差画像を加算器190に出力する。
 ここで、動きベクトルに関するフラグとは、隣接ブロックと同じ動きベクトルをもつことを示す予測方向、動きベクトルが0であること、及び動画像符号化ストリームに動きベクトルデータが含まれていることのいずれかを示すフラグであって、動画像符号化ストリームにブロック毎に格納されている。
 また、動きベクトルデータとは、動きベクトルの差分値または動きベクトルそのものである。ただし、この動きベクトルデータは、動画像符号化ストリームに動きベクトルデータが含まれていることを、動きベクトルに関するフラグが示している場合にのみ、動画像符号化ストリームに格納されていればよい。
 動きベクトル生成部140は、復号部110から動きベクトルに関するフラグを受け取った場合、隣接ブロックの動きベクトルを用いて、復号対象ブロックの動きベクトルを生成する。また、動きベクトル生成部140は、動きベクトルの差分値を受け取った場合、隣接ブロックの動きベクトルまたは隣接ブロックの動きベクトルから算出される予測MVと動きベクトルの差分値とを加算して、復号対象ブロックの動きベクトルを生成する。
 動きベクトル比較部120は、復号部110または動きベクトル生成部140から受け取った動きベクトルに関するフラグを、隣接する複数のブロックの動きベクトルに関するフラグと比較し、隣接する複数のブロックで動きベクトルが同じとなるか否かを判定し、その判定結果をブロック統合部130へ出力する。
 比較結果を受け取ったブロック統合部130は、隣接する複数のブロックで同じ動きベクトルとなる場合、それらの隣接する複数のブロックを動き補償処理単位であるブロックサイズ(以後、パーティションサイズと呼ぶ。)の動き補償対象ブロックに統合することを決定し、その結果を動きベクトル生成部140へ出力する。一方、ブロック統合部130は、隣接する複数のブロックのいずれの動きベクトルとも異なるブロックを、当該ブロック単独で動き補償対象ブロックにすると決定し、その結果を動きベクトル生成部140へ出力する。
 次に、図2A~図2Dを用いて、動きベクトルに関するフラグについて、説明する。
 動画像符号化ストリームが、パーティションサイズ毎に、動きベクトルに関するフラグを含んでいる場合(例えば、VP8)、当該フラグは、図2A~図2Dに示す4種類(Left、Above、Zero、Newと図示)に分類される。なお、上記の動きベクトルに関するフラグを一例として説明しているが、他の場合であっても構わない。例えば、左上や右上の隣接ブロックの動きベクトルと同じことを示してもよいし、さらに2つ以上離れたブロックの動きベクトルと同じことを示してもよい。なお、H.264などの動画符号化規格においては、動画符号化ストリームから動きベクトルの予測方向が求められる。すなわち、図2A~図2Dの内容に限定されるものではない。
 図2Aに示される「Left」と記載のブロックは、左側に隣接するブロックと動きベクトル(以下、MVと呼ぶ。)が同じであることを示す。図2Bに示される「Above」と記載のブロックは、上側に隣接するブロックとMVが同じであることを示す。図2Cに示される「Zero」と記載のブロックは、MVが0であることを示す。ただし、MVが0となる場合は、当然、隣接ブロックと同じMVを持つ可能性はある。
 図2Dに示される「New」と記載のブロックは、動画像符号化ストリーム中に新たなMVもしくは復号済みの周辺ブロックのMVから算出された予測MVとの差分値を含むことを示す。つまり、符号化対象ブロックのMVは、隣接する複数のブロックのいずれのMVとも異なることと同義といえる。なお、周辺ブロックのMVから導出される予測MVは、動画符号化規格によりその導出方法は決められており、ここでは詳述はしない(例えば、H.264やVP8を参照)。
 上記のように、動きベクトルに関するフラグを符号化して動画像符号化ストリーム中に含めることで、動きベクトルに関する情報の符号量の削減を容易に実現できる特徴をもつことができる。
 また、隣接ブロックのパーティションサイズが現在のブロックのパーティションサイズと異なる場合(例えば、現在のブロックのパーティションサイズが8画素×8画素で、隣接ブロックのパーティションサイズが4画素×4画素の場合)、隣接ブロックが4画素×4画素のパーティションサイズの2つのブロックから構成されるとみなせばよい。このように、隣接ブロックに予測MVとなる候補が複数存在する場合、どちらか一方を使うか、またはその平均を使うかなどは、各動画符号化規格で定められている。また、ピクチャの領域外にある隣接ブロックに関しては、ある値(例えば、0)で置き換えることや候補の予測MVとして使わないなどが定められていたりする。また、画面間予測を伴わないイントラマクロブロックにある隣接ブロックに関しても同様に、ある値(例えば、0)で置き換えることや候補の予測MVとして使わないなどが定められていたりする。
 つまり、動きベクトル生成部140は、復号部110から受け取った動きベクトルに関するフラグで特定される隣接ブロックの動きベクトルを用いて、復号対象ブロックの動きベクトルを生成する。また、動きベクトルに関するフラグ以外に予測MVとの差分値が必要な場合(図2Dの場合)、復号された動きベクトルの差分値を復号部110から受け取り、予測MVとその差分値とを足し合わせることで動きベクトルを生成する。
 フレームメモリ転送制御部150は、ブロック統合部130での統合結果であるパーティションサイズの動き補償対象ブロック毎に、生成された動きベクトルが指し示す参照画像領域及び動き補償時に必要な画素(予測画像生成時に必要な画素)を含むデータをバッファ160から局所参照メモリ170に転送する。
 動き補償部180は、局所参照メモリ170に記憶されているデータから動き補償対象ブロック毎に予測画像を求め、その予測画像を加算器190へ出力する。加算器190は、復号部110から出力された残差画像と、動き補償部180から取得した予測画像とを加算し、バッファ160へ出力する。その後、復号済みの画像データは、バッファ160から表示部(図示省略)へ出力される。
 なお、復号部110から出力される残差画像は、復号部110で復号された周波数成分の係数データ(例えば、DCT係数)を逆量子化し、さらに画素データへの変換(例えば、逆変換やIDCT:Inversed Discrete Cosine Transform)することによって算出される。また、時間的に異なる参照画像を用いないIピクチャやイントラマクロブロックでは、画面内予測を用いることで、予測画像を算出することも可能である。
 また、図1には記載していないが、加算器190での加算処理のあとに、マクロブロック境界やブロック境界に対して、例えば、H.264やVP8などの動画符号化規格で定義されるデブロッキングフィルタを実施する場合もある。また、バッファ160は、外付けのメモリで構成されても構わないし、内蔵のメモリで構成されても構わない。
 次に、動きベクトル比較部120に関して、説明する。動きベクトル比較部120は、復号部110から出力された動きベクトルに関するフラグ(詳細は、例えば図2A~図2Dで前述したとおりである。)と、複数の隣接ブロックの動きベクトルに関するフラグとを用いて、動きベクトルの比較を行う。なお、隣接ブロックの動きベクトルに関するフラグは、動きベクトル比較部120に保持されてもよいし、動きベクトル生成部140に保持されてもよい。
 動きベクトル比較部120は、隣接する複数のブロックの動きベクトルに関するフラグを基に動きベクトルを比較する。そして、隣接するブロック間で同じ動きベクトルとなる場合、動きベクトル比較部120は、同一の動きベクトルを持つ複数のブロックを、動き補償処理を行う新たなパーティションサイズの動き補償対象ブロックとして、統合する。
 例えば、パーティションサイズが4×4の場合において、動きベクトルに関するフラグが「Above」の場合、上側に隣接するブロック(例えば、パーティションサイズ4×4)と現在のブロックとは同じ動きベクトルを持つので、4×8のパーティションサイズの動き補償対象ブロックとして統合される。そして、フレームメモリ転送制御部150は、統合された新たなパーティションサイズの動き補償対象ブロックに対応する参照画像を取得する。また、動き補償部180は、取得された参照画像を用いて動き補償対象ブロックの動き補償処理を行い、予測画像を生成する。
 以上のように、同じ動きベクトルを持つ複数のブロックを統合し、より大きなパーティションサイズの動き補償対象ブロックとして動き補償処理することにより、統合前の小さなパーティションサイズで参照画像を取得するよりもメモリ転送サイズの削減することができる。さらに、大きなパーティションサイズで動き補償処理を行うことで、動き補償処理の処理量の削減を実現することができる。
 図3A及び図3Bは、本発明の実施の形態に係るブロックの統合の一つの例を示す図である。図3Aは、1つのマクロブロックに含まれる複数のブロックのパーティションサイズが4×4の場合の例を示す図である。図3Aには、各ブロックの動きベクトルに関するフラグの内容を記載している。
 具体的には、ブロック200、206、208、215のフラグは、「New(図2Dのように、MVが別に存在することを示す。)」である。ブロック201、203、207、210、214のフラグは、「Left(図2Aのように、左側に隣接するブロックと同じMVを示す。)」である。ブロック202、209のフラグは、「Zero(図2Cのように、MVは0を示す。)」を示す。ブロック204、205、211、212、213のフラグは、「Above(図2Bのように、上側に隣接するブロックと同じMVを示す。)」である。
 ここで、左上の8×8パーティションに含まれる4つのブロック200、201、204、205に着目すると、ブロック201、204のフラグは、ブロック200とMVが同じであることを示している。また、ブロック205のフラグは、ブロック201とMVが同じであることを示している。すなわち、これら4つのブロック200、201、204、205は、同じMVを持つことがそれぞれの動きベクトルに関するフラグからわかる。つまり、図3Aの左上の8×8パーティションに含まれる4つのブロック200、201、204、205は、図3Bに示すように、8×8パーティションの動き補償対象ブロック301として統合することができる。
 同様に、図3Aの右上の8×8パーティションに含まれる4つのブロック202、203、206、207は、図3Bに示すように、8×4パーティションの2つの動き補償対象ブロック302、303として統合することができる。
 さらに、図3Aの左下の8×8パーティションに含まれる4つのブロック208、209、212、213は、図3Bに示すように、4×8パーティションの2つの動き補償対象ブロック304、305として統合することができる。
 なお、図3Aの右下の8×8パーティションに含まれる4つのブロック210、211、214、215は、全て異なる動きベクトルとなることから統合することはできず、図3Bに示すように、4×4パーティションの4つの動き補償対象ブロック306、307、308、309となる。
 上記は、動き補償の処理単位の1つである8×8パーティションに含まれる複数のブロックの動きベクトルに関するフラグを基にし、隣接する複数のブロックを統合することが可能か否かを判断したが、特に比較するパーティションサイズに限定は無い。例えば、8×4パーティション単位でフラグを比較してもよいし、4×8パーティション単位でフラグを比較しても構わない。さらに、マクロブロック内及びマクロブロック境界を跨ぐ任意の隣接する複数のブロックでフラグを比較しても構わない。例えば、図3Aの4つの4×4パーティションのブロック209、210、213、214は同じ動きベクトルとなるため、8×8パーティションの動き補償対象ブロックに統合することができる。
 また、一度統合した後に、動き補償対象ブロックをさらに統合できるかの判断をするような、再帰的な統合処理も可能である。例えば、図3Bの統合後の動き補償対象ブロック305、306、308は同じ動きベクトルとなるため、8×8パーティションの動き補償対象ブロックにさらに統合することができる。
 また、図3C、図3D、図3E及び図3Fは、本発明の実施の形態に係るブロックの統合の別の例を示す図である。図3Cは、1つのマクロブロックに含まれる複数のブロックのパーティションサイズが4×4の場合の例を示す図である。図3Cには、各ブロックの動きベクトルに関するフラグの内容を記載している。
 具体的には、ブロック220、221、222、223、225、226、227、228、229、230、231、233、234、235のフラグは、「Left」である。ブロック224、232のフラグは、「Above」である。
 ここで、左上の8×8パーティションに含まれる4つのブロック220、221、224、225に着目すると、これら4つのブロック220、221、224、225は、同じMVを持つことがそれぞれの動きベクトルに関するフラグからわかる。つまり、図3Cの左上の8×8パーティションに含まれる4つのブロック220、221、224、225は、図3Dに示すように、8×8パーティションの動き補償対象ブロック321として統合することができる。
 さらに、図3Cの右上の8×8パーティションに含まれる4つのブロック222、223、226、227は、図3Dに示すように、8×4パーティションの2つの動き補償対象ブロック322、323として統合され、各動き補償対象ブロック322、323の動き補償に関するフラグが「Left」である。
 そして、この動き補償対象ブロック322、323の左側には、8×8パーティションの統合後の動き補償対象ブロック321がある。すなわち、8×4パーティションの2つの動き補償対象ブロック322、323の動きベクトルは、結果として図3Dの動き補償対象ブロック321の動きベクトルと等しくなる。そこで、図3Dの2つの動き補償対象ブロック322、323は、さらに、図3Eに示すように、8×8パーティションの動き補償対象ブロック332に統合することができる。
 また、図3Cの左下の8×8パーティションに含まれる4つのブロック228、229、232、233は、図3Dに示すように、8×8パーティションの動き補償対象ブロック324として統合することができる。
 さらに、図3Cの右下の8×8パーティションに含まれる4つのブロック230、231、234、235は、図3Dに示すように、8×4パーティションの2つの動き補償対象ブロック325、326として統合され、各動き補償対象ブロック325、326の動き補償に関するフラグが「Left」である。そして、この動き補償対象ブロック325、326の左側には、8×8パーティションの統合後の動き補償対象ブロック324がある。
 すなわち、8×4パーティションの2つの動き補償対象ブロック325、326の動きベクトルは、結果として図3Dの動き補償対象ブロック324の動きベクトルと等しくなる。そこで、図3Dの2つの動き補償対象ブロック325、326は、さらに、図3Eに示すように、8×8パーティションの動き補償対象ブロック334に統合することができる。
 さらに、図3Eに示す統合後の動き補償対象ブロック332は、8×8パーティションで、動きベクトルに関するフラグは「Left」である。そして、この動き補償対象ブロック332の左側には、8×8パーティションの統合後の動き補償対象ブロック331がある。すなわち、この8×8パーティションの2つの動き補償対象ブロック331、332の動きベクトルは、等しくなる。そこで、図3Eの2つの動き補償対象ブロック331、332は、さらに、図3Fに示すように、16×8パーティションの動き補償対象ブロック341に統合することができる。
 同様に、図3Eに示す統合後の動き補償対象ブロック334は、8×8パーティションで、動きベクトルに関するフラグは「Left」である。そして、この動き補償対象ブロック334の左側には、8×8パーティションの統合後の動き補償対象ブロック333がある。すなわち、この8×8パーティションの2つの動き補償対象ブロック333、334の動きベクトルは、等しくなる。そこで、図3Eの2つの動き補償対象ブロック333、334は、さらに、図3Fに示すように、16×8パーティションの動き補償対象ブロック342に統合することができる。
 以上のように、一度ブロックを動き補償対象ブロックに統合した後に、動き補償対象ブロックをさらに統合できるかの判断をするような、再帰的な統合処理をすることで、同じ動きベクトルを持つ複数のブロックを統合し、より大きなパーティションサイズの動き補償対象ブロックとし、この動き補償対象ブロック毎に動き補償処理することが可能となる。なお、上記では8×8パーティション毎に、その動き補償対象ブロックの動きベクトルに関するフラグの比較を行ったが、16×16パーティション内の動き補償対象ブロックの動きベクトルに関するフラグの比較を行っても構わない。
 以上のように、同じ動きベクトルを持つ複数のブロックを統合してより大きなパーティションサイズの動き補償対象ブロックとし、この動き補償対象ブロック毎に動き補償処理することが可能となる。
 バッファ160からの参照画像取得時のメモリ転送サイズは、図10Aの破線で示すように、パーティションサイズが4×4のブロックの動き補償に6タップフィルタを用いる場合、9画素×9画素の参照画像データが必要である。同様に、図10Bの破線で示すように、パーティションサイズが16×16のブロックの動き補償に6タップフィルタを用いる場合、21画素×21画素の参照画像データが必要である。
 従って、例えば、動き補償対象ブロックのパーティションサイズが16×16のときに、輝度成分の予測画像を生成するために必要な参照画像データは、1つの動き補償対象ブロックに対して21画素×21画素の参照画像データとなる。この場合、1マクロブロックの輝度成分の予測画像(256バイト)を生成するために必要な参照画像データの最大読み出し量は、一つの予測方向につき、21[画素]×21[画素]×1[ベクトル数]=441[バイト]となる。
 一方、動き補償対象ブロックのパーティションサイズが4×4のときには、図10Aに示すように、1つの動き補償対象ブロックに対して9画素×9画素の参照画像データを読み出す必要がある。この場合に1マクロブロックの輝度成分の予測画像を生成するために必要な参照画像データの最大読み出し量は、一つの予測方向につき、9[画素]×9[画素]×16[ベクトル数]=1296[バイト]となり、16×16パーティションの場合と比較して、読み出し量が増大することがわかる。つまり、動き補償対象ブロックのパーティションサイズが大きくなると、参照画像取得時のメモリ転送サイズを削減することができる。
 上記図3A及び図3Bで説明した、図3Aの左上の8×8パーティションに含まれる4つの4×4ブロック200、201、204、205が、図3Bに示される8×8パーティションの動き補償対象ブロック301として、統合される場合の参照画像データの読み出し量について、説明する。
 統合前の動き補償対象ブロックのパーティションサイズが4×4の4つの場合、1つの動き補償対象ブロックのパーティションサイズ4×4に対して、9画素×9画素の参照画像データを読み出す必要がある。この場合、8×8パーティション(4つの4×4の動き補償対象ブロックを含む)の輝度成分の予測画像を生成するために必要な参照画像の最大読み出し量は、9[画素]×9[画素]×4[ベクトル数(動き補償対象ブロック数)]=324[バイト]となる。
 また、統合後の動き補償対象ブロックのパーティションサイズが8×8の場合、13画素×13画素の参照画像データを読み出す必要がある。この場合、8×8パーティションの輝度成分の予測画像を生成するために必要な参照画像の最大読み出し量は、13[画素]×13[画素]×1[ベクトル数(動き補償対象ブロック数)]=169[バイト]となり、統合前と比較して、読み出し量を削減できることがわかる。つまり、動き補償対象ブロックを統合することで、参照画像取得時のメモリ転送サイズを削減することができる。
 また、上記の統合後のパーティションサイズ8×8の動き補償対象ブロックのメモリ転送サイズは、元々の動き補償対象ブロックのパーティションサイズが8×8の場合と同じであることがわかる。この場合、動きベクトルが同じであれば、上記輝度成分の参照画像データの読み出し時のバッファ160(例えば、SDR-SDRAM、DDR-SDRAM、DDR2-SDRAMやDDR3-SDRAMなどの外部メモリ)へのアクセス順(例えば、SDRAMへのアドレス、制御コマンドや制御信号)やデータ転送順は同じである。なお、上記輝度成分の参照画像データの読み出し量やアクセス時間は、外部メモリと接続するバスのバス幅や1回のアクセスするデータ量や外部メモリのAC特性(例えば、SDRAMのCASレイテンシやウェートサイクル)などにより、増加する可能性はある。さらに、バッファ160からの上記輝度成分の参照データの読み出し中に、他のアクセス(例えば、当該動き補償対象ブロックに対応した色差成分の参照データの読み出し、表示部への画像出力のための画像データ読み出しやCPUからのアクセスなど)によって、中断される可能性もある。
 また、動き補償時の処理量に関しては、図12A及び図12Bに示すように、動き補償時の処理量が中間画素を含めた出力画素数と等価であるとすると、1マクロブロックの輝度成分の予測画像(256バイト)を生成するために必要な6タップフィルタ処理を実施する回数(処理量)は、動き補償対象ブロックが4×4パーティションの場合、1つの動き補償対象ブロックに対して、水平フィルタが、4[画素]×9[画素]=36回(図12Aの◆印)、垂直フィルタが、4[画素]×4[画素]=16回(図12Aの×印)であるので、1マクロブロックでは、(36+16)×16[パーティション数]=832[回]必要である。
 一方、動き補償対象ブロックが4×8パーティションの場合、1つの動き補償対象ブロックに対して、水平フィルタが、4[画素]×13[画素]=52回(図12Bの◆印)、垂直フィルタが、4[画素]×8[画素]=32回(図12Bの×印)であるので、1マクロブロックでは、(52+32)×8[パーティション数]=672[回]となる。すなわち、4×8パーティションの場合は、4×4パーティションの場合よりもフィルタ回数は減少する。
 同様に、動き補償対象ブロックが16×16パーティションの場合、1つの動き補償対象ブロックに対して、水平フィルタが、16[画素]×21[画素]=336回、垂直フィルタが、16[画素]×16[画素]=256回であるので、1マクロブロックでは、(336+256)×1[パーティション数]=592[回]となり、更にフィルタ回数は減少する。
 なお、フィルタ処理を水平方向または垂直方向に一度に複数画素を出力可能な回路構成をとることで、処理性能を向上することは可能である。例えば、8画素分を同時に6タップフィルタ処理して出力することが可能な場合、4×4のパーティションサイズの場合(図12A)、水平フィルタを9回、垂直フィルタを4回実施すればよい。すなわち、1マクロブロックでは、(9+4)×16[パーティション数]=208[回]となる。4×8のパーティションサイズの場合(図12B)、水平フィルタを13回、垂直フィルタを4回実施すればよい。すなわち、1マクロブロックでは、(13+4)×8[パーティション数]=136[回]となる。
 つまり、動き補償対象ブロックのパーティションサイズが大きくなると、フィルタ処理回数(処理量)を減少させることができる。よって、バッファ160からの参照画像データの読み出し画素数を削減し、動き補償処理を高速かつ低消費電力で実現することができる。
 次に、図4は、本発明の実施の形態1に係る予測画像生成のフローチャートである。
 まず、復号部110は、動画像符号化ストリームから動きベクトルに関するフラグを取得し、動きベクトル比較部120へ出力する(ステップS401)。
 次に、動きベクトル比較部120は、入力された動きベクトルに関するフラグと、既に取得している隣接する複数のブロックの動きベクトルに関するフラグとを用いて、隣接する複数のブロックの動きベクトルが同じであるかを求め、その結果をブロック統合部130へ出力する(ステップS402)。
 次に、ブロック統合部130は、統合可能(すなわち、ステップS402で複数のブロックの動きベクトルが同じである)と判断された場合(ステップS403でYes)、同じ動きベクトルとなる複数のブロックを1つのパーティションサイズの動き補償対象ブロックとなるように変更する(ステップS404)。
 さらに、動きベクトル生成部140は、動きベクトルを算出し、動きベクトルをフレームメモリ転送制御部150へ出力する。なお、動きベクトル生成部140は、動き補償対象ブロック毎に動きベクトルを算出すればよい。より具体的には、動き補償対象ブロックに含まれる複数のブロックのうちの1つのブロックの動きベクトルを算出すれば足りる。
 フレームメモリ転送制御部150は、動きベクトルが指し示す参照画像領域、つまり動き補償対象ブロックの動き補償処理に必要な参照画像データをバッファ160から取得し、局所参照メモリ170に転送する(ステップS405)。
 動き補償部180は、局所参照メモリ170から取得した参照画像データを用いて、動き補償対象ブロック毎に動き補償処理を行い、生成された予測画像を加算器190に出力する(ステップS406)。
 なお、ステップS403において、隣接する複数のブロックを統合できない場合は、パーティションサイズを変更することなく、元のパーティションサイズの動き補償対象ブロック毎に、参照画像の取得及び動き補償処理を行う(ステップS405、S406)。
 なお、図4のフローチャートは、統合可能か否かを判断する比較対象のブロックとして、8×8パーティション毎に、このパーティションに含まれる複数のブロックの動きベクトルに関するフラグを基に統合することが可能か否かを判断しても構わないし、または他のパーティションサイズ(例えば、16×16、16×8、8×16、8×4、4×8)毎であっても構わない。当然、当該ブロックのパーティションサイズが、統合可能か否かを判断する比較対象のブロックサイズより大きい場合は、パーティションサイズを変更することなく、元のパーティションサイズの動き補償対象ブロック毎に、参照画像の取得及び動き補償処理を行っても構わない。
 以上の図4の処理によれば、同じ動きベクトルを持つ複数のブロックを統合し、より大きなパーティションサイズの動き補償対象ブロックとして、動き補償処理することが可能となる。その結果、参照画像取得時のメモリ転送サイズの削減と、動き補償処理時の処理量の削減とを実現することが可能である。よって、バッファ160からの参照画像データの読み出し画素数を削減し、動き補償処理を高速かつ低消費電力で実現することができる。
 次に、図5A,図5B及び図5Cに、8×8パーティションに含まれる4つのブロックの動きベクトルに関するフラグを基にした統合可能な場合の一例を示す。
 図5Aは、パーティションサイズが4×4の4つのブロックの位置関係を示す図である。左上のブロックをブロック0、右上のブロックをブロック1、左下のブロックをブロック2、右下のブロックをブロック3とする。
 図5B及び図5Cは、図5Aに示した8×8パーティションに含まれる4つのブロック0、1、2、3が統合可能なフラグの組み合わせの一例を示した図である。また、図5B及び図5Cに、各ケースで統合した後のパーティションサイズを示す。
 例えば、図5Cのケース43は、図3Aの左上の4つのブロック200、201、204、205のケースを示す。この場合、8×8のパーティションの動き補償対象ブロックに統合可能なことを示す。
 以上のように、8×8パーティション毎に、このパーティションに含まれる4つのブロックで動きベクトルに関するフラグを比較する場合は、図5Bまたは図5Cの比較結果を使用することで、比較処理を簡略化することが可能である。また、比較回路として使用することで、比較的簡単な回路で動画像復号装置及び動画像復号回路を実現することが可能である。
 また、その他に、図5Bまたは図5Cに示した以外に、8×8パーティションにおいては、8×4パーティションの1つの動き補償対象ブロックと、4×4パーティションの2つの動き補償対象ブロックとに統合される場合もある。また、16×16のマクロブロックに含まれる複数のブロックの各フラグを比較することも可能である。他に、16×8や8×16などの大きさのパーティションに含まれる複数のブロックの各フラグを比較することも可能である。
 図6A~図6Cは、本発明の実施の形態1に係るブロックの統合に関する一つの例を示す。図6Aは、1つのマクロブロックに含まれる各ブロックのパーティションサイズが4×4の場合であり、さらに、隣接するマクロブロックに含まれる各ブロックのパーティションサイズが8×8の場合を示す図である。
 なお、ブロックのパーティションサイズが4×4のマクロブロックには、ブロック毎に、動きベクトルに関するフラグの内容を記載している。また、左側の8×8パーティションの4つのブロック420、421、422、423は、例えば、ブロック統合部130によって既に統合された動き補償対象ブロックである。
 具体的には、ブロック406のフラグは「New(図2Dのように、MVが別に存在することを示す。)」を、ブロック400、401、403、404、405、407、408、409、410、411、412、413、415のフラグは「Left(図2Aのように、左隣接ブロックと同じMVを示す。)」を、ブロック402のフラグは「Zero(図2Cのように、MVは0を示す。)」を、ブロック414のフラグは「Above(図2Bのように、上隣接ブロックと同じMVを示す。)」をそれぞれ示す。
 ここで、左上の8×8パーティションに含まれる4つのブロック400、401、404、405に着目すると、図6Bに示すように、ブロック400、401が同じMVを持ち、ブロック404、405が同じMVを持つことが、それぞれの動きベクトルに関するフラグの内容からわかる(この場合、Left)。つまり、図6Aの4×4パーティションの4つのブロック400、401、404、405は、図6Bに示すように、8×4パーティションの2つの動き補償対象ブロック501、502として統合することができる。
 同様に、図6Aの右上の8×8パーティションに含まれる4つのブロック402、403、406、407は、図6Bに示すように、8×4パーティションの2つの動き補償対象ブロック503、504として統合することができる。
 また、図6Aの左下の8×8パーティションに含まれる4つのブロック408、409、412、413は、図6Bに示すように、8×4パーティションの2つの動き補償対象ブロック505、506として統合することができる。
 さらに、図6Aの右下の8×8パーティションに含まれる4つのブロック410、411、414、415は、図6Bに示すように、8×8パーティションの1つの動き補償対象ブロック507として統合することができる。
 また、図6Aの左上の8×8パーティションに含まれるブロックは、図6Bに示すように、8×4パーティションの2つの動き補償対象ブロック501、502に統合され、各動き補償対象ブロック501、502の動きベクトルに関するフラグが「left」である。そして、この動き補償対象ブロック501、502の左側には、隣接するマクロブロックの8×8パーティションのブロック421がある。
 すなわち、8×4パーティションの2つの動き補償対象ブロック501、502の動きベクトルは、結果として図6Aのブロック421の動きベクトルと等しくなる。そこで、図6Bの2つの動き補償対象ブロック501、502は、さらに、図6Cに示すように、8×8パーティションの動き補償対象ブロック601に統合することができる。
 このように、比較対象となる2つのブロック(上記の例では、動き補償対象ブロック501、502)それぞれの動きベクトルが、当該2つのブロックに隣接し、且つこの2つのブロックよりパーティションサイズの大きいブロック(上記の例では、ブロック421)の動きベクトルと同じである場合に、当該2つのブロックを1つの動き補償対象ブロック(上記の例では、動き補償対象ブロック601)に統合することができる。
 同様に、図6Bの左下の8×8パーティションに含まれる2つの動き補償対象ブロック505、506の動きベクトルに関するフラグが「left」である。そして、この動き補償対象ブロック505、506の左側には、隣接するマクロブロックの8×8パーティションのブロック423がある。
 すなわち、8×4パーティションの2つの動き補償対象ブロック505、506の動きベクトルは、結果として図6Aのブロック423の動きベクトルと等しくなる。そこで、図6Bの2つの動き補償対象ブロック505、506は、さらに、図6Cに示すように、8×8パーティションの動き補償対象ブロック604に統合することができる。
 上記のように、同一のマクロブロックのみならず、隣接するマクロブロックを比較対象にすることで、隣接する複数の動き補償対象ブロックをさらに統合することが可能となる。
 さらに、図6Cに示す統合後の動き補償対象ブロック605は、8×8パーティションで、動きベクトルに関するフラグは「Left」である。そして、この動き補償対象ブロック605の左側には、8×8パーティションの統合後の動き補償対象ブロック604がある。すなわち、この8×8パーティションの2つの動き補償対象ブロック604、605の動きベクトルは、等しくなる。そこで、この2つの動き補償対象ブロック604、605は、さらに、16×8パーティションの動き補償対象ブロックに統合することができる。
 なお、上記では、隣接するマクロブロックに含まれる各ブロックのパーティションサイズが8×8の場合について説明したが、その隣接するマクロブロック内の動き補償対象ブロックサイズが16×16、8×16や16×8及びイントラマクロブロック(例えば、動きベクトルが0として扱える場合)であっても、上記の統合後の動き補償対象ブロックサイズは同じ結果になる。
 以上のように、同じ動きベクトルを持つブロックを統合し、より大きなパーティションサイズの動き補償対象ブロックとして、動き補償処理することが可能となる。その結果、参照画像取得時のメモリ転送サイズの削減と、動き補償処理時の処理量の削減とを実現することが可能である。よって、バッファ160からの参照画像データの読み出し画素数を削減し、動き補償処理を高速かつ低消費電力で実現することができる。
 次に、図7A、図7B及び図7Cに、8×8パーティションに含まれる4つのブロックの動きベクトルに関するフラグを基に、さらに上方向に隣接するブロック及び左方向に隣接するブロックを考慮して、動きベクトルを比較した場合の一例を示す。
 図7Aは、互いに隣接する4つの4×4パーティションのブロックの位置関係を示す図である。左上のブロックをブロック0、右上のブロックをブロック1、左下のブロックをブロック2、右下のブロックをブロック3とする。また、図7Aは、上方向に隣接するブロック(上・隣接と記載)、左方向に隣接するブロック(左・隣接と記載)の位置を示す。
 図7B及び図7Cは、図7Aに示した8×8パーティションに含まれる4つのブロック0、1、2、3と、上方向及び左方向に隣接する8×8パーティションのブロックとの統合可能なフラグの組み合わせの一例を示した図である。また、図7B及び図7Cに、各ケースで統合した後のパーティションサイズを示す。
 例えば、図7Bのケース1は、図6Aの左上の8×8パーティションに含まれるブロック400、401、404、405のケースを示しており、この場合、8×8パーティションの動き補償対象ブロックに統合可能なことを示す。
 以上のように、8×8パーティション毎に、このパーティションに含まれる4つのブロックで動きベクトルに関するフラグを比較する場合は、図7Bまたは図7Cの比較結果を使用することで、比較処理を簡略化することが可能である。また、比較回路として使用することで、比較的簡単な回路で動画像復号装置及び動画像復号回路を実現することが可能である。
 また、図7Bまたは図7Cに示した以外に、8×8パーティションにおいては、8×4パーティションの1つの動き補償対象ブロックと、4×4パーティションの2つの動き補償対象ブロックとに統合される場合もある。また、16×16パーティションのマクロブロックに含まれる複数のブロック毎に比較することも可能である。他に、16×8パーティションや8×16パーティションなど毎に比較することも可能である。
 (実施の形態2)
 以下、本発明の実施の形態2における動画像復号装置について説明する。実施の形態2に係る動画像符号化装置は、動きベクトルに関するフラグを用いず、まず各ブロックの動きベクトルを実際に算出し、隣接する複数のブロックで動きベクトルを比較する点が実施の形態1と異なる。なお、実施の形態1との共通点の詳しい説明は省略し、相違点を中心に説明する。
 図8は、本発明の実施の形態2における予測画像生成のフローチャートである。
 まず、復号部110は、動画像符号化ストリームから動きベクトルまたは予測動きベクトルの差分値を取得し、動きベクトル生成部140に出力する。動きベクトル生成部140は、受け取った動きベクトルもしくは動きベクトルの差分値と予測動きベクトルとから動きベクトルを算出し、動きベクトル比較部120へ出力する(ステップS801)。
 次に、動きベクトル比較部120は、動きベクトル生成部140から入力された動きベクトルと、隣接する複数のブロックの動きベクトルとを比較し、隣接する複数のブロックの動きベクトルが同じであるか否かを判断し、その判断結果をブロック統合部130へ出力する(ステップS802)。
 次に、複数のブロックが統合可能(すなわち、ステップS802で複数のブロックの動きベクトルが同じである)と判断された場合(ステップS803でYes)、ブロック統合部130は、同じ動きベクトルとなる複数のブロックをパーティションサイズが大きい1つの動き補償対象ブロックとなるように変更し、結果を動きベクトル生成部140へ出力する(ステップS804)。
 次に、動きベクトル生成部140は、動き補償対象ブロックの動きベクトルを算出し、算出した動きベクトルをフレームメモリ転送制御部150へ出力する。なお、ステップS801で算出した動きベクトルを用いてもよい。
 そして、フレームメモリ転送制御部150は、ブロック統合部130での結果に基づいて、動きベクトルが指し示す参照画像領域、つまり動き補償対象ブロックの動き補償処理に必要な参照画像データをバッファ160から取得し、局所参照メモリ170に転送する(ステップS805)。
 動き補償部180は、局所参照メモリ170から取得した参照画像データを用いて、動き補償対象ブロックの動き補償処理を行い、生成した予測画像を加算器190に出力する(ステップS806)。
 なお、ステップS803において、隣接する複数のブロックが統合できない場合は、パーティションサイズを変更することなく、元のパーティションサイズの動き補償対象ブロック毎に、参照画像の取得及び動き補償処理を行う(ステップS805、S806)。
 なお、図8のフローチャートは、統合可能か否かを判断する比較対象のブロックとして、8×8パーティション毎に、このパーティションに含まれる複数のブロックの動きベクトルを基に統合することが可能か否かを判断しても構わないし、または他のパーティションサイズ(例えば、16×16、16×8、8×16、8×4、4×8)毎であっても構わない。当然、当該ブロックのパーティションサイズが、統合可能か否かを判断する比較対象のブロックサイズより大きい場合は、パーティションサイズを変更することなく、元のパーティションサイズの動き補償対象ブロック毎に、参照画像の取得及び動き補償処理を行っても構わない。
 以上の図8の処理によれば、同じ動きベクトルを持つブロックを統合し、より大きなパーティションサイズの動き補償対象ブロックとして、動き補償処理することが可能となる。その結果、参照画像取得時のメモリ転送サイズの削減と、動き補償処理時の処理量の削減とを実現することが可能である。よって、バッファ160からの参照画像データの読み出し画素数を削減し、動き補償処理を高速かつ低消費電力で実現することができる。
 (その他の実施の形態)
 なお、実施の形態1乃至2では、その構成図を説明したが、実施の形態はこれだけでなく、1チップのLSIとして実現してもよいし、個別のLSIとして構成されてもよい。さらに、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。また、コンピューター上で実行されるプログラムとして実現されてもよい。
 本発明にかかる動画像復号装置は、動き予測を用いて符号化された動画像符号化ストリームを復号する動画像復号装置およびその再生方法に有用である。また、DVDレコーダ、DVDプレーヤ、ブルーレイディスクレコーダ、ブルーレイディスクプレーヤやデジタルTV、さらにはスマートフォンなどの携帯情報端末等の用途にも応用可能である。
   100 動画像復号装置
   110 復号部
   120 動きベクトル比較部
   130 ブロック統合部
   140 動きベクトル生成部
   150 フレームメモリ転送制御部
   160 バッファ
   170 局所参照メモリ
   180 動き補償部
   190 加算器
   0,1,2,3,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,420,421,422,423 ブロック
   301,302,303,304,305,306,307,308,309,321,322,323,324,325,326,331,332,333,334,341,342,501,502,503,504,505,506,507,601,602,603,604,605 動き補償対象ブロック
   1100 破線

Claims (12)

  1.  ブロック単位の動き予測を利用して符号化された動画像符号化ストリームを復号する動画像復号装置であって、
     隣接するブロックと同じ動きベクトルを示す予測方向、動きベクトルが0であること、及び動きベクトルの差分情報が前記動画像符号化ストリームに符号化されていること、のいずれか1つを示す動きベクトルに関するフラグを抽出するために、前記動画像符号化ストリームを復号する復号手段と、
     前記復号手段で抽出された複数のブロックの前記動きベクトルに関するフラグを基に、隣接するブロックの動きベクトルが同じか否かを判断する動きベクトル比較手段と、
     前記動きベクトル比較手段で動きベクトルが同じと判断された複数のブロックを1つの動き補償対象ブロックに統合するブロック統合手段と、
     前記動きベクトルに関するフラグに基づいて、動きベクトルを生成する動きベクトル生成手段と、
     前記動きベクトル生成手段で生成された動きベクトルに基づいて、前記動き補償対象ブロック毎の参照画像を、過去に復号されてメモリに格納された参照画像データから取得する参照画像取得手段と、
     前記参照画像取得手段で取得された参照画像を用いて動き補償を行い、前記動き補償対象ブロック毎に予測画像を生成する動き補償手段と、
     前記動き補償手段で生成された予測画像を利用して画像を復元する復元手段とを備える
     ことを特徴とする動画像復号装置。
  2.  前記ブロック統合手段は、前記動きベクトル比較手段で動きベクトルが隣接するブロックと同じでないと判断された動き補償対象ブロックを個別の動き補償対象ブロックとする
     ことを特徴とする請求項1に記載の動画像復号装置。
  3.  前記動きベクトルに関するフラグの予測方向は、前記フラグが対応付けられたブロックに、上方向に隣接するブロックと動きベクトルが同じであること、または、左方向に隣接するブロックと動きベクトルが同じであることのうちのいずれかを示す
     ことを特徴とする請求項1又は2に記載の動画像復号装置。
  4.  前記動きベクトル比較手段で比較の対象となるブロック、及び前記ブロック統合手段で統合される前のブロックの大きさは、4画素×4画素または8画素×8画素である
     ことを特徴とする請求項1~3のいずれか1項に記載の動画像復号装置。
  5.  前記動きベクトル比較手段で比較の対象となるブロックは、1つのマクロブロック内のブロックである
     ことを特徴とする請求項1~4のいずれか1項に記載の動画像復号装置。
  6.  前記動きベクトル比較手段は、前記複数のブロックそれぞれについて、当該ブロックに上方向に隣接するブロック、左方向に隣接するブロック、または、左上方向に隣接するブロックと動きベクトルが同じか否かを判断する
     ことを特徴とする請求項5記載の動画像復号装置。
  7.  前記動きベクトル比較手段は、比較対象となる2つの隣接するブロックそれぞれの前記動きベクトルに関するフラグが、当該2つのブロックに隣接するマクロブロックに含まれる動き補償対象ブロックと動きベクトルが同じであることを示す場合に、当該2つのブロックを1つの動き補償対象ブロックに統合する
     ことを特徴とする請求項5記載の動画像復号装置。
  8.  前記隣接するマクロブロックに含まれる前記動き補償対象ブロックのサイズは、16画素×16画素または8画素×8画素である
     ことを特徴とする請求項7記載の動画像復号装置。
  9.  前記動画像符号化ストリームは、VP8で符号化されている
     ことを特徴とする請求項1~8のいずれか1項に記載の動画像復号装置。
  10.  ブロック単位の動き予測を利用して符号化された動画像符号化ストリームを復号する動画像復号装置であって、
     前記動画像符号化ストリームから動きベクトルの差分値を復号する復号手段と、
     前記動きベクトルの予測値である予測ベクトルを算出する予測ベクトル算出手段と、
     前記予測ベクトル算出手段で算出された前記予測ベクトルと、前記復号手段で復号された前記動きベクトルの差分値とを足し合わせることによって、動きベクトルを生成する動きベクトル生成手段と、
     前記動きベクトル生成手段で生成された前記動きベクトルと、隣接する複数のブロックの動きベクトルとを比較し、同じ動きベクトルとなるか否かを判断する動きベクトル比較手段と、
     前記動きベクトル比較手段で動きベクトルが同じと判断された複数のブロックを1つの動き補償対象ブロックに統合するブロック統合手段と、
     前記動きベクトル生成手段で生成された動きベクトルに基づいて、前記動き補償対象ブロック毎の参照画像を、過去に復号されてメモリに格納された参照画像データから取得する参照画像取得手段と、
     前記参照画像取得手段で取得された参照画像を用いて動き補償を行い、前記動き補償対象ブロック毎に予測画像を生成する動き補償手段と、
     前記動き補償手段で生成された予測画像を利用して画像を復元する復元手段とを備える
     ことを特徴とする動画像復号装置。
  11.  ブロック単位の動き予測を利用して符号化された動画像符号化ストリームを復号する動画像復号方法であって、
     隣接するブロックと同じ動きベクトルを示す予測方向、動きベクトルが0であること、及び動きベクトルの差分情報が前記動画像符号化ストリームに符号化されていること、のいずれか1つを示す動きベクトルに関するフラグを抽出するために、前記動画像符号化ストリームを復号する復号ステップと、
     前記復号ステップで抽出された複数のブロックの前記動きベクトルに関するフラグを基に、隣接するブロックの動きベクトルが同じか否かを判断する動きベクトル比較ステップと、
     前記動きベクトル比較ステップで動きベクトルが同じと判断された複数のブロックを1つの動き補償対象ブロックに統合するブロック統合ステップと、
     前記動きベクトルに関するフラグに基づいて、動きベクトルを生成する動きベクトル生成ステップと、
     前記動きベクトル生成ステップで生成された動きベクトルに基づいて、前記動き補償対象ブロック毎の参照画像を、過去に復号されてメモリに格納された参照画像データから取得する参照画像取得ステップと、
     前記参照画像取得ステップで取得された参照画像を用いて動き補償を行い、前記動き補償対象ブロック毎の予測画像を生成する動き補償ステップと、
     前記動き補償ステップで生成された予測画像を利用して画像を復元する復元ステップとを含む
     ことを特徴とする動画像復号方法。
  12.  ブロック単位の動き予測を利用して符号化された動画像符号化ストリームを復号する集積回路であって、
     隣接するブロックと同じ動きベクトルを示す予測方向、動きベクトルが0であること、及び動きベクトルの差分情報が前記動画像符号化ストリームに符号化されていること、のいずれか1つを示す動きベクトルに関するフラグを抽出するために、前記動画像符号化ストリームを復号する復号部と、
     前記復号部で抽出された複数のブロックの前記動きベクトルに関するフラグを基に、隣接するブロックの動きベクトルが同じか否かを判断する動きベクトル比較部と、
     前記動きベクトル比較部で動きベクトルが同じと判断された複数のブロックを1つの動き補償対象ブロックに統合するブロック統合部と、
     前記動きベクトルに関するフラグに基づいて、動きベクトルを生成する動きベクトル生成部と、
     前記動きベクトル生成部で生成された動きベクトルに基づいて、前記動き補償対象ブロック毎の参照画像を、過去に復号されてメモリに格納された参照画像データから取得する参照画像取得部と、
     前記参照画像取得部で取得された参照画像を用いて動き補償を行い、前記動き補償対象ブロック毎に予測画像を生成する動き補償部と、
     前記動き補償部で生成された予測画像を利用して画像を復元する復元部とを備える
     ことを特徴とする集積回路。
PCT/JP2012/004154 2011-09-02 2012-06-27 動画像復号装置、動画像復号方法、及び集積回路 WO2013031071A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/191,253 US20140177726A1 (en) 2011-09-02 2014-02-26 Video decoding apparatus, video decoding method, and integrated circuit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011192066 2011-09-02
JP2011-192066 2011-09-02

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/191,253 Continuation US20140177726A1 (en) 2011-09-02 2014-02-26 Video decoding apparatus, video decoding method, and integrated circuit

Publications (1)

Publication Number Publication Date
WO2013031071A1 true WO2013031071A1 (ja) 2013-03-07

Family

ID=47755606

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/004154 WO2013031071A1 (ja) 2011-09-02 2012-06-27 動画像復号装置、動画像復号方法、及び集積回路

Country Status (3)

Country Link
US (1) US20140177726A1 (ja)
JP (1) JPWO2013031071A1 (ja)
WO (1) WO2013031071A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016031253A1 (ja) * 2014-08-28 2016-03-03 日本電気株式会社 ブロックサイズ決定方法及びプログラム記録媒体
CN113439441A (zh) * 2019-02-15 2021-09-24 北京字节跳动网络技术有限公司 基于块分割的变换参数推导
CN114128263A (zh) * 2019-08-12 2022-03-01 北京达佳互联信息技术有限公司 用于视频编解码中的自适应运动矢量分辨率的方法和设备

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9300977B2 (en) * 2013-10-02 2016-03-29 Amlogic Co., Ltd. Methods for encoding motion vectors
US20200014945A1 (en) * 2018-07-08 2020-01-09 Mellanox Technologies, Ltd. Application acceleration
US11252464B2 (en) 2017-06-14 2022-02-15 Mellanox Technologies, Ltd. Regrouping of video data in host memory
US12058309B2 (en) * 2018-07-08 2024-08-06 Mellanox Technologies, Ltd. Application accelerator
US12238273B2 (en) 2019-12-03 2025-02-25 Mellanox Technologies, Ltd Video coding system
US12339902B2 (en) 2021-10-05 2025-06-24 Mellanox Technologies, Ltd Hardware accelerated video encoding

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10215457A (ja) * 1997-01-30 1998-08-11 Toshiba Corp 動画像復号方法及び動画像復号装置
JPH10276439A (ja) * 1997-03-28 1998-10-13 Sharp Corp 領域統合が可能な動き補償フレーム間予測方式を用いた動画像符号化・復号化装置
JP2000115776A (ja) * 1998-09-30 2000-04-21 Victor Co Of Japan Ltd 動き補償画像符号化装置・復号化装置及びその方法
JP2006520551A (ja) * 2003-03-03 2006-09-07 モービリゲン コーポレーション メモリワードアレイ構成およびメモリアクセス予測結合
WO2008117440A1 (ja) * 2007-03-27 2008-10-02 Fujitsu Limited デコード方法及びデコード装置
JP2009182792A (ja) * 2008-01-31 2009-08-13 Oki Electric Ind Co Ltd 動きベクトル検出装置及び方法、動画像符号化装置及び方法、並びに、動画像復号化装置及び方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050045746A (ko) * 2003-11-12 2005-05-17 삼성전자주식회사 계층 구조의 가변 블록 크기를 이용한 움직임 추정 방법및 장치
KR101590511B1 (ko) * 2009-01-23 2016-02-02 에스케이텔레콤 주식회사 움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법
US8731067B2 (en) * 2011-08-31 2014-05-20 Microsoft Corporation Memory management for video decoding

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10215457A (ja) * 1997-01-30 1998-08-11 Toshiba Corp 動画像復号方法及び動画像復号装置
JPH10276439A (ja) * 1997-03-28 1998-10-13 Sharp Corp 領域統合が可能な動き補償フレーム間予測方式を用いた動画像符号化・復号化装置
JP2000115776A (ja) * 1998-09-30 2000-04-21 Victor Co Of Japan Ltd 動き補償画像符号化装置・復号化装置及びその方法
JP2006520551A (ja) * 2003-03-03 2006-09-07 モービリゲン コーポレーション メモリワードアレイ構成およびメモリアクセス予測結合
WO2008117440A1 (ja) * 2007-03-27 2008-10-02 Fujitsu Limited デコード方法及びデコード装置
JP2009182792A (ja) * 2008-01-31 2009-08-13 Oki Electric Ind Co Ltd 動きベクトル検出装置及び方法、動画像符号化装置及び方法、並びに、動画像復号化装置及び方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016031253A1 (ja) * 2014-08-28 2016-03-03 日本電気株式会社 ブロックサイズ決定方法及びプログラム記録媒体
JPWO2016031253A1 (ja) * 2014-08-28 2017-06-15 日本電気株式会社 ブロックサイズ決定方法及びプログラム
US10356403B2 (en) 2014-08-28 2019-07-16 Nec Corporation Hierarchial video code block merging using depth-dependent threshold for block merger
CN113439441A (zh) * 2019-02-15 2021-09-24 北京字节跳动网络技术有限公司 基于块分割的变换参数推导
CN114128263A (zh) * 2019-08-12 2022-03-01 北京达佳互联信息技术有限公司 用于视频编解码中的自适应运动矢量分辨率的方法和设备

Also Published As

Publication number Publication date
JPWO2013031071A1 (ja) 2015-03-23
US20140177726A1 (en) 2014-06-26

Similar Documents

Publication Publication Date Title
WO2013031071A1 (ja) 動画像復号装置、動画像復号方法、及び集積回路
US11252436B2 (en) Video picture inter prediction method and apparatus, and codec
TWI856066B (zh) 解碼器側運動向量精緻化之限制
US10630992B2 (en) Method, application processor, and mobile terminal for processing reference image
US10284853B2 (en) Projected interpolation prediction generation for next generation video coding
US20200177877A1 (en) Video image encoding and decoding method, apparatus, and device
CN104169971B (zh) 使用非线性缩放和自适应源块大小的分层运动估计
CN107318025B (zh) 图像处理设备和方法
KR20250020682A (ko) 인터 예측 방법 및 장치
CN113259661A (zh) 视频解码的方法和装置
US20150281716A1 (en) Content adaptive, characteristics compensated prediction for next generation video
EP2234404A1 (en) Image encoding device, image decoding device, image encoding method, and image decoding method
US20090141808A1 (en) System and methods for improved video decoding
US20140105295A1 (en) Moving image encoding method and apparatus, and moving image decoding method and apparatus
US20190052877A1 (en) Adaptive in-loop filtering for video coding
WO2011078003A1 (ja) 画像処理装置および方法、並びにプログラム
CN102918839A (zh) 用于视频编码的功率高效的运动估计技术
JP7655661B2 (ja) インター予測の方法および装置
JP2022535859A (ja) Mpmリストを構成する方法、クロマブロックのイントラ予測モードを取得する方法、および装置
US20070171977A1 (en) Moving picture coding method and moving picture coding device
US20120121019A1 (en) Image processing device and method
JPH11239352A (ja) 画像処理方法及び画像処理装置、並びにデータ記憶媒体
KR20120088372A (ko) 고화질 영상을 위한 무손실 영상 압축방법, 압축 해제방법 및 이를 적용한 전자기기
JP7712988B2 (ja) Mpmリストを構成する方法、クロマブロックのイントラ予測モードを取得する方法、および装置
US12120356B2 (en) Systems and methods for video decoding with partial-block deblocking filtering for use by constrained directional enhancement filter

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12826850

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013531013

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12826850

Country of ref document: EP

Kind code of ref document: A1