The present invention relates to an image decoding device, an image decoding method, an integrated circuit, and a receiving device which decode encoded data obtained through a moving-image encoding that includes motion estimation performed between images.
In recent years, image encoding techniques based on the MPEG-2 standard (see Non-Patent Reference 1) or H.264 standard (see Non-Patent Reference 2) are widely used to compress moving image data. According to these image encoding techniques, motion estimation (also referred to as motion compensation hereafter) is performed on at least some of plural pictures included in a moving image sequence.
Motion estimation is the process of detecting motion vectors from a process target picture and a reference picture and thus generating an predicted picture. Here, the reference picture is a picture referenced to in motion estimation. The reference picture may be previous or subsequent to the process target picture in time.
Encoding is performed on information, such as motion information obtained by motion estimation (information identifying the reference picture, motion vectors, etc.) and information including a difference from the estimation result. For this encoding, a picture is partitioned in rectangular areas (referred to as the blocks hereafter), each area having a predetermined number of pixels. Then, encoding is performed on a block by block basis.
The moving image data having been encoded according to the image encoding technique that includes motion estimation as described is decoded as follows.
Firstly, motion information is extracted from the moving image data. After this, a block in a reference picture (referred to as the estimation pixel block hereafter) is determined on the basis of the extracted motion information. Lastly, a difference between the estimation pixel block and the estimation result of the moving image data is added, and the resultant image is outputted as the decoding result.
The encoding efficiency in these image encoding techniques depends on a method of encoding the estimated motion vectors as the motion information. It is known that motion vectors with non-integer precision, in particular, can improve the encoding efficiency.
In the case where motion vectors with non-integer precision are used, pixels located at non-integer coordinates are generated from pixels located at integer coordinates through an interpolation process of some kind. Then, using an image generated by the interpolation process (this image is referred to as the interpolated image hereafter), motion estimation and a process to generate an estimation pixel block are performed.
In the following, a pixel located at integer coordinates is referred to as an integer pixel, and non-integer coordinates may also be referred to as decimal coordinates. Moreover, in the following, a pixel located at decimal coordinates is referred to as a decimal pixel, and non-integer precision may also be referred to as decimal precision.
Next, the method of processing the decimal pixels based on the MPEG-2 and H.264 standards is explained.
The MPEG-2 standard allows motion estimation (or, motion compensation) to be performed with half-pixel precision. In the following, a coordinate whose decimal portion is represented by ½ (0.5) is referred to as the half precision coordinate. Moreover, in the following, a pixel located at half precision coordinates is referred to as the half coordinate pixel.
The value of the half coordinate pixel is obtained by calculating an average of values of at least two integer pixels adjacent to the present half coordinate pixel. In the following, when there are m number (positive integer) of pixels wide and, n number (positive integer) of pixels high, this size is represented by “m×n”. For example, a block formed from a matrix of 4 pixels wide by 8 pixels high is called a 4×8 block.
Next, a method of generating half coordinate pixels is explained, using a 16×16 block as an example.
In the following, a block in the process target picture on which motion estimation (or, motion compensation) is to be performed is referred to as a motion compensation block, and an image used for motion estimation (or, motion compensation) is referred to as a reference image. Moreover, in the following, a block which shows an image of a part of the reference picture and which shows the whole or part of the reference image is referred to as a reference block.
In the following, an integer pixel in a reference block based on the MPEG-2 standard is called an MP2-block integer pixel.
In
In the following, the horizontal and vertical directions are referred to as the row and column directions, respectively. Moreover, in the following, the coordinates in the horizontal and vertical directions are referred to as the horizontal and vertical coordinates, respectively, and one set of coordinates is described as (x (horizontal coordinate value), y (vertical coordinate value)). For instance, when a set of coordinates is expressed as (3, 5), this means that the horizontal coordinate value “3” and the vertical coordinate value is “5”. Furthermore, in the following, the horizontal and vertical coordinate values are also referred to simply as the horizontal and vertical coordinates, respectively.
In the following, a pixel arranged outside a reference block based on the MPEG-2 standard is called an MP2-block outside pixel. Also, in the following, an MP2-block outside pixel required to generate a half coordinate pixel in the MPEG-2 reference block is called an MP2 additional pixel.
In
Suppose that the reference block 101 is 16×16 in size and a pixel required to generate a half coordinate pixel is generated through the interpolation process. Here, the coordinates of the pixel located at the upper-left corner of the reference block 101 is expressed as (0, 0) and the coordinates of the pixel located at the lower-right corner of the reference block 101 is expressed as (15.5, 15.5).
The value of a half coordinate pixel in the reference block 101 can be obtained by calculating an average of values of at least two integer pixels adjacent to the present half coordinate pixel. Thus, in order to generate a plurality of half coordinate pixels 103 whose horizontal coordinate values are “15.5” and whose vertical coordinate values are “0” to “15.5”, a plurality of MP2 additional pixels aligned in a column outside on the right of the reference block 101 are necessary.
Moreover, in order to generate a plurality of half coordinate pixels 103 whose horizontal coordinate values are “0” to “15.5” and whose vertical coordinate values are “15.5”, a plurality of MP2 additional pixels aligned in a row outside below the reference block 101 are necessary.
As described, when motion estimation (or, motion compensation) is performed with half-pixel precision in the processing according to the MPEG-2 standard, a plurality of pixels are necessary corresponding to a block which is larger than the reference block 101 by one pixel in each of the horizontal and vertical directions.
To be more specific, when motion estimation (or, motion compensation) is performed with half-pixel precision using a 16×16 motion compensation block in the processing according to the MPEG-2 standard, a 17×17 reference block is necessary. There may be a case where the motion compensation block to be used in the MPEG-2 processing is 16×8 in size. In this case, a 17×9 reference block is necessary.
In the processing according to H.264 standard, motion estimation (or, motion compensation) can be performed with quarter-pixel precision. In the H.264 processing, the value of a pixel (half coordinate pixel) located at half precision coordinates, out of pixels at decimal coordinates, is obtained by a 6-tap filter using three pixels on both sides (i.e., six pixels in total) of the present pixel.
In the following, a coordinate whose decimal portion is represented by ¼ or ¾ (0.25 or 0.75) is referred to as the quarter precision coordinate. Moreover, in the following, a pixel located at quarter precision coordinates is referred to as the quarter coordinate pixel.
In the processing according to the H.264 standard, a decimal pixel other than the half coordinate pixels (namely, a quarter coordinate pixel) that is located at decimal coordinates (namely, quarter precision coordinates) is generated by calculating an average of values of at least two pixels which are adjacent to the present quarter coordinate pixel and which are located at integer coordinates or half precision coordinates.
In the following, an integer pixel in a reference block based on the H.264 standard is called an H264-block integer pixel.
In
In the following, a pixel arranged outside a reference block based on the H.264 standard is called an H264-block outside pixel. Also, in the following, an H264-block outside pixel required to generate a half coordinate pixel in the H.264 reference block is called an H264 additional pixel.
In
Suppose that the reference block 201 is 4×4 in size and a decimal pixel is generated through the interpolation process. Here, the coordinates of the pixel located at the upper-left corner of the reference block 201 is expressed as (0, 0) and the coordinates of the pixel located at the lower-right corner of the reference block 201 is expressed as (3.75, 3.75).
A half coordinate pixel in the reference block 201 is generated by a 6-tap filter using 3 pixels on both sides (i.e., 6 pixels in total) of the present half coordinate pixel. Thus, in order to generate a plurality of half coordinate pixels 203 whose horizontal coordinate values are “0.5” and whose vertical coordinate values are “0” to “3.5”, a plurality of H264 additional pixels aligned in two columns are necessary outside on the left of the reference block 201.
Also, in order to generate a plurality of half coordinate pixels 203 whose horizontal coordinate values are “0” to “3.5” and whose vertical coordinate values are “0.5”, a plurality of H264 additional pixels aligned in two rows outside above the reference block 201 are necessary.
Moreover, in order to generate a plurality of half coordinate pixels 203 whose horizontal coordinate values are “3.5” and whose vertical coordinate values are “0” to “3.5”, a plurality of H264 additional pixels aligned in three columns outside on the right of the reference block 201 are necessary. Furthermore, in order to generate a plurality of half coordinate pixels 203 whose horizontal coordinate values are “0” to “3.5” and whose vertical coordinate values are “3.5”, a plurality of H264 additional pixels aligned in three rows outside below the reference block 201 are necessary. It should be noted that an H264 additional pixel is not required to generate a quarter coordinate pixel 204.
As described, when motion estimation (or, motion compensation) is performed with quarter-pixel precision in the processing according to the H.264 standard, a plurality of pixels are necessary corresponding to a block which is larger than the reference block 201 by two pixels in each of the leftward and upward directions and by three pixels in each of the rightward and downward directions.
To be more specific, when motion estimation is performed with quarter-pixel precision using a 4×4 motion compensation block in the H.264 processing, a 9×9 reference image is necessary.
Here, the size of a motion compensation block to be used in the H.264 processing may be 16×16, 16×8, 8×16, 8×8, 8×4, or 4×8. Corresponding to the motion compensation blocks in sizes of 16×16, 16×8, 8×16, 8×8, 8×4, and 4×8, reference images in sizes of 21×21, 21×13, 13×21, 13×13, 13×9, and 9×13 are necessary, respectively.
In the H.264 processing, a pixel located at decimal coordinates is generated using the 6-tap filter, as described above. For this reason, as compared to the case of the MPEG-2 processing, the number of pixels necessary for motion estimation (or, motion compensation) significantly increases in the H.264 processing.
As explained above, when motion estimation (or, motion compensation) is performed with a decimal precision in the MPEG-2 or H.264 processing, it is necessary to generate pixels located at decimal coordinates. Thus, a reference image larger in size is required for motion estimation (or, motion compensation) when motion estimation (or, motion compensation) is performed with a decimal precision in the MPEG-2 or H.264 processing.
This results in a problem of an increase in the amount of data transfer to obtain the reference block as a reference image when motion estimation (or, motion compensation) is performed with a decimal precision. Hence, a high-performance, high-priced memory is required in order to process the reference block as the reference image at high speed. This ends up increasing the cost of devices which perform image encoding and decoding.
To address this problem, the methods disclosed in Patent Reference 1 and Patent Reference 2 have been proposed. Patent Reference 1 discloses a technique whereby decimal pixels are generated without obtaining all pixels, which are required to generate the decimal pixels, located outside the reference block (hereafter, this technique is referred to as the conventional technique A). That is, in the case of the conventional technique A, all pixels necessary for motion compensation are not obtained.
Here, all the not-to-be obtained pixels located outside the reference block are, for example, the plurality of pixels aligned in the rightmost column and the plurality of pixels aligned in the lowermost row shown in
According to the conventional technique A, decimal pixels are generated by interpolating the yet-to-be-obtained pixels located outside the reference block using only the obtained pixels of the reference block. That is, according to the conventional technique A, the decimal pixels are generated using the pixels which are not the original pixels located outside the reference block. For this reason, errors may be included in the images obtained through the encoding and decoding processes, in the case of the conventional technique A. When the number of bits per pixel is n, the error reaches up to the (n−1)th power of ±2 at the maximum. As a result, image quality degradation that is impossible to ignore is caused in the images obtained through the encoding and decoding processes.
Patent Reference 2 discloses a technique whereby a buffer for temporarily storing pixels obtained from a reference picture is provided and then motion estimation is performed without re-obtaining the pixels already stored in the buffer (hereafter, this technique is referred to as the conventional technique B). That is, the conventional technique B utilizes the fact that the pixels once obtained are highly likely to be re-used for motion compensation for other blocks, thereby reducing the number of pixels to be obtained from the reference picture.
However, whether or not the obtained pixels are to be re-used depends on the content of the moving image data. There may be a case where the obtained pixels are not re-used at all.
According to the conventional technique A, all the pixels necessary for motion compensation are not obtained. For this reason, image quality degradation always occurs in the images obtained through the decoding process that includes motion compensation. Meanwhile, according to the conventional technique B, there may be a case where the obtained pixels are not used for motion compensation, which is inefficient in processing.
The present invention is conceived in view of the stated problems, and the object of the present invention is to provide an image decoding device and so forth which can prevent constant degradation in image quality from occurring and can also perform the decoding process with efficiency.
In order to achieve the aforementioned object, the Image decoding device according to an aspect of the present invention is an image decoding device which decodes, through a decoding process including motion compensation, encoded data that is obtained by encoding a moving image. The image decoding device includes: an image memory which stores a reference picture that is subject to the motion compensation; an image obtaining unit which obtains, from the image memory, a reference block showing an image of a part of the reference picture; a judging unit which judges whether or not an additional pixel required for the motion compensation is necessary, the additional pixel not being included in a plurality of pixels forming the image shown by the reference block; an interpolating unit which: performs an interpolation process for generating at least one additional pixel, generates a reference image to be used for the motion compensation using the generated at least one additional pixel and at least a part of the image shown by the reference block, and outputs the reference image, when the judging unit judges that the additional pixel is necessary; and outputs at least a part of the image shown by the reference block as the reference image when the judging unit judges that the additional pixel is unnecessary; and a motion compensating unit which performs the motion compensation using the outputted reference image.
To be more specific, it is judged whether or not an additional pixel required for the motion compensation is necessary, the additional pixel not being included in the plurality of pixels forming the image shown by the reference block. When the additional pixel is judged to be necessary, an interpolation process to generate at least one additional pixel is performed, a reference image to be used for the motion compensation is generated using the generated at least one additional pixel and at least a part of the image shown by the reference block, and then the reference image is outputted. When the additional pixel is judged to be unnecessary, at least a part of the image shown by the reference block is outputted as the reference image. Using the outputted reference image, the motion compensation is performed.
More specifically, when it is judged that the additional pixel are unnecessary, motion compensation is performed using at least a part of the image shown by the reference block as a reference image. Here, this means that all the pixels necessary for the motion compensation are present. Therefore, quality degradation can be prevented from occurring to the image obtained through the decoding process.
When it is judged that the additional pixel is unnecessary, motion compensation is performed without generating the additional pixel. On the other hand, when it is judged that additional pixel is necessary, the additional pixel is thus generated and motion compensation is performed using the generated additional pixel. In other words, an additional pixel is generated only when the additional pixel is necessary, and the process to generate the additional pixel is not performed when the additional pixel is unnecessary. This allows the decoding process to be performed with efficiency.
Accordingly, constant degradation in image quality can be prevented from occurring, and the decoding process can be performed with efficiency.
Also, the image obtaining unit may obtain the reference block, by accessing the image memory according to an access restriction that serves as specifications of the image memory.
Moreover, the access restriction may be such that when an obtaining target image is obtained from the image memory, the number of pixels to be obtained is equal to or larger than the number of pixels forming the obtaining target image, and the image obtaining unit may obtain the reference block showing the image whose number of pixels is equal to or larger than the number of pixels forming the obtaining target image, by accessing the image memory according to the access restriction so as to obtain the obtaining target image from the image memory.
With this, when the reference block has a larger number of pixels than the number of pixels forming the obtaining target image, it is highly likely to be judged that the additional pixel is unnecessary. This indicates that there is a low probability that the interpolation process is performed in order to generate the additional pixel. Accordingly, the decoding process can be performed with efficiency.
Also, the interpolating unit may perform the interpolation process to generate the at least one additional pixel, using a part of a plurality of pixels forming the image shown by the reference block.
Moreover, the motion compensation may be performed with a decimal pixel precision.
Furthermore, the encoded data may be data having been encoded according to the MPEG-2 standard.
Also, the interpolating unit may perform the interpolation process in which a plurality of pixels aligned in a column located at an end in a horizontal direction in at least a part of the image shown by the reference block are used as a plurality of additional pixels aligned in a column located on a side of a horizontal end of the image shown by the reference block.
Moreover, the motion compensation may be performed with the decimal pixel precision in the horizontal direction of the image.
Furthermore, the interpolating unit may perform the interpolation process in which a plurality of pixels aligned in a row located at an end in a vertical direction in at least a part of the image shown by the reference block are used as a plurality of additional pixels aligned in a row located on a side of a vertical end of the image shown by the reference block.
Also, the motion compensation may be performed with the decimal pixel precision in the vertical direction of the image.
Moreover, the encoded data may be data having been encoded according to the H.264 standard.
Furthermore, the interpolating unit may perform the interpolation process in which a plurality of pixels aligned in a column located at an end in a horizontal direction in at least a part of the image shown by the reference block are used as a plurality of additional pixels aligned in one of one column and two columns located on a side of a horizontal end of the image shown by the reference block.
Also, the motion compensation may be performed with the decimal pixel precision in the horizontal direction of the image.
Moreover, the interpolating unit may perform the interpolation process in which a plurality of pixels aligned in a row located at an end in a vertical direction in at least a part of the image shown by the reference block are used as a plurality of additional pixels aligned in one of one row and two rows located on a side of a vertical end of the image shown by the reference block.
Furthermore, the motion compensation may be performed with the decimal pixel precision in the vertical direction of the image.
An image decoding method according to another aspect of the present invention is executed by an image decoding device which decodes, through a decoding process including motion compensation, encoded data that is obtained by encoding a moving image and which includes an image memory storing a reference picture that is subject to the motion compensation. The image decoding method includes: obtaining, from the image memory, a reference block showing an image of a part of the reference picture; judging whether or not an additional pixel required for the motion compensation is necessary, the additional pixel not being included in a plurality of pixels forming the image shown by the reference block; performing an interpolation process to generate at least one additional pixel, generating a reference image to be used for the motion compensation using the generated at least one additional pixel and at least a part of the image shown by the reference block, and outputting the reference image, when the additional pixel is judged to be necessary in the judging, and outputting at least a part of the image shown by the reference block as the reference image when the additional pixel is judged to be unnecessary in the judging; and performing the motion compensation using the outputted reference image.
An integrated circuit according to another aspect of the present invention decodes, through a decoding process including motion compensation, encoded data that is obtained by encoding a moving image. The integrated circuit includes: an image memory which stores a reference picture that is subject to the motion compensation; an image obtaining unit which obtains, from the image memory, a reference block showing an image of a part of the reference picture; a judging unit which judges whether or not an additional pixel required for the motion compensation is necessary, the additional pixel not being included in a plurality of pixels forming the image shown by the reference block; an interpolating unit which performs an interpolation process for generating at least one additional pixel, to generate a reference image to be used for the motion compensation using the generated at least one additional pixel and at least a part of the image shown by the reference block, and to output the reference image, when the judging unit judges that the additional pixel is necessary; and to output at least a part of the image shown by the reference block as the reference image when the judging unit judges that the additional pixel is unnecessary; and a motion compensating unit which performs the motion compensation using the outputted reference image.
A receiving device according to another aspect of the present invention receives a bitstream using a broadcast wave. The receiving device includes: a data obtaining unit which obtains moving image data from the bitstream; an image decoding unit which obtains a moving image by decoding, through a decoding process including motion compensation, the obtained moving image data; and an output control unit which outputs the moving image. The image decoding unit includes: an image memory which stores a reference picture that is subject to the motion compensation; an image obtaining unit which obtains, from the image memory, a reference block showing an image of a part of the reference picture; a judging unit which judges whether or not an additional pixel required for the motion compensation is necessary, the additional pixel not being included in a plurality of pixels forming the image shown by the reference block; an interpolating unit which: performs an interpolation process for generating at least one additional pixel, generates a reference image to be used for the motion compensation using the generated at least one additional pixel and at least a part of the image shown by the reference block, and outputs the reference image, when the judging unit judges that the additional pixel is necessary; and outputs at least a part of the image shown by the reference block as the reference image when the judging unit judges that the additional pixel is unnecessary; and a motion compensating unit which performs the motion compensation using the outputted reference image.
It should be noted that the processing executed in the image decoding method may be implemented as a program that causes a computer to execute the method. Also, note that the present invention can be implemented as a computer-readable recording medium that stores the program.
According to the present invention, constant degradation in image quality can be prevented from occurring, and the decoding process can be performed with efficiency.
The following is a description of embodiments according to the present invention, with reference to the drawings.
The image decoding device 1000 shown in
The variable-length decoding unit 301 obtains a bitstream from an external source. Note that this bitstream is encoded data that is obtained through moving-image encoding based on the MPEG-2 standard. The variable-length decoding unit 301 decodes a variable-length code included in the bitstream.
As a result of this decoding, a quantized frequency component value (hereafter, referred to as the quantized frequency component information) and motion information are obtained. This motion information indicates a motion compensation type, a number identifying a reference picture (hereafter, referred to as the reference picture number), a difference value of a motion vector, and so forth. The motion compensation type denotes a size of a motion compensation block. The motion compensation type also denotes other information in addition to the size of the motion compensation block. However, in the present invention, the explanation is given on the understanding that the motion compensation type denotes the size of the motion compensation block.
In the following, when the size of the motion compensation block is represented as s (positive integer)×t (positive integer), the motion compensation type is represented as “Ts×t”. For example, when the size of the motion compensation block is 16×16, the motion compensation type is represented as “T16×16”.
Note that although parameters for controlling the image decoding device 1000 are obtained as a result of the decoding, these parameters are not used in the present invention and thus are not explained.
The variable-length decoding unit 301 sends the quantized frequency component information to the inverse quantizing unit 302. Moreover, the variable-length decoding unit 301 sends the motion information to the motion vector calculating unit 305.
The inverse quantizing unit 302 obtains a frequency component by performing inverse quantization on the received quantized frequency component information. The inverse orthogonal transforming unit 303 obtains a difference between pixel values by performing inverse orthogonal transformation on the obtained frequency component. Then, the inverse orthogonal transforming unit 303 sends the pixel value difference to the adder 304. It should be noted that, in the present embodiment, each of inverse quantization and inverse orthogonal transformation is performed collectively in a unit of a predetermined macroblock (a block of 16×16 pixels).
The motion vector calculating unit 305 obtains the motion compensation type, the reference picture number, and the motion vector from the received motion information. Then, the motion vector calculating unit 305 sends the motion information indicating the motion compensation type, the reference picture number, and the motion vector, to the motion compensating unit 306 and the image obtaining unit 307.
The image memory 308 stores a plurality of reference pictures which are subject to motion compensation. The image memory 308 is a memory from which an image of a part of a reference picture can be read out according to predetermined specifications.
The image obtaining unit 307 obtains this partial image of the reference picture which is identified 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. Then, the image obtaining unit 307 sends the obtained image or an image generated on the basis of the obtained image, to the motion compensating unit 306.
The motion compensating unit 306 performs motion compensation using the motion compensation type, the reference picture number, and the motion vector indicated by the received motion information and the image received from the image obtaining unit 307. As a result of this motion compensation, an estimation image is obtained. Hereafter, an estimation image obtained as a result of the motion compensation is referred to as a motion-compensation estimation image. The motion compensating unit 306 then sends the motion-compensation estimation image to the adder 304.
The adder 304 obtains a picture by adding the pixel value difference received from the inverse orthogonal transforming unit 303 to the motion-compensation estimation image received from the motion compensating unit 306 (hereafter, this picture is referred to as the reproduction picture). Then, the adder 304 outputs the reproduction picture to an external source and also stores the reproduction picture as the reference picture into the image memory 308.
In general, the image memory is configured by a plurality of low-capacity memories (described as the memory banks, hereafter). In many cases, access to the image memory is executed In units of a plurality of pixels. On this account, the image memory configured by the plurality of memory banks can improve performance of access to the plurality of pixels falling within an individual memory bank. In the following, the image memory configured by the plurality of memory banks is referred to as the multi-bank image memory.
When pixels in a rectangular area of the picture stored in the multi-bank image memory are accessed, the multi-bank image memory attempts to improve the performance by, in many cases, imposing restrictions on the width, length, and upper-left corner coordinates in the rectangle. To be more specific, the multi-bank image memory limits the coordinates from which the transfer is started and the number of pixels to be transferred, to the integral multiple of a certain value.
In
The minimum access block 403 corresponds to a minimum area which includes all pixels necessary to be accessed in the case where all the pixels of the access target block 402 are accessed according to the specifications A of the access-target image memory. The size of the minimum access block 403 is 12×8, for example. Note that the coordinates in the minimum access block 403 are expressed as (0, 4).
For the case of the access in the horizontal direction, the specifications A of the image memory shown in
Moreover, for the case of the access in the vertical direction, the specifications A of the image memory shown in
In this way, when all the pixels of the 6×6 access target block 402 are to be accessed according to the access restriction indicated by the specifications A of the image memory as described in this example, it is necessary to access all the pixels in the 12×8 minimum access block 403. In most cases, when all the pixels in the access target block 402 are to be accessed in the image memory having the access restriction as indicated by the above-mentioned specifications A, for example, it is usually necessary to access all the pixels in a block (such as the minimum access block 403) larger than the present access target block 402.
As described in Background Art above, the MPEG-2 standard allows motion compensation to be performed with half-pixel precision. Thus, when motion compensation is performed with half-pixel precision according to the MPEG-2 standard, half coordinate pixels need to be generated. Hereafter, motion compensation performed with half-pixel precision is referred to as the half-precision motion compensation.
As explained above, the value of a half coordinate pixel is obtained by calculating an average of values of at least two integer pixels adjacent to the present half coordinate pixel. In other words, the half coordinate pixel can be generated using at least two integer pixels adjacent to the present half coordinate pixel.
When the present half coordinate pixel is to be generated, the reference block obtained from the reference picture stored in the image memory needs to be larger by one pixel in both the horizontal and vertical directions. This results in a problem of an increase in the amount of data transfer to obtain the reference block from the image memory. Hence, a high-performance, high-priced memory is required in order to process the reference block at high speed. This ends up increasing the cost of devices which perform image encoding and decoding.
As described above, in order to access pixels of a certain rectangular area stored in a common image memory, it is necessary to access pixels of a rectangular area larger than the present certain rectangular area.
With this being the situation, in the present embodiment, the aforementioned MP2 additional pixels required to generate the half coordinate pixels are not obtained intentionally when the half-precision motion compensation is performed. Instead, when the MP2 additional pixels are obtained without intention as a result of accessing the image memory according to the access restriction indicated by the specifications of the image memory, a process to use the obtained MP2 additional pixels is performed (this process is referred to as the process NA hereafter). The MP2 additional pixels are, for example, the plurality of pixels aligned in the rightmost column and the plurality of pixels aligned in the lowermost row shown in
However, there may be a case where the MP2 additional pixels necessary for the half-precision motion compensation cannot be obtained, depending on the location and size of an access target rectangular area (block). For this reason, in the present embodiment, the size of a rectangular area (block) which is actually to be accessed in the image memory is calculated. Then, when the MP2 additional pixels required for the half-precision motion compensation cannot be obtained, the half coordinate pixels are generated using only the obtained pixels.
In the present embodiment, the plurality of pixels aligned in the rightmost column and the plurality of pixels aligned in the lowermost row are copied as the MP2 additional pixels in the obtained image. This allows the half-precision motion compensation to be performed without obtaining the MP2 additional pixels which are required to generate the half coordinate pixels.
It should be noted that a method of generating the half coordinate pixels using only the obtained pixels is not limited to the above method, and that various other methods may be employed.
Next, a unit to implement the aforementioned process NA in the first embodiment is explained. In the first embodiment, the image obtaining unit 307 executes the process NA. Thus, the processes performed by the image obtaining unit 307 are explained in detail.
In the first embodiment, each of the units, except for the image obtaining unit 307, which are shown in
The image memory 308 stores the plurality of reference pictures, as mentioned above. The image memory 308 also implements the access restriction indicated by the above-described specifications A of the image memory. It should be noted that regardless of whether the image processing is performed based on the interlace or progressive method, the image memory 308 can be accessed according to the same specifications and the parity of an access target is specified by the reference picture number.
As described above, the image obtaining unit 307 obtains, from the image memory 308, the partial image to be used for motion compensation out of the reference picture identified by the reference picture number, on the basis of the motion compensation type, the reference picture number, and the motion vector sent from the motion vector calculating unit 305.
The image obtaining unit 307 sends the obtained image or an image generated on the basis of the obtained image as the reference image used for motion compensation, to the motion compensating unit 306.
The image identification information generating unit 501 operates according to the MPEG-2 standard and, therefore, the operation performed by the image identification information generating unit 501 is not explained in detail. Here, the operation performed by the image identification information generating unit 501 is briefly explained as follows.
The image identification information generating unit 501 generates information to identify the reference image required for motion compensation performed by the motion compensating unit 306 (this information is referred to as the reference image identification information, hereafter), on the basis of the motion compensation type, the reference picture number, and the motion vector indicated by the received motion information. The reference image identification information indicates the motion compensation type, the reference picture number, the upper-left corner coordinates in the reference image stored in the memory, and the size of the reference image stored in the memory.
The image identification information generating unit 501 generates the reference image identification information on the assumption that the motion compensating unit 306 performs motion compensation exactly according to the MPEG-2 standard. On account of this, the generated reference image identification information is used for identifying the reference image that includes the aforementioned MP2 additional pixels required to generate the half coordinate pixels.
Then, the image identification information generating unit 501 sends the generated reference image identification information to the image memory access control unit 502.
As described in detail later, on the basis of the reference image identification information sent from the image identification information generating unit 501, the image memory access control unit 502 generates a read instruction to read out the reference block, in accordance with the access restriction indicated by the specifications A of the image memory 308. Then, the image memory access control unit 502 sends the generated read instruction to the image memory 308. It should be noted that, in the present embodiment, the read instruction is generated such that the aforementioned MP2 additional pixels are not obtained intentionally.
Moreover, as described in detail later, the image memory access control unit 502 judges whether or not the aforementioned MP2 additional pixels can be obtained from the image memory 308, on the basis of the size of the reference block identified by the generated read instruction. Then, based on the judgment as to whether or not the aforementioned MP2 additional pixels can be obtained, the image memory access control unit 502 generates MP2-additional-pixel interpolation information and sends the generated MP2-additional-pixel interpolation information to the yet-to-be-obtained-pixel interpolating unit 503. The MP2-additional-pixel interpolation information indicates whether or not the MP2 additional pixels need to be interpolated.
The image memory access control unit 502 does not operate according to the MPEG-2 standard. Thus, the operation performed by the image memory access control unit 502 is explained in detail below. In the following, the process performed by the image memory access control unit 502 is referred to as the access control process.
For the sake of simplifying the explanation, suppose that, as an example, the image memory 308 includes a plurality of areas, each of the areas storing one picture (this area is referred to as the reference picture storage area, hereafter). Note that each of the reference picture storage areas is equal in size to the reference picture (1920×1080, for example). To be more specific, the coordinates (0, 0) in the reference picture storage area corresponds to the upper-left corner coordinates in the corresponding reference picture.
In step S600, the image memory access control unit 502 obtains the above-mentioned reference image identification information from the image identification information generating unit 501
In step S601, an access-target block identification process is performed. In the access-target block identification process, the image memory access control unit 502 identifies the size of the reference block which is an access target (hereafter, this block is referred to as the access-target reference block), on the basis of the motion compensation type indicated by the obtained reference image identification information.
In the following, a block which corresponds to a part of the reference picture stored in the memory and is a reference block subject to access is referred to as the access-target reference block. A correspondence relation between the motion compensation type and the size of the access-target reference block is shown in a table RT100 described below.
In the table RT100, “Motion vector precision” denotes the precision of the motion vectors in the horizontal and vertical directions. “Integer” described in the item of “Motion vector precision” denotes that the value of the motion vector in the corresponding direction is an integer. “Decimal” described in the item of “Motion vector precision” denotes that the value of the motion vector in the corresponding direction is a decimal.
In the table RT100, “Necessary reference image size” refers to the size of the reference image necessary for the MPEG-2 motion compensation. “Necessary reference image size” refers to the reference image size indicated by the reference image Identification information. “Necessary reference image size” is determined according to a combination of the motion compensation type out of the two types and the motion vector precision out of the four precisions.
In the table RT100, “Access-target reference block size” refers to the size of the access-target reference block.
In the present embodiment, when the motion vector value is a decimal, that is, when motion compensation is performed with a decimal pixel precision, the access-target reference block size is determined only from the motion compensation type so that the aforementioned MP2 additional pixels are not obtained intentionally.
To be more specific, in the access-target block identification process performed in step S601 of
Moreover, the image memory access control unit 502 assumes the upper-left corner coordinates in the reference image indicated by the obtained reference image identification information as the upper-left corner coordinates in the access-target reference block.
In the following, when the access-target reference block included in the reference picture stored in the image memory is accessed according to the access restriction indicated by the specifications of this image memory, all the blocks necessary to be accessed are referred to as the minimum access reference block.
Here, suppose that the image memory access control unit 502 previously stores the information of the specifications A of the image memory 308. It should be noted that the present invention is not limited to this, and that the image memory access control unit 502 may obtain the information of the specifications A from another source (such as a memory or a circuit).
In step S602, a minimum access reference block identification process is performed. As described later in detail, in the minimum access reference block identification process, the image memory access control unit 502 identifies the minimum access reference block in the reference picture stored in the image memory 308, for the case of accessing the identified access-target reference block according to the access restriction indicated by the specifications A of the image memory 308.
In the minimum access reference block identification process, a reference picture which is stored in the image memory 308 and is to be processed is identified by the reference picture number indicated by the reference image identification information.
The access-target reference block corresponds to, for example, the access target block 402 shown in
In
The access-target reference block B420 is a block showing an image which is in the access-target reference block B420 and which is a partial image of the reference picture P400. The minimum access reference block B410 is a block showing an image which is in the minimum access reference block B410 and which is a partial image of the reference picture P400.
Suppose that each of the horizontal and vertical coordinate values of the upper-left corner coordinates in the access-target reference block B420 is a multiple of 4. In this case, the size and location of the minimum access reference block B410 are identical to those of the access-target reference block B420. For example, when the upper-left corner coordinates in the access-target reference block B420 are (16, 16), the size and location of the minimum access reference block B410 are identical to those of the access-target reference block B420.
To be more specific, the minimum access reference block B410 is equal to or larger than the access-target reference block B420 in size. In other words, the minimum access reference block B410 includes the access-target reference block B420.
Next, an explanation is given about access patterns to access the image memory in the case where the specifications of the image memory 308 are the specifications A shown in
As shown in the table RT100 of
For the case of access in the horizontal direction, the specifications A shown in
According to the MPEG-2 standard, the leftmost coordinate in the access-target reference block is arbitrary. Hence, the obtaining start coordinate in the horizontal direction can also be arbitrary.
In
When the remainder of the leftmost horizontal coordinate is other than 0, this means that access corresponding to 16 pixels is insufficient in order to obtain 16 pixels. That is, since the obtaining size is limited to a multiple of 4, access corresponding to 20 pixels is required.
In
As shown in the table RT100 of
For the case of access in the vertical direction, the specifications A shown in
According to the MPEG-2 standard, the uppermost coordinate in the access-target reference block to be obtained is arbitrary. Hence, the obtaining start coordinate in the vertical direction can also be arbitrary.
In each of
“Desired number of pixels” in each of
In each of
For the memory access in the vertical direction, the specifications A shown in
When the remainder of the uppermost vertical coordinate is other than 0 in
Referring back to
To be more specific, the image memory access control unit 502 calculates the upper-left corner coordinates and size of the minimum access reference block, on the basis of the upper-left corner coordinates and size of the access-target reference block, the specifications A of the image memory 308, and the plurality of access patterns shown in
Then, the image memory access control unit 502 generates minimum access reference block information that indicates the calculated upper-left corner coordinates and size of the minimum access reference block.
Here, suppose that the size of the access-target reference block is 16×16 and that the upper-left corner coordinates in the access-target reference block are (16, 17), for example. In this case, the horizontal coordinate value “16” in the coordinates (16, 17) is a multiple of 4. Thus, according to the specifications A shown in
Moreover, since the size of the access-target reference block is “16” in the horizontal direction, the size of the minimum access reference block in the horizontal direction is calculated according to the access pattern shown in
The vertical coordinate value “17” in the coordinates (16, 17) is not a multiple of 4. Thus, according to the specifications A shown in
Moreover, since the size of the access-target reference block is “16” in the vertical direction, the size of the minimum access reference block in the vertical direction is calculated according to the access pattern shown in
Accordingly, the upper-left corner coordinates (16, 16) of the minimum access reference block are calculated through the minimum access reference block identification process. Also, the size of the minimum access reference block is calculated at 16×24. In this case, through the minimum access reference block identification process, the minimum access reference block information indicating the upper-left coordinates (16, 16) and size 16×24 of the minimum access reference block is generated.
As can be understood, the access restriction indicated by the specifications A is imposed such that when an obtaining target image (namely, an access-target reference block) is obtained from the image memory, the number of pixels equal to or larger than the number of pixels forming the obtaining target image are obtained.
In step S603, a read instruction sending process is performed. In the read instruction sending process, the image memory access control unit 502 generates a read instruction in order to obtain the minimum access reference block from the image memory 308. When the minimum access reference block is equal in size to the access-target reference block, the minimum access reference block that is read following the read instruction does not include the aforementioned MP2 additional pixels.
On the other hand, when the minimum access reference block is larger in size than the access-target reference block (such as the case shown in
Then, the image memory access control unit 502 sends the generated read instruction to the image memory 308.
In response to the received read instruction, the image memory 308 sends the minimum access reference block corresponding to the read instruction, as the read image, to the yet-to-be-obtained-pixel interpolating unit 503.
In order to execute the half-precision motion compensation according to the access control method for the image memory in the present embodiment, the process is performed whereby the aforementioned MP2 additional pixels required to generate the half coordinate pixels are not obtained intentionally. Depending on the upper-left corner coordinates in the access-target reference block, the minimum access reference block may be equal in size to the access-target reference block. In such a case, the minimum access reference block that is read following the read instruction does not include the aforementioned MP2 additional pixels.
The MP2 additional pixels in the horizontal direction cannot be obtained when the motion vector value in the horizontal direction is a decimal and “Necessary” is described in a box for “Necessity of horizontal additional pixels” in
As is the case with the MP2 additional pixels in the horizontal direction, the MP2 additional pixels in the vertical direction cannot be obtained when the motion vector value in the vertical direction is a decimal and “Necessary” is described in a box for “Necessity of vertical additional pixels” in
In this case, a plurality of MP2 additional pixels aligned in a row need to be generated (generated by interpolation) outside below the access-target reference block.
As described, in the present embodiment, the aforementioned MP2-additional-pixel interpolation information that indicates whether or not the interpolation of the MP2 additional pixels is necessary indicates: the information indicating the necessity of the horizontal additional pixels; and the information indicating the necessity of the vertical additional pixels. For example, the MP2-additional-pixel interpolation information indicates one of the following information A, B, C, and D.
Information A (Horizontal additional pixels: Unnecessary, Vertical additional pixels: Unnecessary)
Information B (Horizontal additional pixels: Necessary, Vertical additional pixels: Unnecessary)
Information C (Horizontal additional pixels: Unnecessary, Vertical additional pixels: Necessary)
Information D (Horizontal additional pixels: Necessary, Vertical additional pixels: Necessary)
As described in Background Art above, when additional pixels are generated through the interpolation process and then decimal pixels are generated using such generated additional pixels, errors are caused to the image obtained through the decoding process. Here, the image quality is degraded in the image obtained through the decoding process.
In the present embodiment, on the other hand, whether or not the additional pixels are to be generated is judged using the access patterns to access the image memory. On this account, there is a possibility that necessary additional pixels may be obtained without intention and thus the decoding process can be performed without generating additional pixels, depending on the access pattern to access the image memory.
Therefore, as compared to the conventional method whereby the decoding process is performed without obtaining additional pixels, the present embodiment can reduce the quality degradation of the image obtained through the decoding process when necessary additional pixels are obtained without intention.
In step S604, an interpolation judgment process is performed. In the interpolation judgment process, the image memory access control unit 502 judges whether or not the horizontal additional pixels and the vertical additional pixels are necessary, on the basis of the motion vectors indicated by the obtained reference image identification information, the size and upper-left corner coordinates in the access-target reference block, the specifications A of the image memory 308, and the plurality of access patterns shown in
Then, on the basis of the necessities of the horizontal additional pixels and the vertical additional pixels, the image memory access control unit 502 generates the aforementioned MP2-additional-pixel interpolation information.
More specifically, the horizontal additional pixels are judged to be necessary when: the motion vector value in the horizontal direction indicated by the reference image identification information is a decimal; and “Necessary” is described in a box for “Necessity of horizontal additional pixels” corresponding to the determined access pattern in a diagram (
Moreover, the vertical additional pixels are judged to be necessary when: the motion vector value in the vertical direction indicated by the reference image identification information is a decimal; and “Necessary” is described in a box for “Necessity of vertical additional pixels” corresponding to the determined access pattern in a diagram (
Here, suppose that the size of the access-target reference block is 16×16 and that the upper-left corner coordinates in the access-target reference block are (16, 17), for example. Also suppose that the motion vector values in the horizontal and vertical directions indicated by the reference image identification information are both decimals. In this case, it is understood that the necessary reference image size is 17×17 from the table RT100 of
In this case here, the motion vector value in the horizontal direction indicated by the reference image identification information is a decimal. Also, the horizontal coordinate value “16” in the coordinates (16, 17) corresponds to the pattern having “0” as the remainder of the leftmost horizontal coordinate in
Also, the motion vector value in the vertical direction indicated by the reference image identification information is a decimal. Moreover, the vertical coordinate value “17” in the coordinates (16, 17) corresponds to the pattern having “1” as the remainder of the uppermost vertical coordinate in
In step S605, a reference image generation information generation process is performed to generate the reference image generation information. The reference image generation information is used for generating the reference image to be used for motion compensation.
In the reference image generation information generation process, the image memory access control unit 502 generates the reference image generation information, on the basis of: the size of the reference image (i.e., the necessary reference image size) and upper-left corner coordinates in the reference image which are indicated by the obtained reference image identification information; the generated minimum access reference block information; and the generated MP2-additional-pixel interpolation information.
In the following, the reference image used by the motion compensating unit 306 in motion compensation is referred to as the motion-compensation reference image. The size of the motion-compensation reference image is the size of the reference image indicated by the obtained reference image identification information (namely, the necessary reference image size) (17×17, for example). The upper-left corner coordinates in the motion-compensation reference image is the upper-left corner coordinates in the reference image indicated by the reference image identification information.
Also, in the following, the image shown by the minimum access reference block is referred to as the minimum access reference image. Moreover, in the following, a block which is in size of the motion-compensation reference image is referred to as the motion-compensation reference image block.
Furthermore, in the following, when the motion-compensation reference image block is arranged in the minimum access reference image in which the location of the upper-left corner coordinates in the motion-compensation reference image is assumed as the upper-left corner of the motion-compensation reference image block, the block showing only the image of the motion-compensation reference image block is referred to as the motion-compensation reference block.
In this case here, on the basis of the upper-left corner coordinates and size of the access-target reference block B12, a minimum access reference block B11 is calculated through the above-described minimum access reference block identification process.
Suppose that the size of the minimum access reference block B11 is 16×24, and that the upper-left corner coordinates in the minimum access reference block B11 are (16, 16). Also suppose that the size of a motion-compensation reference image block B13 is 17×17, and that the upper-left corner coordinates in the motion-compensation reference image are (16, 17).
In this case, the motion-compensation reference image block B13 is arranged in the minimum access reference block B11 (the minimum access reference image) in which the location of the upper-left corner coordinates (16, 17) of the motion-compensation reference image is assumed as the upper-left corner of the motion-compensation reference image block B13.
Here, the block which is diagonally shaded in
To be more specific, the image shown by the motion-compensation reference block B21 is at least a part of the image shown by the minimum access reference block B11. The upper-left corner coordinates in the motion-compensation reference block B21 is the upper-left corner coordinates in the reference image indicated by the reference image identification information.
In
Moreover, when the horizontal size of the minimum access reference block (for example, 18) is equal to or larger than the horizontal size of the motion-compensation reference image (for example, 17), the horizontal size of the motion-compensation reference image is assumed as the horizontal size of the motion-compensation reference block. In this case here, the image shown by the motion-compensation reference block includes, in the horizontal direction, the MP2 additional pixels having been obtained without intention.
When the vertical size of the minimum access reference block (for example, 16) is smaller than the vertical size of the motion-compensation reference image (for example, 17), the vertical size of the minimum access reference block is assumed as the vertical size of the motion-compensation reference block.
Moreover, when the vertical size of the minimum access reference block (for example, 24) is equal to or larger than the vertical size of the motion-compensation reference image (for example, 17), the vertical size of the motion-compensation reference image is assumed as the vertical size of the motion-compensation reference block. In this case here, the image shown by the motion-compensation reference block includes, in the vertical direction, the MP2 additional pixels having been obtained without intention.
For example, suppose that the size of the minimum access reference block is 16×24, and that the size of the motion-compensation reference image is 17×17. In this case, the size of the motion-compensation reference block is 16×17.
“Relative coordinates in motion-compensation reference block” refer to relative coordinates for identifying the location of the motion-compensation reference block with respect to “Coordinates in minimum access reference block”.
The relative coordinates in the motion-compensation reference block are calculated by subtracting the horizontal and vertical coordinate values of the coordinates in the minimum access reference block from the horizontal and vertical coordinate values of the upper-left corner coordinates in the motion-compensation reference block, respectively.
For example, suppose that the coordinates in the minimum access reference block are (16, 16), and that the upper-left corner coordinates of the motion-compensation reference block are (16, 17). In this case, the relative coordinates in the motion-compensation reference block are (0, 1).
Note that when the upper-left corner coordinates in the motion-compensation reference block are the same as the upper-left corner coordinates of the minimum access reference block, the relative coordinates are (0, 0).
Referring back to
The yet-to-be-obtained-pixel interpolating unit 503 receives the minimum access reference block read as the read image from the image memory 308 and the reference image generation information sent from the image memory access control unit 502.
As described later in detail, the yet-to-be-obtained-pixel interpolating unit 503 sends the motion-compensation reference image that is used when the motion compensating unit 306 performs motion compensation, to the motion compensating unit 306.
Since the motion compensating unit 306 performs motion compensation exactly according to the MPEG-2 standard, the reference image in the necessary reference image size shown in
However, as described above, the minimum access reference block read as the read image from the image memory 308 may not include all the aforementioned MP2 additional pixels. For example, when the vertical size of the minimum access reference block is smaller than the vertical size of the motion-compensation reference image or when the horizontal size of the minimum access reference block is smaller than the horizontal size of the motion-compensation reference image, the minimum access reference block does not include all the MP2 additional pixels.
For this reason, the yet-to-be-obtained-pixel interpolating unit 503 generates the MP2 additional pixels through the interpolation process when the MP2 additional pixels are not present.
In the following, a process performed by the yet-to-be-obtained-pixel interpolating unit 503 to generate the reference image is referred to as the reference image generation process.
In step S1100, the yet-to-be-obtained-pixel interpolating unit 503 receives the minimum access reference block read as the read image from the image memory 308 and the reference image generation information sent by the image memory access control unit 502.
In step S1101, on the basis of the size and relative coordinates of the motion-compensation reference block indicated by the received reference image generation information, the yet-to-be-obtained-pixel interpolating unit 503 obtains the motion-compensation reference block from the received minimum access reference block. In the following, the image shown by the motion-compensation reference block obtained through the process of step S1101 is referred to as the MP2 process target image.
In step S1102, whether or not the horizontal additional pixels are necessary. To be more specific, the yet-to-be-obtained-pixel interpolating unit 503 judges whether or not “Necessary” is described in a box for “Necessity of horizontal additional pixels” in the received reference image generation information. When it is “YES” in step S1102, the process proceeds to step S1103. On the other hand, when it is “NO” in step S1102, the process proceeds to step S1104.
In step S1103, a horizontal additional pixel generation process is performed. In the horizontal additional pixel generation process, the yet-to-be-obtained-pixel interpolating unit 503 assumes a plurality of pixels aligned in a rightmost column of the MP2 process target image as a plurality of MP2 additional pixels aligned in one column outside on the right of the MP2 process target image. In other words, a plurality of pixels obtained by copying the plurality of pixels aligned in the rightmost column of the MP2 process target image are assumed as the plurality of MP2 additional pixels.
Here, the plurality of pixels aligned in the rightmost column of the MP2 process target image correspond to, for example, the plurality of integer pixels 102 whose horizontal coordinate values are “15” in the reference block 101 shown in
Then, the yet-to-be-obtained-pixel interpolating unit 503 assumes the image generated through this process as a latest MP2 process target image.
In step S1104, whether or not the vertical additional pixels are necessary. To be more specific, the yet-to-be-obtained-pixel interpolating unit 503 judges whether or not “Necessary” is described in a box for “Necessity of vertical additional pixels” in the received reference image generation information. When it is “YES” in step S1104, the process proceeds to step S1105. On the other hand, when it is “NO” in step S1104, the process proceeds to step S1106.
In step S1105, a vertical additional pixel generation process is performed. In the vertical additional pixel generation process, the yet-to-be-obtained-pixel interpolating unit 503 assumes a plurality of pixels aligned in a lowermost row of the latest MP2 process target image as a plurality of MP2 additional pixels aligned in a row outside below the present latest MP2 process target image. In other words, a plurality of pixels obtained by copying the plurality of pixels aligned in the lowermost row of the latest MP2 process target image are assumed as the plurality of MP2 additional pixels.
Note that in the case where the process of step S1103 has not been performed, the latest MP2 process target image is the image shown by the motion-compensation reference block. Also note that in the case where the process of step S1103 has been performed, the latest MP2 process target image is the MP2 process target image generated through the process of step S1103.
Here, the plurality of pixels aligned in the lowermost row of the latest MP2 process target image correspond to, for example, the plurality of integer pixels 102 whose vertical coordinate values are “15” in the reference block 101 shown in
Then, the yet-to-be-obtained-pixel interpolating unit 503 assumes the image generated through this process as the latest MP2 process target image.
In step S1106, a reference image sending process is performed. In the reference image sending process, the yet-to-be-obtained-pixel interpolating unit 503 sends the latest MP2 process target image as the reference image (i.e., the motion-compensation reference image) to the motion compensating unit 306. Note that in the case where the processes of steps S1103 and S1105 are not performed, the reference image sent to the motion compensating unit 306 is the image shown by the obtained motion-compensation reference block.
The motion compensating unit 306 performs motion compensation using the received reference image (i.e., the motion-compensation reference image). It should be noted that the motion compensation performed by the motion compensating unit 306 is based on the MPEG-2 standard and, therefore, the detailed explanation is not given.
As described thus far, when the half-precision motion compensation is performed in the present embodiment, the motion-compensation reference block obtained from the minimum access reference block which is obtained by accessing the image memory according to the specifications A of the present image memory without intention of obtaining the aforementioned MP2 additional pixels necessary to generate the half coordinate pixels may include the MP2 additional pixels without intention. In such a case, the reference image to be used for motion compensation (i.e., the motion-compensation reference image) is generated using the motion-compensation reference block including the MP2 additional pixels.
It should be noted that when NO is given as results of judgments in steps S1102 and S1104 in
In this case, the MP2 additional pixels generated through the copying processes in steps S1103 and S1105 are not used for the half-precision motion compensation. The MP2 additional pixels generated through the copying processes are different from the MP2 additional pixels originally required to perform the half-precision motion compensation. For this reason, when the half-precision motion compensation is performed using the MP2 additional pixels generated through the copying processes, the image quality obtained through the decoding process is degraded as a result.
Therefore, when the image shown by the motion-compensation reference block includes all the MP2 additional pixels required to perform the half-precision motion compensation, this can prevent the quality degradation from occurring to the image obtained through the decoding process.
In the reference image generation process of
Accordingly, constant degradation in image quality can be prevented from occurring, and the decoding process can be performed with efficiency.
Also, in the present embodiment, according to the specifications (i.e., configuration) of the image memory that stores the reference pictures, pixels to be transferred additionally (namely, without intention) are determined and, using these pixels, decimal pixels are generated through the interpolation process. A common image memory improves the performance by transferring a plurality of pixels at one time (described as the burst transfer, hereafter).
In the present embodiment, pixels necessary only to generate decimal pixels through the interpolation process are compensated with, for example, pixels which are additionally obtained as a result of the burst transfer. In the case where the additionally-obtained pixels are insufficient to generate the decimal pixels, the decimal pixels are generated through the interpolation process without using lacking pixels.
With this, the pixels used only for generating the decimal pixels through the interpolation process do not need to be additionally obtained from the image memory. Therefore, the amount of data transferred from the image memory can be reduced.
Moreover, as compared to the conventional method of generating the decimal pixels through the interpolation process always without using the original pixels, the present embodiment reduces the frequency of generating the decimal pixels through the interpolation process without using the original pixels. Therefore, the quality degradation in the image obtained through the decoding process can be reduced.
Accordingly, with the processes performed in the present embodiment, it becomes possible to reduce the amount of data transfer in the reference block and to achieve high image quality of the image obtained through the decoding process, at the same time.
Up to this point, the first embodiment has been described using, as an example, the image decoding device which decodes MPEG-2 encoded data. Although the description of the first embodiment relates to luminance blocks, the present invention can be applied to chrominance blocks by using the processes explained in the first embodiment. The processes which have been explained in the first embodiment according to the present invention are merely examples. Thus, various kinds of modification can be considered, regarding the configuration of the image memory, the method of accessing the image memory, and the sharing of processes among the units.
For example, the following configurations can be considered: a configuration using an image memory which has different access specifications corresponding to the interlace or progressive methods respectively; and a configuration whereby whether or not to obtain the reference image exactly according to the standard is determined depending on the motion compensation type.
As another examples, the following configurations can be considered: a configuration whereby the present invention is applied in the horizontal or vertical direction; and a configuration whereby whether or not to obtain the reference image exactly according to the standard is determined depending on types of macroblocks and pictures.
The units shown in
The image decoding device 1000A conforms to the H.264 standard. Operations performed by the image decoding device 1000A are described as follows.
The image decoding device 1000A shown in
The variable-length decoding unit 1201 obtains a bitstream from an external source. Note that this bitstream is encoded data that is obtained through moving-image encoding based on the H.264 standard. The variable-length decoding unit 1201 decodes a variable-length code included in the bitstream.
As a result of this decoding, a quantized frequency component value (hereafter, referred to as the quantized frequency component information), motion information, and in-picture estimation control information are obtained. This motion information indicates a motion compensation type, a number identifying a reference picture (hereafter, referred to as the reference picture number), a difference value of a motion vector, a reference image size, and so forth. The motion compensation type denotes a size of a motion compensation block. The motion compensation type also denotes other information in addition to the size of the motion compensation block. However, in the present invention, the explanation is given on the understanding that the motion compensation type denotes the size of the motion compensation block.
Note that although parameters for controlling the image decoding device 1000A are obtained as a result of the decoding, these parameters are not used in the present invention and thus are not explained.
The variable-length decoding unit 1201 sends the quantized frequency component information to the inverse quantizing unit 1202. Also, the variable-length decoding unit 1201 sends the motion information to the motion vector calculating unit 1205. Moreover, the variable-length decoding unit 1201 sends in-picture estimation control information to the in-picture estimating unit 1209.
The inverse quantizing unit 1202 obtains a frequency component by performing inverse quantization on the received quantized frequency component information. The inverse orthogonal transforming unit 1203 obtains a difference between pixel values by performing inverse orthogonal transformation on the obtained frequency component. Then, the inverse orthogonal transforming unit 1203 sends the pixel value difference to the adder 1204. It should be noted that, in the present embodiment, each of inverse quantization and inverse orthogonal transformation is performed collectively in a unit of a predetermined macroblock (a block of 16×16 pixels).
The motion vector calculating unit 1205 obtains the motion compensation type, the reference picture number, and the motion vector from the received motion information. Then, the motion vector calculating unit 1205 sends the motion information indicating the motion compensation type, the reference image size, the reference picture number, and the upper-left corner coordinates in the reference image, and the motion vector, to the motion compensating unit 1206 and the image obtaining unit 1207.
The image memory 1208 stores a plurality of reference pictures which are subject to motion compensation. The image memory 1208 is a memory from which a partial image of a reference picture can be read out according to predetermined specifications.
The image obtaining unit 1207 obtains the partial image of the reference picture which is identified by the reference picture number from the image memory 1208, based on the motion compensation type, the reference image size, the reference picture number, and the motion vector indicated by the received motion information. Then, the image obtaining unit 1207 sends the obtained image or an image generated on the basis of the obtained image, to the motion compensating unit 1206.
The motion compensating unit 1206 performs motion compensation using the motion compensation type, the reference image size, the reference picture number, and the motion vector indicated by the received motion information and the image received from the image obtaining unit 1207. As a result of this motion compensation, an estimation image is obtained. Hereafter, an estimation image obtained as a result of the motion compensation is referred to as a motion-compensation estimation image. The motion compensating unit 1206 then sends the motion-compensation estimation image to the selecting unit 1210.
The adder 1204 obtains a picture by adding the pixel value difference received from the inverse orthogonal transforming unit 1203 to the image received from the selecting unit 1201 (hereafter, this picture is referred to as the reproduction picture). Then, the adder 1204 outputs the reproduction picture to the in-picture estimating unit 1209 and the deblock filtering unit 1211.
The in-picture estimating unit 1209 performs estimation based on the decoded image information of the same picture. To be more specific, the in-picture estimating unit 1209 temporarily stores the reproduction picture received from the adder 1204. Also, the in-picture estimating unit 1209 obtains an image by performing the in-picture estimation process based on the in-picture estimation control information received from the variable-length decoding unit 1201. In the following, the image obtained through the in-picture estimation process is referred to as the in-picture estimation image. Then, the in-picture estimating unit 1209 sends the in-picture estimation image to the selecting unit 1210.
The selecting unit 1210 sends the received motion-compensation estimation image or in-picture estimation image to the adder 1204 according to the macroblock type.
The deblock filtering unit 1211 performs a filtering process to filter a block boundary in the reproduction picture received from the adder 1204. Then, the deblock filtering unit 1211 outputs the reproduction picture, on which the filtering process has been performed, to an external source, and also stores the reproduction picture as the reference picture into the image memory 1208.
As described in Background Art above, the H.264 standard allows motion compensation to be performed with quarter-pixel precision. Thus, when motion compensation is performed with quarter-pixel precision according to the H.264 standard, quarter coordinate pixels need to be generated. Hereafter, motion compensation performed with quarter-pixel precision is referred to as the quarter-precision motion compensation.
In the H.264 processing, the value of a pixel (half coordinate pixel) located at half precision coordinates, out of pixels at decimal coordinates, is obtained by a 6-tap filter using three pixels on both sides (i.e., six pixels in total) of the present pixel.
Moreover, in the processing according to the H.264 standard, a decimal pixel other than the half coordinate pixels (namely, a quarter coordinate pixel) that is located at decimal coordinates (namely, quarter precision coordinates) is generated by calculating an average of values of at least two pixels which are adjacent to the present quarter coordinate pixel and which are located at integer coordinates or half precision coordinates.
When the quarter coordinate pixel is to be generated, the reference block obtained from the reference picture stored in the image memory needs to be larger by two pixels in each of the leftward and upward directions and by three pixels in each of the rightward and downward directions. This results in a problem of an increase in the amount of data transfer to obtain the reference block from the image memory. Hence, a high-performance, high-priced memory is required in order to process the reference block at high speed. This ends up increasing the cost of devices which perform image encoding and decoding.
With this being the situation, when motion compensation is performed with a decimal pixel precision in the present embodiment, the additional pixels required to generate the decimal pixels are not obtained intentionally as in the case of the first embodiment. To be more specific, when the quarter-precision motion compensation is performed, the aforementioned H264 additional pixels required to generate the quarter coordinate pixels are not obtained intentionally. Instead, when the H264 additional pixels are obtained without intention as a result of accessing the image memory according to the access restriction indicated by the specifications of the image memory, a process to use the obtained H264 additional pixels is performed (this process is referred to as the process NB hereafter).
The H264 additional pixels are, for example, the plurality of pixels aligned in two columns on the left, the plurality of pixels aligned in three columns on the right, the plurality of pixels aligned in two rows at the top, and the plurality of pixels aligned in three rows at the bottom, in
However, there may be a case where the H264 additional pixels necessary for the quarter-precision motion compensation cannot be obtained, depending on the location and size of an access target rectangular area (block). For this reason, in the present embodiment, the size of a rectangular area (block) which is actually to be accessed in the image memory is calculated. Then, when the H264 additional pixels required for the quarter-precision motion compensation cannot be obtained, the quarter coordinate pixels are generated using only the obtained pixels.
In the present embodiment, the plurality of pixels aligned in the rightmost column, the plurality of pixels aligned in the leftmost column, the plurality of pixels aligned in the uppermost row, and the plurality of pixels aligned in the lowermost row are copied as the H264 additional pixels in the obtained image. This allows the quarter-precision motion compensation to be performed without obtaining the H264 additional pixels which are required to generate the quarter coordinate pixels.
It should be noted that a method of generating the quarter coordinate pixels using only the obtained pixels is not limited to the above method, and that various other methods may be employed.
Next, a unit to implement the aforementioned process NB in the second embodiment is explained. In the second embodiment, the image obtaining unit 1207 executes the process NB. Thus, the processes performed by the image obtaining unit 1207 are explained in detail.
In the second embodiment, each of the units, except for the image obtaining unit 1207, which are shown in
The image memory 1208 stores a plurality of reference pictures. Moreover, the image memory 1208 is a multi-bank image memory explained in the first embodiment. It should be noted that regardless of whether the image processing is performed based on the interlace or progressive method, the image memory 1208 can be accessed according to the same specifications and the parity of an access target is specified by the reference picture number.
The image identification information generating unit 1301 operates according to the H.264 standard and, therefore, the operation performed by the image identification information generating unit 1301 is not explained in detail. Here, the operation performed by the image identification information generating unit 1301 is briefly explained as follows.
The image identification information generating unit 1301 generates information to identify the reference image required for motion compensation performed by the motion compensating unit 1206 (this information is referred to as the H264 reference image identification information, hereafter), on the basis of the motion compensation type, the reference image size, the reference picture number, and the motion vector indicated by the received motion information. The H264 reference image identification information indicates the motion compensation type, the reference image size, the motion vector, the reference picture number, the upper-left corner coordinates in the reference image stored in the memory, and the size of the reference image stored in the memory.
In the following, the size of the motion-compensation block that is identified by the motion compensation type indicated by the H264 reference image identification information is referred to as the identified motion-compensation block size.
The image identification information generating unit 1301 generates the H264 reference image identification information on the assumption that the motion compensating unit 1206 performs motion compensation exactly according to the H.264 standard. On account of this, the generated H264 reference image identification information is used for identifying the reference image that includes the aforementioned H264 additional pixels required to generate the decimal pixels described in Background Art above.
Then, the image identification information generating unit 1301 sends the generated H264 reference image identification information to the image memory access control unit 1302.
As described in detail later, on the basis of the H264 reference image identification information sent from the image identification information generating unit 1301, the image memory access control unit 1302 generates a read instruction to read out the reference block, in accordance with the access restriction indicated by the specifications (the specifications B described later) of the image memory 1208. Then, the image memory access control unit 1302 sends the generated read instruction to the image memory 1208. It should be noted that, in the present embodiment, the read instruction is generated such that the aforementioned H264 additional pixels are not obtained intentionally.
Moreover, as described in detail later, the image memory access control unit 1302 judges whether or not the aforementioned H264 additional pixels can be obtained from the image memory 1208, on the basis of the size of the reference block identified by the generated read instruction. Then, based on the judgment as to whether or not the aforementioned 11264 additional pixels can be obtained, the image memory access control unit 1302 generates H264-additional-pixel interpolation information and sends the generated H264-additional-pixel interpolation information to the yet-to-be-obtained-pixel interpolating unit 1303. The H264-additional-pixel interpolaticn information indicates whether or not the H264 additional pixels need to be interpolated.
The image memory access control unit 1302 does not operate according to the H.264 standard. That is, the read instruction which is sent from the image memory access control unit 1302 to the image memory 1308 does not conform to the H.264 standard. Thus, the operation performed by the image memory access control unit 1302 is explained in detail below. In the following, the process performed by the image memory access control unit 1302 is referred to as the access control process A.
For the sake of simplifying the explanation, suppose that, as an example, the image memory 1208 includes a plurality of areas, each of the areas storing one picture (this area is referred to as the reference picture storage area, hereafter). Note that each of the reference picture storage areas is equal in size to the reference picture (1920×1080, for example). To be more specific, the coordinates (0, 0) in the reference picture storage area corresponds to the upper-left corner coordinates in the corresponding reference picture.
In step S1400, the image memory access control unit 1302 obtains the above-mentioned H264 reference image identification information from the image identification information generating unit 1301.
In step S1401, an access-target block identification process A is performed. In the access-target block identification process A, the image memory access control unit 1302 identifies the size of the reference block which is an access target (hereafter, this block is referred to as the access-target reference block), on the basis of the reference image size and the motion vector indicated by the obtained H264 reference image identification information.
In the following, a block which corresponds to a part of the reference picture stored in the memory and is a reference block subject to access is referred to as the access-target reference block. A correspondence relation between the motion compensation type and the size of the access-target reference block is shown in a table RT200 described below.
In the table RT200, “Motion vector precision” denotes the precision of the motion vectors in the horizontal and vertical directions. “Integer” described in the item of “Motion vector precision” denotes that the value of the motion vector in the corresponding direction is an integer. “Decimal” described in the item of “Motion vector precision” denotes that the value of the motion vector in the corresponding direction is a decimal. There are four different motion vector precisions for the motion compensation types, corresponding to a combination of the motion vector value in the horizontal direction and the motion vector value in the vertical direction.
In the table RT200, “Necessary reference image size” refers to the size of the reference image necessary for the H264 motion compensation. “Necessary reference image size” refers to the reference image size indicated by the H264 reference image identification information. “Necessary reference image size” is determined according to a combination of the motion compensation type out of the seven types and the motion vector precision out of the four precisions.
In the table RT200, “Access-target reference block size” refers to the size of the access-target reference block.
Unlike the case described in the first embodiment, the size of the access-target reference block in the present embodiment is defined to be the same as the necessary reference image size defined by the H.264 standard. However, in the present embodiment, in order to reduce the number of pixels to be obtained from the image memory, the size of the access-target reference block is reduced to be smaller than the necessary reference image size defined by the H.264 standard.
To be more specific, suppose that the motion vector value in the horizontal direction that is indicated by the H264 reference image identification information obtained by the image memory access control unit 1302 is a decimal in the access-target block identification process A performed in step S1401 of
Moreover, suppose that the motion vector value in the vertical direction that is indicated by the H264 reference image identification information obtained by the image memory access control unit 1302 is a decimal. In this case, the size which is smaller by four pixels in the vertical direction than the reference image indicated by the H264 reference image identification information is assumed as the size of the access-target reference block in the vertical direction.
For example, suppose here that the motion vector values in the horizontal and vertical directions indicated by the H264 reference image identification information are decimals. Also suppose that the size of the reference image indicated by the H264 reference image identification information (namely, the necessary reference image size) is 21×21. In this case, the size of the access-target reference block is identified through the access-target block identification process A as a size (17×17) which is reduced by four pixels from the reference image size (21×21).
Moreover, the image memory access control unit 1302 assumes the upper-left corner coordinates in the reference image indicated by the obtained H264 reference image identification information as the upper-left coordinates in the access-target reference block.
In the following, when the access-target reference block included in the reference picture stored in the image memory is accessed according to the access restriction indicated by the specifications of this image memory, all the blocks necessary to be accessed are referred to as the minimum access reference block.
Here, suppose that the image memory access control unit 1302 previously stores the information of the specifications B of the image memory 1208. It should be noted that the present invention is not limited to this, and that the image memory access control unit 1302 may obtain the information of the specifications B of the image memory 1208 from another source (such as a memory or a circuit).
Referring back to
It should be noted that the relation among the reference picture, the access-target reference block, and the minimum access reference block has been explained above using
In the minimum access reference block identification process A, a reference picture which is stored in the image memory 1208 and is to be processed is identified by the reference picture number indicated by the H264 reference image identification information.
Next, an explanation is given about access patterns to access the image memory in the case where the specifications of the image memory 1208 are the specifications B shown in
As shown in the table RT200 of
The specifications B of the image memory shown in
For the case of access in the horizontal direction, the specifications B shown in
According to the H.264 standard, the location (namely, the leftmost coordinate) of the access-target reference block is arbitrary. Hence, the obtaining start coordinate in the horizontal direction can also be arbitrary.
For the memory access in the horizontal direction, the specifications B of the image memory shown in
First, the access patterns in the case where the horizontal size of the access-target reference block is 4, 8, or 16 are explained. To be more specific, the explanation is given about the access patterns to access the image memory in the case where 4, 8, or 16 pixels are to be obtained in the horizontal direction according to the access restriction indicated by the specifications B of the image memory.
When 4, 8, or 16 pixels are to be obtained in the horizontal direction according to the access restriction indicated by the specifications B of the image memory, the motion vector value in the horizontal direction is an integer. For this reason, it is unnecessary to generate decimal pixels located at decimal coordinates in the horizontal direction. Also, H264 additional pixels used for generating the decimal pixels are unnecessary.
Accordingly, access to the image memory is performed so that 4, 8, or 16 pixels in the access-target reference block in the horizontal direction can be all obtained.
In each of
In order to obtain 4 and 8 pixels of the access-target reference block in the horizontal direction as shown in
Next, the access patterns in the case where the horizontal size of the access-target reference block is 5, 9, or 17 are explained. To be more specific, the explanation is given about the access patterns to access the image memory in the case where 5, 9, or 17 pixels are to be obtained in the horizontal direction according to the access restriction indicated by the specifications B of the image memory.
When 5, 9, or 17 pixels are to be obtained in the horizontal direction according to the access restriction indicated by the specifications B of the image memory, the motion vector value in the horizontal direction is a decimal. For this reason, it is necessary to generate decimal pixels located at decimal coordinates in the horizontal direction. Also, H264 additional pixels used for generating the decimal pixels are necessary.
As explained above using
However, when the motion vector value in the horizontal direction indicated by the H264 reference image identification information is a decimal, the access-target reference block having the horizontal size identified through the process of step S1401 includes one rightmost pixel (i.e., the H264 additional pixel) of the access-target reference block (corresponding to the reference block 201).
This is because, even when the size of the access-target reference block is increased by one pixel in the rightward direction, the maximum number of pixels for the image memory access does not increase and the number of pixels of the access-target reference block to be read from the image memory does not increase either.
However, in the present embodiment, there may be a case where at least one pixel cannot be obtained, out of the two leftmost and two rightmost pixels of the access-target reference block.
In each of
In order to obtain 5 and 9 pixels of the access-target reference block in the horizontal direction as shown in
Moreover, each of
In
In
In
In the following, the reference image used by the motion compensating unit 1206 in motion compensation is referred to as the motion-compensation reference image. The size of the motion-compensation reference image is the size of the reference image indicated by the obtained H264 reference image identification information (namely, the necessary reference image size) (9×4, for example). The upper-left corner coordinates in the motion-compensation reference image is the upper-left corner coordinates in the reference image indicated by the H264 reference image identification information.
Also, in the following, the image shown by the minimum access reference block is referred to as the minimum access reference image. Moreover, in the following, a block which is in size of the motion-compensation reference image is referred to as the motion-compensation reference image block.
Furthermore, in the following, when the motion-compensation reference image block is arranged in the minimum access reference image in which the location of the upper-left corner coordinates in the motion-compensation reference image is assumed as the upper-left corner of the motion-compensation reference image block, the block showing only the image of the motion-compensation reference image block is referred to as the motion-compensation reference block. The motion-compensation reference block has been explained above with reference to
To be more specific, the image shown by the motion-compensation reference block is at least a part of the image shown by the minimum access reference block. The upper-left corner coordinates in the motion-compensation reference block is the upper-left corner coordinates in the reference image indicated by the reference image identification information.
In each of
Referring back to
To be more specific, the image memory access control unit 1302 calculates the upper-left corner coordinates and size of the minimum access reference block, on the basis of the upper-left corner coordinates and size of the access-target reference block, the specifications B of the image memory 1208, and the plurality of access patterns shown in
Then, the image memory access control unit 1302 generates minimum access reference block information that indicates the calculated upper-left corner coordinates and size of the minimum access reference block.
Here, suppose that the size of the access-target reference block is 5×4 and that the upper-left corner coordinates in the access-target reference block are (17, 16), for example.
In this case, the horizontal coordinate value “17” in the coordinates (17, 16) is not a multiple of 8. Thus, according to the specifications B shown in
Moreover, since the size of the access-target reference block is “5” in the horizontal direction, the size of the minimum access reference block in the horizontal direction is calculated according to the access pattern shown in
Moreover, in this case, the vertical coordinate value “16” in the coordinates (17, 16) is a multiple of 8. Thus, according to the specifications B shown in
Furthermore, the vertical size of the access-target reference block is “4”. Thus, by assuming the access patterns shown in
Accordingly, the upper-left corner coordinates (16, 16) of the minimum access reference block are calculated through the minimum access reference block identification process A. Also, the size of the minimum access reference block is calculated at 8×8. In this case, the minimum access reference block information indicating the upper-left coordinates (16, 16) and size 8×8 of the minimum access reference block is generated.
As can be understood, the access restriction indicated by the specifications B is imposed such that when an obtaining target image (namely, an access-target reference block) is obtained from the image memory, the number of pixels equal to or larger than the number of pixels forming the obtaining target image are obtained.
In step S1403, a read instruction sending process A is performed. In the read instruction sending process A, the image memory access control unit 1302 generates a read instruction in order to obtain the identified minimum access reference block from the image memory 1208. When the minimum access reference block is equal in size to the access-target reference block, the minimum access reference block that is read following the read instruction includes the aforementioned H264 additional pixels.
On the other hand, when the minimum access reference block is larger in size than the access-target reference block (such as the case shown in
Then, the image memory access control unit 1302 sends the generated read instruction to the image memory 1208.
In response to the received read instruction, the image memory 1208 sends the minimum access reference block corresponding to the read instruction, as the read image, to the yet-to-be-obtained-pixel interpolating unit 1303.
In order to execute the quarter-precision motion compensation according to the access control method for the image memory in the present embodiment, the process is performed whereby the aforementioned H264 additional pixels required to generate the quarter coordinate pixels are not obtained intentionally. Depending on the upper-left corner coordinates in the access-target reference block, the minimum access reference block may be equal in size to the access-target reference block. As mentioned above, the access-target reference block includes the H264 additional pixels. Thus, the minimum access reference block that is read following the read instruction includes the aforementioned H264 additional pixels.
The H264 additional pixels in the horizontal direction cannot be obtained when the motion vector value in the horizontal direction is a decimal and “Left: Necessary (2 pixels)” is described for example on the right hand of “Necessity of additional pixels” in the diagram out of
More specifically, when “Necessary (k (1 or 2) pixels)” is described on the right hand of “Necessity of additional pixels” in the diagram corresponding to the horizontal size of the access-target reference block, it is necessary to generate (generate by interpolation) a plurality of H264 additional pixels aligned in one or two columns on the left or right of the motion-compensation reference block.
Note that the H264 additional pixels in the vertical direction need to be generated (generated by interpolation) when necessary as well, as is the case with the aforementioned H264 additional pixels in the horizontal direction.
As shown in
As described, in the present embodiment, the aforementioned 11264 additional-pixel interpolation information that indicates whether or not the interpolation of the H264 additional pixels is necessary denotes the information about the necessity of additional pixels.
In the following, the H264 additional pixels located on the left, right, top, and bottom of the motion-compensation reference block are referred to as the left additional pixels, right additional pixels, top additional pixels, and bottom additional pixels, respectively. The H264 additional-pixel interpolation information indicates, for example: one of the following information NA to NC; one of the following information ND to NF; one of the following information NG to NI; and one of the following information NJ to NL.
Information NA (Left additional pixels: Unnecessary)
Information NB (Left additional pixels: Necessary (1 pixel))
Information NC (Left additional pixels: Necessary (2 pixels))
Information ND (Right additional pixels: Unnecessary)
Information NE (Right additional pixels: Necessary (1 pixel))
Information NF (Right additional pixels: Necessary (2 pixels))
Information NG (Top additional pixels: Unnecessary)
Information NH (Top additional pixels: Necessary (1 pixel))
Information NI (Top additional pixels: Necessary (2 pixels))
Information NJ (Bottom additional pixels: Unnecessary)
Information NK (Bottom additional pixels: Necessary (1 pixel))
Information NL (Bottom additional pixels: Necessary (2 pixels))
As described in Background Art above, when additional pixels are generated through the interpolation process and then decimal pixels are generated using such generated additional pixels, errors are caused to the image obtained through the decoding process. Here, the image quality is degraded in the image obtained through the decoding process.
In the present embodiment, on the other hand, whether or not the additional pixels are to be generated is judged using the access patterns to access the image memory. On this account, there is a possibility that necessary additional pixels may be obtained without intention and thus the decoding process can be performed without generating additional pixels, depending on the access pattern to access the image memory.
Therefore, as compared to the conventional method whereby the decoding process is performed without obtaining additional pixels, the present embodiment can reduce the quality degradation of the image obtained through the decoding process when necessary additional pixels are obtained without intention.
In step S1404, an interpolation judgment process A is performed. In the interpolation judgment process A, the image memory access control unit 1302 judges whether or not the corresponding additional pixels are necessary, on the basis of the motion vectors indicated by the obtained H264 reference image identification information, the size and upper-left corner coordinates in the access-target reference block, the specifications B of the image memory 1208, and the plurality of access patterns shown in
Then, on the basis of the necessities of the corresponding additional pixels, the image memory access control unit 1302 generates the aforementioned H264-additional-pixel interpolation information.
More specifically, suppose that the motion vector value in the horizontal direction indicated by the H264 reference image identification information is a decimal, and that “Left: Necessary (1 pixel), Right: Unnecessary” is described on the right hand of “Necessity of additional pixels” corresponding to the determined access pattern in a diagram (
Moreover, suppose that the motion vector value in the vertical direction indicated by the H264 reference image identification information is a decimal, and that “Top: Unnecessary, Bottom: Necessary (2 pixels)” is described on the right hand of “Necessity of additional pixels” corresponding to the determined access pattern in a diagram that corresponds to the vertical size of the access-target reference block. In this case, it is judged that no pixels are necessary as the top additional pixels and that two pixels are necessary as the bottom additional pixels.
It should be noted that the above-mentioned diagram corresponding to the vertical size of the access-target reference block is not shown in the present embodiment. However, the diagram corresponding to the vertical size of the access-target reference block can be obtained by replacing “Remainder of horizontal coordinate”, “Left”, and “Right” in each of
On the basis of the above judgments, the H264 additional-pixel interpolation information is generated. The generated H264 additional-pixel interpolation information indicates one of the aforementioned information NA to NC, one of the aforementioned information ND to NF, one of the aforementioned information NG to NI, and one of the aforementioned information NJ to NL.
In step S1405, a reference image generation information generation process A is performed to generate the reference image generation information A. The reference image generation information A is used for generating the reference image to be used for motion compensation.
In the reference image generation information generation process A, the image memory access control unit 1302 generates the reference image generation information A, on the basis of: the size of the reference image (i.e., the necessary reference image size) and upper-left corner coordinates in the reference image which are indicated by the obtained reference image identification information; the generated minimum access reference block information; and the generated H264-additional-pixel interpolation information.
It should be noted that a method of generating the reference image generation information A is the same as the generation, method explained above with reference to
Items of “Coordinates in minimum access reference block” and “Relative coordinates in motion-compensation reference block” in
Also note that methods of calculating the size of the motion-compensation reference block and the relative coordinates in the motion-compensation reference block are the same as the calculation methods explained with reference to
Items of “Necessity of left additional pixels”, “Necessity of right additional pixels”, “Necessity of top additional pixels”, and “Necessity of bottom additional pixels” indicate whether or not the left additional pixels, the right additional pixels, the top additional pixels, and the bottom additional pixels are necessary, respectively. For example, when “Necessary (1 pixel)” is described for “Necessity of left additional pixels”, this means that one pixel is necessary as the left additional pixel.
Referring back to
The yet-to-be-obtained-pixel interpolating unit 1303 receives the minimum access reference block read as the read image from the image memory 1208 and the reference image generation information A sent from the image memory access control unit 1302.
As described later in detail, the yet-to-be-obtained-pixel interpolating unit 1303 sends the reference image that is used when the motion compensating unit 1206 performs motion compensation, to the motion compensating unit 1206.
Since the motion compensating unit 1206 performs motion compensation exactly according to the H.264 standard, the reference image in the necessary reference image size shown in
However, as described above, the minimum access reference block read as the read image from the image memory 1208 may not include the aforementioned H264 additional pixels. For this reason, the yet-to-be-obtained-pixel interpolating unit 1303 generates the H264 additional pixels through the interpolation process when the H264 additional pixels are not present.
In the following, a process performed by the yet-to-be-obtained-pixel interpolating unit 1303 to generate the reference image is referred to as the reference image generation process A.
In step S2300, the yet-to-be-obtained-pixel interpolating unit 1303 receives the minimum access reference block read as the read image from the image memory 1208 and the reference image generation information A sent by the image memory access control unit 1302.
In step S2301, on the basis of the size and relative coordinates of the motion-compensation reference block indicated by the received reference image generation information A, the yet-to-be-obtained-pixel interpolating unit 1303 obtains the motion-compensation reference block from the received minimum access reference block. In the following, the image shown by the motion-compensation reference block obtained through the process of step S2301 is referred to as the H264 process target image.
In step S2302, whether or not the left additional pixels are necessary. To be more specific, the yet-to-be-obtained-pixel interpolating unit 1303 judges whether “Necessary (1 pixel)”, “Necessary (2 pixels)” or “Unnecessary” is described in a box for “Necessity of left additional pixels” in the received reference image generation information A.
When the reference image generation information A shows “Necessary (1 pixel)”, the process proceeds to step S2303. When the reference image generation information A shows “Necessary (2 pixels)”, the process proceeds to step S2304. When the reference image generation information A shows “Unnecessary”, the process proceeds to step S2305.
In step S2303, a left one-column additional pixel generation process is performed. In the left one-column additional pixel generation process, the yet-to-be-obtained-pixel interpolating unit 1303 assumes a plurality of pixels aligned in a leftmost column of the H264 process target image as a plurality of H264 additional pixels aligned in a column outside on the left of the H264 process target image. In other words, a plurality of pixels obtained by copying the plurality of pixels aligned in the leftmost column of the H264 process target image are assumed as the plurality of H264 additional pixels.
Here, the plurality of pixels aligned in the leftmost column of the H264 process target image correspond to, for example, the plurality of integer pixels 202 whose horizontal coordinate values are “0” in the reference block 201 shown in
Then, the yet-to-be-obtained-pixel interpolating unit 1303 assumes the image generated through this process as a latest H264 process target image.
In step S2304, a left two-column additional pixel generation process is performed. In the left two-column additional pixel generation process, the yet-to-be-obtained-pixel interpolating unit 1303 assumes a plurality of pixels aligned in a leftmost column of the H264 process target image as a plurality of H264 additional pixels aligned in each of two columns outside on the left of the H264 process target image. In other words, a plurality of pixels obtained by copying the plurality of pixels aligned in the leftmost column of the H264 process target image are assumed as the plurality of H264 additional pixels aligned in each of two columns outside on the left of the H264 process target image.
Here, the plurality of H264 additional pixels aligned in each of the two columns outside on the left of the H264 process target image correspond to, for example, the plurality of H264-block outside pixels 205 whose horizontal coordinate values are “−1” and “−2” and whose vertical coordinate values are “0”, “1”, “2”, “3”, and “4” in
Then, the yet-to-be-obtained-pixel interpolating unit 1303 assumes the image generated through this process as the latest H264 process target image.
In step S2305, whether or not the right additional pixels are necessary. To be more specific, the yet-to-be-obtained-pixel interpolating unit 1303 judges whether “Necessary (1 pixel)”, “Necessary (2 pixels)” or “Unnecessary” is described in a box for “Necessity of right additional pixels” in the received reference image generation information A.
When the reference image generation information A shows “Necessary (1 pixel)”, the process proceeds to step S2306. When the reference image generation information A shows “Necessary (2 pixels)”, the process proceeds to step S2307. When the reference image generation information A shows “Unnecessary”, the process proceeds to step S2308.
In step S2306, a right one-column additional pixel generation process is performed. In the right one-column additional pixel generation process, the yet-to-be-obtained-pixel interpolating unit 1303 assumes a plurality of pixels aligned in a rightmost column of the latest H264 process target image as a plurality of H264 additional pixels aligned in a column outside on the right of the present latest H264 process target image. In other words, a plurality of pixels obtained by copying the plurality of pixels aligned in the rightmost column of the latest H1264 process target image are assumed as the plurality of H264 additional pixels.
Here, the plurality of pixels aligned in the rightmost column of the latest H264 process target image correspond to, for example, the plurality of H264-block outside pixels 205 whose horizontal coordinate values are “4” in the reference block 201 shown in
Then, the yet-to-be-obtained-pixel interpolating unit 1303 assumes the image generated through this process as the latest H264 process target image.
In step S2307, a right two-column additional pixel generation process is performed. In the right two-column additional pixel generation process, the yet-to-be-obtained-pixel interpolating unit 1303 assumes a plurality of pixels aligned in a rightmost column of the latest H264 process target image as a plurality of H264 additional pixels aligned in each of two columns outside on the right of the present latest H264 process target image. In other words, a plurality of pixels obtained by copying the plurality of pixels aligned in the rightmost column of the latest H264 process target image are assumed as the plurality of H264 additional pixels aligned in each of two columns outside on the right of the H264 process target image.
Here, the plurality of H264 additional pixels aligned in each of the two columns outside on the right of the latest H264 process target image correspond to, for example, the plurality of H264-block outside pixels 205 whose horizontal coordinate values are “5” and “6” and whose vertical coordinate values are “0”, “1”, “2”, “3”, and “4” in
In step S2308, whether or not the top additional pixels are necessary. To be more specific, the yet-to-be-obtained-pixel interpolating unit 1303 judges whether “Necessary (1 pixel)”, “Necessary (2 pixels)” or “Unnecessary” is described in a box for “Necessity of top additional pixels” in the received reference image generation information A.
When the reference image generation information A shows “Necessary (1 pixel)”, the process proceeds to step S2309. When the reference image generation information A shows “Necessary (2 pixels)”, the process proceeds to step S2310. When the reference image generation information A shows “Unnecessary”, the process proceeds to step S2311.
In step S2309, a top one-row additional pixel generation process is performed. In the top one-row additional pixel generation process, the yet-to-be-obtained-pixel interpolating unit 1303 assumes a plurality of pixels aligned in a uppermost row of the latest H264 process target image as a plurality of H264 additional pixels aligned in a row outside above the present latest H264 process target image. In other words, a plurality of pixels obtained by copying the plurality of pixels aligned in the uppermost row of the latest H264 process target image are assumed as the plurality of H264 additional pixels.
Here, the plurality of pixels aligned in the uppermost row of the latest H264 process target image correspond to, for example, the plurality of integer pixels 202 whose vertical coordinate values are “0” in the reference block 201 shown in
Then, the yet-to-be-obtained-pixel interpolating unit 1303 assumes the image generated through this process as the latest H264 process target image.
In step S2310, a top two-row additional pixel generation process is performed. In the top two-row additional pixel generation process, the yet-to-be-obtained-pixel interpolating unit 1303 assumes a plurality of pixels aligned in a uppermost row of the latest H264 process target image as a plurality of H264 additional pixels aligned in each of two rows outside above the present latest H264 process target image. In other words, a plurality of pixels obtained by copying the plurality of pixels aligned in the uppermost row of the latest H264 process target image are assumed as the plurality of H264 additional pixels aligned in each of two rows outside above the latest H264 process target image.
Moreover, in the case where the processes in steps S2304 and S2307 have been performed, the plurality of H264 additional pixels aligned in each of the two rows outside above the latest H264 process target image correspond to, for example, the plurality of H264-block outside pixels 205 whose horizontal coordinate values are “−2” to “6” and whose vertical coordinate values are “−1” and “−2” in
Then, the yet-to-be-obtained-pixel interpolating unit 1303 assumes the image generated through this process as the latest H264 process target image.
In step S2311, whether or not the bottom additional pixels are necessary. To be more specific, the yet-to-be-obtained-pixel interpolating unit 1303 judges whether “Necessary (1 pixel)”, “Necessary (2 pixels)” or “Unnecessary” is described in a box for “Necessity of bottom additional pixels” in the received reference image generation information A.
When the reference image generation information A shows “Necessary (1 pixel)”, the process proceeds to step S2312. When the reference image generation information A shows “Necessary (2 pixels)”, the process proceeds to step S2313. When the reference image generation information A shows “Unnecessary”, the process proceeds to step S2314.
In step S2312, a bottom one-row additional pixel generation process is performed. In the bottom one-row additional pixel generation process, the yet-to-be-obtained-pixel interpolating unit 1303 assumes a plurality of pixels aligned in a lowermost row of the latest H264 process target image as a plurality of H264 additional pixels aligned in a row outside below the present latest H264 process target image. In other words, a plurality of pixels obtained by copying the plurality of pixels aligned in the lowermost row of the latest H264 process target image are assumed as the plurality of H264 additional pixels.
Here, the plurality of pixels aligned in the lowermost row of the latest H264 process target image correspond to, for example, the plurality of H264-block outside pixels 205 whose vertical coordinate values are “4” in the reference block 201 shown in
Then, the yet-to-be-obtained-pixel interpolating unit 1303 assumes the image generated through this process as the latest H264 process target image.
In step S2313, a bottom two-row additional pixel generation process is performed. In the bottom two-row additional pixel generation process, the yet-to-be-obtained-pixel interpolating unit 1303 assumes a plurality of pixels aligned in a lowermost row of the latest H264 process target image as a plurality of H264 additional pixels aligned in each of two rows outside below the present latest H264 process target image. In other words, a plurality of pixels obtained by copying the plurality of pixels aligned in the lowermost row of the latest H264 process target image are assumed as the plurality of H264 additional pixels aligned in each of two rows outside below the latest H264 process target image.
Moreover, in the case where the processes in steps S2304 and S2307 have been performed, the plurality of H264 additional pixels aligned in each of the two rows outside below the latest H264 process target image correspond to, for example, the plurality of H264-block outside pixels 205 whose horizontal coordinate values are “−2” to “6” and whose vertical coordinate values are “5” and “6” in
Then, the yet-to-be-obtained-pixel interpolating unit 1303 assumes the image generated through this process as the latest H264 process target image.
In step S2314, a reference image sending process A is performed. In the reference image sending process A, the yet-to-be-obtained-pixel interpolating unit 1303 sends the latest H264 process target image as the reference image (i.e., the motion-compensation reference image) to the motion compensating unit 1206.
Note that in the case where the processes of steps S2303, S2304, S2306, S2307, S2309, S2310, S2312, and S2313 are not performed, the reference image sent to the motion compensating unit 1206 is the image shown by the obtained motion-compensation reference block.
The motion compensating unit 1206 performs motion compensation using the received reference image (i.e., the motion-compensation reference image). It should be noted that the motion compensation performed by the motion compensating unit 1206 is based on the H.264 standard and, therefore, the detailed explanation is not given.
As described thus far, when the quarter-precision motion compensation is performed in the present embodiment, the motion-compensation reference block obtained from the minimum access reference block, which is obtained by accessing the image memory according to the specifications B of the present image memory without intention of obtaining the aforementioned H264 additional pixels necessary to generate the quarter coordinate pixels, may include the H264 additional pixels without intention. In such a case, the reference image to be used for motion compensation (i.e., the motion-compensation reference image) is generated using the motion-compensation reference block including the H264 additional pixels.
It should be noted that when NO is given as results of judgments in all steps S2302, S2305, S2308, and S2311 in
In this case, the H264 additional pixels generated through the copying processes in the reference image generation process A are not used in the quarter-precision motion compensation. The H264 additional pixels generated through the copying processes are different from the H264 additional pixels originally required to perform the quarter-precision motion compensation. For this reason, when the quarter-precision motion compensation is performed using the H264 additional pixels generated through the copying processes, the image quality obtained through the decoding process is degraded as a result.
Therefore, when the image shown by the motion-compensation reference block includes all the H264 additional pixels required to perform the quarter-precision motion compensation, this can prevent the quality degradation from occurring to the image obtained through the decoding process.
In the reference image, generation process A of
Accordingly, constant degradation in image quality can be prevented from occurring, and the decoding process can be performed with efficiency.
Moreover, in the present embodiment, pixels necessary only to generate decimal pixels through the interpolation process are compensated with, for example, pixels which are additionally obtained as a result of the burst transfer. In the case where the additionally-obtained pixels are insufficient to generate the decimal pixels, the decimal pixels are generated through the interpolation process without using lacking pixels.
With this, the pixels used only for generating the decimal pixels through the interpolation process do not need to be additionally obtained from the image memory. Therefore, the amount of data transferred from the image memory can be reduced.
Moreover, as compared to the conventional method of generating the decimal pixels through the interpolation process always without using the original pixels, the present embodiment reduces the frequency of generating the decimal pixels through the interpolation process without using the original pixels. Therefore, the quality degradation in the image obtained through the decoding process can be reduced.
Accordingly, with the processes performed in the present embodiment, it becomes possible to reduce the amount of data transfer in the reference block and to achieve high image quality of the image obtained through the decoding process, at the same time.
Up to this point, the second embodiment has been described using, as an example, the image decoding device which decodes H.264 encoded data.
The processes described in the present embodiment are different from those described in the first embodiment that conforms to the MPEG-2 standard, in the following respects.
(1) More motion compensation types are processed by the image obtaining unit 1207.
(2) The size of the access-target reference block is changed according to whether the motion vector value is an integer or decimal.
(3) The judgment as to whether the additional pixels can be obtained is made for each of the sides, namely, top, bottom, left, and right.
(4) As the number of additional pixels, there are 1-pixel and 2-pixel cases.
(5) Yet-to-be obtained additional pixels can be generated (generated by interpolation) for each of the top, bottom, left, and right sides.
(6) In the generation (generation by interpolation) of the yet-to-be obtained additional pixels, a plurality of pixels aligned in one row or one column or a plurality of pixels aligned in two rows or two columns are generated.
Although the description of the second embodiment relates to luminance blocks, the present invention can be applied to chrominance blocks by using the processes explained in the second embodiment. The processes which have been explained in the second embodiment according to the present invention are merely examples. Thus, various kinds of modification can be considered, regarding the configuration of the image memory, the method of accessing the image memory, and the sharing of processes among the units.
For example, the following configurations can be considered: a configuration using an image memory which has different access specifications corresponding to the interlace or progressive methods respectively; and a configuration whereby whether or not to obtain the reference image exactly according to the standard is determined depending on the motion compensation type.
As another examples, the following configurations can be considered: a configuration whereby the present invention is applied in the horizontal or vertical direction; and a configuration whereby whether or not to obtain the reference image exactly according to the standard is determined depending on types of macroblocks and pictures.
The units shown in
Up to this point, the present invention has been described in detail by way of the above embodiments. The present invention is not limited to these described embodiments. Various modifications can be made while keeping the gist of, without intentionally obtaining additional pixels required to generate decimal pixels, generating the decimal pixels using the additional pixels obtained without intention as a result of accessing an image memory according to the access restriction indicated by the specifications of the image memory.
For example, the present invention can be applied not only to the image decoding devices based on the MPEG-2 and H.264 standard as described in the first and second embodiment, but also to an image decoding device based on the VC1 standard or the like.
The image decoding device in the present invention may be implemented as LSIs which are integrated circuits or as computer software. Also, as the integration method, the units of the image decoding device in the present invention may be integrated into individual chips, or into a single chip so as to include some or all of the LSIs. Moreover, when there is a technique for integrated circuits replacing LSIs, it should be obvious that the integration for the image decoding device in the present invention may be performed using this technique.
In the present invention, the additional pixels are generated by copying the pixels aligned in one end column or one end row of an image shown by the motion-compensation block. However, the present invention is not limited to this. For example, pixels having the average values of pixels corresponding to three end columns or three end rows of an image shown by the motion-compensation block may be assumed as the additional pixels.
It should be noted that whether or not to apply the present invention may be determined according to the amount of data to be processed. In the following, a picture to be processed is referred to as the process target picture. For example, when the process target picture is in an HD size (1920×1080, for instance) or in an SD size (720×480), the present invention may be applied only to the picture in the HD size.
Also, whether or not to apply the present invention may be determined according to the kind of process target picture. For example, the present invention may be applied only in the case where the process target picture is a B (Bidirectionally Predictive) picture.
The image decoding device in the present invention can be applied to various devices which decode data having been encoded according to a video encoding standard, such as the MPEG-2 and H.264 standards. The device, to which the present invention has been applied, may be, for example, a digital broadcast receiving device, a cellular mobile phone, an optical disc playback device that uses Blu-ray Discs (registered trademark), DVDs, and the like, or a personal computer.
A receiving device 2401 shown in
The system LSI 2402 obtains audio and video by decoding digital data (i.e., a bitstream) of a channel that is being viewed, and then outputs the audio and video. The tuner module 2403 receives digital data (a bitstream) of a desired channel using a broadcast wave (an RF input). The ROM 2404 stores programs and various kinds of data. The RAM 2405 is used as an image memory and as a storage area of various kinds of 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 device 1000 or 1000A in the present invention.
The CPU 2406 performs overall control. The stream decoder 2409 separates the digital data (the bitstream) of the desired channel into audio data and moving image data (or, video data). To be more specific, the stream decoder 2409 obtains the moving image data from the bitstream.
The audio decoder 2407 obtains audio by decoding the audio data. The image decoding device 1000 or 1000A obtains the moving image by decoding the obtained moving image data through the decoding process including motion compensation. The output control unit 2408 outputs the moving image (video) and audio obtained through the decoding process to an external source. It should be noted that the output control unit 2408 synchronizes the moving image (video) and audio and converts the formats of the moving image (video) and audio, as necessary.
The system bus 2410 transfers the data between the modules and between the ROM 2404 and the RAM 2405, for example.
In the case of the configuration shown in
For example, the units shown in
The digital broadcast receiving device has been described as an example. However, the present invention can be applied to, for example, a cellular mobile phone, an optical disc playback device that uses Blu-ray Discs (registered trademark), DVDs, and the like, and a personal computer.
The embodiments disclosed thus far only describe examples in all respects and are not intended to limit the scope of the present invention. It is intended that the scope of the present invention not be limited by the described embodiments, but be defined by the claims set forth below. Meanings equivalent to the description of the claims and all modifications are intended for inclusion within the scope of the following claims.
The image decoding device in the present invention can be applied to, for example, a digital broadcast receiving device, a cellular mobile phone, an optical disc playback device that uses Blu-ray Discs (registered trademark), DVDs, and the like, and a personal computer. The device, to which the present invention has been applied, is capable of performing a decoding process on a moving image with efficiency.
Number | Date | Country | Kind |
---|---|---|---|
2008-091088 | Mar 2008 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2009/001153 | 3/16/2009 | WO | 00 | 9/23/2010 |