WO2009122659A1 - 画像復号装置、画像復号方法、集積回路および受信装置 - Google Patents

画像復号装置、画像復号方法、集積回路および受信装置 Download PDF

Info

Publication number
WO2009122659A1
WO2009122659A1 PCT/JP2009/001153 JP2009001153W WO2009122659A1 WO 2009122659 A1 WO2009122659 A1 WO 2009122659A1 JP 2009001153 W JP2009001153 W JP 2009001153W WO 2009122659 A1 WO2009122659 A1 WO 2009122659A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
pixels
motion compensation
pixel
reference block
Prior art date
Application number
PCT/JP2009/001153
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 パナソニック株式会社
Priority to EP09726840.3A priority Critical patent/EP2252064B1/en
Priority to US12/934,134 priority patent/US20110032993A1/en
Priority to JP2010505309A priority patent/JP5367696B2/ja
Priority to CN2009801109051A priority patent/CN101981935B/zh
Publication of WO2009122659A1 publication Critical patent/WO2009122659A1/ja

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
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Definitions

  • the present invention relates to an image decoding apparatus, an image decoding method, an integrated circuit, and a receiving apparatus that decode encoded data obtained by moving image encoding accompanied by motion prediction between images.
  • Non-Patent Document 1 In recent years, in order to compress moving image data, the MPEG2 standard (Non-Patent Document 1) or the H.264 standard is used. An image encoding technique based on the H.264 (Non-Patent Document 2) standard is widely used. In these image coding techniques, motion prediction (hereinafter also referred to as motion compensation) is performed on at least a part of a plurality of pictures constituting a moving image.
  • motion prediction hereinafter also referred to as motion compensation
  • Motion prediction is a process of detecting a motion vector from a processing target picture and a reference picture and generating a predicted picture.
  • the reference picture is a picture referred to in motion prediction.
  • the reference picture is a picture that is temporally before or after the picture to be processed.
  • motion information (information specifying a reference picture, motion vector, etc.) obtained by motion prediction and information such as a difference from a prediction result are encoded.
  • Encoding is performed in units of divided blocks by dividing a picture into rectangular regions (hereinafter referred to as blocks) having a prescribed number of pixels.
  • Decoding of moving image data encoded by the image encoding technique with motion prediction as described above is performed in the following procedure.
  • motion information is extracted from moving image data.
  • a block in the reference picture (hereinafter referred to as a prediction pixel block) is specified from the extracted motion information.
  • the difference between the prediction pixel block and the prediction result in the moving image data is added and output as a decoding result.
  • the encoding efficiency of these image encoding techniques depends on a method of encoding the predicted motion vector as motion information.
  • encoding efficiency is improved by introducing a motion vector with non-integer precision.
  • a pixel located at a non-integer coordinate is generated from a pixel located at an integer coordinate by some interpolation process. Then, a process for generating motion prediction and a prediction pixel block is performed using an image generated by the interpolation process (hereinafter referred to as an interpolated image).
  • a pixel located at an integer coordinate is referred to as an integer pixel.
  • non-integer coordinates are also referred to as decimal coordinates.
  • a pixel located at a decimal coordinate is referred to as a decimal pixel.
  • non-integer precision is also referred to as decimal precision.
  • motion prediction motion compensation
  • 1/2 pixel accuracy the coordinates where the value after the decimal point is expressed by 1/2 (0.5) are referred to as 1/2 precision coordinates.
  • a pixel located at a 1/2 precision coordinate is referred to as a 1/2 coordinate pixel.
  • the value of 1/2 coordinate pixel is obtained by averaging the values of at least two integer pixels adjacent to the 1/2 coordinate pixel.
  • the size of horizontal m (natural number) pixels and vertical n (natural number) pixels is represented as “m ⁇ n”.
  • m ⁇ n For example, a block having a size of 4 pixels horizontally and 8 pixels vertically is expressed as a 4 ⁇ 8 block.
  • a block for which motion prediction (motion compensation) is performed is referred to as a motion compensation block.
  • an image used for motion prediction (motion compensation) is referred to as a reference image.
  • a block indicating an image of a partial region of a reference picture and indicating all or a part of the reference image is referred to as a reference block.
  • an integer pixel in a reference block in the MPEG2 standard is referred to as an MP2 block integer pixel.
  • FIG. 1 is a diagram showing 1 ⁇ 2 coordinate pixels (decimal pixels) generated by interpolation processing in the reference block 101 in the MPEG2 standard.
  • FIG. 1 shows a 16 ⁇ 16 reference block 101 as an example.
  • the reference block 101 includes a plurality of integer pixels 102.
  • a half coordinate pixel 103 is generated from at least two integer pixels 102 by interpolation processing.
  • a plurality of numbers arranged in one line at the top of the reference block 101 indicate horizontal (rightward) coordinate values (hereinafter referred to as horizontal coordinate values).
  • a plurality of numbers arranged in one column on the left side of the reference block 101 indicate coordinate values in the vertical direction (downward) (hereinafter referred to as vertical coordinate values).
  • the horizontal direction and the vertical direction are referred to as the row direction and the column direction, respectively.
  • horizontal coordinates and vertical coordinates are referred to as horizontal coordinates and vertical coordinates, respectively.
  • the coordinates are indicated by (x (horizontal coordinate value), y (vertical coordinate value)).
  • the coordinates (3, 5) indicate that the horizontal coordinate value is “3” and the vertical coordinate value is “5”.
  • the horizontal coordinate value and the vertical coordinate value are also simply referred to as a horizontal coordinate and a vertical coordinate, respectively.
  • MP2 non-block pixels pixels arranged outside the reference block in the MPEG2 standard are referred to as MP2 non-block pixels.
  • an MP2 non-block pixel necessary for generating a 1 ⁇ 2 coordinate pixel in a reference block in the MPEG2 standard is referred to as an MP2 additional pixel.
  • the MP2 non-block pixel 104 is an MP2 additional pixel.
  • the coordinates of the upper left pixel in the reference block 101 are (0, 0).
  • the coordinates of the lower right pixel in the previous block 101 are (15.5, 15.5).
  • the value of the 1 ⁇ 2 coordinate pixel in the reference block 101 is obtained by averaging the values of at least two integer pixels adjacent to the 1 ⁇ 2 coordinate pixel. Therefore, in order to generate a plurality of 1 ⁇ 2 coordinate pixels 103 whose horizontal coordinate value is “15.5” and whose vertical coordinate values are “0” to “15.5”, the reference block 101 A plurality of additional MP2 pixels arranged in the outer right column are required.
  • a reference block A plurality of additional MP2 pixels arranged in the lower row outside 101 are required.
  • a 17 ⁇ 17 reference block is required.
  • the size of the motion compensation block used in the MPEG2 process may be 16 ⁇ 8. In this case, a 17 ⁇ 9 reference block is required.
  • H.264 In the H.264 standard processing, motion prediction (motion compensation) can be performed with 1/4 pixel accuracy.
  • H. In the H.264 process among the pixels located at the decimal coordinates, the value of the pixel located at the 1/2 precision coordinate (1/2 coordinate pixel) is 6 using the 3 pixels on both sides of the pixel (6 pixels in total). It is obtained by tap filter calculation.
  • a pixel (1/4 coordinate pixel) located at a decimal coordinate (1/4 precision coordinate) other than a 1/2 coordinate pixel is a pixel adjacent to the pixel and is an integer coordinate or 1 / It is generated by averaging the values of at least two pixels located at two precision coordinates.
  • H The integer pixels in the reference block in the H.264 standard are referred to as H264 block integer pixels.
  • FIG. 2 is a diagram illustrating a decimal pixel generated by interpolation processing in a reference block 201 in the H.264 standard.
  • FIG. 2 is a diagram illustrating a decimal pixel generated by interpolation processing in a reference block 201 in the H.264 standard.
  • FIG. 2 shows a 4 ⁇ 4 reference block 201 as an example.
  • the reference block 201 includes a plurality of integer pixels 202.
  • a half coordinate pixel 203 as a decimal pixel is generated from at least two integer pixels 202 by interpolation processing.
  • a 1 ⁇ 4 coordinate pixel 204 is generated from at least two pixels located at integer coordinates or 1 ⁇ 2 precision coordinates by interpolation processing.
  • a plurality of numbers arranged in one row at the top of the reference block 201 indicate horizontal coordinate values.
  • a plurality of numbers arranged in one column on the left side of the reference block 201 indicate vertical coordinate values.
  • H. Pixels arranged outside the reference block in the H.264 standard are referred to as H264 non-block pixels.
  • H. A pixel outside the H264 block necessary for generating a 1 ⁇ 2 coordinate pixel in the reference block in the H.264 standard is referred to as an H264 additional pixel.
  • the H264 non-block pixel 205 is an H264 additional pixel.
  • the coordinates of the upper left pixel in the reference block 201 are (0, 0), and the reference block 201
  • the coordinates of the lower right pixel are (3.75, 3.75).
  • the 1/2 coordinate pixel in the reference block 201 is generated by a 6-tap filter using 3 pixels on both sides of the 1/2 coordinate pixel (6 pixels in total). Therefore, in order to generate a plurality of 1 ⁇ 2 coordinate pixels 203 having a horizontal coordinate value of “0.5” and a vertical coordinate value of “0” to “3.5”, the reference block 201 A plurality of H264 additional pixels arranged in the outer left two columns are required.
  • the reference block 201 In order to generate a plurality of 1 ⁇ 2 coordinate pixels 203 having a horizontal coordinate value of “0” to “3.5” and a vertical coordinate value of “0.5”, the reference block 201 A plurality of H264 additional pixels arranged in the outer two upper rows are required.
  • the reference block 201 In order to generate a plurality of 1 ⁇ 2 coordinate pixels 203 having a horizontal coordinate value of “3.5” and a vertical coordinate value of “0” to “3.5”, the reference block 201 A plurality of H264 additional pixels arranged in the outer right three columns are required. In order to generate a plurality of 1 ⁇ 2 coordinate pixels 203 whose horizontal coordinate values are “0” to “3.5” and whose vertical coordinate values are “3.5”, the reference block 201 is used. A plurality of H264 additional pixels arranged in the lower three outer rows are required. Note that the H264 additional pixel is not necessary to generate the 1 ⁇ 4 coordinate pixel 204.
  • the block is larger by two pixels on the left side and the upper side than the reference block 201, and on the right side and the lower side of the reference block 201.
  • a plurality of pixels corresponding to a block larger by 3 pixels are required.
  • H. In the H.264 process when motion prediction is performed with 1/4 pixel accuracy using a 4 ⁇ 4 motion compensation block, a 9 ⁇ 9 reference image is required.
  • the size of the motion compensation block used in the H.264 processing may be 16 ⁇ 16, 16 ⁇ 8, 8 ⁇ 16, 8 ⁇ 8, 8 ⁇ 4, and 4 ⁇ 8.
  • 21 ⁇ 21, 21 ⁇ 13, 13 ⁇ 21, 13 ⁇ 13, respectively corresponding to motion compensation blocks of 16 ⁇ 16, 16 ⁇ 8, 8 ⁇ 16, 8 ⁇ 8, 8 ⁇ 4 and 4 ⁇ 8, 13 ⁇ 9 and 9 ⁇ 13 reference images are required.
  • H. In the H.264 standard process a pixel located at a decimal coordinate is generated by a 6-tap filter. Therefore, H.H. In the H.264 standard process, the number of pixels required for motion prediction (motion compensation) is significantly increased as compared with the MPEG2 standard process.
  • MPEG2 standard processing or H.264 standard As described above, MPEG2 standard processing or H.264 standard.
  • H.264 standard processing when motion prediction (motion compensation) is performed with decimal precision, it is necessary to generate a pixel located at a decimal coordinate. Therefore, MPEG2 standard processing or H.264 standard.
  • motion prediction (motion compensation) when motion prediction (motion compensation) is performed with decimal precision, a reference image having a larger size is required for motion prediction (motion compensation).
  • Patent Document 1 In order to solve the above problems, methods shown in Patent Document 1 and Patent Document 2 have been proposed.
  • Patent Document 1 discloses a technique (hereinafter referred to as Conventional Technology A) that generates a decimal pixel without acquiring all the pixels outside the reference block necessary for generating the decimal pixel. That is, in the related art A, not all pixels necessary for motion compensation are acquired.
  • Conventional Technology A a technique that generates a decimal pixel without acquiring all the pixels outside the reference block necessary for generating the decimal pixel. That is, in the related art A, not all pixels necessary for motion compensation are acquired.
  • All pixels that are not acquired outside the reference block are, for example, a plurality of pixels arranged in the rightmost column and a plurality of pixels arranged in one row at the lower end shown in FIG. Further, all the pixels that are not acquired outside the reference block are, for example, a plurality of pixels arranged in the leftmost two columns, a plurality of pixels arranged in the rightmost three columns, a plurality of pixels arranged in the uppermost two columns, and the lower end shown in FIG. A plurality of pixels arranged in three rows.
  • a fractional pixel is generated by interpolating pixels outside the reference destination block that have not been acquired using only the pixels within the acquired reference destination block.
  • a decimal pixel is generated by a pixel different from a pixel outside the original reference block. Therefore, in the related art A, an error is included in an image obtained by the encoding process or the decoding process. When the number of bits of a pixel is n, this error reaches ⁇ 2 to the (n ⁇ 1) th power. For this reason, image quality deterioration that cannot be ignored occurs in an image obtained by encoding or decoding.
  • Patent Document 2 discloses a technique (hereinafter referred to as Conventional Technology B) in which a buffer for temporarily storing pixels acquired from a reference picture is provided and motion compensation is performed without re-acquiring pixels already stored in the buffer. ing.
  • Conventional Technology B a technique in which a buffer for temporarily storing pixels acquired from a reference picture is provided and motion compensation is performed without re-acquiring pixels already stored in the buffer. ing.
  • the amount of pixels acquired from the reference picture is reduced by using the fact that the pixels once acquired are likely to be reused in motion compensation of other blocks.
  • the present invention has been made to solve the above-described problems, and an object of the present invention is to prevent the image quality from always deteriorating and to perform efficient decoding processing. It is to provide an image decoding device or the like.
  • an image decoding apparatus is an apparatus that decodes encoded data obtained by encoding a moving image by a decoding process involving motion compensation.
  • An image decoding apparatus includes an image memory that stores a reference picture that is a target of motion compensation, an image acquisition unit that acquires an image of a partial area of the reference picture from an image memory, and a reference block A determination unit that determines whether or not an additional pixel that is a pixel other than a plurality of pixels constituting the image to be displayed and is necessary for motion compensation is determined, and the determination unit determines that an additional pixel is necessary If it is, an interpolation process for generating one or more additional pixels is performed, a reference image used for motion compensation is generated from the generated one or more additional pixels and a reference block, and the reference image is output. When the determination unit determines that an additional pixel is not necessary, the interpolation unit outputs an image indicated by the reference block as a reference image, and a motion compensation unit performs motion compensation
  • an additional pixel that is a pixel other than a plurality of pixels constituting the image indicated by the reference block and is necessary for motion compensation is necessary.
  • an interpolation process for generating one or more additional pixels is performed, and motion compensation is performed from the generated one or more additional pixels and at least a part of the image indicated by the reference block.
  • a reference image to be used is generated, and the reference image is output.
  • motion compensation is performed using the output reference image.
  • motion compensation is performed without generating an additional pixel. If it is determined that an additional pixel is necessary, an additional pixel is generated and the generated additional pixel is used. Motion compensation. In other words, since the additional pixel is generated only when the additional pixel is necessary, the process of generating the additional pixel is not performed when the additional pixel is not necessary, so that efficient decoding processing can be performed.
  • the image acquisition unit may acquire the reference block by accessing the image memory in accordance with the access restriction as the specification of the image memory.
  • the access restriction is a restriction for obtaining a number of pixels equal to or greater than the number of pixels constituting the image to be acquired when the image to be acquired is acquired from the image memory.
  • Reference block indicating an image composed of a number of pixels equal to or greater than the number of pixels constituting the image to be acquired by accessing the image memory in accordance with access restrictions in order to acquire the image to be acquired from the image memory May be obtained.
  • the reference block indicates a larger number of pixels than the number of pixels constituting the image to be acquired, the probability that it is determined that an additional pixel is unnecessary increases. As a result, the probability that an interpolation process for generating an additional pixel is performed is reduced. Therefore, more efficient decoding processing can be performed.
  • the interpolation unit may perform an interpolation process for generating one or more additional pixels by using a part of a plurality of pixels constituting the image indicated by the reference block.
  • motion compensation may be performed with decimal pixel accuracy.
  • the encoded data may be data encoded according to the MPEG2 standard.
  • the interpolation unit adds a plurality of pixels arranged in one column at the end in the horizontal direction to a plurality of additional pixels arranged in the horizontal row in the image indicated by the reference block in at least a part of the image indicated by the reference block. Interpolation processing for pixels may be performed.
  • motion compensation may be performed with decimal pixel accuracy in the horizontal direction of the image.
  • the interpolation unit adds a plurality of pixels arranged in one row at the end in the vertical direction to a plurality of additional pixels arranged in one vertical row of the image indicated by the reference block in at least a part of the image indicated by the reference block. Interpolation processing for pixels may be performed.
  • motion compensation may be performed with decimal pixel accuracy in the vertical direction of the image.
  • the encoded data is H.264. It may be data encoded by the H.264 standard.
  • the interpolation unit converts a plurality of pixels arranged in one column at the end in the horizontal direction into one horizontal row or two horizontal rows of the image indicated by the reference block in at least a part of the image indicated by the reference block. Interpolation processing may be performed with a plurality of additional pixels lined up.
  • motion compensation may be performed with decimal pixel accuracy in the horizontal direction of the image.
  • the interpolation unit converts a plurality of pixels arranged in one row at the end in the vertical direction into one vertical row or two vertical rows of the image indicated by the reference block in at least a part of the image indicated by the reference block. Interpolation processing may be performed with a plurality of additional pixels lined up.
  • motion compensation may be performed with decimal pixel accuracy in the vertical direction of the image.
  • An image decoding method includes an image memory that decodes encoded data obtained by encoding a moving image by a decoding process including motion compensation and stores a reference picture that is a target of motion compensation.
  • the image decoding apparatus is provided.
  • An image decoding method includes an image acquisition step of acquiring a reference block indicating an image of a partial region of a reference picture from an image memory, and pixels other than a plurality of pixels constituting the image indicated by the reference block, A determination step for determining whether or not an additional pixel that is a pixel necessary for motion compensation is necessary, and an interpolation for generating one or more additional pixels when the determination step determines that an additional pixel is necessary.
  • a reference image used for motion compensation is generated from one or more generated additional pixels and at least a part of the image indicated by the reference block, and the reference image is output. If it is determined that it is not, an interpolation step for outputting at least part of the image indicated by the reference block as a reference image, and performing motion compensation using the output reference image And a come compensation step.
  • An integrated circuit decodes encoded data obtained by encoding a moving image by a decoding process with motion compensation.
  • the integrated circuit includes an image memory that stores a reference picture that is a target of motion compensation, an image acquisition unit that acquires an image of a partial region of the reference picture from an image memory, and the reference block A determination unit that determines whether or not an additional pixel that is a pixel other than a plurality of pixels constituting an image and is necessary for motion compensation is determined, and the determination unit determines that an additional pixel is necessary In this case, an interpolation process for generating one or more additional pixels is performed, and a reference image used for motion compensation is generated from the generated one or more additional pixels and at least a part of the image indicated by the reference block.
  • the reference image is output, and when the determination unit determines that no additional pixel is necessary, an interpolation unit that outputs at least a part of the image indicated by the reference block as a reference image, and the output reference image And a motion compensation unit that performs motion compensation with use.
  • a receiving device receives a bit stream using a broadcast wave.
  • the receiving device outputs a moving image, a data acquisition unit that acquires moving image data from the bitstream, an image decoding unit that acquires moving images by decoding the acquired moving image data through a decoding process with motion compensation, and a moving image An output control unit.
  • the image decoding unit includes an image memory that stores a reference picture that is a target of motion compensation, an image acquisition unit that acquires an image of a partial area of the reference picture from an image memory, and a reference block A determination unit that determines whether or not an additional pixel that is a pixel other than a plurality of pixels constituting the image to be displayed and is necessary for motion compensation is determined, and the determination unit determines that an additional pixel is necessary In such a case, an interpolation process for generating one or more additional pixels is performed, and a reference image used for motion compensation is generated from the generated one or more additional pixels and at least a part of the image indicated by the reference block.
  • the interpolation unit that outputs the reference image and outputs at least a part of the image indicated by the reference block as the reference image when the determination unit determines that the additional pixel is not necessary, and the output reference image And a motion compensation unit for performing motion compensation using.
  • the present invention can also be realized as a program for causing a computer to execute processing performed by the image decoding method.
  • the present invention can also be realized as a computer-readable recording medium that stores the program.
  • the present invention it is possible to prevent the image quality from always deteriorating and to perform an efficient decoding process.
  • FIG. 1 is a diagram showing 1 ⁇ 2 coordinate pixels (decimal pixels) generated by interpolation processing in a reference block in the MPEG2 standard.
  • FIG. 3 is a diagram illustrating a decimal pixel generated by interpolation processing in a reference block in the H.264 standard.
  • FIG. 3 is a configuration diagram of the image decoding apparatus 1000 according to the first embodiment of the present invention.
  • FIG. 4 is a diagram for explaining processing when an image memory serving as a multi-bank image memory is accessed for pixels in a rectangular area.
  • FIG. 5 is a block diagram illustrating an internal configuration of the image acquisition unit.
  • FIG. 6 is a flowchart of the access control process.
  • FIG. 7 is a diagram illustrating a table as an example.
  • FIG. 8 is a diagram for explaining an access target reference block and a minimum access reference block as an example.
  • FIG. 9 is a diagram showing an access pattern of the image memory when 16 pixels are acquired in the horizontal direction from arbitrary coordinates in accordance with the access restriction indicated by the specification A of the image memory.
  • FIG. 10 is a diagram showing an access pattern of the image memory when 16 pixels are acquired in the vertical direction from arbitrary coordinates in accordance with the access restriction indicated by the specification A of the image memory.
  • FIG. 11 is a diagram illustrating an access pattern of the image memory that is necessary when eight pixels are acquired in the vertical direction from arbitrary coordinates in accordance with the access restriction indicated by the specification A of the image memory.
  • FIG. 12 is a diagram for explaining the motion compensation reference block.
  • FIG. 13 is a diagram illustrating reference image generation information as an example.
  • FIG. 14 is a flowchart of the reference image generation process.
  • FIG. 15 is a configuration diagram of an image decoding apparatus 1000A according to the second embodiment of the present invention.
  • FIG. 16 is a block diagram illustrating an internal configuration of the image acquisition unit.
  • FIG. 17 is a flowchart of the access control process A.
  • FIG. 18 is a diagram illustrating a table as an example.
  • FIG. 19 is a diagram showing the specification B of the image memory.
  • FIG. 20 is a diagram illustrating an access pattern of the image memory when four pixels in the horizontal direction are acquired in the access target reference block according to the access restriction indicated by the specification B of the image memory.
  • FIG. 20 is a diagram illustrating an access pattern of the image memory when four pixels in the horizontal direction are acquired in the access target reference block according to the access restriction indicated by the specification B of the image memory.
  • FIG. 21 is a diagram illustrating an access pattern of the image memory when 8 pixels in the horizontal direction are acquired in the access target reference block in accordance with the access restriction indicated by the specification B of the image memory.
  • FIG. 22 is a diagram showing an access pattern of the image memory when 16 pixels in the horizontal direction are acquired in the access target reference block according to the access restriction indicated by the specification B of the image memory.
  • FIG. 23 is a diagram illustrating an access pattern of the image memory in the case where five pixels in the horizontal direction are acquired in the access target reference block according to the access restriction indicated by the specification B of the image memory.
  • FIG. 24 is a diagram illustrating an access pattern of the image memory when 9 pixels in the horizontal direction are acquired in the access target reference block according to the access restriction indicated by the specification B of the image memory.
  • FIG. 25 is a diagram showing an access pattern of the image memory when 17 pixels in the horizontal direction are acquired in the access target reference block according to the access restriction indicated by the specification B of the image memory.
  • FIG. 26 is a diagram illustrating reference image generation information A as an example.
  • FIG. 27 is a flowchart of the reference image generation process A.
  • FIG. 28 is a diagram showing a configuration of a digital broadcast receiving apparatus.
  • FIG. 3 is a configuration diagram of the image decoding apparatus 1000 according to the first embodiment of the present invention.
  • the image decoding apparatus 1000 is an apparatus compatible with the MPEG2 standard. Hereinafter, the operation of the image decoding apparatus 1000 will be described.
  • variable length decoding unit 301 includes a variable length decoding unit 301, an inverse quantization unit 302, an inverse orthogonal transform unit 303, an adder 304, a motion vector calculation unit 305, a motion compensation unit 306, An image acquisition unit 307 and an image memory 308 are provided. Note that the processing performed by each unit other than the image acquisition unit 307 included in the image decoding apparatus 1000 is processing that conforms to the MPEG2 standard, and thus will not be described in detail.
  • the variable length decoding unit 301 acquires a bit stream from the outside. This bit stream is assumed to be encoded data obtained by encoding a moving image based on the MPEG2 standard. Then, the variable length decoding unit 301 decodes the variable length code included in the bit stream.
  • a quantized frequency component value (hereinafter referred to as quantized frequency component information) and motion information are obtained.
  • the motion information indicates a motion compensation type, a number specifying a reference picture (hereinafter referred to as a reference picture number), a motion vector difference value, and the like.
  • the motion compensation type indicates the size of the motion compensation block. Note that the motion compensation type indicates information other than the size of the motion compensation block. However, in the present invention, the motion compensation type indicates the size of the motion compensation block.
  • the motion compensation type is represented as “Ts ⁇ t”.
  • the motion compensation type is represented as “T16 ⁇ 16”.
  • parameters for controlling the image decoding apparatus 1000 are also obtained by decoding, but the parameters are not used in the present invention, and thus description thereof is omitted.
  • variable length decoding unit 301 transmits the quantized frequency component information to the inverse quantization unit 302.
  • variable length decoding unit 301 transmits motion information to the motion vector calculation unit 305.
  • the inverse quantization unit 302 obtains a frequency component by inversely quantizing the received quantized frequency component information.
  • the inverse orthogonal transform unit 303 obtains a pixel value difference by performing inverse orthogonal transform on the obtained frequency component. Then, the inverse orthogonal transform unit 303 transmits the pixel value difference to the adder 304.
  • both inverse quantization and inverse orthogonal transform are processed at a time in units of prescribed macroblocks (16 ⁇ 16 blocks).
  • the motion vector calculation unit 305 obtains a motion compensation type, a reference picture number, and a motion vector from the received motion information. Then, the motion vector calculation unit 305 transmits motion information indicating the motion compensation type, the reference picture number, and the motion vector to the motion compensation unit 306 and the image acquisition unit 307.
  • the image memory 308 stores a plurality of reference pictures that are motion compensation targets.
  • the image memory 308 is a memory that can read an image of a partial region of the reference picture based on a predetermined specification.
  • the image acquisition unit 307 acquires an image of a partial region of the reference picture specified by the reference picture number from the image memory 308 based on the motion compensation type, the reference picture number, and the motion vector indicated by the received motion information. To do. Then, the image acquisition unit 307 transmits the acquired image or an image generated based on the acquired image to the motion compensation unit 306.
  • the motion compensation unit 306 performs motion compensation using the motion compensation type, reference picture number, and motion vector indicated by the received motion information, and the image received from the image acquisition unit 307.
  • a predicted image is obtained by the motion compensation.
  • a predicted image obtained by motion compensation is referred to as a motion compensated predicted image.
  • the motion compensation unit 306 transmits the motion compensated prediction image to the adder 304.
  • the adder 304 obtains a picture (hereinafter referred to as a reproduced picture) by adding the difference between the pixel values received from the inverse orthogonal transform unit 303 and the motion compensated prediction image received from the motion compensation unit 306.
  • the adder 304 outputs the reproduced picture to the outside and stores the reproduced picture in the image memory 308 as a reference picture.
  • an image memory is composed of a plurality of small-capacity memories (hereinafter referred to as memory banks). Access to the image memory is often performed in units of a plurality of pixels. Therefore, by configuring the image memory from a plurality of memory banks, it is possible to improve the access performance for a plurality of pixels within a range that can be accommodated in each memory bank.
  • an image memory composed of a plurality of memory banks is referred to as a multiple bank image memory.
  • the multi-bank image memory improves performance by limiting the width, height, and upper left coordinates of the rectangle when accessing the pixels in the rectangular area in the picture stored in the multi-bank image memory. Often planned. Specifically, the multi-bank image memory limits the coordinates for starting the transfer and the number of pixels to be transferred to an integer multiple of a certain value.
  • FIG. 4 is a diagram for explaining processing when accessing an image memory as a multi-bank image memory to a pixel in a rectangular area.
  • FIG. 4 further shows a specification A of an image memory as a multi-bank image memory.
  • FIG. 4 shows the image memory area 401.
  • the image memory area 401 is a partial memory area in the image memory.
  • the image memory area 401 is a 16 ⁇ 16 memory area as an example.
  • the image memory area 401 is accessed according to “image memory specification A” shown in FIG.
  • a plurality of numbers arranged in one line at the top of the image memory area 401 indicate horizontal coordinate values.
  • a plurality of numbers arranged in one column on the left side of the image memory area 401 indicate vertical coordinate values.
  • FIG. 4 shows an access target block 402 and a minimum access block 403.
  • the access target block 402 is a block corresponding to a memory area to be accessed in the image memory area 401.
  • the size of the access target block 402 is 6 ⁇ 6.
  • the coordinates of the access target block 402 are coordinates (3, 5).
  • the minimum access block 403 is a block corresponding to the minimum area including all the pixels that need to be accessed when accessing all the pixels in the access target block 402 according to the specification A of the image memory to be accessed. .
  • the size of the minimum access block 403 is 12 ⁇ 8.
  • the coordinates of the minimum access block 403 are coordinates (0, 4).
  • the specification A of the image memory shown in FIG. 4 indicates an access restriction that restricts the acquisition start coordinate and the acquisition size to multiples of 4 (0, 4, 8,...) For horizontal access.
  • this access restriction for example, in order to access all the coordinates corresponding to an arbitrary line in the access target block 402, the coordinate whose horizontal coordinate value is “0” in the arbitrary one line is used. Then, it is necessary to access the coordinates whose horizontal coordinate value is “11” in the right direction. That is, in order to access 6 pixels corresponding to an arbitrary row in the access target block 402, it is necessary to access 12 pixels in the horizontal direction.
  • the specification A of the image memory limits the acquisition start coordinates to a multiple of 4 (0, 4, 8,...) For vertical access, and the acquisition size is a multiple of 8 (0, 8, 16,. )) Shows the access restriction.
  • this access restriction for example, in order to access all the coordinates corresponding to an arbitrary column in the access target block 402, the coordinate in which the vertical coordinate value is “4” in the arbitrary one column. It is necessary to access the coordinates whose vertical coordinate value is “11” in the downward direction. That is, in order to access 6 pixels corresponding to an arbitrary column in the access target block 402, it is necessary to access 8 pixels in the vertical direction.
  • motion compensation can be performed with 1/2 pixel accuracy. Therefore, in the MPEG2 standard, when motion compensation is performed with a 1/2 pixel accuracy, it is necessary to generate a 1/2 coordinate pixel. In the following, motion compensation performed with 1/2 pixel accuracy is referred to as 1/2 accuracy motion compensation.
  • the value of the 1 ⁇ 2 coordinate pixel is obtained by averaging the values of at least two integer pixels adjacent to the 1 ⁇ 2 coordinate pixel. That is, the 1 ⁇ 2 coordinate pixel can be generated using at least two integer pixels adjacent to the 1 ⁇ 2 coordinate pixel.
  • the size of the reference block acquired from the reference picture stored in the image memory is one pixel larger in both the horizontal direction and the vertical direction.
  • the data transfer amount for acquiring the reference block from the image memory becomes large. Therefore, in order to process the reference block at a high speed, a high-performance and expensive memory is required, and the cost of an apparatus that performs image encoding and image decoding increases.
  • a general image memory needs to access a pixel in a rectangular area larger than the certain rectangular area.
  • the above-described MP2 additional pixels necessary for generating half-coordinate pixels are not intentionally acquired, and access indicated by the specifications of the image memory is performed.
  • an MP2 additional pixel is acquired unintentionally as a result of accessing the image memory in accordance with the restriction, a process for using the acquired MP2 additional pixel (hereinafter referred to as process NA) is performed.
  • the MP2 additional pixels are, for example, a plurality of pixels arranged in the rightmost column and a plurality of pixels arranged in the lowermost row in FIG.
  • the MP2 additional pixels necessary for the 1/2 precision motion compensation may not be acquired depending on the position and size of the rectangular area (block) to be accessed in the image memory. Therefore, in the present embodiment, the size of a rectangular area (block) that is actually accessed to the image memory is obtained, and when the MP2 additional pixel that is necessary for the 1/2 precision motion compensation cannot be acquired, the acquired pixel Is used to generate a 1 ⁇ 2 coordinate pixel.
  • a plurality of pixels arranged in the rightmost column and a plurality of pixels arranged in the lowermost row are copied as they are to obtain MP2 additional pixels.
  • the method of generating a 1 ⁇ 2 coordinate pixel using only the acquired pixels is not limited to the above method, and various other methods may be used.
  • each unit (variable length decoding unit 301, inverse quantization unit 302, inverse orthogonal transform unit 303, adder 304, motion vector calculation unit 305, motion other than the image acquisition unit 307 shown in FIG.
  • the compensator 306) operates as defined by the MPEG2 standard. Therefore, detailed description of each part other than the image acquisition part 307 shown in FIG. 3 is not performed.
  • the image memory 308 stores a plurality of reference pictures as described above.
  • the image memory 308 performs access restriction indicated by the above-described image memory specification A. Note that the image memory 308 can be accessed with the same specifications regardless of whether the image processing method is the interlace method or the progressive method, and the parity to be accessed is designated by the reference picture number.
  • the image acquisition unit 307 is specified by the reference picture number used for motion compensation from the image memory 308 based on the motion compensation type, the reference picture number, and the motion vector transmitted by the motion vector calculation unit 305. An image of a partial area of the reference picture is acquired.
  • the image acquisition unit 307 transmits the acquired image or an image generated based on the acquired image to the motion compensation unit 306 as a reference image used for motion compensation.
  • FIG. 5 is a block diagram showing an internal configuration of the image acquisition unit 307.
  • the image acquisition unit 307 includes an image specifying information generation unit 501, an image memory access control unit 502, and an unacquired pixel interpolation unit 503.
  • the image specifying information generating unit 501 is information for specifying a reference image required for motion compensation performed by the motion compensating unit 306 based on the motion compensation type, the reference picture number, and the motion vector indicated by the received motion information. (Hereinafter referred to as reference image specifying information).
  • the reference image specifying information indicates the motion compensation type, the reference picture number, the upper left coordinates of the reference image in the memory, and the size of the reference image.
  • the image specifying information generating unit 501 generates reference image specifying information on the assumption that the motion compensating unit 306 performs motion compensation in accordance with the MPEG2 standard. Therefore, the generated reference image specifying information is information for specifying the reference image including the above-described MP2 additional pixels necessary for generating the 1 ⁇ 2 coordinate pixel.
  • the image specifying information generation unit 501 transmits the generated reference image specifying information to the image memory access control unit 502.
  • the image memory access control unit 502 reads the reference block according to the access restriction indicated by the specification A of the image memory 308 based on the reference image specifying information transmitted by the image specifying information generating unit 501. And the generated read command is transmitted to the image memory 308. In the present embodiment, the read command is generated so as not to intentionally acquire the above-described MP2 additional pixel.
  • the image memory access control unit 502 can acquire the above-described MP2 additional pixel from the image memory 308 based on the size of the reference block specified by the generated read command. Determine whether. Then, the image memory access control unit 502 generates MP2 additional pixel interpolation information based on the determination as to whether or not the MP2 additional pixel can be acquired, and sends the generated MP2 additional pixel interpolation information to the unacquired pixel interpolation unit 503. Send.
  • the MP2 additional pixel interpolation information is information indicating whether or not the interpolation of the MP2 additional pixel is necessary.
  • the operation of the image memory access control unit 502 does not comply with the MPEG2 standard. Therefore, details of the operation of the image memory access control unit 502 will be described below.
  • processing performed by the image memory access control unit 502 is referred to as access control processing.
  • each reference picture storage area is assumed to have the same size as the reference picture (for example, 1920 ⁇ 1080). That is, the coordinates (0, 0) of each reference picture storage area correspond to the upper left coordinates of the corresponding reference picture.
  • FIG. 6 is a flowchart of the access control process.
  • step S600 the image memory access control unit 502 acquires the above-described reference image specifying information from the image specifying information generating unit 501.
  • step S601 an access target block specifying process is performed.
  • the image memory access control unit 502 sets the size of a reference block to be accessed (hereinafter referred to as an access target reference block) based on the motion compensation type indicated by the acquired reference image specifying information. Identify.
  • a reference block that is a part of a reference picture stored in a memory and is an access target is referred to as an access target reference block.
  • the correspondence relationship between the motion compensation type and the size of the access target block is shown in the following table RT100.
  • FIG. 7 is a diagram showing a table RT100 as an example.
  • the table RT100 two types of motion compensation types “T16 ⁇ 16” and “T16 ⁇ 8” are shown.
  • motion vector accuracy indicates the accuracy of the motion vector in the horizontal direction or the vertical direction.
  • “Integer” in the “motion vector accuracy” item indicates that the value of the motion vector in the corresponding direction is an integer.
  • the “decimal” in the “motion vector accuracy” item indicates that the value of the motion vector in the corresponding direction is a decimal.
  • “required reference image size” is the size of a reference image necessary for motion compensation according to the MPEG2 standard.
  • the “necessary reference image size” is the size of the reference image indicated by the reference image specifying information.
  • the “necessary reference image size” is determined by a combination of one of two types of motion compensation types and one of four types of motion vector accuracy.
  • the “access target reference block size” is the size of the access target reference block.
  • the motion compensation type is used.
  • the access target block size is specified.
  • the image memory access control unit 502 sets the size of the motion compensation block specified by the motion compensation type indicated by the acquired reference image specifying information as the access target.
  • the reference block size is used. For example, when the motion compensation type is “T16 ⁇ 16”, the size of the motion compensation block is 16 ⁇ 16. In this case, the access target reference block size is specified as 16 ⁇ 16.
  • the image memory access control unit 502 sets the upper left corner coordinates of the reference image indicated by the acquired reference image specifying information as the upper left corner coordinates of the access target reference block.
  • the image memory access control unit 502 stores information on the specification A of the image memory 308 in advance.
  • the image memory access control unit 502 may acquire the specification A information from other parts (for example, a memory, a circuit, etc.).
  • step S602 minimum access reference block identification processing is performed.
  • the image memory access control unit 502 specifies the reference picture stored in the image memory 308 in accordance with the access restriction indicated by the specification A of the image memory 308.
  • the minimum access reference block is specified.
  • the reference picture to be processed which is stored in the image memory 308, is a picture specified by the reference picture number indicated by the reference picture specifying information.
  • the access target reference block corresponds to, for example, the access target block 402 in FIG.
  • the minimum access reference block corresponds to, for example, the minimum access block 403 in FIG.
  • FIG. 8 is a diagram for explaining an access target reference block and a minimum access reference block as an example.
  • a reference picture P400 is a reference picture stored in a reference picture storage area of an image memory (for example, the image memory 308).
  • an access target reference block B420 and a minimum access reference block B410 are arranged.
  • the access target reference block B420 is a part of the reference picture P400, and is a block indicating an image in the access target reference block B420.
  • the minimum access reference block B410 is a part of an image of the reference picture P400 and indicates an image in the minimum access reference block B410.
  • the size and position of the minimum access reference block B410 are respectively the size of the access target reference block B420 and the size of the access target reference block B420. It becomes the same as the position. For example, when the upper left coordinates of the access target reference block B420 are (16, 16), the size and position of the minimum access reference block B410 are the same as the size and position of the access target reference block B420, respectively. Become.
  • the size of the minimum access reference block B410 is not less than the size of the access target block B420. That is, the minimum access reference block B410 includes an access target reference block B420.
  • step S601 there are two types of access target reference block sizes identified by the processing in step S601: 16 ⁇ 16 and 16 ⁇ 8.
  • the horizontal access to the image memory is always performed with a width of 16 pixels.
  • the acquisition start coordinate (the coordinate at the left end of the block) is limited to a multiple of 4
  • the acquisition size (the size of the minimum access reference block) is limited to a multiple of 4.
  • the horizontal acquisition start coordinate is also an arbitrary value.
  • FIG. 9 is a diagram showing an access pattern of the image memory when 16 pixels are acquired in a horizontal direction from arbitrary coordinates in accordance with the access restriction indicated by the above-described specification A of the image memory.
  • “Too much left-end horizontal coordinate” means that the left-end horizontal coordinate of the access target block is divided by four.
  • the above-mentioned specification A of the image memory limits the acquisition start coordinates in the horizontal direction by a multiple of 4 in the horizontal memory access. For this reason, as shown in FIG. 9, the access pattern to the image memory changes depending on the left end horizontal coordinate (any of 0, 1, 2, 3).
  • horizontal direction additional pixels are MP2 additional pixels in the horizontal direction with respect to the reference block.
  • “necessity of additional pixels in the horizontal direction” indicates whether or not generation (interpolation generation) of additional pixels in the horizontal direction is necessary.
  • the number of pixels to be acquired is the number of pixels in the horizontal direction of the access target reference block.
  • image memory access refers to all pixels in the horizontal direction of the minimum access reference block that are actually accessed.
  • step S601 there are two types of access target reference block sizes identified by the processing in step S601: 16 ⁇ 16 and 16 ⁇ 8.
  • 16 ⁇ 16 and 16 ⁇ 8 there are two types of pixels, 16 and 8, that are to be accessed in the vertical direction with respect to the image memory.
  • the acquisition start coordinate (the coordinate at the top of the block) is limited to a multiple of 4
  • the acquisition size (the minimum access block size) is limited to a multiple of 8. It shows that.
  • the acquisition start coordinate in the vertical direction is also an arbitrary value.
  • FIG. 10 is a diagram showing an access pattern of the image memory when 16 pixels are acquired from an arbitrary coordinate in the vertical direction in accordance with the access restriction indicated by the above-described specification A of the image memory.
  • FIG. 11 is a diagram showing an access pattern of the image memory required when 8 pixels are acquired in the vertical direction from arbitrary coordinates in accordance with the access restriction indicated by the above-mentioned specification A of the image memory.
  • “too much of the upper end vertical coordinate” means that the vertical coordinate of the upper end of the access target block to be acquired is divided by 4.
  • “vertical direction additional pixels” are MP2 additional pixels in the vertical direction with respect to the reference block.
  • the number of pixels to be acquired is the number of pixels in the vertical direction of the access target reference block.
  • image memory access refers to all pixels in the vertical direction of the minimum access reference block that are actually accessed.
  • “Necessity of additional pixels in the vertical direction” indicates whether or not generation (interpolation generation) of additional pixels in the vertical direction is necessary.
  • the specification A in FIG. 4 limits the acquisition start coordinates in the vertical direction by a multiple of 4 even in the vertical access as in the horizontal direction. Therefore, as shown in FIGS. 10 and 11, the access pattern changes depending on the upper end vertical coordinate (any of 0, 1, 2, 3).
  • the acquisition size is limited to a multiple of 8, and therefore, access for 24 pixels is necessary to acquire 16 pixels.
  • the acquisition size is limited to a multiple of 8, and therefore, access for 16 pixels is necessary to acquire 8 pixels.
  • the image memory access control unit 502 specifies the minimum access reference block according to the access restriction indicated by the specification A of the image memory 308.
  • the image memory access control unit 502 includes the size and upper-left corner coordinates of the reference block to be accessed, the specification A of the image memory 308, and a plurality of access patterns shown in FIGS. Accordingly, the coordinates of the upper left corner of the minimum access reference block and the size of the minimum access reference block are calculated.
  • the image memory access control unit 502 generates minimum access reference destination block information indicating the calculated upper left coordinates of the minimum access reference destination block and the size of the minimum access reference destination block.
  • the size of the access target reference block is 16 ⁇ 16, and the upper left coordinates of the access target reference block are (16, 17).
  • the horizontal coordinate value “16” is a multiple of 4 at the coordinates (16, 17)
  • the horizontal coordinate value of the minimum access reference block is calculated as 16 according to the specification A in FIG.
  • the horizontal size of the access target reference block is “16”
  • the horizontal size of the minimum access reference block is calculated according to the access pattern shown in FIG. Specifically, since the horizontal coordinate value “16” corresponds to “0” in the left end horizontal coordinate in FIG. 9, the horizontal size of the minimum access reference block is calculated as 16 pixels.
  • the horizontal coordinate value of the minimum access reference block is smaller than the vertical coordinate value “17” according to the specification A in FIG. And 16 which is a multiple of 4.
  • the vertical size of the access target reference block is “16”
  • the horizontal size of the minimum access reference block is calculated according to the access pattern shown in FIG. Specifically, since the vertical coordinate value “17” corresponds to “1” of the upper end vertical coordinate in FIG. 10, the vertical size of the minimum access reference block is calculated as 24 pixels.
  • the coordinates (16, 16) of the upper left corner of the minimum access reference block are calculated by the minimum access reference block specifying process.
  • 16 ⁇ 24 is calculated as the size of the minimum access reference block.
  • the minimum access reference block information indicating the coordinates (16, 16) of the upper left corner of the minimum access reference block and 16 ⁇ 24 as the size of the minimum access reference block by the minimum access reference block specifying process Is generated.
  • the access restriction indicated by the specification A is obtained when acquiring an image to be acquired (access target reference block) from the image memory, and acquiring more pixels than the number of pixels constituting the image to be acquired. Is a limitation for.
  • step S603 a read command transmission process is performed.
  • the image memory access control unit 502 In the read command transmission process, the image memory access control unit 502 generates a read command for acquiring the minimum access reference block from the image memory 308.
  • the minimum access reference block read according to the read command does not include the above-described MP2 additional pixel.
  • the minimum access reference block read according to the read command is unintentionally added MP2. May contain pixels. That is, the generated read command is a command that does not intentionally acquire the above-described MP2 additional pixels.
  • the image memory access control unit 502 transmits the generated read command to the image memory 308.
  • the image memory 308 transmits the minimum access reference block according to the read command to the unacquired pixel interpolation unit 503 as a read image.
  • the size of the minimum access reference block may be the same as the size of the access target reference block. In this case, the minimum access reference block read according to the read command does not include the above-described MP2 additional pixel.
  • the value of the horizontal motion vector is a decimal number and “necessary” is described in the column “necessity of horizontal direction additional pixel” in FIG. If the coordinates are too zero, it cannot be acquired. In this case, it is necessary to generate (interpolate) a plurality of additional MP2 pixels arranged in one column on the right side outside the access target block.
  • the vertical MP2 additional pixel has a decimal value of the vertical motion vector, and the column “Necessity of Vertical Additional Pixel” in FIG. 10 or FIG. Cannot be obtained when “necessary” is described in (when the above-described upper end vertical coordinate is too much).
  • the above-described MP2 additional pixel interpolation information indicating whether or not the interpolation of the MP2 additional pixel is necessary includes the information indicating whether the horizontal direction additional pixel is necessary and the vertical direction additional pixel. And information indicating whether or not it is necessary.
  • the MP2 additional pixel interpolation information indicates, for example, any of the following information A, B, C, and D.
  • Information A horizontal direction additional pixels: unnecessary, vertical direction additional pixels: unnecessary
  • Information B horizontal direction additional pixels: necessary, vertical direction additional pixels: unnecessary
  • Information C horizontal direction additional pixels: unnecessary, vertical direction additional pixels: necessary
  • Information D (horizontal direction additional pixels: necessary, vertical direction additional pixels: necessary)
  • step S604 an interpolation determination process is performed.
  • the image memory access control unit 502 causes the motion vector indicated by the acquired reference image specifying information, the size and upper left coordinates of the access target reference block, the specification A of the image memory 308, FIG. 10.
  • the necessity of the horizontal direction additional pixel and the vertical direction additional pixel is determined according to the plurality of access patterns shown in FIG. The detailed description of the determination is the same as described above.
  • the image memory access control unit 502 generates the above-described MP2 additional pixel interpolation information based on the necessity of the horizontal direction additional pixel and the vertical direction additional pixel.
  • the motion vector indicated by the reference image specifying information in the horizontal direction is a decimal number. If “necessary” is described in the corresponding column “necessity of additional pixels in horizontal direction”, it is determined that the additional pixels in horizontal direction are necessary.
  • the value of the motion vector indicated by the reference image specifying information is a decimal number.
  • “necessary” is described in the corresponding column “necessity of additional pixels in vertical direction”, it is determined that a vertical additional pixel is necessary.
  • the size of the access target reference block is 16 ⁇ 16, and the upper left coordinates of the access target reference block are (16, 17). It is assumed that the value in the horizontal direction and the value in the vertical direction of the motion vector indicated by the reference image specifying information are a decimal number and a decimal number, respectively. In this case, the necessary reference image size is found to be 17 ⁇ 17 from the table RT100 in FIG.
  • the horizontal value of the motion vector indicated by the reference image specifying information is a decimal number
  • the horizontal coordinate value “16” in the coordinates (16, 17) is less than the upper horizontal coordinate in FIG. 0 ”and“ necessary ”is written in the“ necessity of additional pixels in horizontal direction ”column, and it is determined that additional pixels in the horizontal direction are necessary.
  • the value in the vertical direction of the motion vector indicated by the reference image specifying information is a decimal number, and in the coordinates (16, 17), the vertical coordinate value “17” is less than “1” in the upper end vertical coordinate in FIG. "Unnecessary" is described in the "Necessity of vertical additional pixels" column, and it is determined that the vertical additional pixels are unnecessary.
  • the MP2 additional pixel interpolation information indicating the information B described above is generated by the interpolation determination process.
  • step S605 a reference image generation information generation process for generating reference image generation information is performed.
  • the reference image generation information is information for generating a reference image used for motion compensation.
  • the image memory access control unit 502 In the reference image generation information generation process, the image memory access control unit 502 generates the reference image size (required reference image size) indicated by the acquired reference image specifying information, the upper left corner coordinates of the reference image, and the generated minimum access reference block Reference image generation information is generated based on the information and the generated MP2 additional pixel interpolation information.
  • the reference image size (required reference image size) indicated by the acquired reference image specifying information, the upper left corner coordinates of the reference image, and the generated minimum access reference block Reference image generation information is generated based on the information and the generated MP2 additional pixel interpolation information.
  • the size of the motion-compensated reference image is the size of the reference image (necessary reference image size) (for example, 17 ⁇ 17) indicated by the acquired reference image specifying information.
  • the upper left coordinates of the motion compensated reference image are the upper left coordinates of the reference image indicated by the reference image specifying information.
  • the image indicated by the minimum access reference block is referred to as the minimum access reference image.
  • a block having the size of the motion compensation reference image is referred to as a motion compensation reference image block.
  • a motion compensation reference block when the position of the upper left coordinate of the motion compensation reference image is the upper left corner of the motion compensation reference image block and the motion compensation reference image block is arranged in the minimum access reference image, A block showing only the image shown in the motion compensation reference image block is called a motion compensation reference block.
  • FIG. 12 is a diagram for explaining the motion compensation reference block.
  • FIG. 12 shows an access target reference block B12.
  • the upper left coordinates of the access target reference block B12 are (16, 17), and the size of the access target reference block B12 is 16 ⁇ 16.
  • the minimum access reference block B11 is calculated by the minimum access reference block specifying process described above based on the upper left coordinates and size of the access target reference block B12.
  • the size of the minimum access reference block B11 is 16 ⁇ 24. Further, the upper left coordinates of the minimum access reference block B11 are (16, 16). The size of the motion compensation reference image block B13 is 17 ⁇ 17. Further, the upper left coordinates of the motion compensation reference image are (16, 17).
  • the position of the upper left coordinates (16, 17) of the motion compensated reference image is set as the upper left end of the motion compensated reference image block B13.
  • B13 is arranged in the minimum access reference block B11.
  • the block indicated by diagonal lines in FIG. 12 is the motion compensation reference block B21.
  • the size of the motion compensation reference block B21 is 16 ⁇ 17.
  • a plurality of pixels arranged in the lowermost row of the motion compensation reference block B21 are MP2 additional pixels acquired unintentionally.
  • the image indicated by the motion compensation reference block B21 is at least a part of the image indicated by the minimum access reference block B11.
  • the upper left coordinates of the motion compensation reference block B21 are the upper left coordinates of the reference image indicated by the reference image specifying information.
  • FIG. 13 is a diagram showing reference image generation information as an example.
  • the coordinates of the minimum access reference block are the upper left coordinates of the minimum access reference block.
  • size of motion compensation reference block the horizontal size of the motion compensation reference block is the horizontal size of the minimum access reference block (for example, 16) and the horizontal size of the motion compensation reference image (for example, 17). If it is smaller, it is the horizontal size of the minimum access reference block.
  • the horizontal size of the motion compensation reference block is equal to or smaller than the horizontal size of the minimum access reference block (for example, 18) that is equal to or larger than the horizontal size of the motion compensation reference image (for example, 17).
  • the MP2 additional pixel acquired unintentionally is included in the horizontal direction of the image indicated by the motion compensation reference block.
  • the vertical size of the motion compensation reference block is the minimum access reference block when the vertical size (eg, 16) of the minimum access reference block is smaller than the vertical size (eg, 17) of the motion compensation reference image. Of vertical size.
  • the vertical size of the motion compensation reference block is the vertical size of the minimum access reference block (for example, 24) when the vertical size of the motion compensation reference image (for example, 17) is greater than or equal to the vertical size of the motion compensation reference image.
  • the vertical size is assumed. In this case, the MP2 additional pixel acquired unintentionally is included in the vertical direction of the image indicated by the motion compensation reference block.
  • the size of the motion compensation reference block is 16 ⁇ 17.
  • the relative coordinates of the motion compensation reference block are relative coordinates for specifying the position of the motion compensation reference block with respect to the “minimum access reference block coordinates”.
  • the coordinates of the minimum access reference block are (16, 16) and the upper left coordinates of the motion compensation reference block are (16, 17).
  • the relative coordinates of the motion compensation reference block are (0, 1).
  • the image memory access control unit 502 transmits the generated reference image generation information to the unacquired pixel interpolation unit 503.
  • the unacquired pixel interpolation unit 503 receives the minimum access reference block as a read image read from the image memory 308 and the reference image generation information transmitted by the image memory access control unit 502.
  • the unacquired pixel interpolation unit 503 transmits a motion compensation reference image used when the motion compensation unit 306 performs motion compensation to the motion compensation unit 306.
  • the motion compensation unit 306 performs motion compensation in accordance with the MPEG2 standard, a reference image having the necessary reference image size shown in FIG. 7 is necessary.
  • the minimum access reference block as a read image read from the image memory 308 may not include all the MP2 additional pixels described above.
  • the minimum The access reference block does not include all the MP2 additional pixels.
  • the non-acquired pixel interpolation unit 503 generates an MP2 additional pixel by interpolation processing when there is no MP2 additional pixel.
  • the process for the non-acquired pixel interpolation unit 503 to generate a reference image is referred to as a reference image generation process.
  • FIG. 14 is a flowchart of the reference image generation process.
  • step S1100 the unacquired pixel interpolation unit 503 receives the minimum access reference block as a read image read from the image memory 308 and the reference image generation information transmitted by the image memory access control unit 502. .
  • step S1101 based on the size of the motion compensation reference block indicated by the received reference image generation information and the relative coordinates of the motion compensation reference block, the unacquired pixel interpolation unit 503 performs motion from the received minimum access reference block. Get compensation reference block.
  • the image indicated by the motion compensation reference block acquired by the processing in step S1101 is referred to as an MP2 processing target image.
  • step S1102 it is determined whether or not additional pixels in the horizontal direction are necessary. Specifically, the unacquired pixel interpolation unit 503 determines whether the received reference image generation information indicates “necessary” in the “necessity of additional pixels in horizontal direction” column. If YES in step S1102, the process proceeds to step S1103. On the other hand, if NO at step S1102, the process proceeds to step S1104.
  • step S1103 horizontal direction additional pixel generation processing is performed.
  • the unacquired pixel interpolation unit 503 sets a plurality of pixels arranged in the rightmost column of the MP2 processing target image as a plurality of MP2 additional pixels arranged in the right side column outside the MP2 processing target image. That is, a plurality of pixels obtained by copying a plurality of pixels arranged in the rightmost column of the MP2 processing target image are set as a plurality of MP2 additional pixels.
  • the plurality of pixels arranged in the rightmost column of the MP2 processing target image correspond to, for example, the plurality of integer pixels 102 whose horizontal coordinate value is “15” in the reference block 101 of FIG.
  • the plurality of additional MP2 pixels arranged in the right column outside the MP2 processing target image have a horizontal coordinate value of “16” and a vertical coordinate value of “0” to “15”.
  • the unacquired pixel interpolation unit 503 sets the image generated by this processing as the latest MP2 processing target image.
  • step S1104 it is determined whether vertical additional pixels are necessary. Specifically, the non-acquired pixel interpolation unit 503 determines whether or not the received reference image generation information indicates “necessary” in the column “necessity of additional pixels in the vertical direction”. If YES in step S1104, the process proceeds to step S1105. On the other hand, if NO at step S1104, the process proceeds to step S1106.
  • step S1105 vertical direction additional pixel generation processing is performed.
  • the unacquired pixel interpolation unit 503 sets a plurality of pixels arranged in the bottom row of the latest MP2 processing target image to a plurality of rows arranged in the lower one row outside the latest MP2 processing target image.
  • MP2 additional pixels That is, a plurality of pixels obtained by copying a plurality of pixels arranged in the bottom row of the latest MP2 processing target image are set as a plurality of MP2 additional pixels.
  • the latest MP2 processing target image is the image indicated by the motion compensation reference block when the process of step S1103 is not performed. Further, the latest MP2 process target image is the MP2 process target image generated by the process of step S1103 when the process of step S1103 is performed.
  • the plurality of pixels arranged in the lowermost row of the latest MP2 processing target image correspond to, for example, the plurality of integer pixels 102 whose vertical coordinate value is “15” in the reference block 101 of FIG.
  • the plurality of MP2 additional pixels arranged in the lower one row outside the MP2 processing target image have any of the horizontal coordinate values “0” to “16” in FIG.
  • the unacquired pixel interpolation unit 503 sets the image generated by this processing as the latest MP2 processing target image.
  • step S1106 a reference image transmission process is performed.
  • the unacquired pixel interpolation unit 503 transmits the latest MP2 processing target image to the motion compensation unit 306 as a reference image (motion compensation reference image).
  • the reference image transmitted to the motion compensation unit 306 is an image indicated by the acquired motion compensation reference block.
  • the motion compensation unit 306 performs motion compensation using the received reference image (motion compensation reference image).
  • the motion compensation performed by the motion compensation unit 306 is a process based on the MPEG2 standard, and therefore will not be described in detail.
  • the above-described MP2 additional pixel necessary for generating the half-coordinate pixel is not intentionally acquired, and the image memory is used.
  • the motion compensation reference block acquired from the minimum access reference block obtained by accessing the image memory in accordance with the access restriction indicated by the specification A in FIG. In this case, a motion compensation reference block including MP2 additional pixels is used to generate a reference image (motion compensation reference image) used for motion compensation.
  • step S1102 and step S1104 in FIG. 14 the image indicated by the motion compensation reference block has all the MP2 additional pixels necessary for performing 1/2 precision motion compensation. Become.
  • the MP2 additional pixel generated by copying by the processing of step S1103 and step S1105 is not used in the 1/2 precision motion compensation. Since the MP2 additional pixel generated by the copy is different from the MP2 additional pixel originally required in the 1/2 precision motion compensation, the MP2 additional pixel generated by the copy is used for the 1/2 precision motion compensation. Is performed, the image quality obtained by decoding deteriorates.
  • the image indicated by the motion compensation reference block has all the MP2 additional pixels necessary for performing the 1/2 precision motion compensation, it is possible to prevent the image quality of the image obtained by decoding from being deteriorated.
  • step S1102 if it is determined in the reference image generation process of FIG. 14 that no additional pixel is necessary (NO in step S1102 or NO in step S1104), motion compensation is performed without generating an additional pixel. If it is determined that an additional pixel is necessary, an additional pixel is generated, and motion compensation is performed using the generated additional pixel. In other words, since the additional pixel is generated only when the additional pixel is necessary, the process of generating the additional pixel is not performed when the additional pixel is not necessary, so that efficient decoding processing can be performed.
  • the pixel to be transferred additionally (unintentionally) is determined according to the specification (configuration) of the image memory that stores the reference picture, and the decimal pixel is determined using the pixel.
  • Generate interpolation A general image memory improves performance by transferring a plurality of pixels together (hereinafter referred to as burst transfer).
  • pixels that are only necessary for interpolation generation of decimal pixels are supplemented by pixels that are additionally acquired as a result of burst transfer, for example. If only the additionally acquired pixels are insufficient in the generation of decimal pixels, the interpolation generation of the decimal pixels is performed without using the insufficient pixels.
  • the frequency of performing interpolation generation of decimal pixels without using original pixels is reduced. Therefore, it is possible to reduce the deterioration of the image quality of the image obtained by decoding.
  • the processing according to the present embodiment makes it possible to simultaneously reduce the data transfer amount of the reference block and improve the image quality of the image obtained by decoding.
  • the first embodiment has been described above by taking the image decoding apparatus that decodes data encoded according to the MPEG2 standard as an example.
  • the description of the first embodiment relates to the luminance block, but the present invention can also be applied to the color difference block by the processing described in the first embodiment.
  • the processing of the present invention shown in the first embodiment is merely an example, and various modifications can be considered in the configuration of the image memory, the access method, the processing sharing of each block, and the like.
  • each function may be individually made into one chip, or may be made into one chip so as to include a part or all of the functions. Further, if there is an integrated circuit technology that replaces the LSI, the integration may naturally be performed using this technology.
  • FIG. 15 is a configuration diagram of an image decoding apparatus 1000A according to the second embodiment of the present invention.
  • Image decoding device 1000A is H.264. This is a device compatible with the H.264 standard. Hereinafter, the operation of the image decoding apparatus 1000A will be described.
  • An image decoding apparatus 1000A illustrated in FIG. 15 includes a variable length decoding unit 1201, an inverse quantization unit 1202, an inverse orthogonal transform unit 1203, an adder 1204, a motion vector calculation unit 1205, a motion compensation unit 1206, An image acquisition unit 1207, an image memory 1208, an in-screen prediction unit 1209, a selector unit 1210, and a deblock filter unit 1211 are provided. Note that the processing performed by each unit other than the image acquisition unit 1207 included in the image decoding apparatus 1000A is H.264. Since the process conforms to the H.264 standard, detailed description will not be given.
  • the variable length decoding unit 1201 acquires a bit stream from the outside. This bit stream is H.264. Assume that the encoded data is obtained by encoding a moving image based on the H.264 standard. Then, the variable length decoding unit 1201 decodes the variable length code included in the bit stream.
  • Quantized frequency component information (hereinafter referred to as quantized frequency component information), motion information, and in-screen prediction control information are obtained by the decoding.
  • the motion information indicates a motion compensation type, a number specifying a reference picture (hereinafter referred to as a reference picture number), a motion vector difference value, a size of a reference image, and the like.
  • the motion compensation type indicates the size of the motion compensation block. Note that the motion compensation type indicates information other than the size of the motion compensation block. However, in the present invention, the motion compensation type indicates the size of the motion compensation block.
  • parameters for controlling the image decoding apparatus 1000A are also obtained by decoding, but the parameters are not used in the present invention, and thus description thereof is omitted.
  • variable length decoding unit 1201 transmits the quantized frequency component information to the inverse quantization unit 1202.
  • variable length decoding unit 1201 transmits motion information to the motion vector calculation unit 1205.
  • variable length decoding unit 1201 transmits the intra-screen prediction control information to the intra-screen prediction unit 1209.
  • the inverse quantization unit 1202 obtains a frequency component by inversely quantizing the received quantized frequency component information.
  • the inverse orthogonal transform unit 1203 obtains a pixel value difference by performing inverse orthogonal transform on the obtained frequency component. Then, the inverse orthogonal transform unit 1203 transmits the pixel value difference to the adder 1204.
  • both inverse quantization and inverse orthogonal transform are processed at a time in units of prescribed macroblocks (16 ⁇ 16 blocks).
  • the motion vector calculation unit 1205 obtains a motion compensation type, a reference picture number, and a motion vector from the received motion information. Then, the motion vector calculation unit 1205 transmits motion information indicating the motion compensation type, the size of the reference image, the reference picture number, the upper left coordinates of the reference image, and the motion vector to the motion compensation unit 1206 and the image acquisition unit 1207.
  • the image memory 1208 stores a plurality of reference pictures that are motion compensation targets.
  • the image memory 1208 is a memory that can read an image of a partial region of the reference picture based on a predetermined specification.
  • the image acquisition unit 1207 Based on the motion compensation type, the size of the reference image, the reference picture number, and the motion vector indicated by the received motion information, the image acquisition unit 1207 obtains a part of the reference picture specified by the reference picture number from the image memory 1208. Get an image of the region. Then, the image acquisition unit 1207 transmits the acquired image or an image generated based on the acquired image to the motion compensation unit 1206.
  • the motion compensation unit 1206 performs motion compensation using the motion compensation type, the size of the reference image, the reference picture number, and the motion vector indicated by the received motion information, and the image received from the image acquisition unit 1207.
  • a predicted image is obtained by the motion compensation.
  • a predicted image obtained by motion compensation is referred to as a motion compensated predicted image.
  • the motion compensation unit 1206 transmits the motion compensated prediction image to the selector unit 1210.
  • the adder 1204 obtains a picture (hereinafter referred to as a reproduction picture) by adding the difference between the pixel values received from the inverse orthogonal transform unit 1203 and the image received from the selector unit 1210. Then, the adder 1204 transmits the reproduced picture to the in-screen prediction unit 1209 and the deblock filter unit 1211.
  • the in-screen prediction unit 1209 performs prediction from decoded image information in the same picture. Specifically, the intra prediction unit 1209 temporarily stores the reproduced picture received from the adder 1204. The intra-screen prediction unit 1209 obtains an image by performing intra-screen prediction processing according to the intra-screen prediction control information received from the variable length decoding unit 1201. Hereinafter, an image obtained by the intra-screen prediction process is referred to as an intra-screen prediction image. Then, the intra-screen prediction unit 1209 transmits the intra-screen prediction image to the selector unit 1210.
  • the selector unit 1210 transmits either the received motion-compensated prediction image or the intra-screen prediction image to the adder 1204 according to the macroblock type.
  • the deblock filter unit 1211 performs a filter process for filtering the block boundary in the reproduced picture received from the adder 1204. Then, the deblock filter unit 1211 outputs the reproduced picture subjected to the filtering process to the outside, and stores the reproduced picture in the image memory 1208 as a reference picture.
  • the value of the pixel located at the 1/2 precision coordinate is 6 using the 3 pixels on both sides of the pixel (6 pixels in total). It is obtained by tap filter calculation.
  • a pixel (1/4 coordinate pixel) located at a decimal coordinate (1/4 accuracy coordinate) other than a 1/2 coordinate pixel is a pixel adjacent to the pixel and is an integer coordinate or 1/2 It is generated by averaging the values of at least two pixels located at precision coordinates.
  • the size of the reference block acquired from the reference picture stored in the image memory is increased by 2 pixels on the left and upper sides, and increased by 3 pixels on the right and lower sides. .
  • the data transfer amount for acquiring the reference block from the image memory becomes large. Therefore, in order to process the reference block at a high speed, a high-performance and expensive memory is required, and the cost of an apparatus that performs image encoding and image decoding increases.
  • process NB a process for using the acquired H264 additional pixel
  • the H264 additional pixels are, for example, a plurality of pixels arranged in the left two columns, a plurality of pixels arranged in the right three columns, a plurality of pixels arranged in the upper two rows, and a plurality of pixels arranged in the lower three rows.
  • the size of the rectangular area (block) that is actually accessed to the image memory is obtained, and when the H264 additional pixel necessary for the 1 ⁇ 4 precision motion compensation cannot be acquired, the acquired pixel Is used to generate a 1 ⁇ 2 coordinate pixel.
  • a plurality of pixels arranged in the rightmost column, a plurality of pixels arranged in the leftmost column, a plurality of pixels arranged in the uppermost row, and a plurality of pixels arranged in the lowermost row are copied as they are.
  • H264 additional pixels This makes it possible to perform quarter-accuracy motion compensation without acquiring the H264 additional pixels necessary for generating the half-coordinate pixels.
  • the method of generating a 1 ⁇ 2 coordinate pixel using only the acquired pixels is not limited to the above method, and various other methods may be used.
  • each unit other than the image acquisition unit 1207 shown in FIG. It operates as specified in the H.264 standard. Therefore, detailed description of each unit other than the image acquisition unit 1207 shown in FIG. 15 is not performed.
  • the image memory 1208 stores a plurality of reference pictures.
  • the image memory 1208 is the multi-bank image memory described in the first embodiment. Note that the image memory 1208 can be accessed with the same specifications regardless of whether the image processing method is the interlace method or the progressive method, and the parity to be accessed is designated by the reference picture number.
  • FIG. 16 is a block diagram showing an internal configuration of the image acquisition unit 1207. Similar to the image acquisition unit 307 in the first embodiment, the reference image acquisition unit 1207 includes an image specifying information generation unit 1301, an image memory access control unit 1302, and an unacquired pixel interpolation unit 1303.
  • the operation of the image specifying information generation unit 1301 is H.264.
  • H.264 In order to comply with the H.264 standard, detailed description of the operation of the image specifying information generation unit 1301 will not be given. Hereinafter, the operation of the image specifying information generation unit 1301 will be briefly described.
  • the image specifying information generation unit 1301 selects a reference image necessary for motion compensation performed by the motion compensation unit 1206.
  • Information for specifying (hereinafter referred to as H264 reference image specifying information) is generated.
  • the H264 reference image specifying information indicates the motion compensation type, the size of the reference image, the motion vector, the reference picture number, the upper left coordinates of the reference image in the memory, and the size of the reference image.
  • the size of the motion compensation block specified by the motion compensation type indicated by the H264 reference image specifying information is referred to as a specific motion compensation block size.
  • the image specifying information generation unit 1301 is configured such that the motion compensation unit 1206 is H.264.
  • the H264 reference image specifying information is generated on the assumption that motion compensation is performed in accordance with the H.264 standard. Therefore, the generated H264 reference image specifying information is information for specifying a reference image including H264 additional pixels necessary for generating a decimal pixel, as described in the background art.
  • the image specifying information generation unit 1301 transmits the generated H264 reference image specifying information to the image memory access control unit 1302.
  • the image memory access control unit 1302 complies with the access restriction indicated by the specification of the image memory 1208 (specification B described later) based on the H264 reference image specifying information transmitted by the image specifying information generation unit 1301.
  • a reference block read command is generated, and the generated read command is transmitted to the image memory 1208.
  • the read command is generated so as not to intentionally acquire the above-described H264 additional pixel.
  • the image memory access control unit 1302 determines whether or not the above-described H264 additional pixel can be acquired from the image memory 1208 based on the size of the reference block specified by the generated read command. Determine whether. Then, the image memory access control unit 1302 generates H264 additional pixel interpolation information based on the determination as to whether or not the H264 additional pixel can be acquired, and sends the generated H264 additional pixel interpolation information to the unacquired pixel interpolation unit 1303. Send.
  • the H264 additional pixel interpolation information is information indicating whether or not the H264 additional pixel needs to be interpolated.
  • the operation of the image memory access control unit 1302 is H.264. Does not comply with H.264 standard. That is, the read command transmitted from the image memory access control unit 1302 to the image memory 1208 is H.264. Does not comply with H.264 standard. Therefore, details of the operation of the image memory access control unit 1302 will be described below. Hereinafter, processing performed by the image memory access control unit 1302 is referred to as access control processing A.
  • the image memory 1208 includes a plurality of areas for storing one reference picture (hereinafter referred to as reference picture storage areas) as an example.
  • Each reference picture storage area is assumed to have the same size as the reference picture (for example, 1920 ⁇ 1080). That is, the coordinates (0, 0) of each reference picture storage area correspond to the upper left coordinates of the corresponding reference picture.
  • FIG. 17 is a flowchart of the access control process A.
  • step S1400 the image memory access control unit 1302 acquires the above-described H264 reference image specifying information from the image specifying information generating unit 1301.
  • step S1401 an access target block specifying process A is performed.
  • the image memory access control unit 1302 determines the reference block to be accessed (hereinafter referred to as the access target reference destination) based on the size and motion vector of the reference image indicated by the acquired H264 reference image specifying information. Block)).
  • a reference block that is a part of a reference picture stored in a memory and is an access target is referred to as an access target reference block.
  • the correspondence relationship between the motion compensation type and the size of the access target reference block is shown in the following table RT200.
  • FIG. 18 is a diagram showing a table RT200 as an example.
  • table RT200 seven types of motion compensation types are shown. For example, when the motion compensation type is “T8 ⁇ 16”, the size of the motion compensation block is 8 ⁇ 16.
  • motion vector accuracy indicates the accuracy of the motion vector in the horizontal direction or the vertical direction.
  • “Integer” in the “motion vector accuracy” item indicates that the value of the motion vector in the corresponding direction is an integer.
  • the “decimal” in the “motion vector accuracy” item indicates that the value of the motion vector in the corresponding direction is a decimal.
  • reference image size This is the size of a reference image necessary for motion compensation according to the H.264 standard.
  • the “necessary reference image size” is the size of the reference image indicated by the H264 reference image specifying information.
  • the “necessary reference image size” is determined by a combination of any of the seven types of motion compensation types and any of the four types of motion vector accuracy.
  • the “access target reference block size” is the size of the access target reference block.
  • the access target reference block size is different from that of the first embodiment in the H.264 standard.
  • the same number as the required reference image size defined in the H.264 standard is defined.
  • the access target block size is made smaller than the required reference image size defined in the H.264 standard.
  • the image memory access control unit 1302 determines that the H264 reference image specifying information obtained by the H264 reference image specifying information has a fractional horizontal motion vector value. A size obtained by reducing the size of the reference image indicated by the reference image specifying information in the horizontal direction by 4 pixels is set as the horizontal size of the access target reference block.
  • the image memory access control unit 1302 reduces the vertical size of the reference image indicated by the H264 reference image specifying information by four pixels.
  • the size is the vertical size of the access target block.
  • the horizontal value and the vertical value of the motion vector indicated by the H264 reference image specifying information are decimal numbers.
  • the size of the reference image (required reference image size) indicated by the H264 reference image specifying information is 21 ⁇ 21.
  • the size of the access target reference block specified by the access target block specifying process A is the size (17 ⁇ 17) obtained by reducing the size of the reference image (21 ⁇ 21) by 4 pixels in both the horizontal and vertical directions. Become.
  • the image memory access control unit 1302 sets the upper left corner coordinates of the reference image indicated by the acquired H264 reference image specifying information as the upper left corner coordinates of the access target reference block.
  • the image memory access control unit 502 stores information on the specification B of the image memory 1208 in advance.
  • the image memory access control unit 1302 may acquire the specification B information of the image memory 1208 from other parts (for example, a memory, a circuit, etc.).
  • FIG. 19 is a diagram showing the specification B of the image memory 1208. Each item indicated by the specification B shown in FIG. 19 is the same as each item indicated by the specification A shown in FIG. 4, and therefore detailed description will not be repeated.
  • step S1402 minimum access reference block identification processing A is performed.
  • the image memory access control unit 1302 specifies the reference picture stored in the image memory 1208 in accordance with the access restriction indicated by the specification B of the image memory 1208.
  • the minimum access reference block is specified when accessing the access target block that has been accessed.
  • the reference picture to be processed which is stored in the image memory 1208, is a picture specified by the reference picture number indicated by the H264 reference picture specifying information.
  • each of the horizontal size and the vertical size of the access target reference block is any one of 4 pixels, 5 pixels, 8 pixels, 9 pixels, 16 pixels, and 17 pixels. It is.
  • the specification B of the image memory shown in FIG. 19 has the same contents in the horizontal direction and the vertical direction. Therefore, the access pattern for the image memory is the same in both the horizontal direction and the vertical direction. Therefore, in this embodiment, only the horizontal access pattern for the image memory will be described in detail, and the description of the vertical access pattern for the image memory will be omitted.
  • the acquisition start coordinate (the coordinate at the left end of the block) is limited to a multiple of 8
  • the acquisition size (the size of the minimum access reference block) is also 8 Indicates that it is limited to a multiple of.
  • the horizontal acquisition start coordinate is also an arbitrary value.
  • the specification B of the image memory shown in FIG. 19 limits the horizontal acquisition start coordinate by a multiple of 8 in the horizontal memory access. For this reason, the access pattern to the image memory changes depending on how much (0, 1, 2, 3, 4, 5, 6, 7) the horizontal coordinate at the left end of the access target reference block is divided by 8. .
  • an access pattern when the horizontal size of the access target reference block is 4, 8, 16 will be described.
  • an access pattern of the image memory when acquiring 4 pixels, 8 pixels, or 16 pixels in the horizontal direction in accordance with the access restriction indicated by the specification B of the image memory will be described.
  • the value of the horizontal motion vector is an integer. Therefore, generation of a decimal pixel located at a decimal coordinate in the horizontal direction is unnecessary, and the H264 additional pixel used for generating the decimal pixel is also unnecessary.
  • the image memory is accessed so that all the 4 pixels, 8 pixels, or 16 pixels in the horizontal direction can be acquired in the access target block.
  • FIG. 20 is a diagram showing an access pattern of the image memory when four pixels in the horizontal direction are acquired in the access target reference block according to the access restriction indicated by the specification B of the image memory.
  • FIG. 21 is a diagram showing an access pattern of the image memory when 8 pixels in the horizontal direction are acquired in the access target reference block according to the access restriction indicated by the specification B of the image memory.
  • FIG. 22 is a diagram showing an access pattern of the image memory when 16 pixels in the horizontal direction are acquired in the access target reference block according to the access restriction indicated by the specification B of the image memory.
  • an access pattern when the horizontal size of the access target reference block is 5, 9, and 17 will be described.
  • an image memory access pattern in the case where 5 pixels, 9 pixels, or 17 pixels are acquired in the horizontal direction in accordance with the access restriction indicated by the specification B of the image memory will be described.
  • the value of the motion vector in the horizontal direction is a decimal. Therefore, it is necessary to generate a decimal pixel located at a decimal coordinate in the horizontal direction, and an H264 additional pixel used for generating the decimal pixel is also required.
  • H264 additional pixels correspond to the two pixels on the left side of the access target reference block (corresponding to the reference block 201) and the three pixels on the right side of the access target block. That is, five H264 additional pixels are required.
  • the access target reference block having the horizontal size specified by the processing in step S1401 is the access target reference block (reference target). 1 pixel (H264 additional pixel) on the right side of (corresponding to block 201).
  • At least one pixel among the two pixels on the left side of the access target reference block and the two pixels on the right side of the access target reference block may not be acquired.
  • FIG. 23 is a diagram showing an access pattern of the image memory in the case where 5 pixels in the horizontal direction are acquired in the access target reference block according to the access restriction indicated by the specification B of the image memory.
  • FIG. 24 is a diagram showing an access pattern of the image memory when 9 pixels in the horizontal direction are acquired in the access target reference block according to the access restriction indicated by the specification B of the image memory.
  • FIG. 25 is a diagram showing an access pattern of the image memory when 17 pixels in the horizontal direction are acquired in the access target reference block according to the access restriction indicated by the specification B of the image memory.
  • FIG. 23 FIG. 24 and FIG. 25, “too much horizontal coordinates” means that the horizontal coordinates at the left end of the access target block are divided by 8.
  • FIG. 23 FIG. 24 and FIG. 25, “the number of pixels to be acquired” and “image memory access” have been described with reference to FIG.
  • 24, and 25 are additional pixels (H264 additional pixels) necessary for generating a decimal pixel, and are not intentionally acquired and are the two pixels on the left side of the access target reference block and the access target reference. Indicates whether two pixels on the right side of the previous block are acquired.
  • a black square indicates a pixel to be acquired.
  • two pixels corresponding to the positions of arrows (hereinafter referred to as additional pixel arrows) shown at both ends of a black square indicating the pixel to be acquired are intentional. Indicates additional pixels (H264 additional pixels) that are not acquired.
  • FIG. 23 when the additional pixel arrow is on the boundary line of the image memory access range, one of the two H264 additional pixels corresponding to the additional pixel arrow is acquired unintentionally. Indicates. Further, when the additional pixel arrow is outside the range of the image memory access, it indicates that two H264 additional pixels corresponding to the additional pixel arrow are not acquired.
  • the size of the motion compensated reference image is the size of the reference image (necessary reference image size) (for example, 9 ⁇ 4) indicated by the acquired H264 reference image specifying information.
  • the upper left corner coordinates of the motion compensated reference image are the upper left corner coordinates of the reference image indicated by the H264 reference image identification information.
  • the image indicated by the minimum access reference block is referred to as the minimum access reference image.
  • a block having the size of the motion compensation reference image is referred to as a motion compensation reference image block.
  • a motion compensation reference block A block showing only the image shown in the motion compensation reference image block is called a motion compensation reference block. Since the motion compensation reference block has been described with reference to FIG. 12, detailed description thereof will not be repeated.
  • the image indicated by the motion compensation reference block is at least a part of the image indicated by the minimum access reference block.
  • the upper left corner coordinates of the motion compensation reference block are the upper left corner coordinates of the reference image indicated by the reference image specifying information.
  • “Necessity of additional pixels” indicates whether or not generation of H264 additional pixels (interpolation generation) is necessary.
  • the description “left side: necessary (2 pixels)” indicates that it is necessary to generate (interpolate) two H264 additional pixels on the left side of the motion compensation reference block.
  • the description “right side: necessary (1 pixel)” indicates that one H264 additional pixel on the right side of the motion compensation reference block needs to be generated (interpolated).
  • the description “right side: unnecessary” indicates that generation (interpolation generation) of two H264 additional pixels on the right side of the motion compensation reference block is unnecessary.
  • the image memory access control unit 502 specifies the minimum access reference block according to the access restriction indicated by the specification A of the image memory 308. .
  • the image memory access control unit 1302 determines the minimum in accordance with the size and upper-left corner coordinates of the access target block, the specification B of the image memory 1208, and the plurality of access patterns shown in FIGS. The coordinates of the upper left corner of the access reference block and the size of the minimum access reference block are calculated.
  • the image memory access control unit 1302 generates minimum access reference block information indicating the calculated coordinates of the upper left corner of the minimum access reference block and the size of the minimum access reference block.
  • the size of the access target reference block is 5 ⁇ 4, and the upper left coordinates of the access target reference block are (17, 16).
  • the horizontal coordinate value of the minimum access reference block is smaller than the horizontal coordinate value “17” according to the specification B in FIG.
  • the value is calculated as 16, which is a multiple of 8.
  • the horizontal size of the minimum access reference block is calculated according to the access pattern shown in FIG. Specifically, since the horizontal coordinate value “17” corresponds to the horizontal coordinate “1” in FIG. 23, the horizontal size of the minimum access reference block is calculated as 8 pixels.
  • the vertical coordinate value of the minimum access reference block is calculated as 16 according to the specification B in FIG. .
  • the horizontal size of the minimum access reference block can be obtained by regarding the access pattern shown in FIG. 20 as the access pattern shown in the vertical direction. Is calculated. Specifically, since the vertical coordinate value “16” corresponds to “0” in the horizontal coordinate (corresponding to the vertical coordinate) in FIG. 20, the vertical size of the minimum access reference block is 8 pixels. Calculated.
  • the minimum access reference block identification process A the coordinates (16, 16) of the upper left corner of the minimum access reference block are calculated. Further, 8 ⁇ 8 is calculated as the size of the minimum access reference block. In this case, minimum access reference block information indicating the coordinates (16, 16) of the upper left corner of the minimum access reference block and 8 ⁇ 8 as the size of the minimum access reference block is generated.
  • the access restriction indicated by the specification B when acquiring an image to be acquired (access target reference block) from the image memory, acquires more pixels than the number of pixels constituting the image to be acquired. Is a limitation for.
  • step S1403 read command transmission processing A is performed.
  • the image memory access control unit 1302 In the read command transmission process A, the image memory access control unit 1302 generates a read command for acquiring the specified minimum access reference block from the image memory 1208.
  • the minimum access reference block read according to the read command includes the H264 additional pixel described above.
  • the minimum access reference block read according to the read command is unintentionally added with H264. May contain pixels. That is, the generated read command is a command that does not intentionally acquire the above-described H264 additional pixel.
  • the image memory access control unit 1302 transmits the generated read command to the image memory 1208.
  • the image memory 1208 transmits the minimum access reference block according to the read command as a read image to the unacquired pixel interpolation unit 1303.
  • the access control method of the image memory in the present embodiment when 1/4 precision motion compensation is performed, a process is performed in which the above-described H264 additional pixel necessary for generating a 1/2 coordinate pixel is not intentionally acquired. Also, depending on the upper-left corner coordinates of the access target reference block, the size of the minimum access reference block may be the same as the size of the access target reference block. As described above, the access target reference block includes H264 additional pixels. Therefore, in this case, the minimum access reference block read according to the read command includes the H264 additional pixel described above.
  • the H264 additional pixel in the horizontal direction has a decimal value of the horizontal motion vector, and “addition” in the diagram corresponding to the horizontal size of the access target reference block in FIGS. 23, 24, and 25.
  • additional in the diagram corresponding to the horizontal size of the access target reference block in FIGS. 23, 24, and 25.
  • Left side: Necessary (2 pixels) is described on the right side of “Necessity of pixel”, it cannot be acquired. In this case, it is necessary to generate (interpolate) a plurality of H264 additional pixels arranged in the left two columns outside the motion compensation reference block.
  • the motion compensation reference It is necessary to generate (interpolate) a plurality of H264 additional pixels arranged in one or two columns on the left or right side of the previous block.
  • H264 additional pixels in the vertical direction need to be generated (interpolated) as necessary, as described for the H264 additional pixels in the horizontal direction.
  • the specification B of the image memory is the same in the horizontal direction and the vertical direction. For this reason, the H264 additional pixels in the vertical direction need to be generated (interpolated) as necessary, similarly to the description of the H264 additional pixels in the horizontal direction described above.
  • the above-described H264 additional pixel interpolation information indicating whether or not interpolation of H264 additional pixels is necessary indicates information indicating whether or not additional pixels are necessary.
  • the H264 additional pixel interpolation information indicates, for example, one of the following information NA to NC, one of information ND to NF, one of information NG to NI, and one of information NJ to NL.
  • Information NA (Left side additional pixel: unnecessary) Information NB (left additional pixel: necessary (1 pixel)) Information NC (Left side additional pixel: Necessary (2 pixels)) Information ND (right additional pixel: not required) Information NE (right additional pixel: necessary (1 pixel)) Information NF (right additional pixel: necessary (2 pixels)) Information NG (Upper additional pixels: unnecessary) Information NH (Upper additional pixel: Necessary (1 pixel)) Information NI (Upper additional pixel: Necessary (2 pixels)) Information NJ (lower additional pixel: unnecessary) Information NK (lower additional pixel: necessary (1 pixel)) Information NL (lower additional pixel: necessary (2 pixels))
  • step S1404 an interpolation determination process A is performed.
  • the image memory access control unit 1302 determines the motion vector indicated by the acquired H264 reference image specifying information, the size and upper left coordinates of the access target reference block, the specification B of the image memory 1208, and FIG. The necessity of each additional pixel is determined according to the plurality of access patterns shown in FIG. The detailed description of the determination is the same as described above.
  • the image memory access control unit 1302 generates the above-described H264 additional pixel interpolation information based on the necessity of each additional pixel.
  • the access pattern specified in the figure (for example, FIG. 23) corresponding to the horizontal size of the access target reference block is the decimal value of the horizontal value of the motion vector indicated by the H264 reference image specifying information. For example, when “Left side: Necessary (1 pixel) Right side: Unnecessary” is written on the right side of “Necessity of additional pixel” corresponding to “1”, one additional pixel on the left side is necessary, and no additional right pixel is necessary It is determined that there is.
  • the “additional pixel” corresponding to the specified access pattern For example, when “Upper: Unnecessary Lower: Necessary (2 pixels)” is described on the right side of “Necessity”, it is determined that the upper additional pixel is unnecessary and two lower additional pixels are necessary.
  • H264 additional pixel interpolation information is generated.
  • the generated H264 additional pixel interpolation information indicates one of the information NA to NC, one of the information ND to NF, one of the information NG to NI, and one of the information NJ to NL.
  • step S1405 reference image generation information generation processing A for generating reference image generation information A is performed.
  • the reference image generation information A is information for generating a reference image used for motion compensation.
  • the image memory access control unit 1302 In the reference image generation information generation process A, the image memory access control unit 1302 generates the reference image size (required reference image size) indicated by the acquired reference image specifying information, the upper left corner coordinates of the reference image, and the generated minimum access reference destination.
  • Reference image generation information A is generated based on the block information and the generated H264 additional pixel interpolation information.
  • the generation method of the reference image generation information A is the same as the generation method described with reference to FIG. 13, and thus detailed description will not be repeated.
  • FIG. 26 is a diagram showing reference image generation information A as an example.
  • the items of “necessity of left additional pixel”, “necessity of right additional pixel”, “necessity of upper side additional pixel”, and “necessity of lower side additional pixel” are the left side additional pixel, right side additional pixel, The necessity of an upper side additional pixel and a lower side additional pixel is shown. For example, when “necessary (1 pixel)” is described in the item “necessity of left additional pixel”, it indicates that one left additional pixel is necessary.
  • the image memory access control unit 1302 transmits the generated reference image generation information A to the unacquired pixel interpolation unit 1303.
  • the unacquired pixel interpolation unit 1303 receives the minimum access reference block as a read image read from the image memory 1208 and the reference image generation information A transmitted by the image memory access control unit 1302.
  • the unacquired pixel interpolation unit 1303 transmits a reference image used when the motion compensation unit 1206 performs motion compensation to the motion compensation unit 1206.
  • the motion compensation unit 1206 In order to perform motion compensation according to the H.264 standard, a reference image having the necessary reference image size shown in FIG. 18 is necessary.
  • the minimum access reference block as a read image read from the image memory 1208 may not include the H264 additional pixel described above. Therefore, the non-acquired pixel interpolation unit 1303 generates an H264 additional pixel by interpolation processing when there is no H264 additional pixel.
  • a reference image generation process A the process for the non-acquired pixel interpolation unit 1303 to generate a reference image.
  • FIG. 27 is a flowchart of the reference image generation process A.
  • step S2300 the unacquired pixel interpolation unit 1303 receives the minimum access reference block as a read image read from the image memory 1208 and the reference image generation information A transmitted by the image memory access control unit 1302. To do.
  • step S2301 based on the size of the motion compensation reference block indicated by the received reference image generation information A and the relative coordinates of the motion compensation reference block, the unacquired pixel interpolation unit 1303 Get motion compensation reference block.
  • the image indicated by the motion compensation reference block acquired by the processing in step S2301 is referred to as an H264 processing target image.
  • step S2302 it is determined whether left additional pixels are necessary. Specifically, the non-acquired pixel interpolation unit 1303 receives the received reference image generation information A in the “necessity of left additional pixel” column, “necessary (1 pixel)”, “necessary (2 pixels)” and “ It is determined which of “unnecessary” is indicated.
  • step S2303 If the reference image generation information A indicates “necessary (one pixel)”, the process proceeds to step S2303. When the reference image generation information A indicates “necessary (2 pixels)”, the process proceeds to step S2304. If the reference image generation information A indicates “unnecessary”, the process proceeds to step S2305.
  • a left additional pixel one-row generation process is performed.
  • the non-acquired pixel interpolation unit 1303 sets a plurality of pixels arranged in the leftmost column of the H264 processing target image as a plurality of H264 additional pixels arranged in the left one column outside the H264 processing target image. . That is, a plurality of pixels obtained by copying a plurality of pixels arranged in the leftmost column of the H264 processing target image are set as a plurality of H264 additional pixels.
  • the plurality of pixels arranged in the leftmost column of the H264 processing target image correspond to, for example, the plurality of integer pixels 202 whose horizontal coordinate value is “0” in the reference block 201 of FIG.
  • the plurality of H264 additional pixels arranged in the left one column outside the H264 processing target image have a horizontal coordinate value of “ ⁇ 1” and a vertical coordinate value of “0”, “1”.
  • a plurality of H264 non-block pixels 205 that are any one of “2”, “2”, “3”, and “4”.
  • the unacquired pixel interpolation unit 1303 sets the image generated by this processing as the latest H264 processing target image.
  • a left additional pixel two-row generation process is performed.
  • the unacquired pixel interpolation unit 1303 converts a plurality of pixels arranged in the leftmost column of the H264 processing target image into a plurality of H264 additional pixels arranged in each of the two left columns outside the H264 processing target image. And That is, a plurality of pixels obtained by copying a plurality of pixels arranged in the leftmost column of the H264 processing target image are set as a plurality of H264 additional pixels arranged in the left two columns outside the H264 processing target image.
  • the plurality of H264 additional pixels arranged in each of the left two columns outside the H264 processing target image have a horizontal coordinate value of “ ⁇ 1” or “ ⁇ 2” in FIG.
  • the unacquired pixel interpolation unit 1303 sets the image generated by this processing as the latest H264 processing target image.
  • step S2305 it is determined whether right additional pixels are necessary. Specifically, the non-acquired pixel interpolation unit 1303 receives the received reference image generation information A in the “necessity of right additional pixel” column, “necessary (1 pixel)”, “necessary (2 pixels)” and “ It is determined which of “unnecessary” is indicated.
  • step S2306 If the reference image generation information A indicates “necessary (1 pixel)”, the process proceeds to step S2306. When the reference image generation information A indicates “necessary (2 pixels)”, the process proceeds to step S2307. If the reference image generation information A indicates “unnecessary”, the process proceeds to step S2308.
  • a right additional pixel 1-row generation process is performed.
  • the unacquired pixel interpolation unit 1303 sets a plurality of pixels arranged in the rightmost column of the latest H264 processing target image to a plurality of pixels arranged in the right one column outside the latest H264 processing target image.
  • H264 additional pixels That is, a plurality of pixels obtained by copying a plurality of pixels arranged in the rightmost column of the latest H264 processing target image are set as a plurality of H264 additional pixels.
  • the plurality of pixels arranged in the rightmost column of the latest H264 processing target image correspond to, for example, a plurality of H264 non-block pixels 205 whose horizontal coordinate value is “4” in the reference block 201 of FIG. .
  • the plurality of H264 additional pixels arranged in the right one column outside the latest H264 processing target image have, for example, a horizontal coordinate value “5” and a vertical coordinate value “0”, “ A plurality of H264 non-block pixels 205 that are any one of “1”, “2”, “3”, and “4”.
  • the unacquired pixel interpolation unit 1303 sets the image generated by this processing as the latest H264 processing target image.
  • step S2307 right additional pixel two-row generation processing is performed.
  • the unacquired pixel interpolation unit 1303 places a plurality of pixels arranged in the rightmost column of the latest H264 processing target image in each of the two right-side columns outside the latest H264 processing target image.
  • a plurality of H264 additional pixels are assumed. That is, a plurality of pixels obtained by copying a plurality of pixels arranged in the rightmost column of the latest H264 processing target image are set as a plurality of H264 additional pixels arranged in each of the right two columns outside the latest H264 processing target image.
  • the plurality of H264 additional pixels arranged in each of the right two columns outside the latest H264 processing target image have, for example, a horizontal coordinate value of “5” or “6” in FIG.
  • step S2308 it is determined whether an upper additional pixel is necessary. Specifically, the unacquired pixel interpolation unit 1303 receives the received reference image generation information A in the “necessity of upper additional pixels” column, “necessary (1 pixel)”, “necessary (2 pixels)” and “ It is determined which of “unnecessary” is indicated.
  • step S2309 If the reference image generation information A indicates “necessary (1 pixel)”, the process proceeds to step S2309. When the reference image generation information A indicates “necessary (2 pixels)”, the process proceeds to step S2310. When the reference image generation information A indicates “unnecessary”, the process proceeds to step S2311.
  • step S2309 an upper additional pixel one-row generation process is performed.
  • the unacquired pixel interpolation unit 1303 sets a plurality of pixels arranged in the uppermost one row of the latest H264 processing target image to a plurality of upper rows arranged outside the latest H264 processing target image.
  • H264 additional pixels That is, a plurality of pixels obtained by copying a plurality of pixels arranged in the upper row of the latest H264 processing target image are set as a plurality of H264 additional pixels.
  • the plurality of pixels arranged in the uppermost row of the latest H264 processing target image correspond to, for example, the plurality of integer pixels 202 whose vertical coordinate values are “0” in the reference block 201 of FIG.
  • the plurality of H264 additional pixels arranged in the upper one row outside the latest H264 processing target image have horizontal coordinate values “ ⁇ 2” to “-2” in FIG.
  • the unacquired pixel interpolation unit 1303 sets the image generated by this processing as the latest H264 processing target image.
  • step S2310 an upper additional pixel two-row generation process is performed.
  • the unacquired pixel interpolation unit 1303 arranges a plurality of pixels arranged in the uppermost one row of the latest H264 processing target image in each of the upper two rows outside the latest H264 processing target image.
  • a plurality of H264 additional pixels are assumed. That is, a plurality of pixels obtained by copying a plurality of pixels arranged in the uppermost row of the latest H264 processing target image are set as a plurality of H264 additional pixels arranged in each of the upper two rows outside the latest H264 processing target image.
  • the plurality of H264 additional pixels arranged in each of the upper two rows outside the latest H264 processing target image have, for example, the horizontal coordinate value “ ⁇ 2” in FIG.
  • a plurality of H264 non-block pixels 205 which are any one of “6” and “6” and whose vertical coordinate values are either “ ⁇ 1” or “ ⁇ 2”.
  • the unacquired pixel interpolation unit 1303 sets the image generated by this processing as the latest H264 processing target image.
  • step S2311 it is determined whether a lower additional pixel is necessary. Specifically, the unacquired pixel interpolation unit 1303 receives the received reference image generation information A in the “necessity of lower additional pixels” column, “necessary (1 pixel)”, “necessary (2 pixels)” and It is determined which of “unnecessary” is indicated.
  • step S2312 If the reference image generation information A indicates “necessary (one pixel)”, the process proceeds to step S2312. When the reference image generation information A indicates “necessary (2 pixels)”, the process proceeds to step S2313. When the reference image generation information A indicates “unnecessary”, the process proceeds to step S2314.
  • step S2312 a lower additional pixel one-row generation process is performed.
  • the unacquired pixel interpolation unit 1303 arranges a plurality of pixels arranged in the lowermost row of the latest H264 processing target image in the lower one row outside the latest H264 processing target image.
  • a plurality of H264 additional pixels are assumed. That is, a plurality of pixels obtained by copying a plurality of pixels arranged in the lower row of the latest H264 processing target image are set as a plurality of H264 additional pixels.
  • the plurality of pixels arranged in the lowermost row of the latest H264 processing target image correspond to, for example, a plurality of H264 non-block pixels 205 whose vertical coordinate value is “4” in the reference block 201 of FIG. .
  • the plurality of H264 additional pixels arranged in the lower one row outside the latest H264 processing target image have horizontal coordinate values “ ⁇ 2” to “ ⁇ 2” in FIG.
  • the unacquired pixel interpolation unit 1303 sets the image generated by this processing as the latest H264 processing target image.
  • step S2313 a lower additional pixel two-row generation process is performed.
  • the unacquired pixel interpolation unit 1303 converts a plurality of pixels arranged in the lowermost row of the latest H264 processing target image to each of the lower two rows outside the latest H264 processing target image.
  • a plurality of H264 additional pixels arranged in a row That is, a plurality of pixels obtained by copying a plurality of pixels arranged in the lowermost row of the latest H264 processing target image are set as a plurality of H264 additional pixels arranged in each of the lower two rows outside the latest H264 processing target image.
  • the plurality of H264 additional pixels arranged in each of the lower two rows outside the latest H264 processing target image have horizontal coordinate values of “ ⁇ ” in FIG.
  • the unacquired pixel interpolation unit 1303 sets the image generated by this processing as the latest H264 processing target image.
  • a reference image transmission process A is performed.
  • the unacquired pixel interpolation unit 1303 transmits the latest H264 processing target image to the motion compensation unit 1206 as a reference image (motion compensation reference image).
  • the reference image transmitted to the motion compensation unit 1206 is an image indicated by the acquired motion compensation reference block. is there.
  • the motion compensation unit 1206 performs motion compensation using the received reference image (motion compensation reference image).
  • the motion compensation performed by the motion compensation unit 1206 is H.264. Since the processing is based on the H.264 standard, detailed description will not be given.
  • the above-described H264 additional pixel necessary for generating the 1/2 coordinate pixel is not intentionally acquired, and the image memory
  • a reference image (motion compensation reference image) used for motion compensation is generated using a motion compensation reference block including H264 additional pixels.
  • the H264 additional pixel generated by copying is not used in the 1/4 precision motion compensation.
  • the H264 additional pixel generated by the copy is different from the H264 additional pixel originally required in the quarter precision motion compensation, and therefore the quarter precision motion compensation is performed using the H264 additional pixel generated by the copy. Is performed, the image quality obtained by decoding deteriorates.
  • the image indicated by the motion compensation reference block has all the H264 additional pixels necessary for performing the 1 ⁇ 4 precision motion compensation, it is possible to prevent deterioration of the image quality of the image obtained by decoding.
  • the movement is performed without generating an additional pixel.
  • an additional pixel is generated, and motion compensation is performed using the generated additional pixel.
  • the process of generating the additional pixel is not performed when the additional pixel is not necessary, so that efficient decoding processing can be performed.
  • the pixels necessary only for the interpolation generation of the decimal pixels are supplemented by pixels additionally acquired as a result of the burst transfer, for example. If only the additionally acquired pixels are insufficient in the generation of decimal pixels, the interpolation generation of the decimal pixels is performed without using the insufficient pixels.
  • the frequency of performing interpolation generation of decimal pixels without using original pixels is reduced. Therefore, it is possible to reduce the deterioration of the image quality of the image obtained by decoding.
  • the processing according to the present embodiment makes it possible to simultaneously reduce the data transfer amount of the reference block and improve the image quality of the image obtained by decoding.
  • the second embodiment has been described by taking an image decoding apparatus that decodes data encoded by the H.264 standard as an example.
  • the processing described in the present embodiment differs from the processing in the first embodiment corresponding to the MPEG2 standard in the following points.
  • (1) There are many motion compensation types processed by the image acquisition unit 1207.
  • (2) The size of the access target reference block is switched according to whether the value of the motion vector is an integer or a decimal. (3) Whether additional pixels can be acquired.
  • Determination is performed on all sides on the top, bottom, left, and right (4)
  • the number of additional pixels corresponds to two types of one pixel and two pixels (5)
  • Generation of unacquired additional pixels (interpolation generation) can be performed on all sides
  • a plurality of pixels arranged in one row or one column or a plurality of pixels arranged in two rows or two columns are generated.
  • the description of the second embodiment relates to the luminance block, but the present invention can also be applied to the color difference block by the processing described in the second embodiment.
  • the processing of the present invention shown in the second embodiment is merely an example, and various modifications can be considered in the configuration of the image memory, the access method, the processing sharing of each block, and the like.
  • each function may be individually made into one chip, or may be made into one chip so as to include a part or all of the functions. Further, if there is an integrated circuit technology that replaces the LSI, the integration may naturally be performed using this technology.
  • the details of the present invention have been described above by taking several embodiments as examples.
  • the present invention is not limited to the embodiments described herein.
  • the additional pixel necessary to generate the decimal pixel is not intentionally acquired, and the additional pixel that can be acquired unintentionally as a result of accessing the image memory according to the access restriction indicated by the specifications of the image memory.
  • Various modifications are possible while maintaining the essence of generating pixels.
  • the MPEG2 standard described in the first and second embodiments or the H.264 standard can be applied not only to an image decoding apparatus compatible with the H.264 standard but also to an image decoding apparatus compatible with the VC1 standard or the like.
  • the image decoding apparatus of the present invention may be realized by LSI or software on a computer.
  • each part of the image decoding apparatus of the present invention may be individually made into one chip, or may be made into one chip so as to include a part or all.
  • the image decoding device of the present invention may naturally be integrated using that technology.
  • the additional pixel is created by copying the pixel of the end column or the end row indicated by the image indicated by the motion compensation reference block.
  • the present invention is not limited to this.
  • pixels indicating the average value of the pixels in the end 3 columns or end 3 rows indicated by the image indicated by the motion compensation reference block may be added pixels.
  • a picture to be processed is referred to as a process target picture.
  • the processing target picture is an HD size (for example, 1920 ⁇ 1080) or SD size (720 ⁇ 480) picture
  • the present invention may be applied only to the HD size picture.
  • whether or not to apply the present invention may be determined according to the type of processing target picture. For example, the present invention may be applied only when the processing target picture is a B (Bidirectionally Predictive) picture.
  • the image decoding apparatus is MPEG2 standard or H.264.
  • the present invention can be applied to various devices that decode data encoded by a moving image encoding standard such as the H.264 standard.
  • An apparatus to which the present invention is applied may be, for example, a digital broadcast receiving apparatus, a mobile phone, an optical disk reproducing apparatus using a Bluray Disc (registered trademark) or a DVD, a personal computer, or the like.
  • FIG. 28 is a diagram showing a configuration when the image decoding apparatus of the present invention is applied to a digital broadcast receiving apparatus.
  • a system LSI 2402 is provided with a system LSI 2402, a tuner module 2403, a ROM 2404, and a RAM 2405.
  • the system LSI 2402 decodes and outputs an image and sound from digital data (bit stream) of a viewing channel.
  • the tuner module 2403 receives digital data (bit stream) of a channel to be viewed using broadcast waves (RF input).
  • the ROM 2404 stores programs and various data.
  • the RAM 2405 is used as an image memory and a storage area for various data.
  • the system LSI 2402 includes a CPU 2406, an audio decoder 2407, an output control unit 2408, a stream decoder 2409, a system bus 2410, and the image decoding apparatus 1000 or 1000A of the present invention.
  • a stream decoder 2409 separates digital data (bit stream) of a channel desired to be viewed into audio data and moving image data (video data). That is, the stream decoder 2409 acquires moving image data from the bit stream.
  • the audio decoder 2407 acquires audio by decoding audio data.
  • the image decoding apparatus 1000 or 1000A acquires a moving image by decoding the acquired moving image data by a decoding process with motion compensation.
  • the output control unit 2408 outputs the moving image (video) and audio obtained by decoding to the outside. Note that the output control unit 2408 synchronizes the moving image (video) and the sound or converts the format of the moving image (video) and the sound as necessary.
  • the system bus 2410 transfers data between the modules and between the ROM 2404 and the RAM 2405.
  • the image decoding apparatus 1000 or 1000A is integrated in the system LSI 2402, and the RAM 2405 is used as an image memory.
  • the integration method is not limited to this.
  • each unit shown in FIG. 28 may be individually made into one chip, or may be made into one chip so as to include some or all of them. Further, if there is an integrated circuit technology that replaces the LSI, the integration may naturally be performed using this technology.
  • the digital broadcast receiving apparatus has been described as an example, the present invention can be applied to a mobile phone, an optical disk reproducing apparatus using a Bluray Disc (registered trademark) or a DVD, a personal computer, and the like.
  • the image decoding apparatus can be applied to, for example, a digital broadcast receiving apparatus, a mobile phone, an optical disk reproducing apparatus using a Bluray Disc (registered trademark) or a DVD, a personal computer, and the like.
  • the apparatus to which the present invention is applied can efficiently perform moving image decoding processing.

Landscapes

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

Abstract

 画像メモリアクセス制御部(502)は、参照先ブロックが示す画像を構成する複数の画素以外の画素であって、動き補償に必要な画素である追加画素が必要であるか否かを判定する。未取得画素補間部(503)は、追加画素が必要であると判定された場合、1以上の追加画素を生成し、生成した1以上の追加画素と参照先ブロックが示す画像の少なくとも一部とから動き補償に使用される参照画像を生成する。未取得画素補間部(503)は、追加画素が必要でないと判定された場合、参照先ブロックが示す画像の少なくとも一部を参照画像として出力する。

Description

画像復号装置、画像復号方法、集積回路および受信装置
 本発明は、画像間の動き予測を伴う動画像符号化により得られた符号化データを復号する画像復号装置、画像復号方法、集積回路および受信装置に関するものである。
 近年、動画像データを圧縮するため、MPEG2規格(非特許文献1)またはH.264(非特許文献2)規格に基づく画像符号化技術が広く用いられている。これらの画像符号化技術では、動画像を構成する複数のピクチャの少なくとも一部に対し、動き予測(以下、動き補償ともいう)を行う。
 動き予測は、処理対象のピクチャと、参照ピクチャとから動きベクトルを検出し、予測ピクチャを生成する処理である。ここで、参照ピクチャは、動き予測において参照されるピクチャである。また、参照ピクチャは、処理対象のピクチャに対し、時間的に前または後のピクチャである。
 そして、動き予測により得られた動き情報(参照ピクチャを特定する情報、動きベクトル等)および予測結果との差分などの情報を符号化する。符号化は、ピクチャを規定された画素数の矩形領域(以後、ブロックと記載)に分割し、分割されたブロック単位で行なわれる。
 上記のような動き予測を伴う画像符号化技術で符号化された動画像データの復号は、以下のような手順で行われる。
 まず、動画像データから動き情報が抽出される。その後、抽出した動き情報から参照ピクチャ内のブロック(以下、予測画素ブロックという)を特定する。最後に予測画素ブロックと動画像データ中の予測結果との差分を加算して復号結果として出力する。
 これらの画像符号化技術での符号化効率は、予測した動きベクトルを動き情報として符号化する手法に依存する。特に、非整数精度の動きベクトルを導入することで符号化効率が改善されることが知られている。
 非整数精度の動きベクトルを用いる場合、非整数座標に位置する画素を整数座標に位置する画素から何らかの補間処理によって生成する。そして、補間処理により生成された画像(以下、補間画像という)を使用して、動き予測および予測画素ブロックを生成するための処理を行う。
 以下においては、整数座標に位置する画素を、整数画素という。また、以下においては、非整数座標を、小数座標ともいう。また、以下においては、小数座標に位置する画素を、小数画素という。また、以下においては、非整数精度を、小数精度ともいう。
 次に、MPEG2規格およびH.264規格に準拠する処理における小数画素の扱いについて説明する。
 MPEG2規格では1/2画素精度で動き予測(動き補償)を行うことができる。以下においては、小数点以下の値が、1/2(0.5)で表現される座標を1/2精度座標という。また、以下においては、1/2精度座標に位置する画素を、1/2座標画素という。
 1/2座標画素の値は、当該1/2座標画素に隣接する少なくとも2つの整数画素の値を平均することにより求められる。以下においては、横m(自然数)画素、縦n(自然数)画素のサイズを、「m×n」と表す。たとえば、横4画素、縦8画素のサイズのブロックは、4×8のブロックと表現する。
 次に、16×16のブロックを例に1/2座標画素の生成について説明する。
 以下においては、処理対象のピクチャにおいて、動き予測(動き補償)を行う対象となるブロックを、動き補償ブロックという。また、以下においては、動き予測(動き補償)に使用される画像を参照画像という。また、以下においては、参照ピクチャの一部の領域の画像を示すブロックであって、参照画像の全てまたは一部を示すブロックを参照先ブロックという。
 以下においては、MPEG2規格における参照先ブロック内の整数画素を、MP2ブロック整数画素という。
 図1は、MPEG2規格における参照先ブロック101内において、補間処理により生成された1/2座標画素(小数画素)を示す図である。
 図1は、一例として、16×16の参照先ブロック101を示す。参照先ブロック101は、複数の整数画素102を含む。図1において、補間処理により、少なくとも2つの整数画素102から、1/2座標画素103が生成される。
 図1において、参照先ブロック101の上部の1行に並ぶ複数の数字は、水平方向(右方向)の座標値(以下、水平座標値という)を示す。図1において、参照先ブロック101の左側の1列に並ぶ複数の数字は、垂直方向(下方向)の座標値(以下、垂直座標値という)を示す。
 以下においては、水平方向および垂直方向を、それぞれ、行方向および列方向という。また、以下においては、水平方向の座標および垂直方向の座標を、それぞれ、水平座標および垂直座標という。また、以下においては、座標を、(x(水平座標値)、y(垂直座標値))で示す。例えば、座標(3,5)は、水平座標値が“3”であり、垂直座標値が“5”であることを示す。また、以下においては、水平座標値および垂直座標値を、それぞれ、単に、水平座標および垂直座標ともいう。
 以下においては、MPEG2規格における参照先ブロックの外部に配置される画素を、MP2ブロック外画素という。また、以下においては、MPEG2規格における参照先ブロック内の1/2座標画素の生成に必要なMP2ブロック外画素を、MP2追加画素という。
 図1において、MP2ブロック外画素104は、MP2追加画素である。
 参照先ブロック101のサイズが16×16であり、補間処理により1/2精度生成必要画素を生成する場合、参照先ブロック101内の左上端の画素の座標は(0,0)であり、参照先ブロック101内の右下端の画素の座標は(15.5,15.5)である。
 参照先ブロック101内の1/2座標画素の値は、当該1/2座標画素に隣接する少なくとも2つの整数画素の値を平均することにより求められる。そのため、水平座標値が“15.5”であり、かつ、垂直座標値が“0”~“15.5”である複数の1/2座標画素103を生成するためには、参照先ブロック101外の右側1列に並ぶ複数のMP2追加画素が必要である。
 また、水平座標値が“0”~“15.5”であり、かつ、垂直座標値が“15.5”である複数の座標1/2座標画素103を生成するためには、参照先ブロック101外の下側1行に並ぶ複数のMP2追加画素が必要である。
 このように、MPEG2の処理において、1/2画素精度で動き予測(動き補償)を行う場合、参照先ブロック101より水平方向および垂直方向共に1画素大きいブロックに対応する複数の画素が必要となる。
 具体的には、MPEG2規格の処理において、16×16の動き補償ブロックを利用して、1/2画素精度で動き予測(動き補償)を行う場合、17×17の参照先ブロックが必要となる。MPEG2の処理で使用される動き補償ブロックのサイズは、16×8の場合もある。この場合、17×9の参照先ブロックが必要となる。
 H.264規格の処理では1/4画素精度で動き予測(動き補償)を行うことができる。H.264の処理では、小数座標に位置する画素のうち、1/2精度座標に位置する画素(1/2座標画素)の値は、当該画素の両隣の3画素(計6画素)を使った6タップフィルタ演算により求められる。
 以下においては、小数点以下の値が、1/4または3/4(0.25または0.75)で表現される座標を1/4精度座標という。以下においては、1/4精度座標に位置する画素を、1/4座標画素という。
 H.264規格の処理では、1/2座標画素以外の小数座標(1/4精度座標)に位置する画素(1/4座標画素)は、当該画素に隣接する画素であって、整数座標もしくは1/2精度座標に位置する少なくとも2つの画素の値を平均することにより生成される。
 以下においては、H.264規格における参照先ブロック内の整数画素を、H264ブロック整数画素という。
 図2は、H.264規格における参照先ブロック201内において、補間処理により生成された小数画素を示す図である。
 図2は、一例として、4×4の参照先ブロック201を示す。参照先ブロック201は、複数の整数画素202を含む。図2において、補間処理により、少なくとも2つの整数画素202から、小数画素としての1/2座標画素203が生成される。また、補間処理により、整数座標もしくは1/2精度座標に位置する少なくとも2つの画素から、1/4座標画素204が生成される。
 図2において、参照先ブロック201の上部の1行に並ぶ複数の数字は、水平座標値を示す。図2において、参照先ブロック201の左側の1列に並ぶ複数の数字は、垂直座標値を示す。
 以下においては、H.264規格における参照先ブロックの外部に配置される画素を、H264ブロック外画素という。また、以下においては、H.264規格における参照先ブロック内の1/2座標画素の生成に必要なH264ブロック外画素を、H264追加画素という。
 図2において、H264ブロック外画素205は、H264追加画素である。
 参照先ブロック201のサイズが4×4であり、補間処理により小数画素を生成する場合、参照先ブロック201内の左上端の画素の座標は(0,0)であり、参照先ブロック201内の右下端の画素の座標は(3.75,3.75)である。
 参照先ブロック201内の1/2座標画素は、当該1/2座標画素の両隣の3画素(計6画素)を用いた6タップフィルタにより生成される。そのため、水平座標値が“0.5”であり、かつ、垂直座標値が“0”~“3.5”である複数の1/2座標画素203を生成するためには、参照先ブロック201外の左側2列に並ぶ複数のH264追加画素が必要である。
 また、水平座標値が“0”~“3.5”であり、かつ、垂直座標値が“0.5”である複数の1/2座標画素203を生成するためには、参照先ブロック201外の上側2行に並ぶ複数のH264追加画素が必要である。
 また、水平座標値が“3.5”であり、かつ、垂直座標値が“0”~“3.5”である複数の1/2座標画素203を生成するためには、参照先ブロック201外の右側3列に並ぶ複数のH264追加画素が必要である。また、水平座標値が“0”~“3.5”であり、かつ、垂直座標値が“3.5”である複数の1/2座標画素203を生成するためには、参照先ブロック201外の下側3行に並ぶ複数のH264追加画素が必要である。なお、1/4座標画素204の生成にはH264追加画素は必要ない。
 このように、H.264規格の処理において、1/4画素精度で動き予測(動き補償)を行う場合、参照先ブロック201より左側および上側に2画素分大きいブロックであって、参照先ブロック201より右側および下側に3画素分大きいブロックに対応する複数の画素が必要となる。
 具体的には、H.264の処理において、4×4の動き補償ブロックを利用して、1/4画素精度で動き予測を行う場合、9×9の参照画像が必要となる。
 H.264の処理で使用される動き補償ブロックのサイズは、16×16、16×8、8×16、8×8、8×4および4×8の場合もある。この場合、16×16、16×8、8×16、8×8、8×4および4×8の動き補償ブロックにそれぞれ対応する21×21、21×13、13×21、13×13、13×9および9×13の参照画像が必要となる。
 このように、H.264規格の処理では6タップフィルタによって小数座標に位置する画素を生成する。そのため、H.264規格の処理では、動き予測(動き補償)に必要な画素の数が、MPEG2規格の処理より大幅に増加している。
 以上のように、MPEG2規格の処理またはH.264規格の処理において、動き予測(動き補償)を小数精度で実施する場合、小数座標に位置する画素の生成を行う必要がある。そのため、MPEG2規格の処理またはH.264規格の処理では、動き予測(動き補償)を小数精度で行う場合、動き予測(動き補償)において、より大きいサイズの参照画像が必要となる。
 その結果、動き予測(動き補償)を小数精度で行う場合、参照画像としての参照先ブロックを取得するためのデータ転送量が大きくなるという問題が生じる。したがって、参照画像としての参照先ブロックを高速に処理するためには、高性能で高価なメモリが必要となり、画像符号化や画像復号を行う装置のコストが上昇してしまう。
 上記問題を解決するために、特許文献1および特許文献2に示される手法が提案されている。
 特許文献1では、小数画素の生成に必要な、参照先ブロック外の全ての画素を取得せずに小数画素の生成を行う技術(以下、従来技術Aという)が示されている。すなわち、従来技術Aでは、動き補償に必要な全ての画素を取得しない。
 参照先ブロック外の取得しない全ての画素は、例えば、図1に示される、右端の1列に並ぶ複数の画素および下端の1行に並ぶ複数の画素である。また、参照先ブロック外の取得しない全ての画素は、例えば、図2に示される、左端2列に並ぶ複数の画素、右端3列に並ぶ複数の画素、上端2列に並ぶ複数の画素および下端3行に並ぶ複数の画素である。
 従来技術Aでは、取得されていない参照先ブロック外の画素を、取得した参照先ブロック内の画素だけを使って補間することで小数画素を生成する。また、従来技術Aでは、本来の参照先ブロック外の画素とは異なる画素により小数画素の生成を行う。そのため、従来技術Aでは、符号化処理や復号処理により得られる画像に誤差が含まれる。この誤差は、画素のビット数がnである場合、最大で±2の(n-1)乗にも及ぶ。そのため、符号化処理や復号処理により得られる画像において、無視できないレベルの画質劣化が発生してしまう。
 特許文献2では、参照ピクチャから取得した画素を一旦記憶するバッファを設け、既にバッファ内に記憶されている画素は再取得せずに動き補償を行う技術(以下、従来技術Bという)が示されている。従来技術Bでは、一度取得した画素が他ブロックの動き補償で再利用される可能性が高いことを利用し、参照ピクチャから取得する画素量を削減する。
 しかし、取得した画素が再利用されるかどうかは動画像データの内容に依存し、全く画素が再利用されないことが起こりうる。
MPEG2 ISO/IEC13818-2規格,ITU-T H.262規格 7.6 動き補償 H.264 ISO/IEC14496-10規格,ITU-T H.264規格 8.4 INTER予測処理 特開平11-346368号公報 特開2005-354673号公報
 従来技術Aでは、動き補償に必要な全ての画素を取得しない。そのため、動き補償を伴う復号処理により得られる画像の画質の劣化が常に発生する。また、従来技術Bでは、取得した画素が動き補償で使用されない場合が生じ処理の効率が悪い。
 本発明は、上述の問題点を解決するためになされたものであって、その目的は、画像の画質の劣化が常に発生することを防止するとともに、効率のよい復号処理を行うことを可能とする画像復号装置等を提供することである。
 上記目的を達成するため、この発明のある局面に従う画像復号装置は、動画像の符号化により得られた符号化データを、動き補償を伴う復号処理により復号する装置である。画像復号装置は、動き補償の対象となる参照ピクチャを記憶する画像メモリと、参照ピクチャの一部の領域の画像を示す参照先ブロックを、画像メモリから取得する画像取得部と、参照先ブロックが示す画像を構成する複数の画素以外の画素であって、動き補償に必要な画素である追加画素が必要であるか否かを判定する判定部と、判定部により追加画素が必要であると判定された場合、1以上の追加画素を生成するための補間処理を行い、生成した1以上の追加画素と参照先ブロックとから動き補償に使用される参照画像を生成し、該参照画像を出力し、判定部により追加画素が必要でないと判定された場合、参照先ブロックが示す画像を参照画像として出力する補間部と、出力された参照画像を使用して動き補償を行う動き補償部とを備える。
 すなわち、参照先ブロックが示す画像を構成する複数の画素以外の画素であって、動き補償に必要な画素である追加画素が必要であるか否かが判定される。追加画素が必要であると判定された場合、1以上の追加画素を生成するための補間処理が行われ、生成した1以上の追加画素と参照先ブロックが示す画像の少なくとも一部とから動き補償に使用される参照画像が生成され、該参照画像が出力される。追加画素が必要でないと判定された場合、参照先ブロックが示す画像の少なくとも一部が参照画像として出力される。出力された参照画像を使用して動き補償が行われる。
 つまり、追加画素が必要でないと判定された場合、参照先ブロックが示す画像の少なくとも一部が、参照画像として使用され動き補償が行われる。この場合、動き補償に必要な画素が全てあることになるので、復号により得られる画像の画質の劣化を防止することができる。
 また、追加画素が必要でないと判定された場合、追加画素を生成せず動き補償が行われ、追加画素が必要であると判定された場合、追加画素が生成され、生成した追加画素を使用して動き補償を行う。つまり、追加画素が必要である場合のみ、追加画素が生成されるので、追加画素が必要でない場合、追加画素を生成する処理が行われないので、効率のよい復号処理を行うことができる。
 したがって、画像の画質の劣化が常に発生することを防止するとともに、効率のよい復号処理を行うことができる。
 また、画像取得部は、画像メモリの仕様としてのアクセス制限に従って、画像メモリにアクセスすることにより、参照先ブロックを取得してもよい。
 また、アクセス制限は、画像メモリから取得対象となる画像を取得する場合、該取得対象となる画像を構成する画素の数以上の数の画素を取得するための制限であり、画像取得部は、画像メモリから取得対象となる画像を取得するために、アクセス制限に従って、画像メモリにアクセスすることにより、取得対象となる画像を構成する画素の数以上の数の画素からなる画像を示す参照先ブロックを取得してもよい。
 これにより、参照先ブロックが、取得対象となる画像を構成する画素の数より多い数の画素を示す場合、追加画素が不要であると判定される確率が高くなる。その結果、追加画素を生成するための補間処理が行われる確率が低くなる。そのため、より効率のよい復号処理を行うことができる。
 また、補間部は、参照先ブロックが示す画像を構成する複数の画素の一部を利用して、1以上の追加画素を生成する補間処理を行ってもよい。
 また、動き補償は、小数画素精度で行われてもよい。
 また、符号化データは、MPEG2規格で符号化されたデータであってもよい。
 また、補間部は、参照先ブロックが示す画像の少なくとも一部の画像において、水平方向の端の1列に並ぶ複数の画素を、参照先ブロックが示す画像の横側1列に並ぶ複数の追加画素とする補間処理を行ってもよい。
 また、動き補償は、画像の水平方向に対して、小数画素精度で行われてもよい。
 また、補間部は、参照先ブロックが示す画像の少なくとも一部の画像において、垂直方向の端の1行に並ぶ複数の画素を、参照先ブロックが示す画像の縦側1行に並ぶ複数の追加画素とする補間処理を行ってもよい。
 また、動き補償は、画像の垂直方向に対して、小数画素精度で行われてもよい。
 また、符号化データは、H.264規格で符号化されたデータであってもよい。
 また、補間部は、参照先ブロックが示す画像の少なくとも一部の画像において、水平方向の端の1列に並ぶ複数の画素を、参照先ブロックが示す画像の横側1列または横側2列に並ぶ複数の追加画素とする補間処理を行ってもよい。
 また、動き補償は、画像の水平方向に対して、小数画素精度で行われてもよい。
 また、補間部は、参照先ブロックが示す画像の少なくとも一部の画像において、垂直方向の端の1行に並ぶ複数の画素を、参照先ブロックが示す画像の縦側1行または縦側2行に並ぶ複数の追加画素とする補間処理を行ってもよい。
 また、動き補償は、画像の垂直方向に対して、小数画素精度で行われてもよい。
 この発明の他の局面に従う画像復号方法は、動画像の符号化により得られた符号化データを、動き補償を伴う復号処理により復号し、動き補償の対象となる参照ピクチャを記憶する画像メモリを備える画像復号装置が行う。画像復号方法は、参照ピクチャの一部の領域の画像を示す参照先ブロックを、画像メモリから取得する画像取得ステップと、参照先ブロックが示す画像を構成する複数の画素以外の画素であって、動き補償に必要な画素である追加画素が必要であるか否かを判定する判定ステップと、判定ステップにより追加画素が必要であると判定された場合、1以上の追加画素を生成するための補間処理を行い、生成した1以上の追加画素と参照先ブロックが示す画像の少なくとも一部とから動き補償に使用される参照画像を生成し、該参照画像を出力し、判定ステップにより追加画素が必要でないと判定された場合、参照先ブロックが示す画像の少なくとも一部を参照画像として出力する補間ステップと、出力された参照画像を使用して動き補償を行う動き補償ステップとを備える。
 この発明のさらに他の局面に従う集積回路は、動画像の符号化により得られた符号化データを、動き補償を伴う復号処理により復号する。集積回路は、動き補償の対象となる参照ピクチャを記憶する画像メモリと、参照ピクチャの一部の領域の画像を示す参照先ブロックを、画像メモリから取得する画像取得部と、参照先ブロックが示す画像を構成する複数の画素以外の画素であって、動き補償に必要な画素である追加画素が必要であるか否かを判定する判定部と、判定部により追加画素が必要であると判定された場合、1以上の追加画素を生成するための補間処理を行い、生成した1以上の追加画素と参照先ブロックが示す画像の少なくとも一部とから動き補償に使用される参照画像を生成し、該参照画像を出力し、判定部により追加画素が必要でないと判定された場合、参照先ブロックが示す画像の少なくとも一部を参照画像として出力する補間部と、出力された参照画像を使用して動き補償を行う動き補償部とを備える。
 この発明のさらに他の局面に従う受信装置は、放送波を使用してビットストリームを受信する。受信装置は、ビットストリームから動画像データを取得するデータ取得部と、取得した動画像データを動き補償を伴う復号処理により復号することにより動画像を取得する画像復号部と、動画像を出力する出力制御部とを備える。画像復号部は、動き補償の対象となる参照ピクチャを記憶する画像メモリと、参照ピクチャの一部の領域の画像を示す参照先ブロックを、画像メモリから取得する画像取得部と、参照先ブロックが示す画像を構成する複数の画素以外の画素であって、動き補償に必要な画素である追加画素が必要であるか否かを判定する判定部と、判定部により追加画素が必要であると判定された場合、1以上の追加画素を生成するための補間処理を行い、生成した1以上の追加画素と参照先ブロックが示す画像の少なくとも一部とから動き補償に使用される参照画像を生成し、該参照画像を出力し、判定部により追加画素が必要でないと判定された場合、参照先ブロックが示す画像の少なくとも一部を参照画像として出力する補間部と、出力された参照画像を使用して動き補償を行う動き補償部とを含む。
 なお、本発明は、画像復号方法で行なわれる処理を、コンピュータに実行させるプログラムとしても実現することもできる。また、本発明は、当該プログラムを格納するコンピュータ読み取り可能な記録媒体としても実現することができる。
 本発明により、画像の画質の劣化が常に発生することを防止するとともに、効率のよい復号処理を行うことができる。
図1は、MPEG2規格における参照先ブロック内において、補間処理により生成された1/2座標画素(小数画素)を示す図である。 図2は、H.264規格における参照先ブロック内において、補間処理により生成された小数画素を示す図である。 図3は、本発明の第1の実施の形態における画像復号装置1000の構成図である。 図4は、複数バンク画像メモリとしての画像メモリに対し、矩形領域の画素に対しアクセスする場合の処理について説明するための図である。 図5は、画像取得部の内部構成を示すブロック図である。 図6は、アクセス制御処理のフローチャートである。 図7は、一例としてのテーブルを示す図である。 図8は、一例としてのアクセス対象参照先ブロックおよび最小アクセス参照先ブロックを説明するための図である。 図9は、画像メモリの仕様Aが示すアクセス制限に従って、任意の座標から水平方向に16画素を取得する場合における画像メモリのアクセスパターンを示す図である。 図10は、画像メモリの仕様Aが示すアクセス制限に従って、任意の座標から垂直方向に16画素を取得する場合における画像メモリのアクセスパターンを示す図である。 図11は、画像メモリの仕様Aが示すアクセス制限に従って、任意の座標から垂直方向に8画素を取得する場合に必要となる画像メモリのアクセスパターンを示す図である。 図12は、動き補償参照先ブロックを説明するための図である。 図13は、一例としての参照画像生成情報を示す図である。 図14は、参照画像生成処理のフローチャートである。 図15は、本発明の第2の実施の形態における画像復号装置1000Aの構成図である。 図16は、画像取得部の内部構成を示すブロック図である。 図17は、アクセス制御処理Aのフローチャートである。 図18は、一例としてのテーブルを示す図である。 図19は、画像メモリの仕様Bを示す図である。 図20は、画像メモリの仕様Bが示すアクセス制限に従って、アクセス対象参照先ブロックにおいて水平方向の4画素を取得する場合における画像メモリのアクセスパターンを示す図である。 図21は、画像メモリの仕様Bが示すアクセス制限に従って、アクセス対象参照先ブロックにおいて水平方向の8画素を取得する場合における画像メモリのアクセスパターンを示す図である。 図22は、画像メモリの仕様Bが示すアクセス制限に従って、アクセス対象参照先ブロックにおいて水平方向の16画素を取得する場合における画像メモリのアクセスパターンを示す図である。 図23は、画像メモリの仕様Bが示すアクセス制限に従って、アクセス対象参照先ブロックにおいて水平方向の5画素を取得する場合における画像メモリのアクセスパターンを示す図である。 図24は、画像メモリの仕様Bが示すアクセス制限に従って、アクセス対象参照先ブロックにおいて水平方向の9画素を取得する場合における画像メモリのアクセスパターンを示す図である。 図25は、画像メモリの仕様Bが示すアクセス制限に従って、アクセス対象参照先ブロックにおいて水平方向の17画素を取得する場合における画像メモリのアクセスパターンを示す図である。 図26は、一例としての参照画像生成情報Aを示す図である。 図27は、参照画像生成処理Aのフローチャートである。 図28は、ディジタル放送の受信装置の構成を示す図である。
符号の説明
 101,201 参照先ブロック
 102,202 整数画素
 103,203 1/2座標画素
 104 MP2ブロック外画素
 204 1/4座標画素
 205 H264ブロック外画素
 301,1201 可変長復号部
 302,1202 逆量子化部
 303,1203 逆直交変換部
 304,1204 加算器
 305,1205 動きベクトル計算部
 306,1206 動き補償部
 307,1207 画像取得部
 308,1208 画像メモリ
 401 画像メモリ領域
 402 アクセス対象ブロック
 403 最小アクセスブロック
 501,1301 画像特定情報生成部
 502,1302 画像メモリアクセス制御部
 503,1303 未取得画素補間部
 1000,1000A 画像復号装置
 1209 画面内予測部
 1210 セレクタ部
 1211 デブロックフィルタ部
 2401 受信装置
 2402 システムLSI
 2403 チューナモジュール
 2404 ROM
 2405 RAM
 2406 CPU
 2407 オーディオデコーダ
 2408 出力制御部
 2409 ストリームデコーダ
 2410 システムバス
 以下、本発明の実施の形態について、図面を参照しながら説明する。
 <第1の実施の形態>
 図3は、本発明の第1の実施の形態における画像復号装置1000の構成図である。画像復号装置1000はMPEG2規格に対応した装置である。以下、画像復号装置1000の動作について説明する。
 図3に示される画像復号装置1000は、可変長復号部301と、逆量子化部302と、逆直交変換部303と、加算器304と、動きベクトル計算部305と、動き補償部306と、画像取得部307と、画像メモリ308とを備える。なお、画像復号装置1000が備える、画像取得部307以外の各部が行う処理は、MPEG2規格に準拠する処理なので詳細な説明は行わない。
 可変長復号部301は、外部からビットストリームを取得する。このビットストリームは、MPEG2規格に基づく動画像の符号化により得られた符号化データであるとする。そして、可変長復号部301は、ビットストリームに含まれる可変長符号を復号する。
 当該復号により、量子化された周波数成分値(以下、量子化済周波数成分情報という)と、動き情報とが得られる。当該動き情報は、動き補償タイプ、参照ピクチャを特定する番号(以下、参照ピクチャ番号という)および動きベクトルの差分値等を示す。動き補償タイプは、動き補償ブロックのサイズを示す。なお、動き補償タイプは、動き補償ブロックのサイズ以外の情報も示すが、本発明では、動き補償タイプは、動き補償ブロックのサイズを示すとして、説明を行う。
 以下においては、動き補償ブロックのサイズが、s(自然数)×t(自然数)である場合、動き補償タイプを、「Ts×t」と表す。例えば、動き補償ブロックのサイズが、16×16である場合、動き補償タイプを、「T16×16」と表す。
 なお、復号により、画像復号装置1000を制御するためのパラメータも得られるが、当該パラメータは、本発明には使用されないので、説明は省略する。
 そして、可変長復号部301は、量子化済周波数成分情報を、逆量子化部302へ送信する。また、可変長復号部301は、動き情報を動きベクトル計算部305へ送信する。
 逆量子化部302は、受信した量子化済周波数成分情報を逆量子化することにより周波数成分を得る。逆直交変換部303は、得られた周波数成分を逆直交変換することにより画素値の差分を得る。そして、逆直交変換部303は、画素値の差分を、加算器304へ送信する。なお、本実施の形態では、逆量子化および逆直交変換のどちらも規定のマクロブロック(16×16のブロック)単位で一度に処理する。
 動きベクトル計算部305は、受信した動き情報から、動き補償タイプ、参照ピクチャ番号および動きベクトルを求める。そして、動きベクトル計算部305は、動き補償タイプ、参照ピクチャ番号および動きベクトルを示す動き情報を、動き補償部306および画像取得部307へ送信する。
 画像メモリ308には、動き補償の対象となる複数の参照ピクチャが記憶されている。画像メモリ308は、予め定められた仕様に基づいて、参照ピクチャの一部の領域の画像を読み出すことが可能なメモリである。
 画像取得部307は、受信した動き情報が示す、動き補償タイプ、参照ピクチャ番号および動きベクトルに基づいて、画像メモリ308から、参照ピクチャ番号で特定される参照ピクチャの一部の領域の画像を取得する。そして、画像取得部307は、取得した画像または取得した画像に基づいて生成した画像を動き補償部306へ送信する。
 動き補償部306は、受信した動き情報が示す、動き補償タイプ、参照ピクチャ番号および動きベクトルと、画像取得部307から受信した画像とを用いて動き補償を行う。当該動き補償により、予測画像が得られる。以下においては、動き補償により得られた予測画像を、動き補償予測画像という。そして、動き補償部306は、動き補償予測画像を、加算器304へ送信する。
 加算器304は、逆直交変換部303から受信した画素値の差分と、動き補償部306から受信した動き補償予測画像とを加算することによりピクチャ(以下、再生ピクチャという)を得る。そして、加算器304は、再生ピクチャを外部へ出力するとともに、再生ピクチャを、参照ピクチャとして、画像メモリ308に記憶させる。
 一般に、画像メモリは、複数の小容量のメモリ(以後、メモリバンクと記載)から構成される。画像メモリに対するアクセスは、複数画素を単位として行うことが多い。そのため、画像メモリが複数のメモリバンクから構成されることによって、各メモリバンク内に収まる範囲内の複数画素に対するアクセス性能を向上させることができる。以下においては、複数のメモリバンクから構成される画像メモリを、複数バンク画像メモリという。
 複数バンク画像メモリは、当該複数バンク画像メモリに記憶されているピクチャ内の矩形領域の画素に対しアクセスされる場合、矩形の幅、高さ、左上端座標に制限を与えることにより、性能向上を図ることが多い。具体的には、複数バンク画像メモリは、転送を開始する座標および転送する画素数を、ある値の整数倍に制限する。
 図4は、複数バンク画像メモリとしての画像メモリに対し、矩形領域の画素に対しアクセスする場合の処理について説明するための図である。また、図4は、さらに、複数バンク画像メモリとしての画像メモリの仕様Aを示す。
 図4は、画像メモリ領域401を示す。画像メモリ領域401は、画像メモリ内の一部のメモリ領域である。画像メモリ領域401は、一例として、16×16のメモリ領域である。画像メモリ領域401は、図4に示される「画像メモリの仕様A」に従ってアクセスされる。
 図4において、画像メモリ領域401の上部の1行に並ぶ複数の数字は、水平座標値を示す。図4において、画像メモリ領域401の左側の1列に並ぶ複数の数字は、垂直座標値を示す。
 図4には、アクセス対象ブロック402と、最小アクセスブロック403とが示される。アクセス対象ブロック402は、画像メモリ領域401のうち、アクセスの対象とされるメモリ領域に対応するブロックである。アクセス対象ブロック402のサイズは、一例として、6×6である。なお、アクセス対象ブロック402の座標は、座標(3,5)である。
 最小アクセスブロック403は、アクセス対象となる画像メモリの仕様Aに従って、アクセス対象ブロック402内の全ての画素に対しアクセスする場合においてアクセスが必要な全ての画素を含む最小の領域に対応するブロックである。最小アクセスブロック403のサイズは、一例として、12×8である。なお、最小アクセスブロック403の座標は、座標(0,4)である。
 図4に示される画像メモリの仕様Aは、水平方向のアクセスに対して取得開始座標および取得サイズを4の倍数(0,4,8,‥)に制限するアクセス制限を示す。このアクセス制限のため、例えば、アクセス対象ブロック402内の任意の1行に対応する全ての座標に対しアクセスするためには、当該任意の1行において、水平座標値が“0”である座標から、右方向に向かって水平座標値が“11”である座標までアクセスする必要がある。すなわち、アクセス対象ブロック402内の任意の1行に対応する6画素分に対しアクセスするためには、水平方向に12画素分もアクセスする必要がある。
 また、画像メモリの仕様Aは、垂直方向のアクセスに対しても取得開始座標を4の倍数(0,4,8,‥)に制限し、取得サイズを8の倍数(0,8,16,‥)に制限するアクセス制限を示す。このアクセス制限のため、例えば、アクセス対象ブロック402内の任意の1列に対応する全ての座標に対しアクセスするためには、当該任意の1列において、垂直座標値が“4”である座標から、下方向に向かって垂直座標値が“11”である座標までアクセスする必要がある。すなわち、アクセス対象ブロック402内の任意の1列に対応する6画素分に対しアクセスするためには、垂直方向に8画素分もアクセスする必要がある。
 以上のように、この例では画像メモリの仕様Aが示すアクセス制限に従って、6×6のアクセス対象ブロック402内の全ての画素にアクセスを行うには、12×8の最小アクセスブロック403内の全ての画素にアクセスする必要が生じる。一般に、例えば、上記仕様Aが示すようなアクセス制限がある画像メモリにおいて、アクセス対象ブロック402内の全ての画素に対しアクセスする場合、当該アクセス対象ブロック402より大きなブロック(最小アクセスブロック403)内の全ての画素にアクセスする必要が生じることが多い。
 背景技術で述べたように、MPEG2規格では、1/2画素精度で動き補償を行うことができる。そのため、MPEG2規格では、1/2画素精度で動き補償を行う場合、1/2座標画素の生成が必要である。以下においては、1/2画素精度で行う動き補償を、1/2精度動き補償という。
 前述したように、1/2座標画素の値は、当該1/2座標画素に隣接する少なくとも2つの整数画素の値を平均することにより求められる。すなわち、1/2座標画素は、当該1/2座標画素に隣接する少なくとも2つの整数画素を使用して生成することができる。
 当該1/2座標画素の生成を行う場合、画像メモリに記憶されている参照ピクチャから取得する参照先ブロックのサイズが、水平方向および垂直方向共に1画素大きいサイズとなる。この結果、画像メモリから参照先ブロックを取得するためのデータ転送量が大きくなるという問題が生じる。したがって、参照先ブロックを高速に処理するためには、高性能で高価なメモリが必要となり、画像符号化や画像復号を行う装置のコストが上昇してしまう。
 前述のように、一般的な画像メモリは、ある矩形領域内の画素に対しアクセスする場合、当該ある矩形領域より大きな矩形領域内の画素に対しアクセスが必要となる。
 そこで、本実施の形態では、1/2精度動き補償を行う場合、1/2座標画素の生成に必要な前述したMP2追加画素を、意図的に取得しようとせず、画像メモリの仕様が示すアクセス制限に従って、当該画像メモリにアクセスした結果、意図せずにMP2追加画素が取得された場合、取得されたMP2追加画素を使用するための処理(以下、処理NAという)を行う。MP2追加画素は、例えば、図1において、右端1列に並ぶ複数の画素および下端1行に並ぶ複数の画素である。
 しかし、画像メモリにおいて、アクセス対象となる矩形領域(ブロック)の位置と大きさによっては、1/2精度動き補償において必要なMP2追加画素が取得できないことがある。そのため、本実施の形態では、画像メモリに対し実際にアクセスする矩形領域(ブロック)の大きさを求め、1/2精度動き補償において必要なMP2追加画素が取得できない場合には、取得された画素だけを用いて1/2座標画素を生成する。
 本実施の形態では、取得された画像において、右端1列に並ぶ複数の画素および下端1行に並ぶ複数の画素をそのままコピーしてMP2追加画素とする。これにより、1/2座標画素の生成に必要なMP2追加画素を取得することなく、1/2精度動き補償を行うことが可能となる。
 なお、取得された画素だけで1/2座標画素を生成する手法は、上記手法に限定されることなく、様々な他の手法を用いてもよい。
 次に、第1の実施の形態における、上記処理NAの実現手段について説明する。第1の実施の形態では、画像取得部307が上記処理NAを行うため、画像取得部307が行う処理について詳細な説明を行う。
 第1の実施の形態において、図3に示される画像取得部307以外の各部(可変長復号部301、逆量子化部302、逆直交変換部303、加算器304、動きベクトル計算部305、動き補償部306)は、MPEG2規格の規定どおりに動作する。そのため、図3に示される画像取得部307以外の各部についての詳細な説明は行わない。
 また、画像メモリ308は、前述したように、複数の参照ピクチャを記憶する。また、画像メモリ308は、前述した画像メモリの仕様Aが示すアクセス制限を行うとする。なお、画像メモリ308は、画像の処理方式が、インターレース方式およびプログレッシブ方式のいずれであっても、同じ仕様でアクセス可能であり、アクセス対象のパリティは参照ピクチャ番号で指定される。
 画像取得部307は、前述したように、動きベクトル計算部305が送信する動き補償タイプ、参照ピクチャ番号および動きベクトルに基づいて、画像メモリ308から、動き補償に用いる、参照ピクチャ番号で特定される参照ピクチャの一部の領域の画像を取得する。
 画像取得部307は、取得した画像または取得した画像に基づいて生成した画像を、動き補償に使用される参照画像として動き補償部306へ送信する。
 図5は、画像取得部307の内部構成を示すブロック図である。図5に示されるように、画像取得部307は、画像特定情報生成部501と、画像メモリアクセス制御部502と、未取得画素補間部503とを含む。
 画像特定情報生成部501の動作は、MPEG2規格に準拠するため、画像特定情報生成部501の動作の詳細な説明は行わない。以下、簡単に、画像特定情報生成部501の動作について説明する。
 画像特定情報生成部501は、受信した動き情報が示す、動き補償タイプ、参照ピクチャ番号および動きベクトルに基づいて、動き補償部306が行う動き補償で必要とされる参照画像を特定するための情報(以下、参照画像特定情報という)を生成する。参照画像特定情報は、動き補償タイプ、参照ピクチャ番号、メモリにおける参照画像の左上端座標および参照画像のサイズを示す。
 画像特定情報生成部501は、動き補償部306がMPEG2規格どおりに動き補償を行うことを前提に、参照画像特定情報を生成する。そのため、生成される参照画像特定情報は、1/2座標画素の生成に必要な前述したMP2追加画素を含む参照画像を特定するための情報である。
 そして、画像特定情報生成部501は、生成した参照画像特定情報を、画像メモリアクセス制御部502へ送信する。
 画像メモリアクセス制御部502は、詳細は後述するが、画像特定情報生成部501が送信する参照画像特定情報に基づいて、画像メモリ308の仕様Aが示すアクセス制限に従った参照先ブロックの読出し命令を生成し、生成した読出し命令を画像メモリ308へ送信する。なお、本実施の形態では、読出し命令は、前述したMP2追加画素を意図的に取得しないように生成される。
 また、画像メモリアクセス制御部502は、詳細は後述するが、生成された読出し命令により特定される参照先ブロックの大きさに基づいて、画像メモリ308から、前述したMP2追加画素を取得できるか否かを判定する。そして、画像メモリアクセス制御部502は、MP2追加画素を取得できるか否かの判定に基づいて、MP2追加画素補間情報を生成し、生成したMP2追加画素補間情報を、未取得画素補間部503へ送信する。MP2追加画素補間情報は、MP2追加画素の補間が必要であるか否かを示す情報である。
 画像メモリアクセス制御部502の動作はMPEG2規格に準拠しない。そのため、以下、画像メモリアクセス制御部502の動作の詳細を説明する。以下においては、画像メモリアクセス制御部502が行う処理を、アクセス制御処理という。
 なお、説明を簡単にするために、画像メモリ308は、一例として、1枚の参照ピクチャを記憶する領域(以下、参照ピクチャ記憶領域という)を複数有するとする。各参照ピクチャ記憶領域は、参照ピクチャのサイズ(例えば、1920×1080)と同じであるとする。すなわち、各参照ピクチャ記憶領域の座標(0,0)は、対応する参照ピクチャの左上端座標に対応する。
 図6は、アクセス制御処理のフローチャートである。
 ステップS600では、画像メモリアクセス制御部502が、画像特定情報生成部501から前述した参照画像特定情報を取得する。
 ステップS601では、アクセス対象ブロック特定処理が行われる。アクセス対象ブロック特定処理では、画像メモリアクセス制御部502が、取得した参照画像特定情報が示す動き補償タイプに基づいて、アクセス対象となる参照先ブロック(以下、アクセス対象参照先ブロックという)のサイズを特定する。
 以下においては、メモリに記憶されている参照ピクチャの一部のブロックであって、アクセス対象となる参照先ブロックを、アクセス対象参照先ブロックという。動き補償タイプと、アクセス対象参照先ブロックのサイズとの対応関係は、以下のテーブルRT100に示される。
 図7は、一例としてのテーブルRT100を示す図である。テーブルRT100において、動き補償タイプは、「T16×16」、「T16×8」の2種類が示される。
 テーブルRT100において、「動きベクトル精度」とは、水平方向または垂直方向における動きベクトルの精度を示す。「動きベクトル精度」の項目における「整数」は、対応する方向の動きベクトルの値が、整数であることを示す。「動きベクトル精度」の項目における「小数」は、対応する方向の動きベクトルの値が、小数であることを示す。
 テーブルRT100において、「必要参照画像サイズ」とは、MPEG2規格の動き補償で必要な参照画像のサイズである。「必要参照画像サイズ」は、参照画像特定情報が示す参照画像のサイズである。「必要参照画像サイズ」は、2種類の動き補償タイプのいずれかと、4種類の動きベクトル精度のいずれかとの組み合わせにより決まる。
 テーブルRT100において、「アクセス対象参照先ブロックサイズ」とは、アクセス対象参照先ブロックのサイズである。
 本実施の形態では、動きベクトルの値が小数の場合、すなわち、動き補償が少数画素精度で行われる場合、前述したMP2追加画素を意図的に取得しないようにするため、動き補償タイプのみにより、アクセス対象参照先ブロックサイズが特定される。
 具体的には、図6のステップS601のアクセス対象ブロック特定処理において、画像メモリアクセス制御部502が、取得した参照画像特定情報が示す動き補償タイプにより特定される動き補償ブロックのサイズを、アクセス対象参照先ブロックサイズとする。例えば、動き補償タイプが「T16×16」である場合、動き補償ブロックのサイズは、16×16である。この場合、アクセス対象参照先ブロックサイズは、16×16と特定される。
 また、画像メモリアクセス制御部502は、取得した参照画像特定情報が示す参照画像の左上端座標を、アクセス対象参照先ブロックの左上端座標とする。
 以下においては、画像メモリの仕様が示すアクセス制限に従って、当該画像メモリに記憶されている参照ピクチャ内のアクセス対象参照先ブロックにアクセスする場合、アクセスが必要な全てのブロックを、最小アクセス参照先ブロックという。
 ここで、画像メモリアクセス制御部502は、画像メモリ308の仕様Aの情報を予め記憶しているとする。なお、これに限定されることなく、画像メモリアクセス制御部502は、他の部分(例えば、メモリ、回路等)から、仕様Aの情報を取得してもよい。
 ステップS602では、最小アクセス参照先ブロック特定処理が行われる。詳細は後述するが、最小アクセス参照先ブロック特定処理では、画像メモリアクセス制御部502が、画像メモリ308の仕様Aが示すアクセス制限に従って、画像メモリ308に記憶されている参照ピクチャ内において、特定されたアクセス対象参照先ブロックにアクセスする場合における、最小アクセス参照先ブロックを特定する。
 最小アクセス参照先ブロック特定処理において、画像メモリ308に記憶されている、処理対象の参照ピクチャは、参照画像特定情報が示す参照ピクチャ番号により特定されるピクチャである。
 アクセス対象参照先ブロックは、例えば、図4のアクセス対象ブロック402に対応する。また、最小アクセス参照先ブロックは、例えば、図4の最小アクセスブロック403に対応する。
 図8は、一例としてのアクセス対象参照先ブロックおよび最小アクセス参照先ブロックを説明するための図である。
 図8において、参照ピクチャP400は、画像メモリ(例えば、画像メモリ308)の参照ピクチャ記憶領域に記憶されている参照ピクチャである。参照ピクチャP400内には、アクセス対象参照先ブロックB420および最小アクセス参照先ブロックB410が配置される。
 アクセス対象参照先ブロックB420は、参照ピクチャP400の一部の画像であって、アクセス対象参照先ブロックB420内の画像を示すブロックである。最小アクセス参照先ブロックB410は、参照ピクチャP400の一部の画像であって、最小アクセス参照先ブロックB410内の画像を示すブロックである。
 アクセス対象参照先ブロックB420の左上端座標において、水平座標値および垂直座標値が4の倍数である場合、最小アクセス参照先ブロックB410のサイズおよび位置は、それぞれ、アクセス対象参照先ブロックB420のサイズおよび位置と同じとなる。例えば、アクセス対象参照先ブロックB420の左上端座標が、(16,16)である場合、最小アクセス参照先ブロックB410のサイズおよび位置は、それぞれ、アクセス対象参照先ブロックB420のサイズおよび位置と同じとなる。
 すなわち、最小アクセス参照先ブロックB410のサイズは、アクセス対象参照先ブロックB420のサイズ以上のサイズである。つまり、最小アクセス参照先ブロックB410は、アクセス対象参照先ブロックB420を含む。
 次に、画像メモリ308の仕様が、図4の仕様Aである場合における、画像メモリに対するアクセスパターンについて説明する。
 図7のテーブルRT100に示されるように、ステップS601の処理により特定されるアクセス対象参照先ブロックサイズは、16×16および16×8の2種類である。この場合、画像メモリに対する水平方向のアクセスは、常に16画素幅で行われる。
 図4の仕様Aは、水平方向のアクセスにおいて、取得開始座標(ブロック左端の座標)が4の倍数に制限されており、取得サイズ(最小アクセス参照先ブロックのサイズ)が4の倍数に制限されていることを示す。
 MPEG2規格では、アクセス対象参照先ブロックの左端座標が任意の値であるため、水平方向の取得開始座標も任意の値となる。
 図9は、前述の画像メモリの仕様Aが示すアクセス制限に従って、任意の座標から水平方向に16画素を取得する場合における画像メモリのアクセスパターンを示す図である。
 図9において、「左端水平座標のあまり」とは、アクセス対象参照先ブロックの左端の水平座標を4で割ったあまりである。前述の画像メモリの仕様Aは、水平方向のメモリアクセスにおいて、水平方向の取得開始座標を4の倍数で制限する。そのため、図9に示すように、左端水平座標のあまり(0,1,2,3のいずれか)に応じて画像メモリに対するアクセスパターンが変化する。
 また、左端水平座標のあまりが0でない場合は、16画素を取得するためには、16画素分のアクセスでは足りず、取得サイズが4の倍数に制限されるため、20画素分のアクセスが必要である。
 図9において、「水平方向追加画素」とは、参照先ブロックに対して水平方向のMP2追加画素である。図9において、「水平方向追加画素の要否」とは、水平方向追加画素の生成(補間生成)が必要であるか否かを示す。図9において、「取得したい画素数」とは、アクセス対象参照先ブロックの水平方向の画素数である。また、図9において、「画像メモリアクセス」とは、実際にアクセスされる、最小アクセス参照先ブロックの水平方向の全ての画素である。
 図7のテーブルRT100に示されるように、ステップS601の処理により特定されるアクセス対象参照先ブロックサイズは、16×16および16×8の2種類である。この場合、画像メモリに対する垂直方向のアクセス対象となる画素数は、16および8の2通りがある。
 図4の仕様Aは、垂直方向のアクセスにおいて、取得開始座標(ブロック上端の座標)が4の倍数に制限されており、取得サイズ(最小アクセスブロックのサイズ)が8の倍数に制限されていることを示す。
 MPEG2規格では、取得するアクセス対象参照先ブロックの上端座標が任意の値となるため、垂直方向の取得開始座標も任意の値となる。
 図10は、前述の画像メモリの仕様Aが示すアクセス制限に従って、任意の座標から垂直方向に16画素を取得する場合における画像メモリのアクセスパターンを示す図である。
 図11は、前述の画像メモリの仕様Aが示すアクセス制限に従って、任意の座標から垂直方向に8画素を取得する場合に必要となる画像メモリのアクセスパターンを示す図である。
 図10および図11において、「上端垂直座標のあまり」とは、取得するアクセス対象参照先ブロックの上端の垂直座標を4で割ったあまりである。図10および図11において、「垂直方向追加画素」とは、参照先ブロックに対して垂直方向のMP2追加画素である。
 図10および図11において、「取得したい画素数」とは、アクセス対象参照先ブロックの垂直方向の画素数である。また、図10および図11において、「画像メモリアクセス」とは、実際にアクセスされる、最小アクセス参照先ブロックの垂直方向の全ての画素である。
 図10および図11において、「垂直方向追加画素の要否」とは、垂直方向追加画素の生成(補間生成)が必要であるか否かを示す。
 図4の仕様Aは、水平方向と同様、垂直方向のアクセスにおいても、垂直方向の取得開始座標を4の倍数で制限する。そのため、図10、図11に示すように、上端垂直座標のあまり(0,1,2,3のいずれか)に応じてアクセスパターンが変化する。
 また、図10において、上端垂直座標のあまりが0でない場合は、取得サイズが8の倍数に制限されるため、16画素を取得するために24画素分のアクセスが必要である。また、図11において、上端垂直座標のあまりが0でない場合は、取得サイズが8の倍数に制限されるため、8画素を取得するために16画素分のアクセスが必要である。
 再び、図6を参照して、ステップS602の最小アクセス参照先ブロック特定処理では、画像メモリアクセス制御部502は、画像メモリ308の仕様Aが示すアクセス制限に従って、最小アクセス参照先ブロックを特定する。
 具体的には、画像メモリアクセス制御部502は、アクセス対象参照先ブロックのサイズおよび左上端座標と、画像メモリ308の仕様Aと、図9、図10、図11に示される複数のアクセスパターンとに従って、最小アクセス参照先ブロックの左上端の座標と、最小アクセス参照先ブロックのサイズとを算出する。
 そして、画像メモリアクセス制御部502は、算出された最小アクセス参照先ブロックの左上端の座標と、最小アクセス参照先ブロックのサイズとを示す最小アクセス参照先ブロック情報を生成する。
 ここで、例えば、アクセス対象参照先ブロックのサイズが16×16であり、アクセス対象参照先ブロックの左上端座標が(16,17)であるとする。この場合、座標(16,17)において、水平座標値“16”が4の倍数であるので、図4の仕様Aにより、最小アクセス参照先ブロックの水平座標値は、16と算出される。
 また、アクセス対象参照先ブロックの水平方向のサイズは“16”であるので、図9に示されるアクセスパターンにより、最小アクセス参照先ブロックの水平方向のサイズが算出される。具体的には、水平座標値“16”は、図9において、左端水平座標のあまり“0”に対応するので、最小アクセス参照先ブロックの水平方向のサイズは、16画素と算出される。
 また、座標(16,17)において、垂直座標値“17”は4の倍数でないので、図4の仕様Aにより、最小アクセス参照先ブロックの水平座標値は、垂直座標値“17”より小さい値であって、4の倍数である16と算出される。
 また、アクセス対象参照先ブロックの垂直方向のサイズは“16”であるので、図10に示されるアクセスパターンにより、最小アクセス参照先ブロックの水平方向のサイズが算出される。具体的には、垂直座標値“17”は、図10において、上端垂直座標のあまり“1”に対応するので、最小アクセス参照先ブロックの垂直方向のサイズは、24画素と算出される。
 すなわち、最小アクセス参照先ブロック特定処理により、最小アクセス参照先ブロックの左上端の座標(16,16)が算出される。また、最小アクセス参照先ブロックのサイズとして、16×24が算出される。この場合、最小アクセス参照先ブロック特定処理により、最小アクセス参照先ブロックの左上端の座標(16,16)と、最小アクセス参照先ブロックのサイズとしての16×24とを示す最小アクセス参照先ブロック情報が生成される。
 すなわち、仕様Aが示すアクセス制限は、画像メモリから取得対象となる画像(アクセス対象参照先ブロック)を取得する場合、該取得対象となる画像を構成する画素の数以上の数の画素を取得するための制限である。
 ステップS603では、読出し命令送信処理が行われる。読出し命令送信処理では、画像メモリアクセス制御部502が、最小アクセス参照先ブロックを、画像メモリ308から取得するための読出し命令を生成する。最小アクセス参照先ブロックのサイズが、アクセス対象参照先ブロックのサイズと同じである場合、読出し命令に従って読み出される最小アクセス参照先ブロックは、前述したMP2追加画素を含まない。
 一方、最小アクセス参照先ブロックのサイズが、アクセス対象参照先ブロックのサイズより大きい場合(例えば、図8の状態の場合)、読出し命令に従って読み出される最小アクセス参照先ブロックは、意図せずにMP2追加画素を含む場合がある。すなわち、生成される読出し命令は、前述したMP2追加画素を意図的に取得しない命令である。
 そして、画像メモリアクセス制御部502は、生成した読出し命令を、画像メモリ308へ送信する。
 画像メモリ308は、読出し命令の受信に応じ、当該読出し命令に従った最小アクセス参照先ブロックを、読出し画像として、未取得画素補間部503へ送信する。
 本実施の形態における画像メモリのアクセス制御手法では、1/2精度動き補償を行う場合、1/2座標画素の生成に必要な前述したMP2追加画素を意図的に取得しない処理を行う。また、アクセス対象参照先ブロックの左上端座標によっては、最小アクセス参照先ブロックのサイズが、当該アクセス対象参照先ブロックのサイズと同じになる場合がある。この場合、読出し命令に従って読み出される最小アクセス参照先ブロックは、前述したMP2追加画素を含まない。
 水平方向のMP2追加画素は、水平方向の動きベクトルの値が小数であり、かつ、図9の「水平方向追加画素の要否」の欄に「必要」と記載される場合(前述した左端水平座標のあまりが0である場合)に取得できない。この場合、アクセス対象参照先ブロック外の右側1列に並ぶ複数のMP2追加画素を生成(補間生成)する必要がある。
 水平方向のMP2追加画素と同様に垂直方向のMP2追加画素は、垂直方向の動きベクトルの値が小数であり、かつ、図10、または、図11の「垂直方向追加画素の要否」の欄に「必要」と記載される場合(前述した上端垂直座標のあまりが0である場合)に取得できない。
 この場合、アクセス対象参照先ブロック外の下側1行に並ぶ複数のMP2追加画素を生成(補間生成)する必要がある。
 このように、本実施の形態において、MP2追加画素の補間が必要であるか否かを示す、前述したMP2追加画素補間情報は、水平方向追加画素の要否を示す情報と、垂直方向追加画素の要否を示す情報とを示す。MP2追加画素補間情報は、例えば、以下の情報A,B,C,Dのいずれかを示す。
情報A(水平方向追加画素:不要、垂直方向追加画素:不要)
情報B(水平方向追加画素:必要、垂直方向追加画素:不要)
情報C(水平方向追加画素:不要、垂直方向追加画素:必要)
情報D(水平方向追加画素:必要、垂直方向追加画素:必要)
 背景技術で述べたように、補間処理により、追加画素を生成し、生成した追加画素を利用して、小数画素の生成を行うと、復号処理により得られる画像に誤差が生じる。この場合、復号処理により得られる画像の画質が劣化する。
 一方、本実施の形態では、画像メモリのアクセスパターンを用いて、追加画素を生成するか否かを判定する。そのため、画像メモリのアクセスパターンによっては、意図せずに必要な追加画素が得られ、追加画素を生成せずに復号を行える可能性がある。
 したがって、追加画素を取得せず復号を行う従来の手法に比べ、本実施の形態では、意図せずに必要な追加画素が得られた場合、復号により得られる画像の画質の劣化が小さくなる。
 ステップS604では、補間判定処理が行われる。補間判定処理では、画像メモリアクセス制御部502が、取得した参照画像特定情報が示す動きベクトルと、アクセス対象参照先ブロックのサイズおよび左上端座標と、画像メモリ308の仕様Aと、図9、図10、図11に示される複数のアクセスパターンとに従って、水平方向追加画素および垂直方向追加画素の要否を判定する。当該判定の詳細な説明は、上記で述べた説明と同様である。
 そして、画像メモリアクセス制御部502は、水平方向追加画素および垂直方向追加画素の要否に基づいて、前述したMP2追加画素補間情報を生成する。
 すなわち、参照画像特定情報が示す動きベクトルの水平方向の値が小数であり、かつ、アクセス対象参照先ブロックの水平方向のサイズに対応する図(例えば、図9)において、特定されたアクセスパターンに対応する「水平方向追加画素の要否」の欄に「必要」と記載される場合、水平方向追加画素は必要と判定される。
 また、参照画像特定情報が示す動きベクトルの垂直方向の値が小数であり、かつ、アクセス対象参照先ブロックの垂直方向のサイズに対応する図(例えば、図10)において、特定されたアクセスパターンに対応する「垂直方向追加画素の要否」の欄に「必要」と記載される場合、垂直方向追加画素は必要と判定される。
 ここで、例えば、アクセス対象参照先ブロックのサイズが16×16であり、アクセス対象参照先ブロックの左上端座標が(16,17)であるとする。参照画像特定情報が示す動きベクトルの水平方向の値および垂直方向の値が、それぞれ、小数および小数であるとする。この場合、必要参照画像サイズは、図7のテーブルRT100から、17×17であることが分かる。
 この場合、参照画像特定情報が示す動きベクトルの水平方向の値は、小数であり、かつ、座標(16,17)において、水平座標値“16” は、図9において、上端水平座標のあまり“0”に対応し、「水平方向追加画素の要否」の欄に「必要」と記載されるので、水平方向追加画素は必要と判定される。
 また、参照画像特定情報が示す動きベクトルの垂直方向の値は、小数であり、かつ、座標(16,17)において、垂直座標値“17” は、図10において、上端垂直座標のあまり“1”に対応し、「垂直方向追加画素の要否」の欄に「不要」と記載されるので、垂直方向追加画素は不要と判定される。この場合、補間判定処理により、前述した情報Bを示すMP2追加画素補間情報が生成される。
 ステップS605では、参照画像生成情報を生成するための参照画像生成情報生成処理が行われる。参照画像生成情報は、動き補償に使用される参照画像を生成するための情報である。
 参照画像生成情報生成処理では、画像メモリアクセス制御部502が、取得した参照画像特定情報が示す参照画像のサイズ(必要参照画像サイズ)および参照画像の左上端座標と、生成した最小アクセス参照先ブロック情報と、生成したMP2追加画素補間情報とに基づいて、参照画像生成情報を生成する。
 以下においては、動き補償部306が動き補償で使用する参照画像を、動き補償参照画像という。動き補償参照画像のサイズは、取得した参照画像特定情報が示す参照画像のサイズ(必要参照画像サイズ)(例えば、17×17)である。動き補償参照画像の左上端座標は、参照画像特定情報が示す参照画像の左上端座標である。
 また、以下においては、最小アクセス参照先ブロックが示す画像を、最小アクセス参照画像という。また、以下においては、動き補償参照画像のサイズのブロックを、動き補償参照画像ブロックという。
 また、以下においては、最小アクセス参照画像において、動き補償参照画像の左上端座標の位置を動き補償参照画像ブロックの左上端として、当該動き補償参照画像ブロックを、最小アクセス参照画像に配置した場合、動き補償参照画像ブロック内に示される画像のみを示すブロックを、動き補償参照先ブロックという。
 図12は、動き補償参照先ブロックを説明するための図である。
 図12には、アクセス対象参照先ブロックB12が示される。アクセス対象参照先ブロックB12の左上端座標は(16,17)であり、アクセス対象参照先ブロックB12のサイズは16×16であるとする。
 この場合、アクセス対象参照先ブロックB12の左上端座標およびサイズに基づいて、前述した最小アクセス参照先ブロック特定処理により、最小アクセス参照先ブロックB11が算出される。
 最小アクセス参照先ブロックB11のサイズは16×24であるとする。また、最小アクセス参照先ブロックB11の左上端座標は(16,16)であるとする。また、動き補償参照画像ブロックB13のサイズは、17×17であるとする。また、動き補償参照画像の左上端座標は(16,17)であるとする。
 この場合、最小アクセス参照先ブロックB11(最小アクセス参照画像)において、動き補償参照画像の左上端座標(16,17)の位置を、動き補償参照画像ブロックB13の左上端として、動き補償参照画像ブロックB13が最小アクセス参照先ブロックB11に配置される。
 この場合、図12において、斜線で示されるブロックが、動き補償参照先ブロックB21である。動き補償参照先ブロックB21のサイズは16×17である。この場合、動き補償参照先ブロックB21の下端1行に並ぶ複数の画素が、意図せずに取得されたMP2追加画素である。
 すなわち、動き補償参照先ブロックB21が示す画像は、最小アクセス参照先ブロックB11が示す画像の少なくとも一部の画像である。動き補償参照先ブロックB21の左上端座標は、参照画像特定情報が示す参照画像の左上端座標である。
 図13は、一例としての参照画像生成情報を示す図である。
 図13において、「最小アクセス参照先ブロックの座標」は、最小アクセス参照先ブロックの左上端座標である。「動き補償参照先ブロックのサイズ」において、動き補償参照先ブロックの横のサイズは、最小アクセス参照先ブロックの横のサイズ(例えば、16)が動き補償参照画像の横のサイズ(例えば、17)より小さい場合、最小アクセス参照先ブロックの横のサイズとされる。
 また、動き補償参照先ブロックの横のサイズは、最小アクセス参照先ブロックの横のサイズ(例えば、18)が動き補償参照画像の横のサイズ(例えば、17)以上の場合、動き補償参照画像の横のサイズとされる。この場合、動き補償参照先ブロックが示す画像の水平方向には、意図せずに取得されたMP2追加画素が含まれる。
 また、動き補償参照先ブロックの縦のサイズは、最小アクセス参照先ブロックの縦のサイズ(例えば、16)が動き補償参照画像の縦のサイズ(例えば、17)より小さい場合、最小アクセス参照先ブロックの縦のサイズとされる。
 また、動き補償参照先ブロックの縦のサイズは、最小アクセス参照先ブロックの縦のサイズ(例えば、24)が動き補償参照画像の縦のサイズ(例えば、17)以上の場合、動き補償参照画像の縦のサイズとされる。この場合、動き補償参照先ブロックが示す画像の垂直方向には、意図せずに取得されたMP2追加画素が含まれる。
 例えば、最小アクセス参照先ブロックのサイズが16×24であり、動き補償参照画像のサイズが、17×17である場合、動き補償参照先ブロックのサイズは、16×17となる。
 「動き補償参照先ブロックの相対座標」とは、「最小アクセス参照先ブロックの座標」に対する、動き補償参照先ブロックの位置を特定するための相対座標である。
 動き補償参照先ブロックの相対座標は、動き補償参照先ブロックの左上端座標における水平座標値および垂直座標値から、それぞれ、最小アクセス参照先ブロックの座標における水平座標値および垂直座標値を減算することにより算出される。
 例えば、最小アクセス参照先ブロックの座標が(16,16)であり、動き補償参照先ブロックの左上端座標が(16,17)であるとする。この場合、動き補償参照先ブロックの相対座標は、(0,1)となる。
 なお、動き補償参照先ブロックの左上端座標と、最小アクセス参照先ブロックの左上端座標とが同じである場合、相対座標は(0,0)となる。
 再び、図6を参照して、ステップS605の参照画像生成情報生成処理では、画像メモリアクセス制御部502が、生成した参照画像生成情報を、未取得画素補間部503へ送信する。
 未取得画素補間部503は、画像メモリ308から読み出された、読出し画像としての最小アクセス参照先ブロックと、画像メモリアクセス制御部502が送信する、参照画像生成情報とを受信する。
 未取得画素補間部503は、詳細は後述するが、動き補償部306が動き補償を行う場合に用いる動き補償参照画像を、動き補償部306へ送信する。
 動き補償部306は、MPEG2規格どおりに動き補償を行うため、図7に示される必要参照画像サイズの参照画像が必要である。
 しかし、前述のように、画像メモリ308から読み出される、読出し画像としての最小アクセス参照先ブロックは、前述したMP2追加画素の全てを含まないことがある。例えば、最小アクセス参照先ブロックの縦のサイズが動き補償参照画像の縦のサイズより小さい場合、または、最小アクセス参照先ブロックの横のサイズが、動き補償参照画像の横のサイズより小さい場合、最小アクセス参照先ブロックは、MP2追加画素の全てを含まない。
 そのため、未取得画素補間部503では、MP2追加画素が存在しない場合、補間処理によりMP2追加画素を生成する。
 以下においては、未取得画素補間部503が参照画像を生成するための処理を、参照画像生成処理という。
 図14は、参照画像生成処理のフローチャートである。
 ステップS1100では、未取得画素補間部503が、画像メモリ308から読み出された、読出し画像としての最小アクセス参照先ブロックと、画像メモリアクセス制御部502が送信する、参照画像生成情報とを受信する。
 ステップS1101では、受信した参照画像生成情報が示す動き補償参照先ブロックのサイズおよび動き補償参照先ブロックの相対座標に基づいて、未取得画素補間部503が、受信した最小アクセス参照先ブロックから、動き補償参照先ブロックを取得する。以下においては、ステップS1101の処理により取得された動き補償参照先ブロックが示す画像を、MP2処理対象画像という。
 ステップS1102では、水平方向追加画素が必要か否かが判定される。具体的には、未取得画素補間部503が、受信した参照画像生成情報が、「水平方向追加画素の要否」の欄で「必要」と示しているか否かを判定する。ステップS1102において、YESならば、処理はステップS1103に移行する。一方、ステップS1102において、NOならば、処理はステップS1104に移行する。
 ステップS1103では、水平方向追加画素生成処理が行われる。水平方向追加画素生成処理では、未取得画素補間部503が、MP2処理対象画像の右端1列に並ぶ複数の画素を、MP2処理対象画像外の右側1列に並ぶ複数のMP2追加画素とする。すなわち、MP2処理対象画像の右端1列に並ぶ複数の画素をコピーした複数の画素を、複数のMP2追加画素とする。
 ここで、MP2処理対象画像の右端1列に並ぶ複数の画素は、例えば、図1の参照先ブロック101内の水平座標値が“15”である複数の整数画素102に対応する。また、MP2処理対象画像外の右側1列に並ぶ複数のMP2追加画素は、例えば、図1において、水平座標値が“16”であって、かつ、垂直座標値が“0”~“15”のいずれかである複数のMP2ブロック外画素104である。
 そして、未取得画素補間部503は、この処理により生成された画像を、最新のMP2処理対象画像とする。
 ステップS1104では、垂直方向追加画素が必要か否かが判定される。具体的には、未取得画素補間部503が、受信した参照画像生成情報が、「垂直方向追加画素の要否」の欄で「必要」と示しているか否かを判定する。ステップS1104において、YESならば、処理はステップS1105に移行する。一方、ステップS1104において、NOならば、処理はステップS1106に移行する。
 ステップS1105では、垂直方向追加画素生成処理が行われる。垂直方向追加画素生成処理では、未取得画素補間部503が、最新のMP2処理対象画像の下端1行に並ぶ複数の画素を、当該最新のMP2処理対象画像外の下側1行に並ぶ複数のMP2追加画素とする。すなわち、最新のMP2処理対象画像の下端1行に並ぶ複数の画素をコピーした複数の画素を、複数のMP2追加画素とする。
 なお、最新のMP2処理対象画像は、ステップS1103の処理が行われてない場合、動き補償参照先ブロックが示す画像となる。また、最新のMP2処理対象画像は、ステップS1103の処理が行われた場合、ステップS1103の処理により生成されたMP2処理対象画像となる。
 ここで、最新のMP2処理対象画像の下端1行に並ぶ複数の画素は、例えば、図1の参照先ブロック101内の垂直座標値が“15”である複数の整数画素102に対応する。また、ステップS1103の処理が行われた場合、MP2処理対象画像外の下側1行に並ぶ複数のMP2追加画素は、例えば、図1において、水平座標値が“0”~“16”のいずれかであって、かつ、垂直座標値が“16”である複数のMP2ブロック外画素104である。
 そして、未取得画素補間部503は、この処理により生成された画像を、最新のMP2処理対象画像とする。
 ステップS1106では、参照画像送信処理が行われる。参照画像送信処理では、未取得画素補間部503が、最新のMP2処理対象画像を、参照画像(動き補償参照画像)として、動き補償部306へ送信する。なお、ステップS1103の処理およびステップS1105の処理が行われない場合、動き補償部306へ送信される参照画像は、取得された動き補償参照先ブロックが示す画像である。
 動き補償部306では、受信した参照画像(動き補償参照画像)を使用して動き補償を行う。なお、動き補償部306が行う動き補償は、MPEG2規格に基づく処理なので詳細な説明は行わない。
 以上説明したように、本実施の形態においては、1/2精度動き補償を行う場合、1/2座標画素の生成に必要な前述したMP2追加画素を、意図的に取得しようとせず、画像メモリの仕様Aが示すアクセス制限に従って、当該画像メモリにアクセスすることにより得られた最小アクセス参照先ブロックから取得された動き補償参照先ブロックが、意図せずにMP2追加画素を含む場合がある。この場合、MP2追加画素を含む動き補償参照先ブロックを使用して、動き補償に使用される参照画像(動き補償参照画像)を生成する。
 なお、図14のステップS1102およびステップS1104において、NOと判定された場合、動き補償参照先ブロックが示す画像が、1/2精度動き補償を行う場合に必要な全てのMP2追加画素を有することになる。
 この場合、ステップS1103およびステップS1105の処理により、コピーにより生成されたMP2追加画素は、1/2精度動き補償において使用されない。当該コピーにより生成されたMP2追加画素は、1/2精度動き補償において、本来必要とされるMP2追加画素と異なるため、当該コピーにより生成されたMP2追加画素を使用して1/2精度動き補償が行われると復号により得られる画質が劣化する。
 したがって、動き補償参照先ブロックが示す画像が、1/2精度動き補償を行う場合に必要な全てのMP2追加画素を有する場合、復号により得られる画像の画質の劣化を防止することができる。
 また、本実施の形態では、図14の参照画像生成処理において、追加画素が必要でないと判定された場合(ステップS1102でNOまたはステップS1104でNO)、追加画素を生成せず動き補償が行われ、追加画素が必要であると判定された場合、追加画素が生成され、生成した追加画素を使用して動き補償を行う。つまり、追加画素が必要である場合のみ、追加画素が生成されるので、追加画素が必要でない場合、追加画素を生成する処理が行われないので、効率のよい復号処理を行うことができる。
 したがって、画像の画質の劣化が常に発生することを防止するとともに、効率のよい復号処理を行うことができる。
 また、本実施の形態では、参照ピクチャを記憶する画像メモリの仕様(構成)により、付加的(意図せずに)に転送されることになる画素を判定し、当該画素を用いて小数画素を補間生成する。一般的な画像メモリは、複数画素をまとめて転送(以後、バースト転送と記載)することで性能を向上させる。
 本実施の形態では、小数画素の補間生成だけに必要な画素を、例えば、バースト転送の結果、付加的に取得される画素によって補う。付加的に取得される画素だけでは、小数画素の生成において、画素が不足する場合、不足分の画素を使わずに小数画素の補間生成を行う。
 これにより、小数画素の補間生成だけに使う画素を画像メモリから追加で取得する必要がなくなり、画像メモリのデータ転送量を減らすことができる。
 さらに、常に本来の画素を使わずに小数画素の補間生成をする従来の手法に対し、本実施の形態では、本来の画素を使わずに小数画素の補間生成を行う頻度が減少する。そのため、復号により得られる画像の画質の劣化を小さくすることができる。
 したがって、本実施の形態の処理により、参照先ブロックのデータ転送量の削減および復号により得られる画像の高画質化を両立させることが可能となる。
 以上、MPEG2規格で符号化されたデータを復号する画像復号装置を例に、第1の実施の形態について説明した。第1の実施の形態の説明は、輝度ブロックに関するものであるが、色差ブロックに関しても、第1の実施の形態に記載された処理により、本発明を適用することができる。また、第1の実施の形態に示した本発明の処理は、あくまで一例であり、画像メモリの構成やアクセス手法、各ブロックの処理分担などには、様々な変形が考えられる。
 例えば、インターレース方式とプログレッシブ方式でアクセス仕様が異なる画像メモリを用いた構成、動き補償タイプに応じて規格どおりに参照画像を取得するかどうかを切り替える構成が考えられる。
 また別の例として、水平方向および垂直方向のいずれかに本発明を適用する構成、マクロブロックやピクチャのタイプに応じて規格どおりに参照画像を取得するかどうかを切り替える構成などが考えられる。
 なお、図3および図5に示す各部は集積回路であるLSIで実現されてもよいし、コンピュータ上のソフトウェアで実現されてもよい。また、集積化の手法については、各機能が個別に1チップ化されてもよいし、一部またはすべてを含むように1チップ化されてもよい。さらには、LSIに置き換わる集積回路化の技術があれば、当然、その技術を用いて集積化を行ってもよい。
 <第2の実施の形態>
 図15は、本発明の第2の実施の形態における画像復号装置1000Aの構成図である。
 画像復号装置1000AはH.264規格に対応した装置である。以下、画像復号装置1000Aの動作について説明する。
 図15に示される画像復号装置1000Aは、可変長復号部1201と、逆量子化部1202と、逆直交変換部1203と、加算器1204と、動きベクトル計算部1205と、動き補償部1206と、画像取得部1207と、画像メモリ1208と、画面内予測部1209と、セレクタ部1210と、デブロックフィルタ部1211とを備える。なお、画像復号装置1000Aが備える、画像取得部1207以外の各部が行う処理は、H.264規格に準拠する処理なので詳細な説明は行わない。
 可変長復号部1201は、外部からビットストリームを取得する。このビットストリームは、H.264規格に基づく動画像の符号化により得られた符号化データであるとする。そして、可変長復号部1201は、ビットストリームに含まれる可変長符号を復号する。
 当該復号により、量子化された周波数成分値(以下、量子化済周波数成分情報という)と、動き情報と、画面内予測制御情報とが得られる。当該動き情報は、動き補償タイプ、参照ピクチャを特定する番号(以下、参照ピクチャ番号という)および動きベクトルの差分値、参照画像のサイズ等を示す。動き補償タイプは、動き補償ブロックのサイズを示す。なお、動き補償タイプは、動き補償ブロックのサイズ以外の情報も示すが、本発明では、動き補償タイプは、動き補償ブロックのサイズを示すとして、説明を行う。
 なお、復号により、画像復号装置1000Aを制御するためのパラメータも得られるが、当該パラメータは、本発明には使用されないので、説明は省略する。
 そして、可変長復号部1201は、量子化済周波数成分情報を、逆量子化部1202へ送信する。また、可変長復号部1201は、動き情報を動きベクトル計算部1205へ送信する。また、可変長復号部1201は、画面内予測制御情報を画面内予測部1209へ送信する。
 逆量子化部1202は、受信した量子化済周波数成分情報を逆量子化することにより周波数成分を得る。逆直交変換部1203は、得られた周波数成分を逆直交変換することにより画素値の差分を得る。そして、逆直交変換部1203は、画素値の差分を、加算器1204へ送信する。なお、本実施の形態では、逆量子化と逆直交変換のどちらも規定のマクロブロック(16×16のブロック)単位で一度に処理する。
 動きベクトル計算部1205は、受信した動き情報から、動き補償タイプ、参照ピクチャ番号および動きベクトルを求める。そして、動きベクトル計算部1205は、動き補償タイプ、参照画像のサイズ、参照ピクチャ番号、参照画像の左上端座標および動きベクトルを示す動き情報を、動き補償部1206および画像取得部1207へ送信する。
 画像メモリ1208には、動き補償の対象となる複数の参照ピクチャが記憶されている。画像メモリ1208は、予め定められた仕様に基づいて、参照ピクチャの一部の領域の画像を読み出すことが可能なメモリである。
 画像取得部1207は、受信した動き情報が示す、動き補償タイプ、参照画像のサイズ、参照ピクチャ番号および動きベクトルに基づいて、画像メモリ1208から、参照ピクチャ番号で特定される参照ピクチャの一部の領域の画像を取得する。そして、画像取得部1207は、取得した画像または取得した画像に基づいて生成した画像を動き補償部1206へ送信する。
 動き補償部1206は、受信した動き情報が示す、動き補償タイプ、参照画像のサイズ、参照ピクチャ番号および動きベクトルと、画像取得部1207から受信した画像とを用いて動き補償を行う。当該動き補償により、予測画像が得られる。以下においては、動き補償により得られた予測画像を、動き補償予測画像という。そして、動き補償部1206は、動き補償予測画像を、セレクタ部1210へ送信する。
 加算器1204は、逆直交変換部1203から受信した画素値の差分と、セレクタ部1210から受信した画像とを加算することによりピクチャ(以下、再生ピクチャという)を得る。そして、加算器1204は、再生ピクチャを画面内予測部1209およびデブロックフィルタ部1211へ送信する。
 画面内予測部1209は、同一ピクチャ内の復号済の画像情報から予測を行う。具体的には、画面内予測部1209は、加算器1204から受信した再生ピクチャを一時的に記憶する。また、画面内予測部1209は、可変長復号部1201から受信した画面内予測制御情報に応じた画面内予測処理を行うことにより画像を得る。以下においては、画面内予測処理により得られた画像を、画面内予測画像という。そして、画面内予測部1209は、画面内予測画像を、セレクタ部1210へ送信する。
 セレクタ部1210は、マクロブロックのタイプに応じて、受信した動き補償予測画像および画面内予測画像のいずれかを、加算器1204へ送信する。
 デブロックフィルタ部1211は、加算器1204から受信した再生ピクチャ内のブロック境界にフィルタをかけるフィルタ処理を行う。そして、デブロックフィルタ部1211は、フィルタ処理が行われた再生ピクチャを、外部へ出力するとともに、再生ピクチャを、参照ピクチャとして、画像メモリ1208に記憶させる。
 背景技術で述べたように、H.264規格では、1/4画素精度で動き補償を行うことができる。そのため、H.264規格では、1/4画素精度で動き補償を行う場合、1/4座標画素の生成が必要である。以下においては、1/4画素精度で行う動き補償を、1/4精度動き補償という。
 H.264の処理では、小数座標に位置する画素のうち、1/2精度座標に位置する画素(1/2座標画素)の値は、当該画素の両隣の3画素(計6画素)を使った6タップフィルタ演算により求められる。
 また、H.264の処理では、1/2座標画素以外の小数座標(1/4精度座標)に位置する画素(1/4座標画素)は、当該画素に隣接する画素であって、整数座標もしくは1/2精度座標に位置する少なくとも2つの画素の値を平均することにより生成される。
 1/4座標画素の生成を行う場合、画像メモリに記憶されている参照ピクチャから取得する参照先ブロックのサイズが、左側および上側に2画素分大きくなり、右側および下側に3画素分大きくなる。この結果、画像メモリから参照先ブロックを取得するためのデータ転送量が大きくなるという問題が生じる。したがって、参照先ブロックを高速に処理するためには、高性能で高価なメモリが必要となり、画像符号化や画像復号を行う装置のコストが上昇してしまう。
 そこで、本実施の形態では、第1の実施の形態と同様、小数画素精度で動き補償を行う場合、小数画素の生成に必要な追加画素を、意図的に取得しない。具体的には、1/4精度動き補償を行う場合、1/2座標画素の生成に必要な前述したH264追加画素を、意図的に取得しようとせず、画像メモリの仕様が示すアクセス制限に従って、当該画像メモリにアクセスした結果、意図せずにH264追加画素が取得された場合、取得されたH264追加画素を使用するための処理(以下、処理NBという)を行う。
 H264追加画素は、例えば、図2において、左側2列に並ぶ複数の画素、右側3列に並ぶ複数の画素、上側2行に並ぶ複数の画素、下側3行に並ぶ複数の画素である。
 しかし、画像メモリにおいて、アクセス対象となる矩形領域(ブロック)の位置と大きさによっては、1/4精度動き補償において必要なH264追加画素が取得できないことがある。そのため、本実施の形態では、画像メモリに対し実際にアクセスする矩形領域(ブロック)の大きさを求め、1/4精度動き補償において必要なH264追加画素が取得できない場合には、取得された画素だけを用いて1/2座標画素を生成する。
 本実施の形態では、取得された画像において、右端1列に並ぶ複数の画素、左端1列に並ぶ複数の画素、上端1行に並ぶ複数の画素および下端1行に並ぶ複数の画素をそのままコピーしてH264追加画素とする。これにより、1/2座標画素の生成に必要なH264追加画素を取得することなく、1/4精度動き補償を行うことが可能となる。
 なお、取得された画素だけで1/2座標画素を生成する手法は、上記手法に限定されることなく、様々な他の手法を用いてもよい。
 次に、第2の実施の形態における、上記処理NBの実現手段について説明する。第2の実施の形態では、画像取得部1207が上記処理NBを行うため、画像取得部1207が行う処理について詳細な説明を行う。
 第2の実施の形態において、図15に示される画像取得部1207以外の各部は、H.264規格の規定どおりに動作する。そのため、図15に示される画像取得部1207以外の各部についての詳細な説明は行わない。
 また、画像メモリ1208は、複数の参照ピクチャを記憶する。また、画像メモリ1208は、第1の実施の形態で説明した複数バンク画像メモリである。なお、画像メモリ1208は、画像の処理方式が、インターレース方式およびプログレッシブ方式のいずれであっても、同じ仕様でアクセス可能であり、アクセス対象のパリティは参照ピクチャ番号で指定される。
 図16は、画像取得部1207の内部構成を示すブロック図である。参照画像取得部1207は、第1の実施の形態における画像取得部307と同様、画像特定情報生成部1301と、画像メモリアクセス制御部1302と、未取得画素補間部1303とを含む。
 画像特定情報生成部1301の動作は、H.264規格に準拠するため、画像特定情報生成部1301の動作の詳細な説明は行わない。以下、簡単に、画像特定情報生成部1301の動作について説明する。
 画像特定情報生成部1301は、受信した動き情報が示す、動き補償タイプ、参照画像のサイズ、参照ピクチャ番号および動きベクトルに基づいて、動き補償部1206が行う動き補償で必要とされる参照画像を特定するための情報(以下、H264参照画像特定情報という)を生成する。H264参照画像特定情報は、動き補償タイプ、参照画像のサイズ、動きベクトル、参照ピクチャ番号、メモリにおける参照画像の左上端座標および参照画像のサイズを示す。
 以下においては、H264参照画像特定情報が示す動き補償タイプにより特定される動き補償ブロックのサイズを、特定動き補償ブロックサイズという。
 画像特定情報生成部1301は、動き補償部1206がH.264規格どおりに動き補償を行うことを前提に、H264参照画像特定情報を生成する。そのため、生成されるH264参照画像特定情報は、背景技術で説明した、小数画素の生成に必要なH264追加画素を含む参照画像を特定するための情報である。
 そして、画像特定情報生成部1301は、生成したH264参照画像特定情報を、画像メモリアクセス制御部1302へ送信する。
 画像メモリアクセス制御部1302は、詳細は後述するが、画像特定情報生成部1301が送信するH264参照画像特定情報に基づいて、画像メモリ1208の仕様(後述する仕様B)が示すアクセス制限に従った参照先ブロックの読出し命令を生成し、生成した読出し命令を画像メモリ1208へ送信する。なお、本実施の形態では、読出し命令は、前述したH264追加画素を意図的に取得しないように生成される。
 また、画像メモリアクセス制御部1302は、詳細は後述するが、生成された読出し命令により特定される参照先ブロックの大きさに基づいて、画像メモリ1208から、前述したH264追加画素を取得できるか否かを判定する。そして、画像メモリアクセス制御部1302は、H264追加画素を取得できるか否かの判定に基づいて、H264追加画素補間情報を生成し、生成したH264追加画素補間情報を、未取得画素補間部1303へ送信する。H264追加画素補間情報は、H264追加画素の補間が必要であるか否かを示す情報である。
 画像メモリアクセス制御部1302の動作はH.264規格に準拠しない。すなわち、画像メモリアクセス制御部1302が画像メモリ1208に送信する読出し命令は、H.264規格に準拠しない。そのため、以下、画像メモリアクセス制御部1302動作の詳細を説明する。以下においては、画像メモリアクセス制御部1302が行う処理を、アクセス制御処理Aという。
 なお、説明を簡単にするために、画像メモリ1208は、一例として、1枚の参照ピクチャを記憶する領域(以下、参照ピクチャ記憶領域という)を複数有するとする。各参照ピクチャ記憶領域は、参照ピクチャのサイズ(例えば、1920×1080)と同じであるとする。すなわち、各参照ピクチャ記憶領域の座標(0,0)は、対応する参照ピクチャの左上端座標に対応する。
 図17は、アクセス制御処理Aのフローチャートである。
 ステップS1400では、画像メモリアクセス制御部1302が、画像特定情報生成部1301から前述したH264参照画像特定情報を取得する。
 ステップS1401では、アクセス対象ブロック特定処理Aが行われる。アクセス対象ブロック特定処理では、画像メモリアクセス制御部1302が、取得したH264参照画像特定情報が示す参照画像のサイズおよび動きベクトルおよびに基づいて、アクセス対象となる参照先ブロック(以下、アクセス対象参照先ブロックという)のサイズを特定する。
 以下においては、メモリに記憶されている参照ピクチャの一部のブロックであって、アクセス対象となる参照先ブロックを、アクセス対象参照先ブロックという。動き補償タイプと、アクセス対象参照先ブロックのサイズとの対応関係は、以下のテーブルRT200に示される。
 図18は、一例としてのテーブルRT200を示す図である。テーブルRT200において、7種類の動き補償タイプが示される。例えば、動き補償タイプが「T8×16」である場合、動き補償ブロックのサイズは、8×16である。
 テーブルRT200において、「動きベクトル精度」とは、水平方向または垂直方向における動きベクトルの精度を示す。「動きベクトル精度」の項目における「整数」は、対応する方向の動きベクトルの値が、整数であることを示す。「動きベクトル精度」の項目における「小数」は、対応する方向の動きベクトルの値が、小数であることを示す。動きベクトル精度は、水平方向の動きベクトルの値と、垂直方向の動きベクトルの値との組み合わせにより、各動き補償タイプに対し、4種類存在する。
 テーブルRT200において、「必要参照画像サイズ」とは、H.264規格の動き補償で必要な参照画像のサイズである。「必要参照画像サイズ」は、H264参照画像特定情報が示す参照画像のサイズである。「必要参照画像サイズ」は、7種類の動き補償タイプのいずれかと、4種類の動きベクトル精度のいずれかとの組み合わせにより決まる。
 テーブルRT200において、「アクセス対象参照先ブロックサイズ」とは、アクセス対象参照先ブロックのサイズである。
 本実施の形態では、アクセス対象参照先ブロックサイズは、第1の実施の形態と異なり、H.264規格で定義される必要参照画像サイズの数と同じ数定義される。しかし、本実施の形態では、画像メモリから取得する画素量を削減するため、H.264規格で定義される必要参照画像サイズより、アクセス対象参照先ブロックサイズを小さくする。
 具体的には、図17のステップS1401のアクセス対象ブロック特定処理Aにおいて、画像メモリアクセス制御部1302が、取得したH264参照画像特定情報が示す水平方向の動きベクトルの値が小数の場合、当該H264参照画像特定情報が示す参照画像の水平方向のサイズを4画素小さくしたサイズを、アクセス対象参照先ブロックの水平方向のサイズとする。
 また、画像メモリアクセス制御部1302が、取得したH264参照画像特定情報が示す垂直方向の動きベクトルの値が小数の場合、H264参照画像特定情報が示す参照画像の垂直方向のサイズを4画素小さくしたサイズを、アクセス対象参照先ブロックの垂直方向のサイズとする。
 ここで、例えば、H264参照画像特定情報が示す動きベクトルの水平方向の値および垂直方向の値が小数であるとする。また、H264参照画像特定情報が示す参照画像のサイズ(必要参照画像サイズ)が21×21であるとする。この場合、アクセス対象ブロック特定処理Aにより特定されるアクセス対象参照先ブロックのサイズは、参照画像のサイズ(21×21)を、水平方向および垂直方向ともに4画素小さくしたサイズ(17×17)となる。
 また、画像メモリアクセス制御部1302は、取得したH264参照画像特定情報が示す参照画像の左上端座標を、アクセス対象参照先ブロックの左上端座標とする。
 以下においては、画像メモリの仕様が示すアクセス制限に従って、当該画像メモリに記憶されている参照ピクチャ内のアクセス対象参照先ブロックにアクセスする場合、アクセスが必要な全てのブロックを、最小アクセス参照先ブロックという。
 ここで、画像メモリアクセス制御部502は、画像メモリ1208の仕様Bの情報を予め記憶しているとする。なお、これに限定されることなく、画像メモリアクセス制御部1302は、他の部分(例えば、メモリ、回路等)から、画像メモリ1208の仕様Bの情報を取得してもよい。
 図19は、画像メモリ1208の仕様Bを示す図である。図19に示される仕様Bが示す各項目は、図4に示される仕様Aが示す各項目と同様なので詳細な説明は繰り返さない。
 再び、図17を参照して、ステップS1402では、最小アクセス参照先ブロック特定処理Aが行われる。詳細は後述するが、最小アクセス参照先ブロック特定処理Aでは、画像メモリアクセス制御部1302が、画像メモリ1208の仕様Bが示すアクセス制限に従って、画像メモリ1208に記憶されている参照ピクチャ内において、特定されたアクセス対象参照先ブロックにアクセスする場合における、最小アクセス参照先ブロックを特定する。
 なお、参照ピクチャ、アクセス対象参照先ブロックおよび最小アクセス参照先ブロックの関係は、図8で説明したので詳細な説明は繰り返さない。
 最小アクセス参照先ブロック特定処理Aにおいて、画像メモリ1208に記憶されている、処理対象の参照ピクチャは、H264参照画像特定情報が示す参照ピクチャ番号により特定されるピクチャである。
 次に、画像メモリ1208の仕様が、図19の仕様Bである場合における、画像メモリに対するアクセスパターンについて説明する。
 図18のテーブルRT200に示されるように、アクセス対象参照先ブロックの水平方向のサイズおよび垂直方向のサイズの各々は、4画素、5画素、8画素、9画素、16画素および17画素のいずれかである。
 図19に示される画像メモリの仕様Bは、水平方向および垂直方向において同じ内容である。そのため、水平方向および垂直方向のいずれにおいても、画像メモリに対するアクセスパターンは同じになる。そのため、本実施の形態では、画像メモリに対する水平方向のアクセスパターンについてのみ詳細を説明し、画像メモリに対する垂直方向のアクセスパターンの説明は省略する。
 図19に示される画像メモリの仕様Bは、水平方向のアクセスにおいて、取得開始座標(ブロック左端の座標)が8の倍数に制限されており、取得サイズ(最小アクセス参照先ブロックのサイズ)も8の倍数に制限されていることを示す。
 H.264規格では、アクセス対象参照先ブロックの位置(左端座標)が任意の値であるため、水平方向の取得開始座標も任意の値となる。
 図19に示される画像メモリの仕様Bは、水平方向のメモリアクセスにおいて、水平方向の取得開始座標を8の倍数で制限する。そのため、アクセス対象参照先ブロックの左端の水平座標を、8で割ったあまり(0,1,2,3,4,5,6,7のいずれか)に応じて画像メモリに対するアクセスパターンが変化する。
 まず、アクセス対象参照先ブロックの水平方向のサイズが、4,8,16である場合における、アクセスパターンについて説明する。具体的には、画像メモリの仕様Bが示すアクセス制限に従って水平方向に4画素、8画素または16画素を取得する場合における画像メモリのアクセスパターンについて説明する。
 画像メモリの仕様Bが示すアクセス制限に従って水平方向に4画素、8画素または16画素を取得する場合、水平方向の動きベクトルの値は整数である。そのため、水平方向の小数座標に位置する小数画素の生成は不要であり、小数画素の生成に使用されるH264追加画素も不要である。
 そのため、アクセス対象参照先ブロックにおいて水平方向の4画素、8画素または16画素がすべて取得できるように画像メモリに対しアクセスが行われる。
 図20は、画像メモリの仕様Bが示すアクセス制限に従って、アクセス対象参照先ブロックにおいて水平方向の4画素を取得する場合における画像メモリのアクセスパターンを示す図である。
 図21は、画像メモリの仕様Bが示すアクセス制限に従って、アクセス対象参照先ブロックにおいて水平方向の8画素を取得する場合における画像メモリのアクセスパターンを示す図である。
 図22は、画像メモリの仕様Bが示すアクセス制限に従って、アクセス対象参照先ブロックにおいて水平方向の16画素を取得する場合における画像メモリのアクセスパターンを示す図である。
 図20、図21および図22において、「水平座標のあまり」とは、アクセス対象参照先ブロックの左端の水平座標を8で割ったあまりである。図20、図21および図22において、「取得したい画素数」および「画像メモリアクセス」は、図9で説明したので詳細な説明は繰り返さない。
 図20および図21に示されるように、アクセス対象参照先ブロックにおいて水平方向の4画素または8画素を取得するためには、最大で16画素分のアクセスが必要である。また、図22に示されるように、アクセス対象参照先ブロックにおいて水平方向の16画素を取得するためには、最大で24画素分のアクセスが必要である。
 次に、アクセス対象参照先ブロックの水平方向のサイズが、5,9,17である場合における、アクセスパターンについて説明する。具体的には、画像メモリの仕様Bが示すアクセス制限に従って水平方向に5画素、9画素または17画素を取得する場合における画像メモリのアクセスパターンについて説明する。
 画像メモリの仕様Bが示すアクセス制限に従って水平方向に5画素、9画素または17画素を取得する場合、水平方向の動きベクトルの値は小数である。そのため、水平方向の小数座標に位置する小数画素の生成が必要であり、小数画素の生成に使用されるH264追加画素も必要となる。
 図2を用いて説明したように、H264追加画素は、アクセス対象参照先ブロック(参照先ブロック201に対応)の左側の2画素、アクセス対象参照先ブロックの右側の3画素に対応する。つまり、H264追加画素が5つ必要である。
 しかしながら、H264参照画像特定情報が示す水平方向の動きベクトルの値が小数の場合、ステップS1401の処理により特定される水平方向のサイズを有するアクセス対象参照先ブロックは、アクセス対象参照先ブロック(参照先ブロック201に対応)の右側の1画素(H264追加画素)を含む。
 これは、アクセス対象参照先ブロックのサイズを、右側に1画素分だけ大きくしても、画像メモリアクセスにおける最大画素数は増加せず、画像メモリから読み出すアクセス対象参照先ブロックの画素量も増加しないためである。
 しかし、本実施の形態では、アクセス対象参照先ブロックの左側の2画素およびアクセス対象参照先ブロックの右側の2画素のうち、少なくとも1画素は、取得できない場合が生じる。
 図23は、画像メモリの仕様Bが示すアクセス制限に従って、アクセス対象参照先ブロックにおいて水平方向の5画素を取得する場合における画像メモリのアクセスパターンを示す図である。
 図24は、画像メモリの仕様Bが示すアクセス制限に従って、アクセス対象参照先ブロックにおいて水平方向の9画素を取得する場合における画像メモリのアクセスパターンを示す図である。
 図25は、画像メモリの仕様Bが示すアクセス制限に従って、アクセス対象参照先ブロックにおいて水平方向の17画素を取得する場合における画像メモリのアクセスパターンを示す図である。
 図23、図24および図25において、「水平座標のあまり」とは、アクセス対象参照先ブロックの左端の水平座標を8で割ったあまりである。図23、図24および図25において、「取得したい画素数」および「画像メモリアクセス」は、図9で説明したので詳細な説明は繰り返さない。
 図23および図24に示されるように、アクセス対象参照先ブロックにおいて水平方向の5画素または9画素を取得するためには、最大で16画素分のアクセスが必要である。また、図25に示されるように、アクセス対象参照先ブロックにおいて水平方向の17画素を取得するためには、最大で24画素分のアクセスが必要である。
 また、図23、図24および図25は、小数画素の生成に必要な追加画素(H264追加画素)であって、意図的に取得されない、アクセス対象参照先ブロックの左側の2画素およびアクセス対象参照先ブロックの右側の2画素が取得されるか否かを示す。
 図23、図24および図25において、黒塗りの四角は、取得したい画素を示す。具体的には、図23、図24および図25において、取得したい画素を示す黒塗りの四角の両端に示される矢印(以下、追加画素矢印という)の位置に対応する2つの画素が、意図的には取得されない、追加画素(H264追加画素)を示す。
 図23、図24および図25において、追加画素矢印が画像メモリアクセスの範囲内にある場合は、追加画素矢印に対応する2つのH264追加画素が、意図せずに取得されることを示す。
 図23、図24および図25において、追加画素矢印が画像メモリアクセスの範囲の境界線上にある場合は、追加画素矢印に対応する2つのH264追加画素の一方が、意図せずに取得されることを示す。また、追加画素矢印が画像メモリアクセスの範囲外にある場合は、追加画素矢印に対応する2つのH264追加画素が、取得されないことを示す。
 以下においては、動き補償部1206が動き補償で使用する参照画像を、動き補償参照画像という。動き補償参照画像のサイズは、取得したH264参照画像特定情報が示す参照画像のサイズ(必要参照画像サイズ)(例えば、9×4)である。動き補償参照画像の左上端座標は、H264参照画像特定情報が示す参照画像の左上端座標である。
 また、以下においては、最小アクセス参照先ブロックが示す画像を、最小アクセス参照画像という。また、以下においては、動き補償参照画像のサイズのブロックを、動き補償参照画像ブロックという。
 また、以下においては、最小アクセス参照画像において、動き補償参照画像の左上端座標の位置を動き補償参照画像ブロックの左上端として、当該動き補償参照画像ブロックを、最小アクセス参照画像に配置した場合、動き補償参照画像ブロック内に示される画像のみを示すブロックを、動き補償参照先ブロックという。動き補償参照先ブロックについては、図12で説明したので詳細な説明は繰り返さない。
 すなわち、動き補償参照先ブロックが示す画像は、最小アクセス参照先ブロックが示す画像の少なくとも一部の画像である。動き補償参照先ブロックの左上端座標は、参照画像特定情報が示す参照画像の左上端座標である。
 図23、図24および図25において、「追加画素の要否」とは、H264追加画素の生成(補間生成)が必要であるか否かを示す。例えば、「左側:必要(2画素)」という記載は、動き補償参照先ブロックの左側の2つのH264追加画素の生成(補間生成)が必要でことを示す。例えば、「右側:必要(1画素)」という記載は、動き補償参照先ブロックの右側の1つのH264追加画素の生成(補間生成)が必要でことを示す。例えば、「右側:不要」という記載は、動き補償参照先ブロックの右側の2つのH264追加画素の生成(補間生成)が不要であることを示す。
 再び、図17を参照して、ステップS1402の最小アクセス参照先ブロック特定処理Aでは、画像メモリアクセス制御部502は、画像メモリ308の仕様Aが示すアクセス制限に従って、最小アクセス参照先ブロックを特定する。
 具体的には、画像メモリアクセス制御部1302は、アクセス対象参照先ブロックのサイズおよび左上端座標と、画像メモリ1208の仕様Bと、図20~図22に示される複数のアクセスパターンとに従って、最小アクセス参照先ブロックの左上端の座標と、最小アクセス参照先ブロックのサイズとを算出する。
 そして、画像メモリアクセス制御部1302は、算出された最小アクセス参照先ブロックの左上端の座標と、最小アクセス参照先ブロックのサイズとを示す最小アクセス参照先ブロック情報を生成する。
 ここで、例えば、アクセス対象参照先ブロックのサイズが5×4であり、アクセス対象参照先ブロックの左上端座標が(17,16)であるとする。
 この場合、座標(17,16)において、水平座標値“17”は8の倍数でないので、図19の仕様Bにより、最小アクセス参照先ブロックの水平座標値は、水平座標値“17”より小さい値であって、8の倍数である16と算出される。
 また、アクセス対象参照先ブロックの水平方向のサイズは“5”であるので、図23に示されるアクセスパターンにより、最小アクセス参照先ブロックの水平方向のサイズが算出される。具体的には、水平座標値“17”は、図23において、水平座標のあまり“1”に対応するので、最小アクセス参照先ブロックの水平方向のサイズは、8画素と算出される。
 また、この場合、座標(17,16)において、垂直座標値“16”が8の倍数であるので、図19の仕様Bにより、最小アクセス参照先ブロックの垂直座標値は、16と算出される。
 また、アクセス対象参照先ブロックの垂直方向のサイズは“4”であるので、図20に示されるアクセスパターンを垂直方向に示されるアクセスパターンとみなすことにより、最小アクセス参照先ブロックの水平方向のサイズが算出される。具体的には、垂直座標値“16”は、図20において、水平座標(垂直座標に対応)のあまり“0”に対応するので、最小アクセス参照先ブロックの垂直方向のサイズは、8画素と算出される。
 すなわち、最小アクセス参照先ブロック特定処理Aにより、最小アクセス参照先ブロックの左上端の座標(16,16)が算出される。また、最小アクセス参照先ブロックのサイズとして、8×8が算出される。この場合、最小アクセス参照先ブロックの左上端の座標(16,16)と、最小アクセス参照先ブロックのサイズとしての8×8とを示す最小アクセス参照先ブロック情報が生成される。
 すなわち、仕様Bが示すアクセス制限は、画像メモリから取得対象となる画像(アクセス対象参照先ブロック)を取得する場合、該取得対象となる画像を構成する画素の数以上の数の画素を取得するための制限である。
 ステップS1403では、読出し命令送信処理Aが行われる。読出し命令送信処理Aでは、画像メモリアクセス制御部1302が、特定した最小アクセス参照先ブロックを、画像メモリ1208から取得するための読出し命令を生成する。最小アクセス参照先ブロックのサイズが、アクセス対象参照先ブロックのサイズと同じである場合、読出し命令に従って読み出される最小アクセス参照先ブロックは、前述したH264追加画素を含む。
 一方、最小アクセス参照先ブロックのサイズが、アクセス対象参照先ブロックのサイズより大きい場合(例えば、図8の状態の場合)、読出し命令に従って読み出される最小アクセス参照先ブロックは、意図せずにH264追加画素を含む場合がある。すなわち、生成される読出し命令は、前述したH264追加画素を意図的に取得しない命令である。
 そして、画像メモリアクセス制御部1302は、生成した読出し命令を、画像メモリ1208へ送信する。
 画像メモリ1208は、読出し命令の受信に応じ、当該読出し命令に従った最小アクセス参照先ブロックを、読出し画像として、未取得画素補間部1303へ送信する。
 本実施の形態における画像メモリのアクセス制御手法では、1/4精度動き補償を行う場合、1/2座標画素の生成に必要な前述したH264追加画素を意図的に取得しない処理を行う。また、アクセス対象参照先ブロックの左上端座標によっては、最小アクセス参照先ブロックのサイズが、当該アクセス対象参照先ブロックのサイズと同じになる場合がある。前述したように、アクセス対象参照先ブロックは、H264追加画素を含む。したがって、この場合、読出し命令に従って読み出される最小アクセス参照先ブロックは、前述したH264追加画素を含む。
 水平方向のH264追加画素は、水平方向の動きベクトルの値が小数であり、かつ、図23、図24および図25のうち、アクセス対象参照先ブロックの水平方向のサイズに対応する図の「追加画素の要否」の右側に、例えば、「左側:必要(2画素)」と記載される場合に取得できない。この場合、動き補償参照先ブロック外の左側2列に並ぶ複数のH264追加画素を生成(補間生成)する必要がある。
 すなわち、アクセス対象参照先ブロックの水平方向のサイズに対応する図の「追加画素の要否」の右側に記載される、必要(k(1または2)画素)という記載がある場合、動き補償参照先ブロックの左側または右側に、1列または2列に並ぶ複数のH264追加画素を生成(補間生成)する必要がある。
 なお、垂直方向のH264追加画素についても、上述した水平方向のH264追加画素の記載と同様に、必要に応じ生成(補間生成)する必要がある。
 図19に示すように、画像メモリの仕様Bは、水平方向および垂直方向において、同じである。そのため、垂直方向のH264追加画素についても、上述した水平方向のH264追加画素の記載と同様に、必要に応じ生成(補間生成)する必要がある。
 このように、本実施の形態において、H264追加画素の補間が必要であるか否かを示す、前述したH264追加画素補間情報は、追加画素の要否を示す情報を示す。
 以下においては、動き補償参照先ブロックの左側、右側、上側および下側のH264追加画素を、それぞれ、左側追加画素、右側追加画素、上側追加画素および下側追加画素という。H264追加画素補間情報は、例えば、以下の情報NA~NCのいずれかと、情報ND~NFのいずれかと、情報NG~NIのいずれかと、情報NJ~NLのいずれかとを示す。
情報NA(左側追加画素:不要)
情報NB(左側追加画素:必要(1画素))
情報NC(左側追加画素:必要(2画素))
情報ND(右側追加画素:不要)
情報NE(右側追加画素:必要(1画素))
情報NF(右側追加画素:必要(2画素))
情報NG(上側追加画素:不要)
情報NH(上側追加画素:必要(1画素))
情報NI(上側追加画素:必要(2画素))
情報NJ(下側追加画素:不要)
情報NK(下側追加画素:必要(1画素))
情報NL(下側追加画素:必要(2画素))
 背景技術で述べたように、補間処理により、追加画素を生成し、生成した追加画素を利用して、小数画素の生成を行うと、復号処理により得られる画像に誤差が生じる。この場合、復号処理により得られる画像の画質が劣化する。
 一方、本実施の形態では、画像メモリのアクセスパターンを用いて、追加画素を生成するか否かを判定する。そのため、画像メモリのアクセスパターンによっては、意図せずに必要な追加画素が得られ、追加画素を生成せずに復号を行える可能性がある。
 したがって、追加画素を取得せず復号を行う従来の手法に比べ、本実施の形態では、意図せずに必要な追加画素が得られた場合、復号により得られる画像の画質の劣化が小さくなる。
 ステップS1404では、補間判定処理Aが行われる。補間判定処理Aでは、画像メモリアクセス制御部1302が、取得したH264参照画像特定情報が示す動きベクトルと、アクセス対象参照先ブロックのサイズおよび左上端座標と、画像メモリ1208の仕様Bと、図20~図25に示される複数のアクセスパターンとに従って、各追加画素の要否を判定する。当該判定の詳細な説明は、上記で述べた説明と同様である。
 そして、画像メモリアクセス制御部1302は、各追加画素の要否に基づいて、前述したH264追加画素補間情報を生成する。
 すなわち、H264参照画像特定情報が示す動きベクトルの水平方向の値が小数であり、かつ、アクセス対象参照先ブロックの水平方向のサイズに対応する図(例えば、図23)において、特定されたアクセスパターンに対応する「追加画素の要否」の右側に、例えば、「左側:必要(1画素)右側:不要」と記載される場合、左側追加画素が1画素必要であり、右側追加画素は不要であると判定される。
 また、H264参照画像特定情報が示す動きベクトルの垂直方向の値が小数であり、かつ、アクセス対象参照先ブロックの垂直方向のサイズに対応する図において、特定されたアクセスパターンに対応する「追加画素の要否」の右側に、例えば、「上側:不要下側:必要(2画素)」と記載される場合、上側追加画素が不要であり、下側追加画素が2画素必要であると判定される。
 なお、上記のアクセス対象参照先ブロックの垂直方向のサイズに対応する図は、本実施の形態では示していない。しかしながら、アクセス対象参照先ブロックの垂直方向のサイズに対応する図は、例えば、図23、図24および図25の各々において、「水平座標のあまり」、「左側」および「右側」を、それぞれ、「垂直座標のあまり」、「上側」および「下側」に置き換えた図である。
 以上の判定に基づいて、H264追加画素補間情報が生成される。生成されたH264追加画素補間情報は、前述した、情報NA~NCのいずれかと、情報ND~NFのいずれかと、情報NG~NIのいずれかと、情報NJ~NLのいずれかとを示す。
 ステップS1405では、参照画像生成情報Aを生成するための参照画像生成情報生成処理Aが行われる。参照画像生成情報Aは、動き補償に使用される参照画像を生成するための情報である。
 参照画像生成情報生成処理Aでは、画像メモリアクセス制御部1302が、取得した参照画像特定情報が示す参照画像のサイズ(必要参照画像サイズ)および参照画像の左上端座標と、生成した最小アクセス参照先ブロック情報と、生成したH264追加画素補間情報とに基づいて、参照画像生成情報Aを生成する。
 なお、参照画像生成情報Aの生成方法は、図13で説明した生成方法と同様なので詳細な説明は繰り返さない。
 図26は、一例としての参照画像生成情報Aを示す図である。
 図26において、「最小アクセス参照先ブロックの座標」、「動き補償参照先ブロックの相対座標」の項目は、図13において説明したので詳細な説明は繰り返さない。
 また、動き補償参照先ブロックのサイズおよび動き補償参照先ブロックの相対座標の算出方法は、図13で説明したのと同様なので、詳細な説明は繰り返さない。
 「左側追加画素の要否」、「右側追加画素の要否」、「上側追加画素の要否」、「下側追加画素の要否」の項目は、それぞれ、左側追加画素、右側追加画素、上側追加画素および下側追加画素の要否を示す。例えば、「左側追加画素の要否」の項目において、「必要(1画素)」と記載される場合、左側追加画素が1画素必要であることが示される。
 再び、図17を参照して、ステップS1405の参照画像生成情報生成処理Aでは、画像メモリアクセス制御部1302が、生成した参照画像生成情報Aを、未取得画素補間部1303へ送信する。
 未取得画素補間部1303は、画像メモリ1208から読み出された、読出し画像としての最小アクセス参照先ブロックと、画像メモリアクセス制御部1302が送信する、参照画像生成情報Aとを受信する。
 未取得画素補間部1303は、詳細は後述するが、動き補償部1206が動き補償を行う場合に用いる参照画像を、動き補償部1206へ送信する。
 動き補償部1206は、H.264規格どおりに動き補償を行うため、図18に示される必要参照画像サイズの参照画像が必要である。
 しかし、前述のように、画像メモリ1208から読み出される、読出し画像としての最小アクセス参照先ブロックは、前述したH264追加画素を含まないことがある。そのため、未取得画素補間部1303では、H264追加画素が存在しない場合、補間処理によりH264追加画素を生成する。
 以下においては、未取得画素補間部1303が参照画像を生成するための処理を、参照画像生成処理Aという。
 図27は、参照画像生成処理Aのフローチャートである。
 ステップS2300では、未取得画素補間部1303が、画像メモリ1208から読み出された、読出し画像としての最小アクセス参照先ブロックと、画像メモリアクセス制御部1302が送信する、参照画像生成情報Aとを受信する。
 ステップS2301では、受信した参照画像生成情報Aが示す動き補償参照先ブロックのサイズおよび動き補償参照先ブロックの相対座標に基づいて、未取得画素補間部1303が、受信した最小アクセス参照先ブロックから、動き補償参照先ブロックを取得する。以下においては、ステップS2301の処理により取得された動き補償参照先ブロックが示す画像を、H264処理対象画像という。
 ステップS2302では、左側追加画素が必要か否かが判定される。具体的には、未取得画素補間部1303が、受信した参照画像生成情報Aが、「左側追加画素の要否」の欄で「必要(1画素)」、「必要(2画素)」および「不要」のいずれを示しているかを判定する。
 参照画像生成情報Aが「必要(1画素)」と示す場合、処理は、ステップS2303に移行する。参照画像生成情報Aが「必要(2画素)」と示す場合、処理は、ステップS2304に移行する。参照画像生成情報Aが「不要」と示す場合、処理はステップS2305に移行する。
 ステップS2303では、左側追加画素1列生成処理が行われる。左側追加画素1列生成処理では、未取得画素補間部1303が、H264処理対象画像の左端1列に並ぶ複数の画素を、H264処理対象画像外の左側1列に並ぶ複数のH264追加画素とする。すなわち、H264処理対象画像の左端1列に並ぶ複数の画素をコピーした複数の画素を、複数のH264追加画素とする。
 ここで、H264処理対象画像の左端1列に並ぶ複数の画素は、例えば、図2の参照先ブロック201内の水平座標値が“0”である複数の整数画素202に対応する。また、H264処理対象画像外の左側1列に並ぶ複数のH264追加画素は、例えば、図2において、水平座標値が“-1”であって、かつ、垂直座標値が“0”,“1”,“2”,“3”,“4”のいずれかである複数のH264ブロック外画素205である。
 そして、未取得画素補間部1303は、この処理により生成された画像を、最新のH264処理対象画像とする。
 ステップS2304では、左側追加画素2列生成処理が行われる。左側追加画素2列生成処理では、未取得画素補間部1303が、H264処理対象画像の左端1列に並ぶ複数の画素を、H264処理対象画像外の左側2列の各々に並ぶ複数のH264追加画素とする。すなわち、H264処理対象画像の左端1列に並ぶ複数の画素をコピーした複数の画素を、H264処理対象画像外の左側2列の各々に並ぶ複数のH264追加画素とする。
 ここで、H264処理対象画像外の左側2列の各々に並ぶ複数のH264追加画素は、例えば、図2において、水平座標値が“-1”,“-2”のいずれかであって、かつ、垂直座標値が“0”,“1”,“2”,“3”,“4”のいずれかである複数のH264ブロック外画素205である。
 そして、未取得画素補間部1303は、この処理により生成された画像を、最新のH264処理対象画像とする。
 ステップS2305では、右側追加画素が必要か否かが判定される。具体的には、未取得画素補間部1303が、受信した参照画像生成情報Aが、「右側追加画素の要否」の欄で「必要(1画素)」、「必要(2画素)」および「不要」のいずれを示しているかを判定する。
 参照画像生成情報Aが「必要(1画素)」と示す場合、処理は、ステップS2306に移行する。参照画像生成情報Aが「必要(2画素)」と示す場合、処理は、ステップS2307に移行する。参照画像生成情報Aが「不要」と示す場合、処理はステップS2308に移行する。
 ステップS2306では、右側追加画素1列生成処理が行われる。右側追加画素1列生成処理では、未取得画素補間部1303が、最新のH264処理対象画像の右端1列に並ぶ複数の画素を、当該最新のH264処理対象画像外の右側1列に並ぶ複数のH264追加画素とする。すなわち、最新のH264処理対象画像の右端1列に並ぶ複数の画素をコピーした複数の画素を、複数のH264追加画素とする。
 ここで、最新のH264処理対象画像の右端1列に並ぶ複数の画素は、例えば、図2の参照先ブロック201内の水平座標値が“4”である複数のH264ブロック外画素205に対応する。また、最新のH264処理対象画像外の右側1列に並ぶ複数のH264追加画素は、例えば、図2において、水平座標値が“5”であって、かつ、垂直座標値が“0”,“1”,“2”,“3”,“4”のいずれかである複数のH264ブロック外画素205である。
 そして、未取得画素補間部1303は、この処理により生成された画像を、最新のH264処理対象画像とする。
 ステップS2307では、右側追加画素2列生成処理が行われる。右側追加画素2列生成処理では、未取得画素補間部1303が、最新のH264処理対象画像の右端1列に並ぶ複数の画素を、当該最新のH264処理対象画像外の右側2列の各々に並ぶ複数のH264追加画素とする。すなわち、最新のH264処理対象画像の右端1列に並ぶ複数の画素をコピーした複数の画素を、最新のH264処理対象画像外の右側2列の各々に並ぶ複数のH264追加画素とする。
 ここで、最新のH264処理対象画像外の右側2列の各々に並ぶ複数のH264追加画素は、例えば、図2において、水平座標値が“5”,“6”のいずれかであって、かつ、垂直座標値が“0”,“1”,“2”,“3”,“4”のいずれかである複数のH264ブロック外画素205である。
 ステップS2308では、上側追加画素が必要か否かが判定される。具体的には、未取得画素補間部1303が、受信した参照画像生成情報Aが、「上側追加画素の要否」の欄で「必要(1画素)」、「必要(2画素)」および「不要」のいずれを示しているかを判定する。
 参照画像生成情報Aが「必要(1画素)」と示す場合、処理は、ステップS2309に移行する。参照画像生成情報Aが「必要(2画素)」と示す場合、処理は、ステップS2310に移行する。参照画像生成情報Aが「不要」と示す場合、処理はステップS2311に移行する。
 ステップS2309では、上側追加画素1行生成処理が行われる。上側追加画素1行生成処理では、未取得画素補間部1303が、最新のH264処理対象画像の上端1行に並ぶ複数の画素を、当該最新のH264処理対象画像外の上側1行に並ぶ複数のH264追加画素とする。すなわち、最新のH264処理対象画像の上側1行に並ぶ複数の画素をコピーした複数の画素を、複数のH264追加画素とする。
 ここで、最新のH264処理対象画像の上端1行に並ぶ複数の画素は、例えば、図2の参照先ブロック201内の垂直座標値が“0”である複数の整数画素202に対応する。また、ステップS2304,S2307の処理が行われた場合、最新のH264処理対象画像外の上側1行に並ぶ複数のH264追加画素は、例えば、図2において、水平座標値が“-2”~“6”のいずれかであって、かつ、垂直座標値が“-1”である複数のH264ブロック外画素205である。
 そして、未取得画素補間部1303は、この処理により生成された画像を、最新のH264処理対象画像とする。
 ステップS2310では、上側追加画素2行生成処理が行われる。上側追加画素2行生成処理では、未取得画素補間部1303が、最新のH264処理対象画像の上端1行に並ぶ複数の画素を、当該最新のH264処理対象画像外の上側2行の各々に並ぶ複数のH264追加画素とする。すなわち、最新のH264処理対象画像の上端1行に並ぶ複数の画素をコピーした複数の画素を、最新のH264処理対象画像外の上側2行の各々に並ぶ複数のH264追加画素とする。
 ここで、ステップS2304,S2307の処理が行われた場合、最新のH264処理対象画像外の上側2行の各々に並ぶ複数のH264追加画素は、例えば、図2において、水平座標値が“-2”~“6”のいずれかであって、かつ、垂直座標値が“-1”,“-2” のいずれかである複数のH264ブロック外画素205である。
 そして、未取得画素補間部1303は、この処理により生成された画像を、最新のH264処理対象画像とする。
 ステップS2311では、下側追加画素が必要か否かが判定される。具体的には、未取得画素補間部1303が、受信した参照画像生成情報Aが、「下側追加画素の要否」の欄で「必要(1画素)」、「必要(2画素)」および「不要」のいずれを示しているかを判定する。
 参照画像生成情報Aが「必要(1画素)」と示す場合、処理は、ステップS2312に移行する。参照画像生成情報Aが「必要(2画素)」と示す場合、処理は、ステップS2313に移行する。参照画像生成情報Aが「不要」と示す場合、処理はステップS2314に移行する。
 ステップS2312では、下側追加画素1行生成処理が行われる。下側追加画素1行生成処理では、未取得画素補間部1303が、最新のH264処理対象画像の下端1行に並ぶ複数の画素を、当該最新のH264処理対象画像外の下側1行に並ぶ複数のH264追加画素とする。すなわち、最新のH264処理対象画像の下側1行に並ぶ複数の画素をコピーした複数の画素を、複数のH264追加画素とする。
 ここで、最新のH264処理対象画像の下端1行に並ぶ複数の画素は、例えば、図2の参照先ブロック201内の垂直座標値が“4”である複数のH264ブロック外画素205に対応する。また、ステップS2304,S2307の処理が行われた場合、最新のH264処理対象画像外の下側1行に並ぶ複数のH264追加画素は、例えば、図2において、水平座標値が“-2”~“6”のいずれかであって、かつ、垂直座標値が“4”である複数のH264ブロック外画素205である。
 そして、未取得画素補間部1303は、この処理により生成された画像を、最新のH264処理対象画像とする。
 ステップS2313では、下側追加画素2行生成処理が行われる。下側追加画素2行生成処理では、未取得画素補間部1303が、最新のH264処理対象画像の下端1行に並ぶ複数の画素を、当該最新のH264処理対象画像外の下側2行の各々に並ぶ複数のH264追加画素とする。すなわち、最新のH264処理対象画像の下端1行に並ぶ複数の画素をコピーした複数の画素を、最新のH264処理対象画像外の下側2行の各々に並ぶ複数のH264追加画素とする。
 ここで、ステップS2304,S2307の処理が行われた場合、最新のH264処理対象画像外の下側2行の各々に並ぶ複数のH264追加画素は、例えば、図2において、水平座標値が“-2”~“6”のいずれかであって、かつ、垂直座標値が“5”,“6” のいずれかである複数のH264ブロック外画素205である。
 そして、未取得画素補間部1303は、この処理により生成された画像を、最新のH264処理対象画像とする。
 ステップS2314では、参照画像送信処理Aが行われる。参照画像送信処理Aでは、未取得画素補間部1303が、最新のH264処理対象画像を、参照画像(動き補償参照画像)として、動き補償部1206へ送信する。
 なお、ステップS2303,S2304,S2306,S2307,S2309,S2310,S2312,S2313の処理が行われない場合、動き補償部1206へ送信される参照画像は、取得された動き補償参照先ブロックが示す画像である。
 動き補償部1206では、受信した参照画像(動き補償参照画像)を使用して動き補償を行う。なお、動き補償部1206が行う動き補償は、H.264規格に基づく処理なので詳細な説明は行わない。
 以上説明したように、本実施の形態においては、1/4精度動き補償を行う場合、1/2座標画素の生成に必要な前述したH264追加画素を、意図的に取得しようとせず、画像メモリの仕様Bが示すアクセス制限に従って、当該画像メモリにアクセスすることにより得られた最小アクセス参照先ブロックから取得された動き補償参照先ブロックが、意図せずにH264追加画素を含む場合がある。この場合、H264追加画素を含む動き補償参照先ブロックを使用して、動き補償に使用される参照画像(動き補償参照画像)を生成する。
 なお、図27のステップS2302,S2305,S2308,S2311の全てにおいて、NOと判定された場合、動き補償参照先ブロックが示す画像が、1/4精度動き補償を行う場合に必要な全てのH264追加画素を有することになる。
 この場合、参照画像生成処理Aにおいて、コピーにより生成されたH264追加画素は、1/4精度動き補償において使用されない。当該コピーにより生成されたH264追加画素は、1/4精度動き補償において、本来必要とされるH264追加画素と異なるため、当該コピーにより生成されたH264追加画素を使用して1/4精度動き補償が行われると復号により得られる画質が劣化する。
 したがって、動き補償参照先ブロックが示す画像が、1/4精度動き補償を行う場合に必要な全てのH264追加画素を有する場合、復号により得られる画像の画質の劣化を防止することができる。
 また、本実施の形態では、図27の参照画像生成処理Aにおいて、追加画素が必要でないと判定された場合(ステップS2302,S2305,S2308,S2311の全てにおいてNO)、追加画素を生成せず動き補償が行われ、追加画素が必要であると判定された場合、追加画素が生成され、生成した追加画素を使用して動き補償を行う。つまり、追加画素が必要である場合のみ、追加画素が生成されるので、追加画素が必要でない場合、追加画素を生成する処理が行われないので、効率のよい復号処理を行うことができる。
 したがって、画像の画質の劣化が常に発生することを防止するとともに、効率のよい復号処理を行うことができる。
 また、本実施の形態では、小数画素の補間生成だけに必要な画素を、例えば、バースト転送の結果、付加的に取得される画素によって補う。付加的に取得される画素だけでは、小数画素の生成において、画素が不足する場合、不足分の画素を使わずに小数画素の補間生成を行う。
 これにより、小数画素の補間生成だけに使う画素を画像メモリから追加で取得する必要がなくなり、画像メモリのデータ転送量を減らすことができる。
 さらに、常に本来の画素を使わずに小数画素の補間生成をする従来の手法に対し、本実施の形態では、本来の画素を使わずに小数画素の補間生成を行う頻度が減少する。そのため、復号により得られる画像の画質の劣化を小さくすることができる。
 したがって、本実施の形態の処理により、参照先ブロックのデータ転送量の削減および復号により得られる画像の高画質化を両立させることが可能となる。
 以上、H.264規格で符号化されたデータを復号する画像復号装置を例に、第2の実施の形態について説明した。
 本実施の形態で説明した処理は、MPEG2規格に対応した第1の実施の形態の処理と比較して、以下の点が異なる。
(1)画像取得部1207で処理する動き補償タイプが多い
(2)動きベクトルの値が整数か小数かに応じて、アクセス対象参照先ブロックのサイズを切り替える
(3)追加画素が取得できるかの判定を上下左右の全辺で実施
(4)追加画素の画素数として1画素と2画素の2通りに対応
(5)未取得の追加画素の生成(補間生成)を上下左右の全辺で行えるように構成
(6)未取得の追加画素の生成(補間生成)において、1行または1列に並ぶ複数の画素または2行または2列に並ぶ複数の画素を生成する。
 第2の実施の形態の説明は、輝度ブロックに関するものであるが、色差ブロックに関しても、第2の実施の形態に記載された処理により、本発明を適用することができる。また、第2の実施の形態に示した本発明の処理は、あくまで一例であり、画像メモリの構成やアクセス手法、各ブロックの処理分担などには、様々な変形が考えられる。
 例えば、インターレース方式とプログレッシブ方式でアクセス仕様が異なる画像メモリを用いた構成、動き補償タイプに応じて規格どおりに参照画像を取得するかどうかを切り替える構成が考えられる。
 また別の例として、水平方向および垂直方向のいずれかに本発明を適用する構成、マクロブロックやピクチャのタイプに応じて規格どおりに参照画像を取得するかどうかを切り替える構成などが考えられる。
 なお、図15および図16に示す各部は集積回路であるLSIで実現されてもよいし、コンピュータ上のソフトウェアで実現されてもよい。また、集積化の手法については、各機能が個別に1チップ化されてもよいし、一部またはすべてを含むように1チップ化されてもよい。さらには、LSIに置き換わる集積回路化の技術があれば、当然、その技術を用いて集積化を行ってもよい。
 以上、いくつかの実施の形態を例に本発明の詳細を説明した。本発明は、ここに記載した実施の形態に限定されるものではない。小数画素を生成するのに必要な追加画素を意図的に取得せず、画像メモリの仕様が示すアクセス制限に従って、当該画像メモリにアクセスした結果、意図せずに取得できた追加画素を使って小数画素を生成するという本質を維持したまま、様々な変形が可能である。
 例えば、第1および第2の実施の形態で説明したMPEG2規格またはH.264規格に対応した画像復号装置だけでなく、VC1規格などに対応した画像復号装置にも本発明は適用可能である。
 また、本発明の画像復号装置は、LSIで実現されてもよいし、コンピュータ上のソフトウェアで実現されてもよい。また、集積化の手法については、本発明の画像復号装置の各部が個別に1チップ化されてもよいし、一部またはすべてを含むように1チップ化されてもよい。さらには、本発明の画像復号装置は、LSIに置き換わる集積回路化の技術があれば、当然、その技術を用いて集積化を行ってもよい。
 また、本発明では、動き補償参照先ブロックが示す画像が示す端1列または端1行の画素をコピーすることにより追加画素を作成していたが、これに限定されることはない。例えば、動き補償参照先ブロックが示す画像が示す端3列または端3行の画素の値の平均値を示す画素を、追加画素としてもよい。
 なお、処理するデータ量に応じて、本発明を適用するか否かを決めてもよい。以下においては、処理対象となるピクチャを、処理対象ピクチャという。例えば、処理対象ピクチャが、HDサイズ(例えば、1920×1080)またはSDサイズ(720×480)のピクチャである場合、HDサイズのピクチャに対してのみ本発明を適用してもよい。
 また、処理対象ピクチャの種類に応じて、本発明を適用するか否かを決めてもよい。例えば、処理対象ピクチャが、B(Bidirectionally Predictive)ピクチャである場合にのみ、本発明を適用してもよい。
 本発明の画像復号装置はMPEG2規格またはH.264規格のような動画像符号化規格で符号化されたデータを復号する様々な装置に適用できる。本発明を適用した装置は、例えば、ディジタル放送の受信装置、携帯電話、Bluray Disc(登録商標)やDVDなどを使用する光ディスク再生装置、パーソナルコンピュータなどであってもよい。
 図28は、本発明の画像復号装置をディジタル放送の受信装置に適用した場合の構成を示す図である。
 図28に示される受信装置2401は、システムLSI2402と、チューナモジュール2403と、ROM2404と、RAM2405とを備える。
 システムLSI2402は、視聴するチャンネルのディジタルデータ(ビットストリーム)から画像と音声を復号して出力する。チューナモジュール2403は、放送波(RF入力)を使用して視聴したいチャンネルのディジタルデータ(ビットストリーム)を受信する。ROM2404は、プログラムおよび各種データを記憶する。RAM2405は、画像メモリや各種データの記憶領域として利用される。
 システムLSI2402は、CPU2406と、オーディオデコーダ2407と、出力制御部2408と、ストリームデコーダ2409と、システムバス2410と、本発明の画像復号装置1000または1000Aとを含む。
 CPU2406は、全体の制御などを行う。ストリームデコーダ2409は、視聴したいチャンネルのディジタルデータ(ビットストリーム)を音声データおよび動画像データ(映像データ)に分離する。すなわち、ストリームデコーダ2409は、ビットストリームから動画像データを取得する。
 オーディオデコーダ2407は、音声データを復号することにより音声を取得する。画像復号装置1000または1000Aは、取得された動画像データを動き補償を伴う復号処理により復号することにより動画像を取得する。出力制御部2408は、復号により得られた動画像(映像)および音声を、外部へ出力する。なお、出力制御部2408は、必要に応じ、動画像(映像)および音声の同期をとったり、動画像(映像)および音声の形式の変換を行う。
 システムバス2410は、各モジュール間とROM2404やRAM2405などの間でデータを転送する。
 図28に示される構成では、画像復号装置1000または1000AがシステムLSI2402に集積され、RAM2405を画像メモリとして用いるようになっているが、集積化の手法はこれに限らない。
 例えば、図28に示される各部が個別に1チップ化されてもよいし、一部またはすべてを含むように1チップ化されてもよい。さらには、LSIに置き換わる集積回路化の技術があれば、当然、その技術を用いて集積化を行ってもよい。
 また、ディジタル放送の受信装置を例に説明したが、携帯電話、Bluray Disc(登録商標)またはDVDなどを使用する光ディスク再生装置、パーソナルコンピュータ等においても、本発明は適用可能である。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 本発明に係る画像復号装置は、例えばディジタル放送の受信装置、携帯電話、Bluray Disc(登録商標)またはDVDなどを使用する光ディスク再生装置、パーソナルコンピュータ等に適用可能である。この場合、本発明を適用した装置は、効率的に動画像の復号処理を行うことが可能となる。

Claims (18)

  1.  動画像の符号化により得られた符号化データを、動き補償を伴う復号処理により復号する画像復号装置であって、
     前記動き補償の対象となる参照ピクチャを記憶する画像メモリと、
     前記参照ピクチャの一部の領域の画像を示す参照先ブロックを、前記画像メモリから取得する画像取得部と、
     前記参照先ブロックが示す画像を構成する複数の画素以外の画素であって、前記動き補償に必要な画素である追加画素が必要であるか否かを判定する判定部と、
     前記判定部により前記追加画素が必要であると判定された場合、1以上の前記追加画素を生成するための補間処理を行い、生成した前記1以上の追加画素と前記参照先ブロックが示す画像の少なくとも一部とから前記動き補償に使用される参照画像を生成し、該参照画像を出力し、前記判定部により前記追加画素が必要でないと判定された場合、前記参照先ブロックが示す画像の少なくとも一部を前記参照画像として出力する補間部と、
     出力された前記参照画像を使用して前記動き補償を行う動き補償部と
     を備える、画像復号装置。
  2.  前記画像取得部は、前記画像メモリの仕様としてのアクセス制限に従って、前記画像メモリにアクセスすることにより、前記参照先ブロックを取得する、
     請求項1に記載の画像復号装置。
  3.  前記アクセス制限は、前記画像メモリから取得対象となる画像を取得する場合、該取得対象となる画像を構成する画素の数以上の数の画素を取得するための制限であり、
     前記画像取得部は、前記画像メモリから前記取得対象となる画像を取得するために、前記アクセス制限に従って、前記画像メモリにアクセスすることにより、前記取得対象となる画像を構成する画素の数以上の数の画素からなる画像を示す前記参照先ブロックを取得する、
     請求項2に記載の画像復号装置。
  4.  前記補間部は、前記参照先ブロックが示す画像を構成する複数の画素の一部を利用して、前記1以上の追加画素を生成する前記補間処理を行う、
     請求項3に記載の画像復号装置。
  5.  前記動き補償は、小数画素精度で行われる、
     請求項4に記載の画像復号装置。
  6.  前記符号化データは、MPEG2規格で符号化されたデータである、
     請求項5に記載の画像復号装置。
  7.  前記補間部は、前記参照先ブロックが示す画像の少なくとも一部の画像において、水平方向の端の1列に並ぶ複数の画素を、前記参照先ブロックが示す画像の横側1列に並ぶ複数の前記追加画素とする前記補間処理を行う、
     請求項6に記載の画像復号装置。
  8.  前記動き補償は、画像の水平方向に対して、小数画素精度で行われる、
     請求項7に記載の画像復号装置。
  9.  前記補間部は、前記参照先ブロックが示す画像の少なくとも一部の画像において、垂直方向の端の1行に並ぶ複数の画素を、前記参照先ブロックが示す画像の縦側1行に並ぶ複数の前記追加画素とする前記補間処理を行う、
     請求項6に記載の画像復号装置。
  10.  前記動き補償は、画像の垂直方向に対して、小数画素精度で行われる、
     請求項9に記載の画像復号装置。
  11.  前記符号化データは、H.264規格で符号化されたデータである、
     請求項5に記載の画像復号装置。
  12.  前記補間部は、前記参照先ブロックが示す画像の少なくとも一部の画像において、水平方向の端の1列に並ぶ複数の画素を、前記参照先ブロックが示す画像の横側1列または横側2列に並ぶ複数の前記追加画素とする前記補間処理を行う、
     請求項11に記載の画像復号装置。
  13.  前記動き補償は、画像の水平方向に対して、小数画素精度で行われる、
     請求項12に記載の画像復号装置。
  14.  前記補間部は、前記参照先ブロックが示す画像の少なくとも一部の画像において、垂直方向の端の1行に並ぶ複数の画素を、前記参照先ブロックが示す画像の縦側1行または縦側2行に並ぶ複数の前記追加画素とする前記補間処理を行う、
     請求項11に記載の画像復号装置。
  15.  前記動き補償は、画像の垂直方向に対して、小数画素精度で行われる、
     請求項14に記載の画像復号装置。
  16.  動画像の符号化により得られた符号化データを、動き補償を伴う復号処理により復号し、前記動き補償の対象となる参照ピクチャを記憶する画像メモリを備える画像復号装置が行う画像復号方法であって、
     前記参照ピクチャの一部の領域の画像を示す参照先ブロックを、前記画像メモリから取得する画像取得ステップと、
     前記参照先ブロックが示す画像を構成する複数の画素以外の画素であって、前記動き補償に必要な画素である追加画素が必要であるか否かを判定する判定ステップと、
     前記判定ステップにより前記追加画素が必要であると判定された場合、1以上の前記追加画素を生成するための補間処理を行い、生成した前記1以上の追加画素と前記参照先ブロックが示す画像の少なくとも一部とから前記動き補償に使用される参照画像を生成し、該参照画像を出力し、前記判定ステップにより前記追加画素が必要でないと判定された場合、前記参照先ブロックが示す画像の少なくとも一部を前記参照画像として出力する補間ステップと、
     出力された前記参照画像を使用して前記動き補償を行う動き補償ステップと
     を備える、画像復号方法。
  17.  動画像の符号化により得られた符号化データを、動き補償を伴う復号処理により復号する集積回路であって、
     前記動き補償の対象となる参照ピクチャを記憶する画像メモリと、
     前記参照ピクチャの一部の領域の画像を示す参照先ブロックを、前記画像メモリから取得する画像取得部と、
     前記参照先ブロックが示す画像を構成する複数の画素以外の画素であって、前記動き補償に必要な画素である追加画素が必要であるか否かを判定する判定部と、
     前記判定部により前記追加画素が必要であると判定された場合、1以上の前記追加画素を生成するための補間処理を行い、生成した前記1以上の追加画素と前記参照先ブロックが示す画像の少なくとも一部とから前記動き補償に使用される参照画像を生成し、該参照画像を出力し、前記判定部により前記追加画素が必要でないと判定された場合、前記参照先ブロックが示す画像の少なくとも一部を前記参照画像として出力する補間部と、
     出力された前記参照画像を使用して前記動き補償を行う動き補償部と
     を備える、集積回路。
  18.  放送波を使用してビットストリームを受信する受信装置であって、
     前記ビットストリームから動画像データを取得するデータ取得部と、
     取得した前記動画像データを動き補償を伴う復号処理により復号することにより動画像を取得する画像復号部と、
     前記動画像を出力する出力制御部とを備え、
     前記画像復号部は、
      前記動き補償の対象となる参照ピクチャを記憶する画像メモリと、
      前記参照ピクチャの一部の領域の画像を示す参照先ブロックを、前記画像メモリから取得する画像取得部と、
      前記参照先ブロックが示す画像を構成する複数の画素以外の画素であって、前記動き補償に必要な画素である追加画素が必要であるか否かを判定する判定部と、
      前記判定部により前記追加画素が必要であると判定された場合、1以上の前記追加画素を生成するための補間処理を行い、生成した前記1以上の追加画素と前記参照先ブロックが示す画像の少なくとも一部とから前記動き補償に使用される参照画像を生成し、該参照画像を出力し、前記判定部により前記追加画素が必要でないと判定された場合、前記参照先ブロックが示す画像の少なくとも一部を前記参照画像として出力する補間部と、
      出力された前記参照画像を使用して前記動き補償を行う動き補償部とを含む、
     受信装置。
PCT/JP2009/001153 2008-03-31 2009-03-16 画像復号装置、画像復号方法、集積回路および受信装置 WO2009122659A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP09726840.3A EP2252064B1 (en) 2008-03-31 2009-03-16 Image decoding device, image decoding method, integrated circuit, and reception device
US12/934,134 US20110032993A1 (en) 2008-03-31 2009-03-16 Image decoding device, image decoding method, integrated circuit, and receiving device
JP2010505309A JP5367696B2 (ja) 2008-03-31 2009-03-16 画像復号装置、画像復号方法、集積回路および受信装置
CN2009801109051A CN101981935B (zh) 2008-03-31 2009-03-16 图像解码装置、图像解码方法、集成电路及接收装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008091088 2008-03-31
JP2008-091088 2008-03-31

Publications (1)

Publication Number Publication Date
WO2009122659A1 true WO2009122659A1 (ja) 2009-10-08

Family

ID=41135068

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/001153 WO2009122659A1 (ja) 2008-03-31 2009-03-16 画像復号装置、画像復号方法、集積回路および受信装置

Country Status (5)

Country Link
US (1) US20110032993A1 (ja)
EP (1) EP2252064B1 (ja)
JP (1) JP5367696B2 (ja)
CN (1) CN101981935B (ja)
WO (1) WO2009122659A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7924914B2 (en) * 2005-09-20 2011-04-12 Intel Corporation Dynamically configuring a video decoder cache for motion compensation
KR100994983B1 (ko) * 2008-11-11 2010-11-18 한국전자통신연구원 고속 움직임 탐색 장치 및 그 방법
JP5890794B2 (ja) * 2013-02-28 2016-03-22 株式会社東芝 画像処理装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11346368A (ja) 1998-04-03 1999-12-14 Matsushita Electric Ind Co Ltd 画像処理方法,画像処理装置,及びデ―タ記憶媒体
JP2005354673A (ja) 2004-05-14 2005-12-22 Matsushita Electric Ind Co Ltd 動き補償装置
JP2007124605A (ja) * 2005-10-25 2007-05-17 Renei Kagi Kofun Yugenkoshi コスト関数演算方法、コスト関数演算装置及びその補間方法
JP2007129370A (ja) * 2005-11-01 2007-05-24 Matsushita Electric Ind Co Ltd 動きベクトル検出装置及び方法
JP2007274383A (ja) * 2006-03-31 2007-10-18 Oki Electric Ind Co Ltd 画像処理用データ転送回路

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6965644B2 (en) * 1992-02-19 2005-11-15 8×8, Inc. Programmable architecture and methods for motion estimation
US6259734B1 (en) * 1998-04-03 2001-07-10 Matsushita Electric Industrial Co., Ltd. Image processing method, image processing apparatus, and data storage media
JP2002112163A (ja) * 2000-09-28 2002-04-12 Mitsubishi Electric Corp 画像データ記憶装置及びその画像データ格納方法
US8155459B2 (en) * 2003-05-19 2012-04-10 Trident Microsystems (Far East) Ltd. Video processing device with low memory bandwidth requirements
JP2005223631A (ja) * 2004-02-05 2005-08-18 Sony Corp データ処理装置およびその方法と符号化装置および復号装置
US7881376B2 (en) * 2004-05-14 2011-02-01 Panasonic Corporation Motion compensation apparatus
JP4734168B2 (ja) * 2006-05-09 2011-07-27 株式会社東芝 画像復号化装置及び画像復号化方法
KR100827093B1 (ko) * 2006-10-13 2008-05-02 삼성전자주식회사 영상 부호화 방법 및 장치
US20090135901A1 (en) * 2007-11-28 2009-05-28 The Hong Kong University Of Science And Technology Complexity adaptive video encoding using multiple reference frames

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11346368A (ja) 1998-04-03 1999-12-14 Matsushita Electric Ind Co Ltd 画像処理方法,画像処理装置,及びデ―タ記憶媒体
JP2005354673A (ja) 2004-05-14 2005-12-22 Matsushita Electric Ind Co Ltd 動き補償装置
JP2007124605A (ja) * 2005-10-25 2007-05-17 Renei Kagi Kofun Yugenkoshi コスト関数演算方法、コスト関数演算装置及びその補間方法
JP2007129370A (ja) * 2005-11-01 2007-05-24 Matsushita Electric Ind Co Ltd 動きベクトル検出装置及び方法
JP2007274383A (ja) * 2006-03-31 2007-10-18 Oki Electric Ind Co Ltd 画像処理用データ転送回路

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2252064A4 *

Also Published As

Publication number Publication date
EP2252064A1 (en) 2010-11-17
US20110032993A1 (en) 2011-02-10
JP5367696B2 (ja) 2013-12-11
CN101981935A (zh) 2011-02-23
EP2252064A4 (en) 2011-04-20
EP2252064B1 (en) 2014-03-05
CN101981935B (zh) 2012-11-21
JPWO2009122659A1 (ja) 2011-07-28

Similar Documents

Publication Publication Date Title
JP7299221B2 (ja) 隣接サンプルに応じた線形モデルに基づく映像符号化及び復号のための方法と装置
US8982964B2 (en) Image decoding device, image coding device, methods thereof, programs thereof, integrated circuits thereof, and transcoding device
US20220038684A1 (en) Multi-reference line intra prediction and most probable mode
JP2021523588A (ja) 四分木二分木のブロック形状適応イントラ予測方向
KR20220137964A (ko) 비디오 인코딩 또는 디코딩을 위한 신경 네트워크 기반 인트라 예측
TW202112135A (zh) 用於視訊寫碼之色度內預測單元
JP5367696B2 (ja) 画像復号装置、画像復号方法、集積回路および受信装置
JP2023518194A (ja) 画像符号化及び復号のための方法並びにデバイス
CN112425162A (zh) 宽角帧内预测和位置依赖性帧内预测组合
TW202029753A (zh) 用於視訊寫碼之廣角框內預測
US20060291743A1 (en) Configurable motion compensation unit
TWI835922B (zh) 視訊寫碼中之位置相關內部-外部預測組合
RU2797393C2 (ru) Позиционно-зависимая комбинация intra-предсказания для широкоугольного intra-предсказания
US20230379482A1 (en) Spatial resolution adaptation of in-loop and post-filtering of compressed video using metadata
US20230232003A1 (en) Single-index quantization matrix design for video encoding and decoding
WO2024078867A1 (en) Intra prediction mode improvements based on available reference samples
JP2022537173A (ja) 位置依存イントラ予測コンビネーションを用いたピクチャ符号化及び復号の方法及びデバイス
EP4352959A1 (en) High-level syntax for picture resampling
KR20230150293A (ko) 비디오를 인코딩/디코딩하기 위한 방법들 및 장치들
CN117280683A (zh) 用于对视频进行编码/解码的方法和装置
WO2024026182A1 (en) Tracking sample completion in video coding
WO2023194106A1 (en) Motion information parameters propagation based on intra prediction direction
WO2024083500A1 (en) Methods and apparatuses for padding reference samples
TW202416714A (zh) 基於可用參考樣本之幀內預測模式改善
KR20230140450A (ko) 디코딩 프로세스의 에너지 소비를 나타내는 정보를 시그널링하기 위한 메타데이터

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980110905.1

Country of ref document: CN

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

Ref document number: 09726840

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010505309

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 12934134

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2009726840

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE