WO2011155331A1 - 画像復号化装置と画像符号化装置およびその方法とプログラム - Google Patents

画像復号化装置と画像符号化装置およびその方法とプログラム Download PDF

Info

Publication number
WO2011155331A1
WO2011155331A1 PCT/JP2011/061973 JP2011061973W WO2011155331A1 WO 2011155331 A1 WO2011155331 A1 WO 2011155331A1 JP 2011061973 W JP2011061973 W JP 2011061973W WO 2011155331 A1 WO2011155331 A1 WO 2011155331A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion vector
unit
block
image
resolution
Prior art date
Application number
PCT/JP2011/061973
Other languages
English (en)
French (fr)
Inventor
健治 近藤
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Priority to CN2011800272373A priority Critical patent/CN102948150A/zh
Priority to US13/701,318 priority patent/US20130077886A1/en
Publication of WO2011155331A1 publication Critical patent/WO2011155331A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/004Predictors, e.g. intraframe, interframe coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Definitions

  • the present invention relates to an image decoding device, an image encoding device, a method thereof, and a program. Specifically, there are provided an image decoding apparatus, an image encoding apparatus, a method thereof, and a program capable of efficiently decoding and encoding an image.
  • image information is handled as digital data, and MPEG is used for the purpose of efficient transmission and storage of information, and compression is performed by orthogonal transform such as discrete cosine transform and motion compensation using redundancy unique to image information.
  • orthogonal transform such as discrete cosine transform and motion compensation using redundancy unique to image information.
  • MPEG2 ISO / IEC 18 13818-2
  • ISO / IEC 18 13818-2 is defined as a general-purpose image encoding system, and is a standard that covers both interlaced and progressively scanned images, standard resolution images, and high-definition images. And is now widely used in a wide range of consumer applications.
  • MPEG2 compression method for example, a standard resolution interlaced scanned image having 720 ⁇ 480 pixels can be assigned a code amount (bit rate) of 4 to 8 Mbps, thereby realizing a high compression ratio and good image quality. It is.
  • a high compression rate and good image quality can be realized by assigning a code amount of 18 to 22 Mbps.
  • MPEG2 was mainly intended for high-quality encoding suitable for broadcasting, but did not support encoding methods with a lower code amount (bit rate) than MPEG1, that is, a higher compression rate.
  • bit rate code amount
  • MPEG4 encoding system has been standardized accordingly.
  • image coding system the standard was approved as an international standard as ISO / IEC 14496-2 in December 1998.
  • H.M. Based on 26L, H.26L has also been standardized to incorporate higher levels of coding efficiency that are not supported by H.26L.
  • H.264 and MPEG-4 Part 10 Advanced Video Coding, hereinafter referred to as H.264 / AVC are international standards.
  • Patent Document 1 discloses that image data is more efficiently encoded using H.264 / AVC.
  • an object of the present invention is to provide an image decoding apparatus, an image encoding apparatus, a method and a program that can efficiently decode and encode an image.
  • a variable length decoding unit that decodes an encoded stream and outputs a differential motion vector, and a block size larger than the decoding target block including the decoding target block are provided.
  • a prediction motion vector setting unit that sets a motion vector of a block in a larger upper layer as a prediction motion vector of the block to be decoded; and adding the difference motion vector and the prediction motion vector to obtain the block to be decoded
  • an adder for calculating a motion vector of the image decoding apparatus.
  • a plurality of variable length decoding units performs a stream encoded with variable length decoding corresponding to variable length encoding according to different layers. Further, based on the hierarchical structure information indicating the hierarchy of the block to be decoded included in the stream, the output of the variable length decoding unit corresponding to the hierarchy of the block to be decoded is selected. Further, a motion vector of a higher-layer block having a block size larger than that of the decoding target block including the decoding target block is set as the prediction motion vector, and the set prediction motion vector and the selected variable length are set. The difference motion vectors output from the decoding unit are added to calculate the motion vector of the decoding target block.
  • a variable length decoding step of decoding an encoded stream and outputting a differential motion vector, and a block size larger than the decoding target block including the decoding target block A prediction motion vector setting step for setting a motion vector of a higher-layer block having a larger value to a prediction motion vector of the decoding target block, adding the difference motion vector and the prediction motion vector, and An image decoding method including an adding step for calculating a motion vector of a block.
  • a program for causing a computer to execute image encoding which decodes an encoded stream and outputs a differential motion vector
  • a prediction motion vector setting procedure for setting a motion vector of a higher-level block having a block size larger than that of the decoding target block including the block as a prediction motion vector of the decoding target block; the difference motion vector
  • a motion vector detected for an upper layer block having a block size larger than the encoding target block including the encoding target block is used as a predicted motion vector of the encoding target block.
  • a prediction motion vector setting unit to be set a difference calculation unit for calculating a difference between the motion vector of the encoding target block and the set prediction motion vector, and variable length encoding of the calculated difference motion vector.
  • an image encoding apparatus having a variable length encoding unit.
  • a motion vector detected for an upper layer block having a block size larger than the encoding target block including the encoding target block is set as a predicted motion vector of the encoding target block.
  • a differential motion vector indicating the difference between the motion vector of the block to be encoded and the set predicted motion vector is generated.
  • the differential motion vector is encoded by a plurality of variable-length encoding units that perform variable-length encoding that is optimized so that the encoding efficiency is highest for different layers, and the encoding target block hierarchy
  • the output of the variable length encoding unit corresponding to is selected and included in the encoded stream.
  • hierarchical structure information indicating the hierarchy of the encoding target block included in the macroblock is generated and included in the encoded stream. Further, the motion vector of the adjacent encoded macroblock is set as a predicted motion vector candidate, and the motion vector having the highest encoding efficiency is set as the predicted motion vector of the highest layer from this candidate.
  • a motion vector detected for an upper layer block having a block size larger than the encoding target block including the encoding target block is used as a predicted motion vector of the encoding target block.
  • a predicted motion vector setting step to be set; a motion vector of the block to be encoded; a difference calculation step of calculating a difference between the motion vectors; and variable length encoding for encoding the calculated difference motion vector And an image encoding method provided with a process.
  • a program for causing a computer to execute image encoding the motion vector detected for an upper layer block having a block size larger than the encoding target block including the encoding target block. Is set as the predicted motion vector of the encoding target block, the motion vector of the encoding target block, and the difference calculation procedure for calculating the difference between the motion vectors, and the calculated And a variable length encoding procedure for encoding the differential motion vector.
  • a multiresolution analysis / reconstruction unit that performs multiresolution analysis and image reconstruction on an image of a block to be encoded, and a reference image used for calculating the motion vector.
  • a multi-resolution analysis unit that performs multi-resolution analysis, a memory that stores a multi-resolution analysis result of the reference image, and a multi-resolution reconstruction that reconstructs an image using the multi-resolution analysis result stored in the memory Perform rough detection of a motion vector using a construction unit, a low-resolution encoding target image generated by the multi-resolution analysis / reconstruction unit, and a low-resolution reference image generated by the multi-resolution reconstruction unit, The high-resolution encoding target image generated by the multi-resolution analysis / reconstruction unit and the high-resolution image generated by the multi-resolution reconstruction unit of the selected region set based on the coarsely detected motion vector In the image encoding apparatus and a motion prediction unit which performs fine detection of the motion vector using the Zodo selected
  • multi-resolution analysis and image reconstruction are performed on the image of the block to be encoded. Further, multi-resolution analysis is performed on the reference image used for calculating the motion vector, and the multi-resolution analysis result of the reference image is stored in the first memory in order from low resolution to high resolution. A multi-resolution analysis result exceeding the memory capacity of the first memory is stored in the second memory. The image is reconstructed using the multiresolution analysis result stored in the first memory. In the detection of the motion vector, the multi-resolution analysis for the image of the block to be encoded and the low-resolution encoding target image generated by the image reconstruction and the multi-resolution analysis result stored in the first memory are used. Motion vector rough detection is performed using the reconstructed low-resolution reference image.
  • An eighth aspect of the present invention is a multiresolution analysis / reconstruction step for performing multiresolution analysis and reconstruction on an image of a block to be encoded, and multiresolution for a reference image used for calculating the motion vector.
  • a multi-resolution analysis step of performing analysis a storage step of storing the multi-resolution analysis result in a memory, and a multi-resolution reconstruction step of reconstructing an image using the multi-resolution analysis result stored in the memory
  • the high-resolution encoding target image generated by the analysis / reconstruction unit and the high-resolution image generated by the multi-resolution reconstruction unit of the selected region set based on the coarsely detected motion vector
  • a motion prediction step of performing fine detection of the motion vector using the Zodo selected reference image is a picture coding method for performing fine detection of the motion vector using the Zodo selected reference image.
  • a ninth aspect of the present invention is a program for causing a computer to execute image encoding, a multi-resolution analysis / reconstruction procedure for performing multi-resolution analysis and reconstruction on an image of a block to be encoded, Using a multi-resolution analysis procedure for performing multi-resolution analysis on a reference image used for motion vector calculation, a storage procedure for storing the multi-resolution analysis result in a memory, and the multi-resolution analysis result stored in the memory A multi-resolution reconstruction procedure for image reconstruction, a low-resolution encoding target image generated by the multi-resolution analysis / reconstruction unit, and a low-resolution reference image generated by the multi-resolution reconstruction unit.
  • the program of the present invention is, for example, a storage medium or communication medium provided in a computer-readable format to a general-purpose computer system capable of executing various program codes, such as an optical disk, a magnetic disk, a semiconductor memory, etc. Or a program that can be provided by a communication medium such as a network.
  • a program that can be provided by a communication medium such as a network.
  • the encoded stream is decoded and a differential motion vector is generated. Furthermore, the motion vector of the block in the upper layer having a larger block size than the block to be decoded including the block to be decoded is set as the predicted motion vector, and the generated difference motion vector and the set predicted motion vector are The motion vector of the decoding target block is calculated by addition. In addition, the motion vector detected for the upper layer block having a block size larger than the encoding target block including the encoding target block is set as the prediction motion vector of the encoding target block, and the encoding target block Variable length coding of the difference motion vector indicating the difference between the motion vector of the block and the set prediction motion vector is performed. As described above, by using the motion vector of the upper layer as the predicted motion vector and improving the prediction accuracy, it is possible to efficiently encode and decode the image.
  • multi-resolution analysis and image reconstruction are performed on the image of the block to be encoded. Further, multi-resolution analysis is performed on the reference image, and the multi-resolution analysis result of the reference image is stored in the memory. The image is reconstructed using the multiresolution analysis result stored in this memory, and the motion vector detection is generated by multiresolution analysis and image reconstruction on the image of the block to be encoded. Motion vector rough detection is performed using the low-resolution encoding target image and the low-resolution reference image reconstructed using the multi-resolution analysis result stored in the memory. Further, detailed detection of a motion vector is performed using a high-resolution encoding target image and a high-resolution selection reference image of a selected area set based on a roughly detected motion vector.
  • Configuration of Image Encoding Device> In the encoding of image data, the amount of code is reduced by taking the difference between the motion vector of the block to be encoded and the predicted motion vector, encoding the difference motion vector, and including it in the stream.
  • H When the median value of the motion vectors of adjacent blocks is used as a predicted motion vector as in the H.264 / AVC format, the median value is not necessarily the optimal predicted motion vector.
  • FIG. 1 is a diagram for explaining a conventional method for setting a predicted motion vector.
  • the motion vectors MV_A, MV_B, and MV_C of the adjacent blocks are the motion vectors in the area close to the block to be encoded.
  • Prediction accuracy is high. That is, the difference between the median value MV_md and the motion vector MVob of the block to be encoded is small.
  • FIG. 1B when the predicted block size is large, an adjacent block includes a region away from the encoding target block. For this reason, there is a case where the difference between the median value MV_md and the motion vector MVob of the block to be encoded is large, and there is a possibility that the prediction accuracy may be lower than when the prediction block size is small.
  • the motion vector detected for a large-sized block (higher-level block) and the motion vector detected for a small-sized block (lower-level block) included in this higher-level block are: Since it is included in the upper layer block, the lower layer motion vector often approximates the upper layer motion vector.
  • the motion vector detected for an upper layer block having a block size larger than that of the block to be coded including the block to be coded is used as a prediction motion vector. To improve the efficiency of image coding.
  • FIG. 2 shows the configuration of the image encoding device.
  • the image encoding device 10 includes an analog / digital conversion unit (A / D conversion unit) 11, a screen rearrangement buffer 12, a subtraction unit 13, an orthogonal transformation unit 14, a quantization unit 15, a lossless encoding unit 16, and a storage buffer 17.
  • the rate control unit 18 is provided.
  • the image encoding device 10 includes an inverse quantization unit 21, an inverse orthogonal transform unit 22, an addition unit 23, a deblocking filter 24, a frame memory 27, an intra prediction unit 31, a motion prediction / compensation unit 32, a predicted image / optimum A mode selection unit 33 is provided.
  • the A / D converter 11 converts an analog image signal into digital image data and outputs the digital image data to the screen rearrangement buffer 12.
  • the screen rearrangement buffer 12 rearranges the frames of the image data output from the A / D conversion unit 11.
  • the screen rearrangement buffer 12 rearranges the frames according to the GOP (Group of Pictures) structure related to the encoding process, and subtracts the image data after the rearrangement, the intra prediction unit 31, and the motion prediction / compensation unit. 32.
  • GOP Group of Pictures
  • the subtraction unit 13 is supplied with the image data output from the screen rearrangement buffer 12 and the predicted image data selected by the predicted image / optimum mode selection unit 33 described later.
  • the subtraction unit 13 calculates prediction error data that is a difference between the image data output from the screen rearrangement buffer 12 and the prediction image data supplied from the prediction image / optimum mode selection unit 33, and sends the prediction error data to the orthogonal transformation unit 14. Output.
  • the orthogonal transform unit 14 performs orthogonal transform processing such as discrete cosine transform (DCT) and Karoonen-Loeve transform on the prediction error data output from the subtraction unit 13.
  • the orthogonal transform unit 14 outputs transform coefficient data obtained by performing the orthogonal transform process to the quantization unit 15.
  • the quantization unit 15 is supplied with transform coefficient data output from the orthogonal transform unit 14 and a rate control signal from a rate control unit 18 described later.
  • the quantization unit 15 quantizes the transform coefficient data and outputs the quantized data to the lossless encoding unit 16 and the inverse quantization unit 21. Further, the quantization unit 15 changes the bit rate of the quantized data by switching the quantization parameter (quantization scale) based on the rate control signal from the rate control unit 18.
  • the lossless encoding unit 16 is supplied with quantized data output from the quantization unit 15 and prediction mode information from an intra prediction unit 31, a motion prediction / compensation unit 32, and a predicted image / optimum mode selection unit 33, which will be described later.
  • the prediction mode information includes a macroblock type indicating a prediction block size, a prediction mode, reference picture information, and the like according to intra prediction or inter prediction.
  • the lossless encoding unit 16 performs an encoding process on the quantized data by, for example, variable length encoding or arithmetic encoding, generates an encoded stream, and outputs the encoded stream to the accumulation buffer 17.
  • the lossless encoding unit 16 performs lossless encoding of the prediction mode information and adds it to, for example, header information of the encoded stream. Further, the lossless encoding unit 16 sets, as a predicted motion vector, a motion vector detected for a block in the next higher layer including the prediction block for the prediction block in the optimum mode that is a block of the image to be encoded. Then, the difference motion vector indicating the difference between the predicted motion vector and the motion vector of the encoding target block is losslessly encoded and added to the encoded stream.
  • the lossless encoding unit 16 also sets a prediction motion vector for each prediction block and calculates a difference motion vector indicating a difference from the motion vector of the prediction block even when calculating a cost function value to be described later. By performing the above, the generated code amount including the encoded data of the difference motion vector can be calculated.
  • the accumulation buffer 17 accumulates the encoded stream from the lossless encoding unit 16.
  • the accumulation buffer 17 outputs the accumulated encoded stream at a transmission rate corresponding to the transmission path.
  • the rate control unit 18 monitors the free capacity of the storage buffer 17, generates a rate control signal according to the free capacity, and outputs it to the quantization unit 15.
  • the rate control unit 18 acquires information indicating the free capacity from the accumulation buffer 17, for example.
  • the rate control unit 18 reduces the bit rate of the quantized data by the rate control signal when the free space is low.
  • the rate control unit 18 increases the bit rate of the quantized data by the rate control signal.
  • the inverse quantization unit 21 performs an inverse quantization process on the quantized data supplied from the quantization unit 15.
  • the inverse quantization unit 21 outputs transform coefficient data obtained by performing the inverse quantization process to the inverse orthogonal transform unit 22.
  • the inverse orthogonal transform unit 22 outputs the data obtained by performing the inverse orthogonal transform process on the transform coefficient data supplied from the inverse quantization unit 21 to the addition unit 23.
  • the adder 23 adds the data supplied from the inverse orthogonal transform unit 22 and the predicted image data supplied from the predicted image / optimum mode selection unit 33 to generate reference image data, and deblocks the reference image data. It outputs to the filter 24 and the intra estimation part 31.
  • the deblocking filter 24 performs a filter process for reducing block distortion that occurs during image coding.
  • the deblocking filter 24 performs a filtering process for removing block distortion from the reference image data supplied from the adding unit 23, and outputs the filtered reference image data to the frame memory 27.
  • the frame memory 27 holds the reference image data after the filtering process supplied from the deblocking filter 24.
  • the intra prediction unit 31 uses the image data of the encoding target image output from the screen rearrangement buffer 12 and the reference image data supplied from the addition unit 23 to perform intra prediction processing for all candidate intra prediction modes. Do. Furthermore, the intra prediction unit 31 calculates a cost function value for each intra prediction mode, and optimizes the intra prediction mode in which the calculated cost function value is minimum, that is, the intra prediction mode in which the encoding efficiency is the best. Select as the intra prediction mode. The intra prediction unit 31 outputs the predicted image data generated in the optimal intra prediction mode, the prediction mode information regarding the optimal intra prediction mode, and the cost function value in the optimal intra prediction mode to the predicted image / optimum mode selection unit 33. In addition, the intra prediction unit 31 sends the prediction mode information related to the intra prediction mode to the lossless encoding unit 16 in the intra prediction process of each intra prediction mode in order to obtain the generated code amount used in the calculation of the cost function value as described later. Output.
  • the motion prediction / compensation unit 32 performs motion prediction / compensation processing with all the prediction block sizes (motion compensation block sizes) corresponding to the macroblock.
  • the motion prediction / compensation unit 32 uses the filtered reference image data read from the frame memory 27 for each image of each predicted block size in the macroblock image read from the screen rearrangement buffer 12. Detect motion vectors. Furthermore, the motion prediction / compensation unit 32 performs a motion compensation process on the reference image based on the detected motion vector to generate a predicted image.
  • the motion prediction / compensation unit 32 calculates a cost function value for each predicted motion vector candidate and notifies the lossless encoding unit 16 of the cost function value.
  • the motion prediction / compensation unit 32 uses, as the optimal inter prediction mode, the prediction block size with the smallest cost function value, that is, the prediction block size with the best coding efficiency, based on the cost function value calculated with each prediction block size. select.
  • the motion prediction / compensation unit 32 outputs the prediction image data generated in the optimal inter prediction mode, the prediction mode information regarding the optimal inter prediction mode, and the cost function value in the optimal inter prediction mode to the prediction image / optimum mode selection unit 33. To do.
  • the motion prediction / compensation unit 32 outputs the prediction mode information related to the inter prediction mode to the lossless encoding unit 16 in the inter prediction process with each prediction block size in order to obtain the generated code amount used in the calculation of the cost function value. To do. Note that the motion prediction / compensation unit 32 also performs prediction of a skipped macroblock or direct mode as the inter prediction mode.
  • the predicted image / optimum mode selection unit 33 compares the cost function value supplied from the intra prediction unit 31 with the cost function value supplied from the motion prediction / compensation unit 32 in units of macroblocks, and the cost function value is small. Is selected as the optimum mode with the best coding efficiency. Further, the predicted image / optimum mode selection unit 33 outputs the predicted image data generated in the optimal mode to the subtraction unit 13 and the addition unit 23. Further, the predicted image / optimum mode selection unit 33 outputs the prediction mode information of the optimal mode to the lossless encoding unit 16. Note that the predicted image / optimum mode selection unit 33 performs intra prediction or inter prediction in units of slices.
  • FIG. 3 shows a configuration related to a motion vector in the lossless encoding unit.
  • the lossless encoding unit 16 includes a prediction motion vector setting unit 161, a difference calculation unit 163, variable length encoding units 164-1 to 164-n, and a selection unit 165.
  • the predicted motion vector setting unit 161 includes a motion vector storage unit 161a and a motion vector selection unit 161b.
  • the motion vector storage unit 161a obtains a motion vector of an encoded adjacent block adjacent to a block (macroblock) to be encoded when the predicted block size is maximum in the highest hierarchy having the maximum predicted block size. Stored as a candidate for the motion vector predictor in the highest hierarchy. Note that the motion vector storage unit 161a may also store the motion vector of the same block as the encoding target in the reference picture in order to support the direct mode. In addition, the motion vector storage unit 161 a stores the motion vectors of the blocks in each layer supplied from the motion prediction / compensation unit 32.
  • the motion vector selection unit 161b determines, based on the prediction mode information of the optimum mode supplied from the prediction image / optimum mode selection unit 33, which layer is the prediction block of the optimum mode that is the block to be encoded.
  • the motion vector selection unit 161b predicts the encoding efficiency from the predicted motion vector candidate based on the cost function value supplied from the motion prediction / compensation unit 32 when the encoding target block is the highest layer.
  • Set motion vector when the block to be encoded is not the highest layer, the motion vector selection unit 161b detects a block that is one layer higher in size than the determined layer and includes the block to be encoded.
  • a motion vector is set as a predicted motion vector.
  • the difference calculation unit 163 calculates a difference motion vector between the motion vector of the block to be encoded and the predicted motion vector set by the predicted motion vector setting unit 161.
  • variable length coding units 164-1 to 164-n perform variable length coding of the difference motion vector calculated by the difference calculation unit 163.
  • the variable-length coding units 164-1 to 164-n perform variable-length coding that is optimized so that coding efficiency is highest for different layers, on the difference motion vector.
  • the motion vector is considered to have a smaller variation in motion vector when the block size is small than when the block size is large.
  • the difference motion vector as well, the occurrence probability that the length of the difference motion vector is short is larger when the block size is smaller than when the block size is large. That is, the relationship between the length of the differential motion vector and the probability density is as shown in FIG. 4, for example.
  • variable length coding units 164-1 to 164-n have a higher probability of occurrence of the difference motion vector being shorter than the variable length coding of the upper layer block size, and therefore the length of the difference motion vector. If the code is short, the amount of code to be allocated is reduced.
  • the variable length coding unit 164-1 has the highest coding efficiency with respect to the characteristics of the VLC table optimized for the highest coding efficiency with respect to the highest layer, for example, the characteristics of the broken line in FIG. Variable length coding is performed using a VLC table optimized for the above.
  • variable length encoding unit 164 -n is a VLC table optimized so as to have the highest encoding efficiency for the lowest layer, for example, the encoding efficiency is highest for the characteristics of the solid line in FIG. Variable length coding is performed using the optimized VLC table. Thus, encoding efficiency can be increased by performing variable length encoding according to a hierarchy.
  • the selection unit 165 selects encoded data corresponding to the prediction block size of the optimum mode from the encoded data supplied from the variable length encoding units 164-1 to 164-n, and adds the encoded data to the header information of the encoded stream To do.
  • the hierarchical structure information generation unit 166 Based on the prediction block size of the optimal mode supplied from the prediction image / optimum mode selection unit 33, the hierarchical structure information generation unit 166 encodes the macro block that is the block size of the highest hierarchy for each macro block. Hierarchical structure information indicating the hierarchy of the target block is generated. The hierarchical structure information generation unit 166 adds the generated hierarchical structure information to the header information of the encoded stream.
  • the lossless encoding unit 16 indicates a prediction motion vector indicating which candidate has been selected as the prediction motion vector of the highest layer so that the image decoding apparatus can generate a prediction motion vector.
  • Information is added to the header information of the encoded stream.
  • the motion vector of the block of the highest layer may be encoded and included in the encoded stream instead of the encoded data of the prediction motion vector information and the difference motion vector.
  • FIG. 5 shows the predicted block size used in the image encoding process.
  • H In the H.264 / AVC format, a prediction block size of 16 ⁇ 16 pixels to 4 ⁇ 4 pixels is defined for a macroblock of 16 ⁇ 16 pixels, as shown in (C) and (D) of FIG. H.
  • a predicted block size shown in FIG. 5B is defined. For example, when a 64 ⁇ 64 pixel macroblock is used, for example, the predicted block size shown in FIG.
  • “Skip / direct” indicates the predicted block size when the skipped macroblock or the direct mode is selected in the motion prediction / compensation unit 32.
  • “ME” indicates a motion compensation block size.
  • “P8 ⁇ 8” indicates that further division is possible in a lower hierarchy in which the size of the macroblock is reduced.
  • hierarchization according to the block size is performed in the encoding of motion vectors.
  • a block size of 32 ⁇ 32 pixels is set as the highest layer (first layer), and a block of 16 ⁇ 16 pixels obtained by dividing this block into two parts vertically and horizontally Is a block of the next lower layer (second layer).
  • an 8 ⁇ 8 pixel block obtained by dividing a 16 ⁇ 16 pixel block into two parts in the vertical and horizontal directions is a further lower layer (third layer) block, and an 8 ⁇ 8 pixel block is divided into two in the vertical and horizontal directions.
  • An example will be described in which a 4 ⁇ 4 pixel block obtained by dividing is used as a block of the lowest hierarchy (fourth hierarchy).
  • FIG. 6 is a flowchart showing the image encoding processing operation.
  • the A / D converter 11 performs A / D conversion on the input image signal.
  • step ST12 the screen rearrangement buffer 12 performs image rearrangement.
  • the screen rearrangement buffer 12 stores the image data supplied from the A / D conversion unit 11, and rearranges from the display order of each picture to the encoding order.
  • step ST13 the subtraction unit 13 generates prediction error data.
  • the subtraction unit 13 calculates a difference between the image data of the images rearranged in step ST12 and the predicted image data selected by the predicted image / optimum mode selection unit 33, and generates prediction error data.
  • the prediction error data has a smaller data amount than the original image data. Therefore, the data amount can be compressed as compared with the case where the image is encoded as it is.
  • the orthogonal transform unit 14 performs an orthogonal transform process.
  • the orthogonal transformation unit 14 performs orthogonal transformation on the prediction error data supplied from the subtraction unit 13. Specifically, orthogonal transformation such as discrete cosine transformation and Karhunen-Loeve transformation is performed on the prediction error data, and transformation coefficient data is output.
  • step ST15 the quantization unit 15 performs a quantization process.
  • the quantization unit 15 quantizes the transform coefficient data.
  • rate control is performed as described in the process of step ST25 described later.
  • step ST16 the inverse quantization unit 21 performs an inverse quantization process.
  • the inverse quantization unit 21 inversely quantizes the transform coefficient data quantized by the quantization unit 15 with characteristics corresponding to the characteristics of the quantization unit 15.
  • the inverse orthogonal transform unit 22 performs an inverse orthogonal transform process.
  • the inverse orthogonal transform unit 22 performs inverse orthogonal transform on the transform coefficient data inversely quantized by the inverse quantization unit 21 with characteristics corresponding to the characteristics of the orthogonal transform unit 14.
  • step ST18 the adding unit 23 generates reference image data.
  • the adder 23 adds the predicted image data supplied from the predicted image / optimum mode selection unit 33 and the data after inverse orthogonal transformation of the position corresponding to the predicted image to generate reference image data.
  • step ST19 the deblocking filter 24 performs filter processing.
  • the deblocking filter 24 filters the reference image data output from the addition unit 23 to remove block distortion.
  • step ST20 the frame memory 27 stores reference image data.
  • the frame memory 27 stores the reference image data after the filter processing.
  • the intra prediction unit 31 and the motion prediction / compensation unit 32 each perform a prediction process. That is, the intra prediction unit 31 performs intra prediction processing in the intra prediction mode, and the motion prediction / compensation unit 32 performs motion prediction / compensation processing in the inter prediction mode.
  • the details of the prediction process will be described later with reference to FIG. 7.
  • prediction processes in all candidate prediction modes are performed, and cost function values in all candidate prediction modes are respectively determined. Calculated. Then, based on the calculated cost function value, the optimal intra prediction mode and the optimal inter prediction mode are selected, and the prediction image generated in the selected prediction mode and its cost function and prediction mode information are predicted image / optimum mode. It is supplied to the selector 33.
  • the predicted image / optimum mode selection unit 33 selects predicted image data.
  • the predicted image / optimum mode selection unit 33 determines the optimal mode with the best coding efficiency based on the cost function values output from the intra prediction unit 31 and the motion prediction / compensation unit 32. Further, the predicted image / optimum mode selection unit 33 selects the predicted image data of the determined optimal mode and supplies it to the subtraction unit 13 and the addition unit 23. As described above, this predicted image is used for the calculations in steps ST13 and ST18. Note that prediction mode information corresponding to the selected predicted image data is output to the lossless encoding unit 16.
  • the lossless encoding unit 16 performs a lossless encoding process.
  • the lossless encoding unit 16 performs lossless encoding on the quantized data output from the quantization unit 15. That is, lossless encoding such as variable length encoding or arithmetic encoding is performed on the quantized data, and the data is compressed.
  • the prediction mode information including macroblock type, prediction mode, reference picture information, etc.
  • lossless encoded data such as prediction mode information is added to the header information of the encoded stream generated by lossless encoding of the quantized data.
  • step ST24 the accumulation buffer 17 performs accumulation processing.
  • the accumulation buffer 17 accumulates the encoded stream output from the lossless encoding unit 16.
  • the encoded stream stored in the storage buffer 17 is appropriately read and transmitted to the decoding side via the transmission path.
  • step ST25 the rate control unit 18 performs rate control.
  • the rate control unit 18 controls the quantization operation rate of the quantization unit 15 so that overflow or underflow does not occur in the storage buffer 17 when the encoded buffer is stored in the storage buffer 17.
  • the intra prediction unit 31 performs an intra prediction process.
  • the intra prediction unit 31 performs intra prediction on the image of the block to be processed in all candidate intra prediction modes.
  • the reference image data supplied from the adding unit 23 is used.
  • intra prediction is performed in all candidate intra prediction modes, and cost function values are calculated for all candidate intra prediction modes. Then, based on the calculated cost function value, one intra prediction mode with the best coding efficiency is selected from all intra prediction modes.
  • step ST32 the motion prediction / compensation unit 32 performs an inter prediction process.
  • the motion prediction / compensation unit 32 performs inter prediction processing in all candidate inter prediction modes (all prediction block sizes) using the filtered reference image data stored in the frame memory 27.
  • the prediction process is performed in all candidate inter prediction modes, and cost function values are calculated for all candidate inter prediction modes. Then, based on the calculated cost function value, one inter prediction mode with the best coding efficiency is selected from all the inter prediction modes.
  • step ST41 the intra prediction unit 31 performs intra prediction in each prediction mode.
  • the intra prediction unit 31 uses the reference image data supplied from the addition unit 23 to generate predicted image data for each intra prediction mode.
  • the intra prediction unit 31 calculates a cost function value for each prediction mode.
  • the cost function value is H.264.
  • JM Joint Model
  • Cost (Mode ⁇ ) D + ⁇ ⁇ R (1)
  • indicates the entire set of prediction modes that are candidates for encoding the block or macroblock.
  • D indicates the difference energy (distortion) between the reference image and the input image when encoding is performed in the prediction mode.
  • R is a generated code amount including orthogonal transform coefficients and prediction mode information, and ⁇ is a Lagrange multiplier given as a function of the quantization parameter QP.
  • Step ST42 for all prediction modes as candidates, prediction image generation and header bits such as prediction mode information are calculated, and the following equation (2) is used.
  • the represented cost function value is calculated for each prediction mode.
  • Cost (Mode ⁇ ) D + QPtoQuant (QP) ⁇ Header_Bit (2) ⁇ indicates the entire set of prediction modes that are candidates for encoding the block or macroblock.
  • D indicates the differential energy (distortion) between the reference image and the input image when encoding is performed in the prediction mode.
  • Header_Bit is a header bit for the prediction mode
  • QPtoQuant is a function given as a function of the quantization parameter QP.
  • step ST43 the intra prediction unit 31 determines the optimal intra prediction mode. Based on the cost function value calculated in step ST42, the intra prediction unit 31 selects one intra prediction mode having a minimum cost function value from them, and determines the optimal intra prediction mode.
  • step ST51 the motion prediction / compensation unit 32 determines a motion vector and a reference image for each prediction mode. That is, the motion prediction / compensation unit 32 determines a motion vector and a reference image for each block to be processed in each prediction mode.
  • step ST52 the motion prediction / compensation unit 32 performs motion compensation for each prediction mode.
  • the motion prediction / compensation unit 32 performs motion compensation on the reference image based on the motion vector determined in step ST51 for each prediction mode (each prediction block size), and generates predicted image data for each prediction mode.
  • the motion prediction / compensation unit 32 calculates a cost function value for each inter prediction mode.
  • the motion prediction / compensation unit 32 calculates the cost function value using the above-described equation (1) or equation (2).
  • the generated code amount including the encoding information selected by the selection unit 165 is used.
  • the cost function value for the inter prediction mode is calculated using the H.264 standard. Evaluation of the cost function value of Skip Mode and Direct Mode defined in the H.264 / AVC format is also included.
  • step ST54 the motion prediction / compensation unit 32 determines the optimal inter prediction mode. Based on the cost function value calculated in step ST53, the motion prediction / compensation unit 32 selects one prediction mode having the minimum cost function value from them, and determines the optimum inter prediction mode.
  • the largest block size in FIG. 5 for example, the size of 32 ⁇ 32 pixels is defined as the first hierarchy (the highest hierarchy).
  • the size of 16 ⁇ 16 pixels is the second layer
  • the size of 8 ⁇ 8 pixels is the third layer
  • the smallest block size for example, the size of 4 ⁇ 4 pixels is the fourth layer (lowest layer).
  • step ST61 the lossless encoding unit 16 sets a motion vector predictor from the candidates for the highest layer block.
  • the lossless encoding unit 16 sets the motion vector having the smallest cost function value from the motion vector candidates MV_A, MV_B, MV_C, MV_co, and MV_0 of the predicted motion vector as the predicted motion vector of the first layer.
  • the process proceeds to step ST62.
  • step ST62 the lossless encoding unit 16 calculates a differential motion vector for the block in the highest layer and proceeds to step ST63.
  • step ST63 the lossless encoding unit 16 determines whether the prediction block is the first layer.
  • the lossless encoding unit 16 proceeds to step ST70 when the prediction block in the optimal mode is the first layer, and proceeds to step ST64 when it is lower than the first layer.
  • step ST64 the lossless encoding unit 16 determines whether the prediction block is in the second layer.
  • the lossless encoding unit 16 proceeds to step ST65 when the prediction block is in the second layer, and proceeds to step ST66 when the prediction block is in a layer lower than the second layer.
  • step ST65 the lossless encoding unit 16 sets the motion vector of the corresponding block in the first layer as the predicted motion vector, and proceeds to step ST69.
  • step ST66 the lossless encoding unit 16 determines whether the prediction block is the third layer.
  • the lossless encoding unit 16 proceeds to step ST67 when the prediction block is the third layer, and proceeds to step ST68 when the prediction block is a lower layer than the third layer, that is, the lowest layer.
  • step ST67 the lossless encoding unit 16 sets the motion vector of the corresponding block in the second layer as the predicted motion vector, and proceeds to step ST69.
  • step ST67 the lossless encoding unit 16 sets the motion vector of the corresponding block in the third layer as the predicted motion vector, and proceeds to step ST69.
  • step ST69 the lossless encoding unit 16 calculates a differential motion vector.
  • the lossless encoding unit 16 calculates a differential motion vector indicating the difference between the motion vector of each block and the predicted motion vector, and proceeds to step ST70.
  • the lossless encoding unit 16 performs a lossless encoding process.
  • the lossless encoding unit 16 performs lossless encoding processing of the difference motion vector using a VLC table or arithmetic encoding.
  • the encoding process is performed using, for example, a VLC table provided for each layer.
  • the lossless encoding part 16 produces
  • FIG. 11 illustrates an operation when the encoding process of FIG. 10 is performed.
  • the prediction block is a first layer block (macroblock) having a size of 32 ⁇ 32 pixels
  • the cost function value is minimized from the motion vector of the adjacent block.
  • the motion vector is a predicted motion vector.
  • the motion vector detected in the block of the second hierarchy is used as the predicted motion vector.
  • the motion vector detected in the block of the third hierarchy is used as the predicted motion vector.
  • FIG. 12 is a diagram for explaining the hierarchical structure information.
  • the hierarchical structure information is generated as “1” when there is a lower layer block obtained by dividing the block, and as “0” when there is no lower layer block.
  • the information indicating the structure of the first layer is “ 1 ".
  • a lower hierarchy block is generated with respect to the lower left block. Therefore, if the block order is the order of upper left, upper right, lower left, and lower right, the information indicating the structure of the second hierarchy is “0010”.
  • the third hierarchy a lower hierarchy block is generated with respect to the upper right block. Therefore, if the block order is the order of upper left, upper right, lower left, and lower right, the information indicating the structure of the third hierarchy is “0100”.
  • the information indicating the structure of the fourth layer is “0000”.
  • the hierarchical structure information “1001001000000” indicating the hierarchical structure shown in FIG. 12 can be generated.
  • the lossless encoding unit 16 performs lossless encoding of the difference motion vector calculated for each layer, and uses the obtained encoded data as a block order corresponding to the layer structure information, so that the predicted motion in the layer structure information and the highest layer is obtained. Included in stream information along with vector selection information. Further, the lossless encoding unit 16 performs lossless encoding using, for example, a VLC table optimized for each layer.
  • the motion vector detected in the upper layer block one block size larger is set as the predicted motion vector. Therefore, in the lower layer blocks obtained by dividing the upper layer, there are many blocks having a small difference motion vector, so that the coding efficiency is improved and the image can be coded efficiently. In addition, as the amount of code required for motion vector transmission is reduced, the bit rate of the quantized data can be increased, so that the image quality can be improved.
  • the encoded stream generated by the image encoding device 10 is supplied to the image decoding device via a predetermined transmission path, recording medium, or the like and decoded.
  • FIG. 13 shows the configuration of the image decoding apparatus.
  • the image decoding device 50 includes a storage buffer 51, a lossless decoding unit 52, an inverse quantization unit 53, an inverse orthogonal transform unit 54, an addition unit 55, a deblocking filter 56, a screen rearrangement buffer 57, a digital / analog conversion unit ( D / A converter 58). Furthermore, the image decoding device 50 includes a frame memory 61, an intra prediction unit 62, a motion compensation unit 63, and a selector 64.
  • the accumulation buffer 51 accumulates the transmitted encoded stream.
  • the lossless decoding unit 52 decodes the encoded stream supplied from the accumulation buffer 51 by a method corresponding to the encoding method of the lossless encoding unit 16 of FIG.
  • the lossless decoding unit 52 outputs the prediction mode information obtained by decoding the header information of the encoded stream to the intra prediction unit 62, the motion compensation unit 63, and the deblocking filter 56. Further, the lossless decoding unit 52 sets prediction motion vector candidates using the motion vectors of the decoding target block and the decoded adjacent block. The lossless decoding unit 52 selects a prediction motion vector from prediction motion vector candidates based on prediction motion vector selection information obtained by lossless decoding of the encoded stream, and uses the selected motion vector as a prediction of the highest layer. Let it be a motion vector.
  • the lossless decoding unit 52 calculates the motion vector of the decoding target block by adding the prediction motion vector to the differential motion vector obtained by lossless decoding of the encoded stream, and outputs the motion vector to the motion compensation unit 63 To do.
  • the lossless decoding unit 52 uses the motion vector of the layer one level higher as the predicted motion vector in the layer whose size is smaller than the highest layer.
  • the inverse quantization unit 53 inversely quantizes the quantized data decoded by the lossless decoding unit 52 by a method corresponding to the quantization method of the quantization unit 15 of FIG.
  • the inverse orthogonal transform unit 54 performs inverse orthogonal transform on the output of the inverse quantization unit 53 by a method corresponding to the orthogonal transform method of the orthogonal transform unit 14 of FIG.
  • the addition unit 55 adds the data after inverse orthogonal transform and the predicted image data supplied from the selector 64 to generate decoded image data, and outputs the decoded image data to the deblocking filter 56 and the intra prediction unit 62.
  • the deblocking filter 56 performs a filtering process on the decoded image data supplied from the adder 55, removes block distortion, supplies the frame memory 61 to the frame memory 61, and stores it in the screen rearrangement buffer 57.
  • the screen rearrangement buffer 57 rearranges images. That is, the order of frames rearranged for the encoding order by the screen rearrangement buffer 12 in FIG. 2 is rearranged in the original display order and output to the D / A converter 58.
  • the D / A conversion unit 58 performs D / A conversion on the image data supplied from the screen rearrangement buffer 57 and outputs it to a display (not shown) to display an image.
  • the frame memory 61 holds the decoded image data after the filtering process supplied from the deblocking filter 24.
  • the intra prediction unit 62 generates a prediction image based on the prediction mode information supplied from the lossless decoding unit 52, and outputs the generated prediction image data to the selector 64.
  • the motion compensation unit 63 performs motion compensation based on the prediction mode information and the motion vector supplied from the lossless decoding unit 52, generates predicted image data, and outputs the prediction image data to the selector 64. That is, the motion compensation unit 63 performs motion compensation on the reference image indicated by the reference frame information based on the motion vector and the reference frame information supplied from the lossless decoding unit 52, and performs prediction. Generate block size predicted image data.
  • the selector 64 supplies the prediction image data generated by the intra prediction unit 62 to the addition unit 55. Further, the selector 64 supplies the predicted image data generated by the motion compensation unit 63 to the addition unit 55.
  • FIG. 14 shows a configuration related to a motion vector in the lossless decoding unit.
  • the lossless decoding unit 52 includes variable length decoding units 521-1 to 521-n, a selection unit 522, a predicted motion vector setting unit 523, and an addition unit 525.
  • the predicted motion vector setting unit 523 includes a motion vector storage unit 523a and a motion vector selection unit 523b.
  • the variable length decoding unit 521-1 performs variable length decoding corresponding to the encoding performed by the variable length encoding unit 164-1.
  • the variable length decoding units 521-2 to 521-n perform variable length decoding corresponding to the encoding performed by the variable length encoding units 164-2 to 164-n.
  • the variable length decoding units 521-1 to 521-n perform lossless variable length decoding of the encoded stream using a VLC table or an arithmetic code, and generate a differential motion vector.
  • the selection unit 522 selects the differential motion vector output from the decoding unit corresponding to the hierarchy based on the hierarchical structure information, and outputs it to the addition unit 525.
  • the motion vector storage unit 523a obtains the motion vector of the decoded adjacent block adjacent to the block to be decoded when the predicted block size is the maximum in the highest hierarchy having the maximum predicted block size. Store as predicted motion vector candidates. Note that the motion vector storage unit 523a may store a motion vector of the same block as the decoding target in the reference picture in order to support the direct mode. In addition, the motion vector storage unit 523a stores an upper layer motion vector including a block to be decoded.
  • the motion vector selection unit 523b reads the predicted motion vector corresponding to the hierarchy from the motion vector storage unit 523a based on the hierarchical structure information, and outputs it to the addition unit 525. Also, based on the predicted motion vector information, a motion vector is selected from the predicted motion vector candidates, and is output to the adder 525 as a predicted motion vector for the block in the highest layer.
  • the adder 525 calculates the motion vector of the decoding target block by adding the predicted motion vector output from the predicted motion vector setting unit 523 to the differential motion vector selected by the selection unit 522, and performs motion compensation. To the unit 63. Further, the calculated motion vector is stored in the motion vector storage unit 523a so that it can be used as a predicted motion vector in a lower layer.
  • the encoded stream includes encoded data indicating the motion vector of the highest layer block
  • the motion vector obtained by variable length decoding is stored in the motion vector storage unit 523a, It can be used as a predicted motion vector of a hierarchy.
  • step ST81 the accumulation buffer 51 accumulates the transmitted encoded stream.
  • step ST82 the lossless decoding unit 52 performs lossless decoding processing.
  • the lossless decoding unit 52 decodes the encoded stream supplied from the accumulation buffer 51. That is, quantized data of each picture encoded by the lossless encoding unit 16 in FIG. 2 is obtained. Further, the lossless decoding unit 52 performs lossless decoding of prediction mode information included in the header information of the encoded stream, and supplies the obtained prediction mode information to the deblocking filter 56 and the selector 64. Further, the lossless decoding unit 52 outputs the prediction mode information to the intra prediction unit 62 when the prediction mode information is information related to the intra prediction mode.
  • the lossless decoding part 52 outputs prediction mode information to the motion compensation part 63, when prediction mode information is the information regarding inter prediction mode. Further, the lossless decoding unit 52 outputs the motion vector of the block to be decoded to the motion compensation unit 63.
  • step ST83 the inverse quantization unit 53 performs an inverse quantization process.
  • the inverse quantization unit 53 inversely quantizes the quantized data decoded by the lossless decoding unit 52 with characteristics corresponding to the characteristics of the quantization unit 15 in FIG.
  • the inverse orthogonal transform unit 54 performs an inverse orthogonal transform process.
  • the inverse orthogonal transform unit 54 performs inverse orthogonal transform on the transform coefficient data inversely quantized by the inverse quantization unit 53 with characteristics corresponding to the characteristics of the orthogonal transform unit 14 of FIG.
  • step ST85 the addition unit 55 generates decoded image data.
  • the adder 55 adds the data obtained by performing the inverse orthogonal transform process and the predicted image data selected in step ST89 described later to generate decoded image data. As a result, the original image is decoded.
  • step ST86 the deblocking filter 56 performs filter processing.
  • the deblocking filter 56 performs a filtering process on the decoded image data output from the adding unit 55 to remove block distortion included in the decoded image.
  • step ST87 the frame memory 61 performs a process of storing decoded image data.
  • step ST88 the intra prediction unit 62 and the motion compensation unit 63 perform prediction processing.
  • the intra prediction unit 62 and the motion compensation unit 63 perform prediction processing corresponding to the prediction mode information supplied from the lossless decoding unit 52, respectively.
  • the intra prediction unit 62 performs intra prediction processing based on the prediction mode information, and generates predicted image data.
  • the motion compensation unit 63 performs motion compensation based on the prediction mode information, and generates predicted image data.
  • step ST89 the selector 64 selects predicted image data. That is, the selector 64 selects the prediction image supplied from the intra prediction unit 62 and the prediction image data generated by the motion compensation unit 63 and supplies it to the addition unit 55, and as described above, in step ST85, the inverse orthogonality is performed. It is added to the output of the conversion unit 54.
  • step ST90 the screen rearrangement buffer 57 performs image rearrangement. That is, the screen rearrangement buffer 57 rearranges the order of frames rearranged for encoding by the screen rearrangement buffer 12 of the image encoding device 10 of FIG. 2 to the original display order.
  • step ST91 the D / A converter 58 D / A converts the image data from the screen rearrangement buffer 57. This image is output to a display (not shown), and the image is displayed.
  • the lossless decoding unit 52 acquires hierarchical structure information.
  • the lossless decoding unit 52 acquires hierarchical structure information from the accumulation buffer 51, and determines what kind of block the block having the block size of the first hierarchy is composed of.
  • the lossless decoding unit 52 is configured to correspond to the lossless encoding unit 16, performs a lossless decoding process using a plurality of VLC tables corresponding to the image encoding device, and the like to obtain a difference motion vector. Generate.
  • the lossless decoding unit 52 selects a difference motion vector.
  • the lossless decoding unit 52 selects a differential motion vector corresponding to the hierarchy of the block to be decoded from the differential motion vectors generated using a plurality of VLC tables and the like.
  • step ST104 the lossless decoding unit 52 calculates the motion vector of the highest layer.
  • the lossless decoding unit 52 sets a prediction motion vector based on the prediction motion vector selection information included in the encoded stream from the prediction motion vector candidates for the highest layer. Furthermore, the lossless decoding unit 52 adds the set predicted motion vector and the difference motion vector of the highest layer to calculate the motion vector of the block of the highest layer, and proceeds to step ST105.
  • step ST105 the lossless decoding unit 52 determines whether or not the block to be decoded is a block in the first layer.
  • the lossless decoding unit 52 ends the motion vector decoding process for the block to be encoded when the block to be decoded is a block in the first layer.
  • the lossless decoding part 52 progresses to step ST106, when the block of decoding object is not a block of a 1st hierarchy.
  • the lossless decoding unit 52 determines which layer the decoding target block is based on the hierarchical structure information. When the information indicating the structure of the first layer is “0” and the division of the first layer is not performed, the lossless decoding unit 52 performs the motion vector decoding process for the block to be encoded Exit. When the information indicating the structure of the first layer is “1” indicating that the first layer is being divided, the lossless decoding unit 52 proceeds to step ST106.
  • step ST106 the lossless decoding unit 52 determines whether or not the block to be decoded is a block in the second layer.
  • the lossless decoding unit 52 proceeds to step ST107 when the decoding target block is a block of the second layer, and proceeds to step ST108 when the block to be decoded is not a block of the second layer.
  • the lossless decoding unit 52 proceeds to step ST107.
  • the lossless decoding unit 52 proceeds to step ST108 when the information indicating the structure of the second layer is “1” indicating that the second layer is divided.
  • step ST107 the lossless decoding unit 52 sets the motion vector of the corresponding block in the first layer as the predicted motion vector, and proceeds to step ST111.
  • step ST108 the lossless decoding unit 52 determines whether or not the block to be decoded is a block in the third layer.
  • the lossless decoding unit 52 proceeds to step ST109 when the decoding target block is a third layer block, and proceeds to step ST110 when it is not the second layer block.
  • the lossless decoding unit 52 proceeds to step ST109. Further, the lossless decoding unit 52 proceeds to step ST110 when the information indicating the structure of the third layer is “1” indicating that the third layer is divided.
  • step ST109 the lossless decoding unit 52 sets the motion vector of the corresponding block in the second layer as a predicted motion vector, and proceeds to step ST111.
  • step ST110 the lossless decoding unit 52 sets the motion vector of the corresponding block in the third layer as the predicted motion vector, and proceeds to step ST111.
  • step ST111 the lossless decoding unit 52 adds the difference motion vector and the predicted motion vector to calculate the motion vector of the block to be decoded.
  • step ST88 in FIG. 15 will be described with reference to the flowchart in FIG.
  • step ST121 the lossless decoding unit 52 determines whether or not the target block is intra-coded.
  • the prediction mode information obtained by performing lossless decoding is intra prediction mode information
  • the lossless decoding unit 52 supplies the prediction mode information to the intra prediction unit 62 and proceeds to step ST122.
  • the prediction mode information is not intra prediction mode information
  • the lossless decoding unit 52 supplies the prediction mode information to the motion compensation unit 63 and proceeds to step ST123.
  • the intra prediction unit 62 performs an intra prediction process.
  • the intra prediction unit 62 performs intra prediction using the decoded image data and the prediction mode information supplied from the addition unit 55, and generates predicted image data.
  • step ST123 the motion compensation unit 63 performs an inter prediction process.
  • the motion compensation unit 63 performs motion compensation on the decoded image data supplied from the frame memory 61 based on the prediction mode information and the motion vector from the lossless decoding unit 52. Further, the motion compensation unit 63 outputs predicted image data generated by motion compensation to the selector 64.
  • the motion vector detected in the upper layer block is set as the predicted motion vector, and the encoding efficiency and the image quality are improved.
  • the encoded stream can be correctly decoded.
  • multi-resolution analysis is performed on the image data of the reference image, and the multi-resolution analysis result is stored in a cache memory using SRAM (Static Random Access Memory) or the like. Further, a low resolution image with a small amount of data is generated by using the multi-resolution analysis result stored in the cache memory.
  • the image encoding device performs motion prediction using a low-resolution image, and performs rough detection of a motion vector. Further, the image encoding device sets a selection region based on the result of the rough detection of the motion vector, and performs detailed detection of the motion vector using a high-resolution image of the selection region. By repeating such motion vector detection, the motion vector can be detected with high accuracy even if the amount of image data read from the memory is reduced.
  • FIG. 18 shows another configuration of the image encoding device.
  • parts corresponding to those in FIG. 18 are corresponding to those in FIG.
  • the image encoding device 10a includes an analog / digital conversion unit (A / D conversion unit) 11, a screen rearrangement buffer 12, a subtraction unit 13, an orthogonal transformation unit 14, a quantization unit 15, a lossless encoding unit 16, and a storage buffer 17.
  • the rate control unit 18 is provided.
  • the image encoding device 10 a includes an inverse quantization unit 21, an inverse orthogonal transform unit 22, an addition unit 23, a deblocking filter 24, a multiresolution analysis unit 25, a cache memory 26, a frame memory 27, and a multiresolution reconstruction unit 28.
  • the multi-resolution analysis / reconstruction unit 29 is provided.
  • the image encoding device 10a includes an intra prediction unit 31, a motion prediction / compensation unit 32a, and a predicted image / optimum mode selection unit 33.
  • the A / D converter 11 converts an analog image signal into digital image data and outputs the digital image data to the screen rearrangement buffer 12.
  • the screen rearrangement buffer 12 rearranges the frames of the image data output from the A / D conversion unit 11.
  • the screen rearrangement buffer 12 rearranges the frames according to the GOP (Group of Pictures) structure related to the encoding process, and subtracts the image data after the rearrangement, the intra prediction unit 31, and the motion prediction / compensation unit. To 32a.
  • GOP Group of Pictures
  • the subtraction unit 13 is supplied with the image data output from the screen rearrangement buffer 12 and the predicted image data selected by the predicted image / optimum mode selection unit 33 described later.
  • the subtraction unit 13 calculates prediction error data that is a difference between the image data output from the screen rearrangement buffer 12 and the prediction image data supplied from the prediction image / optimum mode selection unit 33, and sends the prediction error data to the orthogonal transformation unit 14. Output.
  • the orthogonal transform unit 14 performs orthogonal transform processing such as discrete cosine transform (DCT) and Karoonen-Loeve transform on the prediction error data output from the subtraction unit 13.
  • the orthogonal transform unit 14 outputs transform coefficient data obtained by performing the orthogonal transform process to the quantization unit 15.
  • the quantization unit 15 is supplied with transform coefficient data output from the orthogonal transform unit 14 and a rate control signal from a rate control unit 18 described later.
  • the quantization unit 15 quantizes the transform coefficient data and outputs the quantized data to the lossless encoding unit 16 and the inverse quantization unit 21. Further, the quantization unit 15 changes the bit rate of the quantized data by switching the quantization parameter (quantization scale) based on the rate control signal from the rate control unit 18.
  • the lossless encoding unit 16 is supplied with quantized data output from the quantization unit 15 and prediction mode information from an intra prediction unit 31, a motion prediction / compensation unit 32a, and a predicted image / optimum mode selection unit 33, which will be described later.
  • the prediction mode information includes a macroblock type indicating a prediction block size, a prediction mode, reference picture information, and the like according to intra prediction or inter prediction.
  • the lossless encoding unit 16 performs an encoding process on the quantized data by, for example, variable length encoding or arithmetic encoding, generates an encoded stream, and outputs the encoded stream to the accumulation buffer 17.
  • the lossless encoding unit 16 performs lossless encoding of the prediction mode information and adds it to, for example, header information of the encoded stream. Further, the lossless encoding unit 16 sets, as a predicted motion vector, a motion vector detected for a block in the next higher layer including the prediction block for the prediction block in the optimum mode that is a block of the image to be encoded. Then, the difference motion vector indicating the difference between the predicted motion vector and the motion vector of the encoding target block is losslessly encoded and added to the encoded stream.
  • the lossless encoding unit 16 also sets a prediction motion vector for each prediction block and performs lossless encoding of a difference motion vector indicating a difference from the motion vector of the prediction block even in the calculation of a cost function value to be described later.
  • the generated code amount including the encoded data of the differential motion vector can be calculated.
  • the accumulation buffer 17 accumulates the encoded stream from the lossless encoding unit 16.
  • the accumulation buffer 17 outputs the accumulated encoded stream at a transmission rate corresponding to the transmission path.
  • the rate control unit 18 monitors the free capacity of the storage buffer 17, generates a rate control signal according to the free capacity, and outputs it to the quantization unit 15.
  • the rate control unit 18 acquires information indicating the free capacity from the accumulation buffer 17, for example.
  • the rate control unit 18 reduces the bit rate of the quantized data by the rate control signal when the free space is low.
  • the rate control unit 18 increases the bit rate of the quantized data by the rate control signal.
  • the inverse quantization unit 21 performs an inverse quantization process on the quantized data supplied from the quantization unit 15.
  • the inverse quantization unit 21 outputs transform coefficient data obtained by performing the inverse quantization process to the inverse orthogonal transform unit 22.
  • the inverse orthogonal transform unit 22 outputs the data obtained by performing the inverse orthogonal transform process on the transform coefficient data supplied from the inverse quantization unit 21 to the addition unit 23.
  • the adder 23 adds the data supplied from the inverse orthogonal transform unit 22 and the predicted image data supplied from the predicted image / optimum mode selection unit 33 to generate reference image data, and deblocks the reference image data. It outputs to the filter 24 and the intra estimation part 31.
  • the deblocking filter 24 performs a filter process for reducing block distortion that occurs during image coding.
  • the deblocking filter 24 performs a filtering process for removing block distortion from the reference image data supplied from the adding unit 23, and outputs the filtered reference image data to the multi-resolution analysis unit 25.
  • the multi-resolution analysis unit 25 performs multi-band analysis on the reference image data, for example, subband decomposition using discrete wavelet transform, and outputs the multi-resolution analysis result to the cache memory 26.
  • the multi-resolution analysis unit 25 performs wavelet transform of an image using, for example, a 5/3 reversible filter.
  • FIG. 19 is a diagram for explaining one-dimensional subband decomposition and reconstruction.
  • the high-frequency component is obtained by performing filtering processing by the high-pass filter (HPF) 711 and thinning processing by the thinning unit (downsampler) 712 on the conversion target image 0L.
  • An image 1H is generated.
  • the low-pass component image 1L is generated by performing filtering processing by the low-pass filter (LPF) 713 and thinning processing by the thinning unit 714 on the conversion target image 0L.
  • LPF low-pass filter
  • the low-frequency component image 1L is subjected to filter processing by the high-pass filter 715 and thinning-out processing by the thinning unit 716 to generate a high-frequency component image 2H. Further, the low-frequency component image 1L is subjected to filter processing by the low-pass filter 717 and thinning-out processing by the thinning unit 718 to generate a low-frequency component image 2L.
  • the filtering process and the thinning process it is possible to generate images having different resolutions. Further, when the process shown in FIG. 19A is performed in the horizontal direction and the vertical direction, the result of subband decomposition in the two-dimensional space is as shown in FIG.
  • the cache memory 26 stores the multi-resolution analysis results in order from low resolution to high resolution. In addition, the cache memory stores the multi-resolution analysis result exceeding the memory capacity in the frame memory 27.
  • the multi-resolution reconstruction unit 28 reconstructs reference images having different resolutions and outputs them to the motion prediction / compensation unit 32a.
  • the multi-resolution reconstruction unit 28 performs inverse wavelet transform using, for example, a 5/3 reversible filter.
  • the multi-resolution reconstruction unit 28 reconstructs an image by synthesizing a low-frequency component image and a high-frequency component image.
  • the interpolation processing by the interpolation unit (upsampler) 721 and the filtering processing by the low-pass filter 722 are performed on the low-frequency component image 2L, and the high-frequency component image 2H.
  • the interpolation processing by the interpolation unit 723 and the filtering processing by the high-pass filter 724 are respectively performed.
  • the filtered image is added by the adding unit 725 to generate the low-frequency component image 1L. Further, interpolation processing by the interpolation unit 726 and filtering processing by the low-pass filter 727 are performed on the low-frequency component image 1L, and interpolation processing by the interpolation unit 728 and filtering processing by the high-pass filter 729 are performed on the high-frequency component image 1H. Do each. Further, the image after filtering is added by the adding unit 730 to generate an image 0L before subband division. In this way, by performing the interpolation process and the filter process, it is possible to reconstruct an image before subband decomposition from images having different resolutions. Furthermore, when the process shown in FIG.
  • the image after subband decomposition shown in FIG. 20 can be returned to the image before division.
  • an image 1LL can be generated by synthesizing the images 2LL, 2HL, 2LH, and 2HH shown in FIG.
  • the image 0LL can be reconstructed by combining the images 1LL, 1HL, 1LH, and 1HH.
  • the multi-resolution analysis / reconstruction unit 29 performs multi-resolution analysis, for example, discrete wavelet transform, similar to the multi-resolution analysis unit 25 on the encoding target image. Similarly to the multi-resolution reconstruction unit 28, the multi-resolution analysis / reconstruction unit 29 reconstructs an image by selectively using the multi-resolution analysis result, generates an encoding target image having a different resolution, and performs motion. Output to the prediction / compensation unit 32a.
  • multi-resolution analysis for example, discrete wavelet transform
  • the intra prediction unit 31 uses the image data of the encoding target image output from the screen rearrangement buffer 12 and the reference image data supplied from the addition unit 23 to perform intra prediction processing for all candidate intra prediction modes. Do. Furthermore, the intra prediction unit 31 calculates a cost function value for each intra prediction mode, and optimizes the intra prediction mode in which the calculated cost function value is minimum, that is, the intra prediction mode in which the encoding efficiency is the best. Select as the intra prediction mode. The intra prediction unit 31 outputs the predicted image data generated in the optimal intra prediction mode, the prediction mode information regarding the optimal intra prediction mode, and the cost function value in the optimal intra prediction mode to the predicted image / optimum mode selection unit 33. In addition, the intra prediction unit 31 sends the prediction mode information related to the intra prediction mode to the lossless encoding unit 16 in the intra prediction process of each intra prediction mode in order to obtain the generated code amount used in the calculation of the cost function value as described later. Output.
  • the motion prediction / compensation unit 32a performs motion prediction / compensation processing with all the prediction block sizes (motion compensation block sizes) corresponding to the macroblock.
  • the motion prediction / compensation unit 32a is supplied from the multiresolution reconstruction unit 28 and the multiresolution analysis / reconstruction unit 29 for each image of each predicted block size in the macroblock image read from the screen rearrangement buffer 12.
  • a motion vector is detected using the obtained image data.
  • the motion prediction / compensation unit 32a performs motion compensation processing on the reference image based on the detected motion vector to generate a predicted image.
  • the motion prediction / compensation unit 32a calculates a cost function value for each predicted motion vector candidate and notifies the lossless encoding unit 16 of the cost function value.
  • the motion prediction / compensation unit 32a uses, as the optimal inter prediction mode, the prediction block size with the smallest cost function value, that is, the prediction block size with the best coding efficiency, based on the cost function value calculated with each prediction block size. select.
  • the motion prediction / compensation unit 32a outputs the prediction image data generated in the optimal inter prediction mode, the prediction mode information regarding the optimal inter prediction mode, and the cost function value in the optimal inter prediction mode to the prediction image / optimum mode selection unit 33. To do.
  • the motion prediction / compensation unit 32a outputs prediction mode information related to the inter prediction mode to the lossless encoding unit 16 in the inter prediction process with each prediction block size in order to obtain the generated code amount used in the calculation of the cost function value. To do. Note that the motion prediction / compensation unit 32a also performs prediction of a skipped macroblock or direct mode as the inter prediction mode.
  • the predicted image / optimum mode selection unit 33 compares the cost function value supplied from the intra prediction unit 31 with the cost function value supplied from the motion prediction / compensation unit 32a in units of macroblocks, and the cost function value is small. Is selected as the optimum mode with the best coding efficiency. Further, the predicted image / optimum mode selection unit 33 outputs the predicted image data generated in the optimal mode to the subtraction unit 13 and the addition unit 23. Further, the predicted image / optimum mode selection unit 33 outputs the prediction mode information of the optimal mode to the lossless encoding unit 16. Note that the predicted image / optimum mode selection unit 33 performs intra prediction or inter prediction in units of slices.
  • FIG. 21 is a flowchart showing the motion vector detection operation in the motion prediction / compensation unit 32a. In the multi-resolution analysis, it is assumed that the subband decomposition shown in FIG. 20 is performed.
  • step ST131 the motion prediction / compensation unit 32a acquires a low-resolution encoding target image.
  • the motion prediction / compensation unit 32a acquires, for example, the image of the block to be encoded corresponding to the image 2LL having the lowest resolution as the low-resolution encoding target image from the multi-resolution analysis / reconstruction unit 29.
  • step ST132 the motion prediction / compensation unit 32a acquires a low-resolution reference image.
  • the motion prediction / compensation unit 32a acquires the reference image of the image 2LL corresponding to the coding target block from the multi-resolution reconstruction unit 28, for example.
  • step ST133 the motion prediction / compensation unit 32a detects a motion vector.
  • the motion prediction / compensation unit 32a performs block matching or the like between the image of the encoding target block and the reference image, and detects a motion vector of the encoding target block.
  • step ST134 the motion prediction / compensation unit 32a determines whether the image used for detecting the motion vector is the highest resolution image.
  • the motion prediction / compensation unit 32a ends the motion vector detection operation when the image used for motion vector detection is the highest resolution image.
  • the motion prediction / compensation unit 32a proceeds to step ST135 when the image used for motion vector detection is not the highest resolution image.
  • the motion prediction / compensation unit 32a acquires a high-resolution encoding target image.
  • the motion prediction / compensation unit 32a acquires from the multi-resolution analysis / reconstruction unit 29 an encoding target image having a higher resolution than the image used in the previous motion vector detection. For example, when the image 2LL is used in the previous motion vector detection, an image of a block to be encoded corresponding to the image 1LL having a higher resolution than the image 2LL is acquired as a high-resolution encoding target image.
  • step ST136 the motion prediction / compensation unit 32a acquires a high-resolution selected reference image.
  • the motion prediction / compensation unit 32a sets the selection region based on the motion vector detected by the previous motion vector detection.
  • the motion prediction / compensation unit 32a acquires a reference image of a selection area having a higher resolution than the image used in the previous motion vector detection as a high resolution selection reference image. For example, when the image 2LL is used in the previous motion vector detection, a reference image of a selection region corresponding to the image 1LL having a higher resolution than the image 2LL is acquired as a high-resolution selection reference image, and the process proceeds to step ST133.
  • the motion vector is detected with higher accuracy using the high-resolution image.
  • the image 1LL is not the highest resolution image
  • a higher resolution image that is, the image 0LL of the encoding target block is acquired.
  • a selection region is set based on a motion vector detected using an image having a resolution of 1LL.
  • the motion prediction / compensation unit 32a obtains a reference image of the selected region that has a higher resolution than the image used in the previous motion vector detection. By using this acquired image, the motion vector can be detected with higher accuracy.
  • the motion vector is accurately obtained by selectively using the multi-resolution analysis result and acquiring the lowest resolution image or reconstructing the high resolution image of the selected region. Can be detected well. Therefore, even if the amount of image data to be read from the memory is reduced, the motion vector can be detected with high accuracy. Therefore, it is possible to reduce the influence of data read delay, transfer speed delay, etc. Can be performed efficiently.
  • the cache memory 26 stores the multi-resolution analysis results in the order from low resolution to high resolution, and stores the multi-resolution analysis results exceeding the memory capacity in the frame memory 27. Therefore, acquisition of the lowest resolution image and reconstruction of the high resolution image of the selected area can be performed quickly, and motion vectors can be detected efficiently.
  • the program can be recorded in advance on a hard disk or ROM (Read Only Memory) as a recording medium.
  • the program can be temporarily or permanently stored on a removable recording medium such as a flexible disk, CD-ROM (Compact Disc Read Only Memory), MO (Magneto optical disc), DVD (Digital Versatile Disc), magnetic disk, or semiconductor memory. It can be stored (recorded).
  • a removable recording medium can be provided as so-called package software.
  • the program is wirelessly transferred from the download site to the computer, or is wired to the computer via a network such as a LAN (Local Area Network) or the Internet.
  • the computer can receive the program transferred in this manner and install it on a recording medium such as a built-in hard disk.
  • the step of describing the program includes not only the processing that is performed in time series in the described order but also the processing that is not necessarily performed in time series but is executed in parallel or individually.
  • H.264 is used as the encoding method / decoding method.
  • the H.264 / AVC method is used, but the present invention can also be applied to an image encoding device / image decoding device using an encoding method / decoding method for performing other motion prediction / compensation processing.
  • the present invention is, for example, MPEG, H.264.
  • Image information (bitstream) compressed by orthogonal transformation such as discrete cosine transformation and motion compensation, such as 26x, is transmitted via network media such as satellite broadcasting, cable TV (television), the Internet, and cellular phones.
  • the present invention can be applied to an image encoding device and an image decoding device that are used when receiving or processing on a storage medium such as an optical, magnetic disk, and flash memory.
  • the image encoding devices 10 and 10a and the image decoding device 50 described above can be applied to any electronic device. Examples thereof will be described below.
  • FIG. 22 illustrates a schematic configuration of a television apparatus to which the present invention is applied.
  • the television apparatus 90 includes an antenna 901, a tuner 902, a demultiplexer 903, a decoder 904, a video signal processing unit 905, a display unit 906, an audio signal processing unit 907, a speaker 908, and an external interface unit 909. Furthermore, the television apparatus 90 includes a control unit 910, a user interface unit 911, and the like.
  • the tuner 902 selects a desired channel from the broadcast wave signal received by the antenna 901, performs demodulation, and outputs the obtained stream to the demultiplexer 903.
  • the demultiplexer 903 extracts video and audio packets of the program to be viewed from the stream, and outputs the extracted packet data to the decoder 904. Further, the demultiplexer 903 supplies a packet of data such as EPG (Electronic Program Guide) to the control unit 910. If scrambling is being performed, descrambling is performed by a demultiplexer or the like.
  • EPG Electronic Program Guide
  • the decoder 904 performs packet decoding processing, and outputs video data generated by the decoding processing to the video signal processing unit 905 and audio data to the audio signal processing unit 907.
  • the video signal processing unit 905 performs noise removal, video processing according to user settings, and the like on the video data.
  • the video signal processing unit 905 generates video data of a program to be displayed on the display unit 906, image data by processing based on an application supplied via a network, and the like.
  • the video signal processing unit 905 generates video data for displaying a menu screen for selecting an item and the like, and superimposes the video data on the video data of the program.
  • the video signal processing unit 905 generates a drive signal based on the video data generated in this way, and drives the display unit 906.
  • the display unit 906 drives a display device (for example, a liquid crystal display element or the like) based on a drive signal from the video signal processing unit 905 to display a program video or the like.
  • a display device for example, a liquid crystal display element or the like
  • the audio signal processing unit 907 performs predetermined processing such as noise removal on the audio data, performs D / A conversion processing and amplification processing on the processed audio data, and outputs the audio data by supplying the audio data to the speaker 908. .
  • the external interface unit 909 is an interface for connecting to an external device or a network, and transmits and receives data such as video data and audio data.
  • a user interface unit 911 is connected to the control unit 910.
  • the user interface unit 911 includes an operation switch, a remote control signal receiving unit, and the like, and supplies an operation signal corresponding to a user operation to the control unit 910.
  • the control unit 910 is configured using a CPU (Central Processing Unit), a memory, and the like.
  • the memory stores a program executed by the CPU, various data necessary for the CPU to perform processing, EPG data, data acquired via a network, and the like.
  • the program stored in the memory is read and executed by the CPU at a predetermined timing such as when the television device 90 is activated.
  • the CPU controls each unit so that the television device 90 operates according to the user operation by executing the program.
  • the television device 90 is provided with a bus 912 for connecting the tuner 902, the demultiplexer 903, the video signal processing unit 905, the audio signal processing unit 907, the external interface unit 909, and the control unit 910.
  • the decoder 904 is provided with the function of the image decoding apparatus (image decoding method) of the present application. Therefore, by using the function of the image encoding device of the present application on the broadcast station side, the encoded stream is generated by the television device even if the encoding stream is generated by improving the encoding efficiency and the image quality. Can be correctly decrypted.
  • FIG. 23 illustrates a schematic configuration of a mobile phone to which the present invention is applied.
  • the cellular phone 92 includes a communication unit 922, an audio codec 923, a camera unit 926, an image processing unit 927, a demultiplexing unit 928, a recording / reproducing unit 929, a display unit 930, and a control unit 931. These are connected to each other via a bus 933.
  • an antenna 921 is connected to the communication unit 922, and a speaker 924 and a microphone 925 are connected to the audio codec 923. Further, an operation unit 932 is connected to the control unit 931.
  • the mobile phone 92 performs various operations such as transmission / reception of voice signals, transmission / reception of e-mail and image data, image shooting, and data recording in various modes such as a voice call mode and a data communication mode.
  • the voice signal generated by the microphone 925 is converted into voice data and compressed by the voice codec 923 and supplied to the communication unit 922.
  • the communication unit 922 performs audio data modulation processing, frequency conversion processing, and the like to generate a transmission signal.
  • the communication unit 922 supplies a transmission signal to the antenna 921 and transmits it to a base station (not shown).
  • the communication unit 922 performs amplification, frequency conversion processing, demodulation processing, and the like of the reception signal received by the antenna 921, and supplies the obtained audio data to the audio codec 923.
  • the audio codec 923 performs audio data expansion or conversion into an analog audio signal, and outputs it to the speaker 924.
  • the control unit 931 receives character data input by operating the operation unit 932 and displays the input characters on the display unit 930.
  • the control unit 931 generates mail data based on a user instruction or the like in the operation unit 932 and supplies the mail data to the communication unit 922.
  • the communication unit 922 performs mail data modulation processing, frequency conversion processing, and the like, and transmits the obtained transmission signal from the antenna 921.
  • the communication unit 922 performs amplification, frequency conversion processing, demodulation processing, and the like of the reception signal received by the antenna 921, and restores mail data. This mail data is supplied to the display unit 930 to display the mail contents.
  • the mobile phone 92 can also store the received mail data in a storage medium by the recording / playback unit 929.
  • the storage medium is any rewritable storage medium.
  • the storage medium is a removable medium such as a semiconductor memory such as a RAM or a built-in flash memory, a hard disk, a magnetic disk, a magneto-optical disk, an optical disk, a USB memory, or a memory card.
  • the image data generated by the camera unit 926 is supplied to the image processing unit 927.
  • the image processing unit 927 performs encoding processing of image data and generates encoded data.
  • the demultiplexing unit 928 multiplexes the encoded data generated by the image processing unit 927 and the audio data supplied from the audio codec 923 by a predetermined method, and supplies the multiplexed data to the communication unit 922.
  • the communication unit 922 performs modulation processing and frequency conversion processing of multiplexed data, and transmits the obtained transmission signal from the antenna 921.
  • the communication unit 922 performs amplification, frequency conversion processing, demodulation processing, and the like of the reception signal received by the antenna 921, and restores multiplexed data.
  • the multiplexed data is supplied to the demultiplexing unit 928.
  • the demultiplexing unit 928 performs demultiplexing of the multiplexed data, and supplies the encoded data to the image processing unit 927 and the audio data to the audio codec 923.
  • the image processing unit 927 performs a decoding process on the encoded data to generate image data.
  • the image data is supplied to the display unit 930 and the received image is displayed.
  • the audio codec 923 converts the audio data into an analog audio signal, supplies the analog audio signal to the speaker 924, and outputs the received audio.
  • the image processing unit 927 is provided with the functions of the image encoding device (image encoding method) and the image decoding device (image decoding method) of the present application. Therefore, encoding efficiency and image quality can be improved when communicating image data.
  • FIG. 24 exemplifies a schematic configuration of a recording / reproducing apparatus to which the present invention is applied.
  • the recording / reproducing apparatus 94 records, for example, audio data and video data of a received broadcast program on a recording medium, and provides the recorded data to the user at a timing according to a user instruction.
  • the recording / reproducing device 94 can also acquire audio data and video data from another device, for example, and record them on a recording medium.
  • the recording / reproducing device 94 decodes and outputs the audio data and video data recorded on the recording medium, thereby enabling image display and audio output on the monitor device or the like.
  • the recording / reproducing apparatus 94 includes a tuner 941, an external interface unit 942, an encoder 943, an HDD (Hard Disk Drive) unit 944, a disk drive 945, a selector 946, a decoder 947, an OSD (On-Screen Display) unit 948, a control unit 949, A user interface unit 950 is included.
  • Tuner 941 selects a desired channel from a broadcast signal received by an antenna (not shown).
  • the tuner 941 outputs an encoded stream obtained by demodulating the reception signal of a desired channel to the selector 946.
  • the external interface unit 942 includes at least one of an IEEE 1394 interface, a network interface unit, a USB interface, a flash memory interface, and the like.
  • the external interface unit 942 is an interface for connecting to an external device, a network, a memory card, and the like, and receives data such as video data and audio data to be recorded.
  • the encoder 943 performs encoding by a predetermined method when the video data and audio data supplied from the external interface unit 942 are not encoded, and outputs the encoded stream to the selector 946.
  • the HDD unit 944 records content data such as video and audio, various programs, and other data on a built-in hard disk, and reads them from the hard disk during playback.
  • the disk drive 945 records and reproduces signals with respect to the mounted optical disk.
  • An optical disk such as a DVD disk (DVD-Video, DVD-RAM, DVD-R, DVD-RW, DVD + R, DVD + RW, etc.), Blu-ray disk, or the like.
  • the selector 946 selects any stream from the tuner 941 or the encoder 943 and supplies the selected stream to either the HDD unit 944 or the disk drive 945 when recording video or audio. In addition, the selector 946 supplies the stream output from the HDD unit 944 or the disk drive 945 to the decoder 947 when playing back video or audio.
  • the decoder 947 performs a stream decoding process.
  • the decoder 947 supplies the video data generated by performing the decoding process to the OSD unit 948.
  • the decoder 947 outputs audio data generated by performing the decoding process.
  • the OSD unit 948 generates video data for displaying a menu screen for selecting an item and the like, and superimposes it on the video data output from the decoder 947 and outputs the video data.
  • a user interface unit 950 is connected to the control unit 949.
  • the user interface unit 950 includes an operation switch, a remote control signal receiving unit, and the like, and supplies an operation signal corresponding to a user operation to the control unit 949.
  • the control unit 949 is configured using a CPU, a memory, and the like.
  • the memory stores programs executed by the CPU and various data necessary for the CPU to perform processing.
  • the program stored in the memory is read and executed by the CPU at a predetermined timing such as when the recording / reproducing apparatus 94 is activated.
  • the CPU executes the program to control each unit so that the recording / reproducing device 94 operates in accordance with the user operation.
  • the encoder 943 is provided with the function of the image encoding apparatus (image encoding method) of the present application
  • the decoder 947 is provided with the function of the image decoding apparatus (image decoding method). Video recording and reproduction can be performed efficiently by improving the efficiency and image quality.
  • FIG. 25 illustrates a schematic configuration of an imaging apparatus to which the present invention is applied.
  • the imaging device 96 images a subject and displays an image of the subject on a display unit, or records it on a recording medium as image data.
  • the imaging device 96 includes an optical block 961, an imaging unit 962, a camera signal processing unit 963, an image data processing unit 964, a display unit 965, an external interface unit 966, a memory unit 967, a media drive 968, an OSD unit 969, and a control unit 970. Have. In addition, a user interface unit 971 is connected to the control unit 970. Furthermore, the image data processing unit 964, the external interface unit 966, the memory unit 967, the media drive 968, the OSD unit 969, the control unit 970, and the like are connected via a bus 972.
  • the optical block 961 is configured using a focus lens, a diaphragm mechanism, and the like.
  • the optical block 961 forms an optical image of the subject on the imaging surface of the imaging unit 962.
  • the imaging unit 962 is configured using a CCD or CMOS image sensor, generates an electrical signal corresponding to the optical image by photoelectric conversion, and supplies the electrical signal to the camera signal processing unit 963.
  • the camera signal processing unit 963 performs various camera signal processing such as knee correction, gamma correction, and color correction on the electrical signal supplied from the imaging unit 962.
  • the camera signal processing unit 963 supplies the image data after the camera signal processing to the image data processing unit 964.
  • the image data processing unit 964 performs an encoding process on the image data supplied from the camera signal processing unit 963.
  • the image data processing unit 964 supplies the encoded data generated by performing the encoding process to the external interface unit 966 and the media drive 968. Further, the image data processing unit 964 performs a decoding process on the encoded data supplied from the external interface unit 966 and the media drive 968.
  • the image data processing unit 964 supplies the image data generated by performing the decoding process to the display unit 965. Further, the image data processing unit 964 superimposes the processing for supplying the image data supplied from the camera signal processing unit 963 to the display unit 965 and the display data acquired from the OSD unit 969 on the image data. To supply.
  • the OSD unit 969 generates display data such as a menu screen and icons made up of symbols, characters, or figures and outputs them to the image data processing unit 964.
  • the external interface unit 966 includes, for example, a USB input / output terminal, and is connected to a printer when printing an image.
  • a drive is connected to the external interface unit 966 as necessary, a removable medium such as a magnetic disk or an optical disk is appropriately mounted, and a computer program read from them is installed as necessary.
  • the external interface unit 966 has a network interface connected to a predetermined network such as a LAN or the Internet.
  • the control unit 970 reads the encoded data from the memory unit 967 in accordance with an instruction from the user interface unit 971, and supplies the encoded data to the other device connected via the network from the external interface unit 966. it can.
  • the control unit 970 may acquire encoded data and image data supplied from another device via the network via the external interface unit 966 and supply the acquired data to the image data processing unit 964. it can.
  • any readable / writable removable medium such as a magnetic disk, a magneto-optical disk, an optical disk, or a semiconductor memory is used.
  • the recording medium may be any type of removable medium, and may be a tape device, a disk, or a memory card. Of course, a non-contact IC card or the like may be used.
  • media drive 968 and the recording medium may be integrated and configured by a non-portable storage medium such as a built-in hard disk drive or an SSD (Solid State Drive).
  • a non-portable storage medium such as a built-in hard disk drive or an SSD (Solid State Drive).
  • the control unit 970 is configured using a CPU, a memory, and the like.
  • the memory stores programs executed by the CPU, various data necessary for the CPU to perform processing, and the like.
  • the program stored in the memory is read and executed by the CPU at a predetermined timing such as when the imaging device 96 is activated.
  • the CPU executes the program to control each unit so that the imaging device 96 operates according to the user operation.
  • the image data processing unit 964 is provided with the functions of the image encoding device (image encoding method) and the image decoding device (image decoding method) of the present application. Therefore, when the captured image is recorded in the memory unit 967, a recording medium, or the like, it is possible to improve the encoding efficiency and the image quality and efficiently record and reproduce the captured image.
  • the higher-level motion vector is used as a predicted motion vector to improve the prediction accuracy, thereby efficiently decoding and encoding the image. be able to.
  • motion vector detection is performed by performing multi-resolution analysis w on a low-resolution encoding target image generated by multi-resolution analysis and image reconstruction for an image of a block to be encoded, and a reference image. The motion vector is roughly detected using the low-resolution reference image reconstructed using the multi-resolution analysis result, and the high resolution of the selected area set using the high-resolution encoding target image and the coarse detection result is used.
  • the image information (bit stream) obtained by performing encoding in block units such as MPEG and H.26x, Image decoding device and image code used when transmitting / receiving via network media such as star broadcasting, cable TV, Internet, mobile phone, or processing on storage media such as optical, magnetic disk, flash memory, etc. It is suitable for the device.
  • Image decoding device 52. Lossless decoding unit, 58 ... D / A conversion unit, 62 ... motion compensation unit, 64, 946 ... selector, 90 ... television device, 92 ... mobile phone, 94 ... Recording / playback device, 96... Imaging device, 161, 523... Predicted motion vector setting unit, 161 a, 523 a, motion vector storage unit, 161 b, 523 b, motion vector selection unit, 164-1 to 164 -n ... variable length coding unit, 165, 522 ... selection unit, 166 ... hierarchical structure information generation unit, 521-1 to 521-n ... variable length decoding unit, 901, 921 ..Antenna, 902, 941 ...

Landscapes

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

Abstract

 画像の復号化や符号化を効率よく行うことができるようにする。複数の可変長復号化部52によって、互いに異なる階層に応じて可変長符号化に対応する可変長復号化が符号化されたストリームに対して行われる。選択部522は、ストリームに含まれている復号化対象のブロックの階層を示す階層構造情報に基づき、復号化対象のブロックの階層に対応した可変長復号化部の出力を選択する。予測動きベクトル設定部523は、復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを予測動きベクトルに設定して、加算部525は、設定された予測動きベクトルと選択された可変長復号化部から出力された差分動きベクトルを加算して、復号化対象のブロックの動きベクトルを算出する。

Description

画像復号化装置と画像符号化装置およびその方法とプログラム
 この発明は、画像復号化装置と画像符号化装置およびその方法とプログラムに関する。詳しくは、画像の復号化や符号化を効率よく行うことができる画像復号化装置と画像符号化装置およびその方法とプログラムを提供する。
 近年、画像情報をディジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮するMPEGなどの方式に準拠した装置が、放送局などの情報配信、および一般家庭における情報受信の双方において普及しつつある。
 特に、MPEG2(ISO/IEC 13818-2)は、汎用画像符号化方式として定義されており、飛び越し走査画像および順次走査画像の双方、並びに標準解像度画像および高精細画像を網羅する標準で、プロフェッショナル用途およびコンシューマー用途の広範なアプリケーションに現在広く用いられている。MPEG2圧縮方式を用いることにより、例えば720×480画素を持つ標準解像度の飛び越し走査画像であれば4~8Mbpsの符号量(ビットレート)を割り当てることで、高い圧縮率と良好な画質の実現が可能である。また、1920×1088画素を持つ高解像度の飛び越し走査画像であれば、18~22Mbpsの符号量を割り当てることで、高い圧縮率と良好な画質の実現が可能である。
 MPEG2は主として放送用に適合する高画質符号化を対象としていたが、MPEG1より低い符号量(ビットレート)、つまりより高い圧縮率の符号化方式には対応していなかった。携帯端末の普及により、今後そのような符号化方式のニーズは高まると思われ、これに対応してMPEG4符号化方式の標準化が行われた。画像符号化方式に関しては、1998年12月にISO/IEC 14496-2としてその規格が国際標準に承認された。
 さらに、近年、MPEG2やMPEG4といった符号化方式に比べ、その符号化、復号化により多くの演算量が要求されるものの、より高い符号化効率が実現されている。例えば、H.26Lをベースとして、H.26Lではサポートされない機能をも取り入れ、より高い符号化効率を実現する標準化が行われてH.264およびMPEG-4 Part10 (Advanced Video Coding、以下H.264/AVCと記す)という名で国際標準となっている。
 また、H.264/AVCを用いて画像データをより効率的に符号化することが特許文献1等に開示されている。
特開2008-4984号公報
 ところで、従来の方法では、高い符号化効率の実現がはかられているが、さらに符号化効率の向上をより効率よく実現可能とすることが望まれている。
 そこで、この発明では、画像の復号化や符号化を効率よく行うことができる画像復号化装置と画像符号化装置およびその方法とプログラムを提供することを目的とする。
 この発明の第1の側面は、符号化されたストリームの復号化を行い差分動きベクトルを出力する可変長復号化部と、復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを、該復号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定部と、前記差分動きベクトルと前記予測動きベクトルを加算して、前記復号化対象のブロックの動きベクトルを算出する加算部とを有する画像復号化装置にある。
 この発明では、複数の可変長復号化部によって、互いに異なる階層に応じて可変長符号化に対応する可変長復号化が符号化されたストリームに対して行われる。また、ストリームに含まれている復号化対象のブロックの階層を示す階層構造情報に基づき、復号化対象のブロックの階層に対応した可変長復号化部の出力が選択される。さらに、復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルが予測動きベクトルに設定されて、この設定された予測動きベクトルと選択された可変長復号化部から出力された差分動きベクトルが加算されて、復号化対象のブロックの動きベクトルが算出される。
 この発明の第2の側面は、符号化されたストリームの復号化を行い、差分動きベクトルを出力する可変長復号化工程と、復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを、該復号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定工程と、前記差分動きベクトルと前記予測動きベクトルを加算して、前記復号化対象のブロックの動きベクトルを算出する加算工程とを設けた画像復号化方法にある。
 この発明の第3の側面は、画像符号化をコンピュータで実行させるプログラムであって、符号化されたストリームの復号化を行い、差分動きベクトルを出力する可変長復号化手順と、復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを、該復号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定手順と、前記差分動きベクトルと前記予測動きベクトルを加算して、前記復号化対象のブロックの動きベクトルを算出する加算手順とを前記コンピュータで実行させるプログラムにある。
 この発明の第4の側面は、符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルを、該符号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定部と、前記符号化対象のブロックの動きベクトルと、前記設定された予測動きベクトルとの差分を算出する差分演算部と、算出された差分動きベクトルの可変長符号化を行う可変長符号化部とを有する画像符号化装置にある。
 この発明では、符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルが、符号化対象のブロックの予測動きベクトルに設定される。また、符号化対象のブロックの動きベクトルと、設定された予測動きベクトルとの差分を示す差分動きベクトルが生成される。互いに異なる階層に対して符号化効率が最も高くなるように最適化した可変長符号化を行う複数の可変長符号化部で差分動きベクトルの符号化が行われて、符号化対象のブロックの階層に対応する可変長符号化部の出力が選択されて符号化ストリームに含められる。また、最上位階層のブロックサイズであるマクロブロックごとに、このマクロブロックに含まれる符号化対象のブロックの階層を示す階層構造情報が生成されて符号化ストリームに含められる。さらに、隣接する符号化済みのマクロブロックの動きベクトルが予測動きベクトルの候補とされて、この候補から符号化効率が最も高くなる動きベクトルが最上位階層の予測動きベクトルに設定される。
 この発明の第5の側面は、符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルを、該符号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定工程と、前記符号化対象のブロックの動きベクトルと、前記動きベクトルとの差分を算出する差分演算工程と、前記算出された差分動きベクトルの符号化を行う可変長符号化工程とを設けた画像符号化方法にある。
 この発明の第6の側面は、画像符号化をコンピュータで実行させるプログラムであって、符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルを、該符号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定手順と、前記符号化対象のブロックの動きベクトルと、前記動きベクトルとの差分を算出する差分演算手順と、前記算出された差分動きベクトルの符号化を行う可変長符号化手順とを前記コンピュータで実行させるプログラムにある。
 この発明の第7の側面は、符号化対象のブロックの画像に対して多重解像度解析と画像の再構築を行う多重解像度解析・再構築部と、前記動きベクトルの算出に用いる参照画像に対して多重解像度解析を行う多重解像度解析部と、前記参照画像の多重解像度解析結果を記憶するメモリと、前記メモリに記憶されている前記多重解像度解析結果を用いて、画像の再構築を行う多重解像度再構築部と、前記多重解像度解析・再構築部で生成された低解像度符号化対象画像と前記多重解像度再構築部で生成された低解像度参照画像とを用いて動きベクトルの粗検出を行い、前記多重解像度解析・再構築部で生成された高解像度符号化対象画像と、前記粗検出した動きベクトルに基づいて設定した選択領域の前記多重解像度再構築部で生成された高解像度選択参照画像を用いて前記動きベクトルの詳細検出を行う動き予測部とを有する画像符号化装置にある。
 この発明では、符号化対象のブロックの画像に対して多重解像度解析と画像の再構築が行われる。また、動きベクトルの算出に用いる参照画像に対して多重解像度解析が行われて、参照画像の多重解像度解析結果が低解像度から高解像度の順に第1のメモリに記憶される。また、第1のメモリのメモリ容量を超える多重解像度解析結果は第2のメモリに記憶される。この第1のメモリに記憶されている多重解像度解析結果を用いて、画像の再構築が行われる。動きベクトルの検出では、符号化対象のブロックの画像に対する多重解像度解析と画像の再構築によって生成された低解像度符号化対象画像と、第1のメモリに記憶されている多重解像度解析結果を用いて再構築された低解像度参照画像とを用いて動きベクトルの粗検出が行われる。さらに、高解像度符号化対象画像と、粗検出した動きベクトルに基づいて設定した選択領域の高解像度選択参照画像を用いて動きベクトルの詳細検出が行われる。また、画像の再構築に必要とする多重解像度解析結果が第1のメモリに記憶されていないとき、第2のメモリから必要とする多重解像度解析結果を読み出して高解像度選択参照画像の生成が行われる。
 この発明の第8の側面は、符号化対象のブロックの画像に対して多重解像度解析と再構築を行う多重解像度解析・再構築工程と、前記動きベクトルの算出に用いる参照画像に対して多重解像度解析を行う多重解像度解析工程と、前記多重解像度解析結果をメモリに記憶する記憶工程と、前記メモリに記憶されている前記多重解像度解析結果を用いて、画像の再構築を行う多重解像度再構築工程と、前記多重解像度解析・再構築部で生成された低解像度符号化対象画像と前記多重解像度再構築部で生成された低解像度参照画像とを用いて動きベクトルの粗検出を行い、前記多重解像度解析・再構築部で生成された高解像度符号化対象画像と、前記粗検出した動きベクトルに基づいて設定した選択領域の前記多重解像度再構築部で生成された高解像度選択参照画像を用いて前記動きベクトルの詳細検出を行う動き予測工程とを設けた画像符号化方法にある。
 この発明の第9の側面は、画像符号化をコンピュータで実行させるプログラムであって、符号化対象のブロックの画像に対して多重解像度解析と再構築を行う多重解像度解析・再構築手順と、前記動きベクトルの算出に用いる参照画像に対して多重解像度解析を行う多重解像度解析手順と、前記多重解像度解析結果をメモリに記憶させる記憶手順と、前記メモリに記憶されている前記多重解像度解析結果を用いて、画像の再構築を行う多重解像度再構築手順と、前記多重解像度解析・再構築部で生成された低解像度符号化対象画像と前記多重解像度再構築部で生成された低解像度参照画像とを用いて動きベクトルの粗検出を行い、前記多重解像度解析・再構築部で生成された高解像度符号化対象画像と、前記粗検出した動きベクトルに基づいて設定した選択領域の前記多重解像度再構築部で生成された高解像度選択参照画像を用いて前記動きベクトルの詳細検出を行う動き予測手順とを前記コンピュータで実行させるプログラム。
 なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、光ディスクや磁気ディスク、半導体メモリなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
 この発明によれば、符号化されたストリームの復号化を行い、差分動きベクトルが生成される。さらに、復号化対象のブロックを含む復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルが予測動きベクトルに設定されて、生成された差分動きベクトルと設定された予測動きベクトルが加算されて、復号化対象のブロックの動きベクトルが算出される。また、符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルが、符号化対象のブロックの予測動きベクトルに設定されて、符号化対象のブロックの動きベクトルと設定された予測動きベクトルとの差分を示す差分動きベクトルの可変長符号化が行われる。このように、上位階層の動きベクトルを予測動きベクトルとして用いて予測精度を向上させることで、画像の符号化や復号化を効率よく行うことができる。
 また、符号化対象のブロックの画像に対して多重解像度解析と画像の再構築が行われる。さらに、参照画像に対して多重解像度解析が行われて、参照画像の多重解像度解析結果がメモリに記憶される。このメモリに記憶されている多重解像度解析結果を用いて、画像の再構築が行われて、動きベクトルの検出では、符号化対象のブロックの画像に対する多重解像度解析と画像の再構築によって生成された低解像度符号化対象画像と、メモリに記憶されている多重解像度解析結果を用いて再構築された低解像度参照画像とを用いて動きベクトルの粗検出が行われる。また、高解像度符号化対象画像と、粗検出した動きベクトルに基づいて設定した選択領域の高解像度選択参照画像を用いて動きベクトルの詳細検出が行われる。このように低解像度の画像を用いて動きベクトルの粗検出を行い、高解像度符号化対象画像と粗検出結果を用いて設定した選択領域の高解像選択参照画像を用いて動きベクトルの詳細検出が行われるので、動きベクトルの検出のためにメモリから読み出すデータ量が少なく、効率よく動きベクトルを検出できることから画像の符号化を効率よく行うことができる
予測動きベクトルの従来の設定方法を説明するための図である。 画像符号化装置の構成を示した図である。 可逆符号化部における動きベクトルに関する構成を示す図である。 差分動きベクトルの長さと確率密度の関係を例示した図である。 画像符号化処理で用いる予測ブロックサイズを示した図である。 画像符号化処理動作を示すフローチャートである。 予測処理を示すフローチャートである。 イントラ予測処理を示すフローチャートである。 インター予測処理を示すフローチャートである。 可逆符号化部で行われる動きベクトルに関する符号化処理を示すフローチャートである。 動きベクトルに関する符号化処理を行ったときの動作を例示した図である。 階層構造情報を説明するための図である。 画像復号化装置の構成を示した図である。 可逆復号化部における動きベクトルに関する構成を示す図である。 画像復号化処理動作を示すフローチャートである。 可逆復号化部で行われる動きベクトルに関する復号化処理を示すフローチャートである。 予測処理を示すフローチャートである。 画像符号化装置の他の構成を示した図である。 1次元のサブバンド分解を説明するための図である。 2次元空間のサブバンド分解を行ったときのサブバンド分解結果を例示した図である。 動きベクトルの検出動作を示すフローチャートである。 テレビジョン装置の概略構成を例示した図である。 携帯電話機の概略構成を例示した図である。 記録再生装置の概略構成を例示した図である。 撮像装置の概略構成を例示した図である。
 以下、発明を実施するための形態について説明する。なお、説明は以下の順序で行う。
 1.画像符号化装置の構成
 2.可逆符号化部の構成
 3.画像符号化装置の動作
 4.画像復号化装置の構成
 5.可逆復号化部の構成
 6.画像復号化装置の動作
 7.画像符号化装置の他の構成
 8.動きベクトルの検出動作
 9.ソフトウェア処理の場合
 10.電子機器に適用した場合
<1.画像符号化装置の構成>
 画像データの符号化では、符号化対象のブロックの動きベクトルと予測動きベクトルとの差分を取り、その差分動きベクトルを符号化してストリームに含めることで、符号量の削減が行われている。ここで、H.264/AVC方式のように隣接ブロックの動きベクトルの中央値(メディアン)を予測動きベクトルとして用いる場合、必ずしも中央値が最適な予測動きベクトルとは限らない。
 図1は、予測動きベクトルの従来の設定方法を説明するための図である。例えば、図1の(A)に示すように、予測ブロックサイズ(動き補償ブロックサイズ)が小さいとき、隣接ブロックの動きベクトルMV_A,MV_B,MV_Cは符号化対象のブロックと近接した領域の動きベクトルとなり予測精度が高い。すなわち、中央値MV_mdと符号化対象のブロックの動きベクトルMVobとの差が少ない。しかし、図1の(B)に示すように、予測ブロックサイズが大きいとき、隣接ブロックでは符号化対象のブロックから離れている領域も含まれることになる。このため、中央値MV_mdと符号化対象のブロックの動きベクトルMVobとの差が大きい場合が生じて、予測ブロックサイズが小さい場合に比べて、予測精度が低下するおそれがある。
 また、大きなサイズのブロック(上位階層のブロック)について検出した動きベクトルと、この上位階層のブロック内に含まれるサイズの小さいブロック(下位階層のブロック)について検出した動きベクトルは、下位階層のブロックが上位階層のブロックに含まれているため、下位階層の動きベクトルは、上位階層の動きベクトルと近似している場合が多い。
 そこで、本発明の画像符号化装置では、符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルを予測動きベクトルとして用いることで、予測精度の向上をはかり、画像の符号化を効率よく行うことができるようにする。
 図2は、画像符号化装置の構成を示している。画像符号化装置10は、アナログ/ディジタル変換部(A/D変換部)11、画面並び替えバッファ12、減算部13、直交変換部14、量子化部15、可逆符号化部16、蓄積バッファ17、レート制御部18を備えている。さらに、画像符号化装置10は、逆量子化部21、逆直交変換部22、加算部23、デブロッキングフィルタ24、フレームメモリ27、イントラ予測部31、動き予測・補償部32、予測画像・最適モード選択部33を備えている。
 A/D変換部11は、アナログの画像信号をディジタルの画像データに変換して画面並べ替えバッファ12に出力する。
 画面並べ替えバッファ12は、A/D変換部11から出力された画像データに対してフレームの並べ替えを行う。画面並べ替えバッファ12は、符号化処理に係るGOP(Group of Pictures)構造に応じてフレームの並べ替えを行い、並べ替え後の画像データを減算部13とイントラ予測部31と動き予測・補償部32に出力する。
 減算部13には、画面並べ替えバッファ12から出力された画像データと、後述する予測画像・最適モード選択部33で選択された予測画像データが供給される。減算部13は、画面並べ替えバッファ12から出力された画像データと予測画像・最適モード選択部33から供給された予測画像データとの差分である予測誤差データを算出して、直交変換部14に出力する。
 直交変換部14は、減算部13から出力された予測誤差データに対して、離散コサイン変換(DCT;Discrete Cosine Transform)、カルーネン・レーベ変換等の直交変換処理を行う。直交変換部14は、直交変換処理を行うことにより得られた変換係数データを量子化部15に出力する。
 量子化部15には、直交変換部14から出力された変換係数データと、後述するレート制御部18からレート制御信号が供給されている。量子化部15は変換係数データの量子化を行い、量子化データを可逆符号化部16と逆量子化部21に出力する。また、量子化部15は、レート制御部18からのレート制御信号に基づき量子化パラメータ(量子化スケール)を切り替えて、量子化データのビットレートを変化させる。
 可逆符号化部16には、量子化部15から出力された量子化データと、後述するイントラ予測部31と動き予測・補償部32および予測画像・最適モード選択部33から予測モード情報が供給される。なお、予測モード情報には、イントラ予測またはインター予測に応じて、予測ブロックサイズを示すマクロブロックタイプ、予測モード、参照ピクチャ情報等が含まれる。可逆符号化部16は、量子化データに対して例えば可変長符号化または算術符号化等により符号化処理を行い、符号化ストリームを生成して蓄積バッファ17に出力する。また、可逆符号化部16は、予測モード情報を可逆符号化して、符号化ストリームの例えばヘッダ情報に付加する。さらに、可逆符号化部16は、符号化対象の画像のブロックである最適モードの予測ブロックに対して、この予測ブロックを含む1つ上の階層のブロックについて検出した動きベクトルを予測動きベクトルとして設定して、予測動きベクトルと符号化対象のブロックの動きベクトルとの差分を示す差分動きベクトルの可逆符号化を行って、符号化ストリームに付加する。また、可逆符号化部16は、後述するコスト関数値の算出においても、各予測ブロックに対して予測動きベクトルを設定して、予測ブロックの動きベクトルとの差分を示す差分動きベクトルの可逆符号化を行うことで、差分動きベクトルの符号化データを含めた発生符号量を算出できるようにする。
 蓄積バッファ17は、可逆符号化部16からの符号化ストリームを蓄積する。また、蓄積バッファ17は、蓄積した符号化ストリームを伝送路に応じた伝送速度で出力する。
 レート制御部18は、蓄積バッファ17の空き容量の監視を行い、空き容量に応じてレート制御信号を生成して量子化部15に出力する。レート制御部18は、例えば蓄積バッファ17から空き容量を示す情報を取得する。レート制御部18は空き容量が少なくなっているとき、レート制御信号によって量子化データのビットレートを低下させる。また、レート制御部18は蓄積バッファ17の空き容量が十分大きいとき、レート制御信号によって量子化データのビットレートを高くする。
 逆量子化部21は、量子化部15から供給された量子化データの逆量子化処理を行う。逆量子化部21は、逆量子化処理を行うことで得られた変換係数データを逆直交変換部22に出力する。
 逆直交変換部22は、逆量子化部21から供給された変換係数データの逆直交変換処理を行うことで得られたデータを加算部23に出力する。
 加算部23は、逆直交変換部22から供給されたデータと予測画像・最適モード選択部33から供給された予測画像データを加算して参照画像データを生成して、この参照画像データをデブロッキングフィルタ24とイントラ予測部31に出力する。
 デブロッキングフィルタ24は、画像の符号化時に生じるブロック歪みを減少させるためのフィルタ処理を行う。デブロッキングフィルタ24は、加算部23から供給された参照画像データからブロック歪みを除去するフィルタ処理を行い、フィルタ処理後の参照画像データをフレームメモリ27に出力する。
 フレームメモリ27は、デブロッキングフィルタ24から供給されたフィルタ処理後の参照画像データとを保持する。
 イントラ予測部31は、画面並べ替えバッファ12から出力された符号化対象画像の画像データと加算部23から供給された参照画像データを用いて、候補となるすべてのイントラ予測モードのイントラ予測処理を行う。さらに、イントラ予測部31は、各イントラ予測モードに対してコスト関数値を算出して、算出したコスト関数値が最小となるイントラ予測モード、すなわち符号化効率が最良となるイントラ予測モードを、最適イントラ予測モードとして選択する。イントラ予測部31は、最適イントラ予測モードで生成された予測画像データと最適イントラ予測モードに関する予測モード情報、および最適イントラ予測モードでのコスト関数値を予測画像・最適モード選択部33に出力する。また、イントラ予測部31は、後述するようにコスト関数値の算出で用いる発生符号量を得るため、各イントラ予測モードのイントラ予測処理において、イントラ予測モードに関する予測モード情報を可逆符号化部16に出力する。
 動き予測・補償部32は、マクロブロックに対応するすべての予測ブロックサイズ(動き補償ブロックサイズ)で動き予測・補償処理を行う。動き予測・補償部32は、画面並べ替えバッファ12から読み出されたマクロブロックの画像における各予測ブロックサイズの画像ごとに、フレームメモリ27から読み出されたフィルタ処理後の参照画像データを用いて動きベクトルを検出する。さらに、動き予測・補償部32は、検出した動きベクトルに基づいて参照画像に動き補償処理を施して予測画像の生成を行う。
 また、動き予測・補償部32は、予測動きベクトルの候補ごとにコスト関数値を算出して可逆符号化部16に通知する。動き予測・補償部32は、各予測ブロックサイズで算出したコスト関数値に基づき、コスト関数値が最小となる予測ブロックサイズ、すなわち符号化効率が最良となる予測ブロックサイズを、最適インター予測モードとして選択する。動き予測・補償部32は、最適インター予測モードで生成された予測画像データと最適インター予測モードに関する予測モード情報、および最適インター予測モードでのコスト関数値を予測画像・最適モード選択部33に出力する。また、動き予測・補償部32は、コスト関数値の算出で用いる発生符号量を得るため、各予測ブロックサイズでのインター予測処理において、インター予測モードに関する予測モード情報を可逆符号化部16に出力する。なお、動き予測・補償部32は、インター予測モードとして、スキップドマクロブロックやダイレクトモードの予測も行う。
 予測画像・最適モード選択部33は、イントラ予測部31から供給されたコスト関数値と動き予測・補償部32から供給されたコスト関数値を、マクロブロック単位で比較して、コスト関数値が少ない方を、符号化効率が最良となる最適モードとして選択する。また、予測画像・最適モード選択部33は、最適モードで生成した予測画像データを減算部13と加算部23に出力する。さらに、予測画像・最適モード選択部33は、最適モードの予測モード情報を可逆符号化部16に出力する。なお、予測画像・最適モード選択部33は、スライス単位でイントラ予測またはインター予測を行う。
 <2.可逆符号化部の構成>
 図3は、可逆符号化部における動きベクトルに関する構成を示している。可逆符号化部16は、予測動きベクトル設定部161、差分演算部163、可変長符号化部164-1~164-n、選択部165を備えている。また、予測動きベクトル設定部161は、動きベクトル記憶部161aと動きベクトル選択部161bを備えている。
 動きベクトル記憶部161aは、予測ブロックサイズが最大である最上位階層において、予測ブロックサイズが最大であるときの符号化対象のブロック(マクロブロック)に隣接した符号化済みの隣接ブロックの動きベクトルを最上位階層の予測動きベクトルの候補として記憶する。なお、動きベクトル記憶部161aは、ダイレクトモードに対応するため、参照ピクチャにおける符号化対象と同一のブロックの動きベクトルも記憶してもよい。また、動きベクトル記憶部161aは、動き予測・補償部32から供給された各階層のブロックの動きベクトルを記憶する。
 動きベクトル選択部161bは、予測画像・最適モード選択部33から供給された最適モードの予測モード情報に基づき、符号化対象のブロックである最適モードの予測ブロックがいずれの階層であるか判別する。動きベクトル選択部161bは、符号化対象のブロックが最上位階層であるとき、動き予測・補償部32から供給されたコスト関数値に基づき、予測動きベクトルの候補から符号化効率が最良となる予測動きベクトルを設定する。また、動きベクトル選択部161bは、符号化対象のブロックが最上位階層でないとき、判別した階層よりも1つサイズが上の階層であって、符号化対象のブロックを含むブロックについて検出されている動きベクトルを予測動きベクトルとして設定する。
 差分演算部163は、符号化対象のブロックの動きベクトルと予測動きベクトル設定部161で設定された予測動きベクトルとの差分動きベクトルを算出する。
 可変長符号化部164-1~164-nは、差分演算部163で算出された差分動きベクトルの可変長符号化を行う。可変長符号化部164-1~164-nは、互いに異なる階層に対して符号化効率が最も高くなるように最適化した可変長符号化を差分動きベクトルに対して行う。
 ここで、動きベクトルは、図1を用いて上述したように、ブロックサイズが小さいときはブロックサイズが大きい場合に比べて動きベクトルのばらつきが小さくなると考えられる。このため、差分動きベクトルについても、差分動きベクトルの長さが短い発生確率は、ブロックサイズが大きいときよりも、ブロックサイズが小さい方が多くなる。すなわち、差分動きベクトルの長さと確率密度の関係は、例えば図4に示すようになる。
 したがって、可変長符号化部164-1~164-nは、上位階層のブロックサイズの可変長符号化に比べて、差分動きベクトルの長さが短い発生確率が多いため、差分動きベクトルの長さが短い場合に割り当てる符号量を少なくする。例えば、可変長符号化部164-1は、最上位階層に対して符号化効率が最も高くなるように最適化したVLCテーブル例えば図4における破線の特性に対して符号化効率が最も高くなるように最適化したVLCテーブルを用いて可変長符号化を行う。また、可変長符号化部164-nは最下位階層に対して符号化効率が最も高くなるように最適化したVLCテーブル例えば図4における実線の特性に対して符号化効率が最も高くなるように最適化したVLCテーブルを用いて可変長符号化を行う。このように、階層に応じて可変長符号化を行うことで、符号化効率を高くできる。
 選択部165は、可変長符号化部164-1~164-nから供給された符号化データから最適モードの予測ブロックサイズに応じた符号化データを選択して、符号化ストリームのヘッダ情報に付加する。
 階層構造情報生成部166は、予測画像・最適モード選択部33から供給された最適モードの予測ブロックサイズに基づき、最上位階層のブロックサイズであるマクロブロックごとに、このマクロブロックに含まれる符号化対象のブロックの階層を示す階層構造情報を生成する。階層構造情報生成部166は、生成した階層構造情報を符号化ストリームのヘッダ情報に付加する。
 また、図示せずも、可逆符号化部16は、画像復号化装置で予測動きベクトルを生成できるようにするため、最上位階層の予測動きベクトルとしていずれの候補が選択されたかを示す予測動きベクトル情報を符号化ストリームのヘッダ情報に付加する。なお、最上位階層については、予測動きベクトル情報と差分動きベクトルの符号化データに替えて、最上位階層のブロックの動きベクトルを符号化して符号化ストリームに含めるようにしてもよい。
 <3.画像符号化装置の動作>
 次に、画像符号化処理動作について説明する。図5は、画像符号化処理で用いる予測ブロックサイズを示している。H.264/AVC方式では、16×16画素のマクロブロックに対して、図5の(C)(D)に示すように16×16画素~4×4画素の予測ブロックサイズが規定されている。また、H.264/AVC方式よりも拡張された大きさのマクロブロックを用いる場合、例えば32×32画素のマクロブロックを用いる場合、例えば図5の(B)に示す予測ブロックサイズが規定される。また、例えば64×64画素のマクロブロックを用いる場合、例えば図5の(A)に示す予測ブロックサイズが規定される。
 なお、図5において、「Skip/direct」は、動き予測・補償部32において、スキップドマクロブロックやダイレクトモードを選択したときの予測ブロックサイズであることを示している。また、「ME」は動き補償ブロックサイズであることを示している。また、「P8×8」は、マクロブロックのサイズを小さくした下位の階層でさらに分割できることを示している。
 画像符号化装置では、動きベクトルの符号化においてブロックサイズに応じた階層化を行う。なお、説明を容易とするため、階層化では、例えば32×32画素のブロックサイズを最上位階層(第1階層)として、このブロックを上下左右に2分割して得られる16×16画素のブロックをさらに1つ下の階層(第2階層)のブロックとする。さらに、16×16画素のブロックを上下左右に2分割して得られる8×8画素のブロックをさらに1つ下の階層(第3階層)のブロック、8×8画素のブロックを上下左右に2分割して得られる4×4画素のブロックを最下位階層(第4階層)のブロックとした場合について例示する。
 図6は、画像符号化処理動作を示すフローチャートである。ステップST11において、A/D変換部11は入力された画像信号をA/D変換する。
 ステップST12において画面並べ替えバッファ12は、画像並べ替えを行う。画面並べ替えバッファ12は、A/D変換部11より供給された画像データを記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
 ステップST13において減算部13は、予測誤差データの生成を行う。減算部13は、ステップST12で並び替えられた画像の画像データと予測画像・最適モード選択部33で選択された予測画像データとの差分を算出して予測誤差データを生成する。予測誤差データは、元の画像データに比べてデータ量が小さい。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
 ステップST14において直交変換部14は、直交変換処理を行う。直交変換部14は、減算部13から供給された予測誤差データを直交変換する。具体的には、予測誤差データに対して離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数データを出力する。
 ステップST15において量子化部15は、量子化処理を行う。量子化部15は、変換係数データを量子化する。量子化に際しては、後述するステップST25の処理で説明されるように、レート制御が行われる。
 ステップST16において逆量子化部21は、逆量子化処理を行う。逆量子化部21は、量子化部15により量子化された変換係数データを量子化部15の特性に対応する特性で逆量子化する。
 ステップST17において逆直交変換部22は、逆直交変換処理を行う。逆直交変換部22は、逆量子化部21により逆量子化された変換係数データを直交変換部14の特性に対応する特性で逆直交変換する。
 ステップST18において加算部23は、参照画像データの生成を行う。加算部23は、予測画像・最適モード選択部33から供給された予測画像データと、この予測画像と対応する位置の逆直交変換後のデータを加算して、参照画像データを生成する。
 ステップST19においてデブロッキングフィルタ24は、フィルタ処理を行う。デブロッキングフィルタ24は、加算部23より出力された参照画像データをフィルタリングしてブロック歪みを除去する。
 ステップST20においてフレームメモリ27は、参照画像データを記憶する。フレームメモリ27は、フィルタ処理後の参照画像データを記憶する。
 ステップST21においてイントラ予測部31と動き予測・補償部32は、それぞれ予測処理を行う。すなわち、イントラ予測部31は、イントラ予測モードのイントラ予測処理を行い、動き予測・補償部32は、インター予測モードの動き予測・補償処理を行う。予測処理の詳細は、図7を参照して後述するが、この処理により、候補となるすべての予測モードでの予測処理がそれぞれ行われ、候補となるすべての予測モードでのコスト関数値がそれぞれ算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードが選択され、選択された予測モードで生成された予測画像とそのコスト関数および予測モード情報が予測画像・最適モード選択部33に供給される。
 ステップST22において予測画像・最適モード選択部33は、予測画像データの選択を行う。予測画像・最適モード選択部33は、イントラ予測部31および動き予測・補償部32より出力された各コスト関数値に基づいて、符号化効率が最良となる最適モードに決定する。さらに、予測画像・最適モード選択部33は、決定した最適モードの予測画像データを選択して、減算部13と加算部23に供給する。この予測画像が、上述したように、ステップST13,ST18の演算に利用される。なお、選択した予測画像データに対応する予測モード情報は、可逆符号化部16に出力される。
 ステップST23において可逆符号化部16は、可逆符号化処理を行う。可逆符号化部16は、量子化部15より出力された量子化データを可逆符号化する。すなわち、量子化データに対して可変長符号化や算術符号化等の可逆符号化が行われて、データ圧縮される。このとき、上述したステップST22において可逆符号化部16に入力された予測モード情報(例えばマクロブロックタイプや予測モード、参照ピクチャ情報等を含む)や差分動きベクトルなども可逆符号化される。さらに、量子化データを可逆符号化して生成された符号化ストリームのヘッダ情報に、予測モード情報等の可逆符号化データが付加される。
 ステップST24において蓄積バッファ17は、蓄積処理を行う。蓄積バッファ17は、可逆符号化部16から出力される符号化ストリームを蓄積する。この蓄積バッファ17に蓄積された符号化ストリームは、適宜読み出されて伝送路を介して復号側に伝送される。
 ステップST25においてレート制御部18は、レート制御を行う。レート制御部18は、蓄積バッファ17で符号化ストリームを蓄積するとき、オーバーフローまたはアンダーフローが蓄積バッファ17で発生しないように、量子化部15の量子化動作のレートを制御する。
 次に、図7のフローチャートを参照して、図6のステップST21における予測処理を説明する。
 ステップST31において、イントラ予測部31はイントラ予測処理を行う。イントラ予測部31は処理対象のブロックの画像を、候補となるすべてのイントラ予測モードでイントラ予測する。なお、イントラ予測では、加算部23から供給された参照画像データが用いられる。イントラ予測処理の詳細は後述するが、この処理により、候補となるすべてのイントラ予測モードでイントラ予測が行われ、候補となるすべてのイントラ予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、すべてのイントラ予測モードの中から、符号化効率が最良となる1つのイントラ予測モードが選択される。
 ステップST32において、動き予測・補償部32はインター予測処理を行う。動き予測・補償部32は、フレームメモリ27に記憶されているフィルタ処理後の参照画像データを用いて、候補となるすべてのインター予測モード(すべての予測ブロックサイズ)のインター予測処理を行う。インター予測処理の詳細は後述するが、この処理により、候補となるすべてのインター予測モードで予測処理が行われ、候補となるすべてのインター予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、すべてのインター予測モードの中から、符号化効率が最良となる1つのインター予測モードが選択される。
 次に、図7のステップST31におけるイントラ予測処理について図8のフローチャートを参照して説明する。
 ステップST41でイントラ予測部31は、各予測モードのイントラ予測を行う。イントラ予測部31は、加算部23から供給された参照画像データを用いて、イントラ予測モードごとに予測画像データを生成する。
 ステップST42でイントラ予測部31は、各予測モードに対するコスト関数値を算出する。コスト関数値としては、H.264/AVC方式における参照ソフトウェアであるJM(Joint Model)で定められているように、High Complexity モードか、Low Complexity モードのいずれの手法に基づいて行う。
 すなわち、High Complexity モードにおいては、ステップST42の処理として、候補となるすべての予測モードに対して、仮に可逆符号化処理までを行い、次の式(1)で表されるコスト関数値を各予測モードに対して算出する。
  Cost(Mode∈Ω)=D+λ・R      ・・・(1)
 Ωは、当該ブロック乃至マクロブロックを符号化するための候補となる予測モードの全体集合を示している。Dは、予測モードで符号化を行った場合の参照画像と入力画像との差分エネルギー(歪み)を示している。Rは、直交変換係数や予測モード情報等を含んだ発生符号量、λは、量子化パラメータQPの関数として与えられるラグランジュ乗数である。
 つまり、High Complexity Modeでの符号化を行うには、上記パラメータDおよびRを算出するため、候補となるすべての予測モードにより、一度、仮エンコード処理を行う必要があり、より高い演算量を要する。
 一方、Low Complexity モードにおいては、ステップST42の処理として、候補となるすべての予測モードに対して、予測画像の生成、および予測モード情報などのヘッダビットまでを算出し、次の式(2)で表されるコスト関数値を各予測モードに対して算出する。
  Cost(Mode∈Ω)=D+QPtoQuant(QP)・Header_Bit   ・・・(2)
 Ωは、当該ブロック乃至マクロブロックを符号化するための候補となる予測モードの全体集合を示している。Dは、予測モードで符号化を行った場合の参照画像と入力画像との差分エネルギー(歪み)を示している。Header_Bitは、予測モードに対するヘッダビット、QPtoQuantは、量子化パラメータQPの関数として与えられる関数である。
 すなわち、Low Complexity Modeにおいては、それぞれの予測モードに関して、予測処理を行う必要があるが、復号化画像までは必要ないため、High Complexity Modeより低い演算量での実現が可能である。
 ステップST43でイントラ予測部31は、最適イントラ予測モードを決定する。イントラ予測部31は、ステップST42において算出されたコスト関数値に基づいて、それらの中から、コスト関数値が最小値である1つのイントラ予測モードを選択して最適イントラ予測モードに決定する。
 次に、図9のフローチャートを参照して、図7のステップST32のインター予測処理について説明する。
 ステップST51で動き予測・補償部32は、各予測モードに対して動きベクトルと参照画像をそれぞれ決定する。すなわち、動き予測・補償部32は、各予測モードの処理対象のブロックについて、動きベクトルと参照画像をそれぞれ決定する。
 ステップST52で動き予測・補償部32は、各予測モードに対して動き補償を行う。動き予測・補償部32は、各予測モード(各予測ブロックサイズ)について、ステップST51で決定された動きベクトルに基づいて、参照画像に対する動き補償を行い、各予測モードについて予測画像データを生成する。
 ステップST53で動き予測・補償部32は、各インター予測モードに対して、コスト関数値の算出を行う。動き予測・補償部32は、上述した式(1)または式(2)を用いてコスト関数値の算出を行う。コスト関数値の算出では、選択部165で選択された符号化情報等を含めた発生符号量を用いる。なお、インター予測モードに対するコスト関数値の算出には、H.264/AVC方式において定められているSkip ModeおよびDirect Modeのコスト関数値の評価も含まれる。
 ステップST54で動き予測・補償部32は、最適インター予測モードを決定する。動き予測・補償部32は、ステップST53において算出されたコスト関数値に基づいて、それらの中から、コスト関数値が最小値である1つの予測モードを選択して最適インター予測モードに決定する。
 次に、可逆符号化部16で行われる動きベクトルに関する符号化処理について、図10のフローチャートを用いて説明する。なお、図10では、図5において、最も大きいブロックサイズ例えば32×32画素のサイズを第1階層(最上位階層)とする。また、16×16画素のサイズを第2階層、8×8画素のサイズを第3階層、最も小さいブロックサイズ例えば4×4画素のサイズを第4階層(最下位階層)とする。
 ステップST61で可逆符号化部16は、最上位階層のブロックについて候補から予測動きベクトルを設定する。可逆符号化部16は、予測動きベクトルの候補、すなわち隣接ブロックの動きベクトルMV_A,MV_B,MV_C,MV_co,MV_0からコスト関数値が最小となる動きベクトルを、第1階層の予測動きベクトルに設定してステップST62に進む。
 ステップST62で可逆符号化部16は、最上位階層のブロックについて差分動きベクトルを算出してステップST63に進む。
 ステップST63で可逆符号化部16は、予測ブロックが第1階層であるか判別する。可逆符号化部16は、最適モードの予測ブロックが第1階層であるときステップST70に進み、第1階層よりも下層であるときステップST64に進む。
 ステップST64で可逆符号化部16は、予測ブロックが第2階層であるか判別する。可逆符号化部16は、予測ブロックが第2階層であるときステップST65に進み、第2階層よりも下層であるときステップST66に進む。
 ステップST65で可逆符号化部16は、第1階層の対応するブロックの動きベクトルを予測動きベクトルに設定してステップST69に進む。
 ステップST66で可逆符号化部16は、予測ブロックが第3階層であるか判別する。可逆符号化部16は、予測ブロックが第3階層であるときステップST67に進み、第3階層よりも下層すなわち最下位階層であるときステップST68に進む。
 ステップST67で可逆符号化部16は、第2階層の対応するブロックの動きベクトルを予測動きベクトルに設定してステップST69に進む。
 ステップST67で可逆符号化部16は、第3階層の対応するブロックの動きベクトルを予測動きベクトルに設定してステップST69に進む。
 ステップST69で可逆符号化部16は、差分動きベクトルを算出する。可逆符号化部16は、各ブロックの動きベクトルと予測動きベクトルとの差分を示す差分動きベクトルを算出してステップST70に進む。
 ステップST70で可逆符号化部16は、可逆符号化処理を行う。可逆符号化部16は、VLCテーブルや算術符号化を用いて、差分動きベクトルの可逆符号化処理を行う。この可逆符号化処理では、例えば階層ごとに設けられているVLCテーブルを用いて符号化処理を行う。また、可逆符号化部16は、後述する階層構造情報を生成する。
 図11は、図10の符号化処理を行ったときの動作を例示している。例えば、図11の(A)に示すように予測ブロックが32×32画素のサイズである第1階層のブロック(マクロブロック)である場合、隣接ブロックの動きベクトルから、コスト関数値が最小となる動きベクトルが予測動きベクトルとされる。
 第1階層のブロックBK0を上下左右に2分割した図11の(B)に示す第2階層では、第1階層のブロックBK0で検出された動きベクトルMV0を予測動きベクトルとする。したがって、第2階層のブロックBK00の差分動きベクトルdMV00は、「MV00-MV0=dMV00」となる。同様に、第2階層のブロックBK01,BK02,BK03の差分動きベクトルdMV01,dMV02,dMV03は、「MV01-MV0=dMV01」「MV02-MV0=dMV02」「MV03-MV0=dMV03」となる。
 第2階層のブロックを上下左右に2分割した図11の(C)に示す第3階層では、第2階層のブロックで検出された動きベクトルを予測動きベクトルとする。例えば、第2階層のブロックBK02を上下左右に2分割した第3階層のブロックでは、ブロックBK02について検出された動きベクトルMV02を予測動きベクトルとする。したがって、第3階層のブロックBK020の差分動きベクトルdMV020は、「MV020-MV02=dMV020」となる。同様に、第3階層のブロックBK021,BK022,BK023の差分動きベクトルdMV021,dMV022,dMV023は、「MV021-MV02=dMV021」「MV022-MV02=dMV022」「MV023-MV02=dMV023」となる。
 第3階層を上下左右に2分割した図11の(D)(E)に示す第4階層では、第3階層のブロックで検出された動きベクトルを予測動きベクトルとする。例えば、第3階層のブロックBK021を上下左右に2分割した第4階層のブロックでは、ブロックBK021について検出された動きベクトルMV021を予測動きベクトルとする。したがって、第3階層のブロックBK0210の差分動きベクトルdMV0210は、「MV0210-MV021=dMV0210」となる。同様に、第4階層のブロックBK0211,BK0212,BK0213の差分動きベクトルdMV0211,dMV0212,dMV0213は、「MV0211-MV021=dMV0211」「MV0212-MV021=dMV0212」「MV0213-MV021=dMV0213」となる。
 図12は、階層構造情報を説明するための図である。階層構造情報は、当該ブロックを分割した下位階層のブロックが存在するときは「1」、下位階層のブロックが存在しないときは「0」として情報の生成を行う。
 例えば図11,12に示すようにブロックの階層化が行われている場合、第1階層であるマクロブロックに対して下位階層のブロックが生じていることから第1階層の構造を示す情報は「1」となる。第2階層では、左下のブロックに対して下位階層のブロックが生じている。したがって、ブロック順序を左上,右上,左下,右下の順序とすると、第2階層の構造を示す情報は「0010」となる。第3階層では、右上のブロックに対して下位階層のブロックが生じている。したがって、ブロック順序を左上,右上,左下,右下の順序とすると、第3階層の構造を示す情報は「0100」となる。さらに、第4階層では、下位階層のブロックが生じていないことから第4階層の構造を示す情報は「0000」となる。このように各階層で得られた情報を最上位階層から最下位階層まで順に並べることで、図12に示す階層構造を示す階層構造情報「1001001000000」を生成できる。
 可逆符号化部16は、階層ごとに算出された差分動きベクトルの可逆符号化を行い、得られた符号化データを階層構造情報に対応するブロック順序として、階層構造情報や最上位階層における予測動きベクトル選択情報と共にストリーム情報に含める。また、可逆符号化部16では、階層ごとに最適化された例えばVLCテーブルを用いて可逆符号化を行う。
 このように、本願発明の画像符号化装置および方法によれば、ブロックサイズの大きい1つ上の上位階層のブロックで検出された動きベクトルが予測動きベクトルに設定される。したがって、上位階層を分割した下位階層のブロックでは、差分動きベクトルの小さいブロックが多くなることから、符号化効率が向上されて、画像の符号化を効率よく行うことができる。また、動きベクトルの伝送に要する符号量の削減に伴い、量子化データのビットレートを高めることが可能となるので画質を改善できる。
 <4.画像復号化装置の構成>
 次に、符号化ストリームの復号化を行い、再生画像データを生成する場合について説明する。画像符号化装置10で生成された符号化ストリームは、所定の伝送路や記録媒体等を介して画像復号化装置に供給されて復号される。
 図13は、画像復号化装置の構成を示している。画像復号化装置50は、蓄積バッファ51、可逆復号化部52、逆量子化部53、逆直交変換部54、加算部55、デブロッキングフィルタ56、画面並べ替えバッファ57、ディジタル/アナログ変換部(D/A変換部)58を備えている。さらに、画像復号化装置50は、フレームメモリ61、イントラ予測部62、動き補償部63、セレクタ64を備えている。
 蓄積バッファ51は、伝送されてきた符号化ストリームを蓄積する。可逆復号化部52は、蓄積バッファ51より供給された符号化ストリームを、図2の可逆符号化部16の符号化方式に対応する方式で復号化する。
 可逆復号化部52は、符号化ストリームのヘッダ情報を復号して得られた予測モード情報をイントラ予測部62や動き補償部63、デブロッキングフィルタ56に出力する。また、可逆復号化部52は、復号化対象のブロックと復号化済みの隣接ブロックの動きベクトルを用いて予測動きベクトルの候補を設定する。可逆復号化部52は、符号化ストリームを可逆復号化して得られた予測動きベクトル選択情報に基づき、予測動きベクトルの候補から予測動きベクトルを選択して、選択した動きベクトルを最上位階層の予測動きベクトルとする。また、可逆復号化部52は、符号化ストリームを可逆復号化して得られた差分動きベクトルに予測動きベクトルを加算して復号化対象のブロックの動きベクトルを算出して、動き補償部63に出力する。また、可逆復号化部52は、最上位階層よりもサイズの小さい階層では、1つ上の階層の動きベクトルを予測動きベクトルとして用いる。
 逆量子化部53は、可逆復号化部52で復号された量子化データを、図2の量子化部15の量子化方式に対応する方式で逆量子化する。逆直交変換部54は、図2の直交変換部14の直交変換方式に対応する方式で逆量子化部53の出力を逆直交変換して加算部55に出力する。
 加算部55は、逆直交変換後のデータとセレクタ64から供給される予測画像データを加算して復号画像データを生成してデブロッキングフィルタ56とイントラ予測部62に出力する。
 デブロッキングフィルタ56は、加算部55から供給された復号画像データに対してフィルタ処理を行い、ブロック歪みを除去してからフレームメモリ61に供給し蓄積させるとともに、画面並べ替えバッファ57に出力する。
 画面並べ替えバッファ57は、画像の並べ替えを行う。すなわち、図2の画面並べ替えバッファ12により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられて、D/A変換部58に出力される。
 D/A変換部58は、画面並べ替えバッファ57から供給された画像データをD/A変換し、図示せぬディスプレイに出力することで画像を表示させる。
 フレームメモリ61は、デブロッキングフィルタ24から供給されたフィルタ処理後の復号画像データを保持する。
 イントラ予測部62は、可逆復号化部52から供給された予測モード情報に基づいて予測画像の生成を行い、生成した予測画像データをセレクタ64に出力する。
 動き補償部63は、可逆復号化部52から供給された予測モード情報や動きベクトルに基づいて動き補償を行い、予測画像データを生成してセレクタ64に出力する。すなわち、動き補償部63は、可逆復号化部52から供給された動きベクトルおよび参照フレーム情報に基づいて、参照フレーム情報で示された参照画像に対して、動きベクトルに基づき動き補償を行い、予測ブロックサイズの予測画像データを生成する。
 セレクタ64は、イントラ予測部62で生成された予測画像データを加算部55に供給する。また、セレクタ64は、動き補償部63で生成された予測画像データを加算部55に供給する。
 <5.可逆復号化部の構成>
 図14は、可逆復号化部における動きベクトルに関する構成を示している。可逆復号化部52は、可変長復号化部521-1~521-n、選択部522、予測動きベクトル設定部523、加算部525を備えている。また、予測動きベクトル設定部523は、動きベクトル記憶部523aと動きベクトル選択部523bを備えている。
 可変長復号化部521-1は、可変長符号化部164-1で行われた符号化に対応する可変長復号化を行う。同様に、可変長復号化部521-2~521-nは、可変長符号化部164-2~164-nで行われた符号化に対応する可変長復号化を行う。可変長復号化部521-1~521-nは、VLCテーブルまたは算術符号を用いて符号化ストリームの可逆可変長復号化を行い、差分動きベクトルを生成する。
 選択部522は、階層構造情報に基づき、階層に対応する復号化部から出力された差分動きベクトルを選択して加算部525に出力する。
 動きベクトル記憶部523aは、予測ブロックサイズが最大である最上位階層において、予測ブロックサイズが最大であるときの復号化対象のブロックに隣接した復号化済みの隣接ブロックの動きベクトルを最上位階層の予測動きベクトルの候補として記憶する。なお、動きベクトル記憶部523aは、ダイレクトモードに対応するため、参照ピクチャにおける復号化対象と同一のブロックの動きベクトルも記憶してもよい。また、動きベクトル記憶部523aは、復号化対象のブロックを含む上位階層の動きベクトルを記憶する。
 動きベクトル選択部523bは、階層構造情報に基づき階層に応じた予測動きベクトルを動きベクトル記憶部523aから読み出して加算部525に出力する。また、予測動きベクトル情報に基づき、予測動きベクトルの候補から動きベクトルを選択して、最上位階層のブロックに対する予測動きベクトルとして加算部525に出力する。
 加算部525は、選択部522で選択された差分動きベクトルに、予測動きベクトル設定部523から出力された予測動きベクトルを加算することで、復号化対象のブロックの動きベクトルを算出して動き補償部63に出力する。また算出した動きベクトルを動きベクトル記憶部523aに記憶して、下位階層の予測動きベクトルとして用いることができるようにする。なお、符号化ストリームに最上位階層のブロックの動きベクトルを示す符号化データが含まれている場合には、可変長復号化によって得られた動きベクトルを動きベクトル記憶部523aに記憶して、下位階層の予測動きベクトルとして用いることができるようにする。
 <6.画像復号化装置の動作>
 次に、図15のフローチャートを参照して、画像復号化装置50で行われる画像復号処理動作について説明する。
 ステップST81で蓄積バッファ51は、伝送されてきた符号化ストリームを蓄積する。ステップST82で可逆復号化部52は、可逆復号化処理を行う。可逆復号化部52は、蓄積バッファ51から供給される符号化ストリームを復号化する。すなわち、図2の可逆符号化部16により符号化された各ピクチャの量子化データが得られる。また、可逆復号化部52、符号化ストリームのヘッダ情報に含まれている予測モード情報の可逆復号化を行い、得られた予測モード情報をデブロッキングフィルタ56やセレクタ64に供給する。さらに、可逆復号化部52は、予測モード情報がイントラ予測モードに関する情報である場合、予測モード情報をイントラ予測部62に出力する。また、可逆復号化部52は、予測モード情報がインター予測モードに関する情報である場合、予測モード情報を動き補償部63に出力する。また、可逆復号化部52は、復号化対象のブロックの動きベクトルを動き補償部63に出力する。
 ステップST83において逆量子化部53は、逆量子化処理を行う。逆量子化部53は、可逆復号化部52により復号された量子化データを、図2の量子化部15の特性に対応する特性で逆量子化する。
 ステップST84において逆直交変換部54は、逆直交変換処理を行う。逆直交変換部54は、逆量子化部53により逆量子化された変換係数データを、図2の直交変換部14の特性に対応する特性で逆直交変換する。
 ステップST85において加算部55は、復号画像データの生成を行う。加算部55は、逆直交変換処理を行うことにより得られたデータと、後述するステップST89で選択された予測画像データを加算して復号画像データを生成する。これにより元の画像が復号される。
 ステップST86においてデブロッキングフィルタ56は、フィルタ処理を行う。デブロッキングフィルタ56は、加算部55より出力された復号画像データのフィルタ処理を行い、復号画像に含まれているブロック歪みを除去する。
 ステップST87においてフレームメモリ61は、復号画像データの記憶処理を行う。
 ステップST88においてイントラ予測部62と動き補償部63は、予測処理を行う。イントラ予測部62と動き補償部63は、可逆復号化部52から供給される予測モード情報に対応してそれぞれ予測処理を行う。
 すなわち、可逆復号化部52からイントラ予測の予測モード情報が供給された場合、イントラ予測部62は、予測モード情報に基づいてイントラ予測処理を行い、予測画像データを生成する。また、可逆復号化部52からインター予測の予測モード情報が供給された場合、動き補償部63は、予測モード情報に基づき動き補償を行い、予測画像データを生成する。
 ステップST89において、セレクタ64は予測画像データの選択を行う。すなわち、セレクタ64は、イントラ予測部62から供給された予測画像と動き補償部63で生成された予測画像データを選択して加算部55に供給して、上述したように、ステップST85において逆直交変換部54の出力と加算させる。
 ステップST90において画面並べ替えバッファ57は、画像並べ替えを行う。すなわち画面並べ替えバッファ57は、図2の画像符号化装置10の画面並べ替えバッファ12により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
 ステップST91において、D/A変換部58は、画面並べ替えバッファ57からの画像データをD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
 次に、可逆復号化部52で行われる動きベクトルに関する復号化処理について、図16のフローチャートを用いて説明する。ステップST101で可逆復号化部52は、階層構造情報を取得する。可逆復号化部52は、蓄積バッファ51から階層構造情報を取得して、第1階層のブロックサイズのブロックがどのような階層のブロックで構成されているか判別する。
 ステップST102で可逆復号化部52は、可逆符号化部16に対応して構成されており、画像符号化装置と対応する複数のVLCテーブル等を用いて可逆復号化処理を行い、差分動きベクトルを生成する。
 ステップST103で可逆復号化部52は、差分動きベクトルの選択を行う。可逆復号化部52は、複数のVLCテーブル等を用いて生成された差分動きベクトルから、復号対象のブロックの階層に対応した差分動きベクトルを選択する。
 ステップST104で可逆復号化部52は、最上位階層の動きベクトルを算出する。可逆復号化部52は、最上位階層に対する予測動きベクトルの候補から、符号化ストリームに含まれている予測動きベクトル選択情報に基づき予測動きベクトルを設定する。さらに、可逆復号化部52は、設定した予測動きベクトルと最上位階層の差分動きベクトルを加算して、最上位階層のブロックの動きベクトルを算出してステップST105に進む。
 ステップST105で可逆復号化部52は、復号対象のブロックが第1階層のブロックであるか否か判別する。可逆復号化部52は、復号対象のブロックが第1階層のブロックであるとき符号化対象のブロックについての動きベクトルの復号化処理を終了する。また、可逆復号化部52は、復号対象のブロックが第1階層のブロックでないときステップST106に進む。可逆復号化部52は、階層構造情報に基づき復号対象のブロックがいずれの階層のブロックであるか判別する。可逆復号化部52は、第1階層の構造を示す情報が「0」で第1階層の分割が行われていないことを示しているとき、符号化対象のブロックについての動きベクトルの復号化処理を終了する。可逆復号化部52は、第1階層の構造を示す情報が「1」で第1階層の分割が行われていることを示しているとき、ステップST106に進む。
 ステップST106で可逆復号化部52は、復号対象のブロックが第2階層のブロックであるか否か判別する。可逆復号化部52は、復号対象のブロックが第2階層のブロックであるときステップST107に進み、第2階層のブロックでないときステップST108に進む。可逆復号化部52は、第2階層の構造を示す情報が「0」で第2階層の分割が行われていないことを示しているときはステップST107に進む。また、可逆復号化部52は、第2階層の構造を示す情報が「1」で第2階層の分割が行われていることを示しているときはステップST108に進む。
 ステップST107で可逆復号化部52は、第1階層の対応するブロックの動きベクトルを予測動きベクトルに設定してステップST111に進む。
 ステップST108で可逆復号化部52は、復号対象のブロックが第3階層のブロックであるか否か判別する。可逆復号化部52は、復号対象のブロックが第3階層のブロックであるときステップST109に進み、第2階層のブロックでないときステップST110に進む。可逆復号化部52は、第3階層の構造を示す情報が「0」で第3階層の分割が行われていないことを示しているときはステップST109に進む。また、可逆復号化部52は、第3階層の構造を示す情報が「1」で第3階層の分割が行われていることを示しているときはステップST110に進む。
 ステップST109で可逆復号化部52は、第2階層の対応するブロックの動きベクトルを予測動きベクトルに設定してステップST111に進む。
 ステップST110で可逆復号化部52は、第3階層の対応するブロックの動きベクトルを予測動きベクトルに設定してステップST111に進む。
 ステップST111で可逆復号化部52は、差分動きベクトルと予測動きベクトルを加算して、復号化対象のブロックの動きベクトルを算出する。
 次に、図17のフローチャートを参照して、図15のステップST88の予測処理について説明する。
 ステップST121で可逆復号化部52は、対象ブロックがイントラ符号化されているか否かを判定する。可逆復号化部52は、可逆復号化を行うことにより得られた予測モード情報がイントラ予測モード情報であるとき、予測モード情報をイントラ予測部62に供給してステップST122に進む。また、可逆復号化部52は、予測モード情報がイントラ予測モード情報でないとき、予測モード情報を動き補償部63に供給してステップST123に進む。
 ステップST122でイントラ予測部62は、イントラ予測処理を行う。イントラ予測部62は、加算部55から供給された復号画像データと予測モード情報を用いてイントラ予測を行い、予測画像データを生成する。
 ステップST123で動き補償部63は、インター予測処理を行う。動き補償部63は、可逆復号化部52からの予測モード情報や動きベクトルに基づいて、フレームメモリ61から供給された復号画像データの動き補償を行う。さらに、動き補償部63は、動き補償により生成した予測画像データをセレクタ64に出力する。
 このように、本願発明の画像復号化装置および方法では、画像符号化において、上位階層のブロックで検出された動きベクトルを予測動きベクトルに設定して、符号化効率や画質の改善が行われても、符号化ストリームを正しく復号化することができる。
 <7.画像符号化装置の他の構成>
 次に、画像符号化装置の他の構成について説明する。画像符号化において、符号化対象のブロックの画像と参照画像を比較して動きベクトルの算出を行う場合、フレームメモリから参照画像の画像データを読み出す必要がある。また、参照画像の画像データは、データ量が大きいことからフレームメモリとしてDRAM(Dynamic Random Access Memory)が使用されることが多い。しかし、DRAMは大容量である一方、読み出しあるいは書き込みを行う際の遅延が大きく、不連続な読み出しあるいは書き込みには転送速度が遅くなる問題がある。このため、動きベクトルの算出に時間を要してしまう。
 そこで、画像符号化装置の他の構成では、参照画像の画像データに対して多重解像度解析を行い、多重解像度解析結果を、SRAM(Static Random Access Memory)等を用いたキャッシュメモリに記憶する。また、キャッシュメモリに記憶された多重解像度解析結果を利用して、データ量が少ない低解像度の画像を生成する。画像符号化装置は、低解像度の画像を用いて動き予測を行い、動きベクトルの粗検出を行う。さらに、画像符号化装置は、動きベクトルの粗検出の結果に基づき選択領域を設定して、この選択領域の高解像度画像を用いて動きベクトルの詳細検出を行う。このような動きベクトルの検出を繰り返すことで、メモリから読み出す画像データのデータ量を削減しても動きベクトルを高精度に検出できるようにする。
 図18は、画像符号化装置の他の構成を示している。なお、図18において、図2と対応する部分については同一符号を付している。
 画像符号化装置10aは、アナログ/ディジタル変換部(A/D変換部)11、画面並び替えバッファ12、減算部13、直交変換部14、量子化部15、可逆符号化部16、蓄積バッファ17、レート制御部18を備えている。また、画像符号化装置10aは、逆量子化部21、逆直交変換部22、加算部23、デブロッキングフィルタ24、多重解像度解析部25、キャッシュメモリ26、フレームメモリ27、多重解像度再構築部28、多重解像度解析・再構築部29を有している。さらに、画像符号化装置10aは、イントラ予測部31、動き予測・補償部32a、予測画像・最適モード選択部33を備えている。
 A/D変換部11は、アナログの画像信号をディジタルの画像データに変換して画面並べ替えバッファ12に出力する。
 画面並べ替えバッファ12は、A/D変換部11から出力された画像データに対してフレームの並べ替えを行う。画面並べ替えバッファ12は、符号化処理に係るGOP(Group of Pictures)構造に応じてフレームの並べ替えを行い、並べ替え後の画像データを減算部13とイントラ予測部31と動き予測・補償部32aに出力する。
 減算部13には、画面並べ替えバッファ12から出力された画像データと、後述する予測画像・最適モード選択部33で選択された予測画像データが供給される。減算部13は、画面並べ替えバッファ12から出力された画像データと予測画像・最適モード選択部33から供給された予測画像データとの差分である予測誤差データを算出して、直交変換部14に出力する。
 直交変換部14は、減算部13から出力された予測誤差データに対して、離散コサイン変換(DCT;Discrete Cosine Transform)、カルーネン・レーベ変換等の直交変換処理を行う。直交変換部14は、直交変換処理を行うことにより得られた変換係数データを量子化部15に出力する。
 量子化部15には、直交変換部14から出力された変換係数データと、後述するレート制御部18からレート制御信号が供給されている。量子化部15は変換係数データの量子化を行い、量子化データを可逆符号化部16と逆量子化部21に出力する。また、量子化部15は、レート制御部18からのレート制御信号に基づき量子化パラメータ(量子化スケール)を切り替えて、量子化データのビットレートを変化させる。
 可逆符号化部16には、量子化部15から出力された量子化データと、後述するイントラ予測部31と動き予測・補償部32aおよび予測画像・最適モード選択部33から予測モード情報が供給される。なお、予測モード情報には、イントラ予測またはインター予測に応じて、予測ブロックサイズを示すマクロブロックタイプ、予測モード、参照ピクチャ情報等が含まれる。可逆符号化部16は、量子化データに対して例えば可変長符号化または算術符号化等により符号化処理を行い、符号化ストリームを生成して蓄積バッファ17に出力する。また、可逆符号化部16は、予測モード情報を可逆符号化して、符号化ストリームの例えばヘッダ情報に付加する。さらに、可逆符号化部16は、符号化対象の画像のブロックである最適モードの予測ブロックに対して、この予測ブロックを含む1つ上の階層のブロックについて検出した動きベクトルを予測動きベクトルとして設定して、予測動きベクトルと符号化対象のブロックの動きベクトルとの差分を示す差分動きベクトルの可逆符号化を行って、符号化ストリームに付加する。また、可逆符号化部16は、後述するコスト関数値の算出においても、各予測ブロックについて予測動きベクトルを設定して、予測ブロックの動きベクトルとの差分を示す差分動きベクトルの可逆符号化を行うことで、差分動きベクトルの符号化データを含めた発生符号量を算出できるようにする。
 蓄積バッファ17は、可逆符号化部16からの符号化ストリームを蓄積する。また、蓄積バッファ17は、蓄積した符号化ストリームを伝送路に応じた伝送速度で出力する。
 レート制御部18は、蓄積バッファ17の空き容量の監視を行い、空き容量に応じてレート制御信号を生成して量子化部15に出力する。レート制御部18は、例えば蓄積バッファ17から空き容量を示す情報を取得する。レート制御部18は空き容量が少なくなっているとき、レート制御信号によって量子化データのビットレートを低下させる。また、レート制御部18は蓄積バッファ17の空き容量が十分大きいとき、レート制御信号によって量子化データのビットレートを高くする。
 逆量子化部21は、量子化部15から供給された量子化データの逆量子化処理を行う。逆量子化部21は、逆量子化処理を行うことで得られた変換係数データを逆直交変換部22に出力する。
 逆直交変換部22は、逆量子化部21から供給された変換係数データの逆直交変換処理を行うことで得られたデータを加算部23に出力する。
 加算部23は、逆直交変換部22から供給されたデータと予測画像・最適モード選択部33から供給された予測画像データを加算して参照画像データを生成して、この参照画像データをデブロッキングフィルタ24とイントラ予測部31に出力する。
 デブロッキングフィルタ24は、画像の符号化時に生じるブロック歪みを減少させるためのフィルタ処理を行う。デブロッキングフィルタ24は、加算部23から供給された参照画像データからブロック歪みを除去するフィルタ処理を行い、フィルタ処理後の参照画像データを多重解像度解析部25に出力する。
 多重解像度解析部25は、参照画像データに対して、多重解像度解析、例えば離散ウェーブレット変換を用いたサブバンド分解を行い、多重解像度解析結果をキャッシュメモリ26に出力する。多重解像度解析部25は、例えば5/3可逆フィルタを用いて画像のウェーブレット変換を行う。
 図19は、1次元のサブバンド分解と再構築を説明するための図である。サブバンド分解では、図19の(A)に示すように、変換対象画像0Lに対して高域通過フィルタ(HPF)711によるフィルタ処理と間引き部(ダウンサンプラ)712による間引き処理を行い高域成分画像1Hを生成する。また、変換対象画像0Lに対して低域通過フィルタ(LPF)713によるフィルタ処理と間引き部714による間引き処理を行い、低域成分画像1Lを生成する。さらに、低域成分画像1Lに対して高域通過フィルタ715によるフィルタ処理と間引き部716による間引き処理を行い、高域成分画像2Hを生成する。また、低域成分画像1Lに対して低域通過フィルタ717によるフィルタ処理と間引き部718による間引き処理を行い、低域成分画像2Lを生成する。このように、フィルタ処理と間引き処理を行うことで、解像度の異なる画像を生成できる。さらに、図19の(A)に示す処理を水平方向および垂直方向に対して行うと、2次元空間のサブバンド分解結果は図20に示すようになる。
 キャッシュメモリ26は、多重解像度解析結果を低解像度から高解像度の順に記憶する。また、キャッシュメモリは、メモリ容量を超える多重解像度解析結果をフレームメモリ27に記憶させる。
 多重解像度再構築部28は、解像度の異なる参照画像を再構築して動き予測・補償部32aに出力する。多重解像度再構築部28は、例えば5/3可逆フィルタを用いて逆ウェーブレット変換を行う。多重解像度再構築部28は、低域成分画像と高域成分画像の合成によって画像の再構築を行う。画像の再構築では、図19の(B)に示すように、低域成分画像2Lに対して補間部(アップサンプラ)721による補間処理と低域通過フィルタ722によるフィルタ処理、高域成分画像2Hに対して補間部723による補間処理と高域通過フィルタ724によるフィルタ処理をそれぞれ行う。さらに、フィルタ処理後の画像を加算部725で加算して低域成分画像1Lを生成する。また、低域成分画像1Lに対して補間部726による補間処理と低域通過フィルタ727によるフィルタ処理、高域成分画像1Hに対して補間部728による補間処理と高域通過フィルタ729によるフィルタ処理をそれぞれ行う。さらに、フィルタ処理後の画像を加算部730で加算してサブバンド分割前の画像0Lを生成する。このように、補間処理とフィルタ処理を行うことで、解像度の異なる画像からサブバンド分解前の画像を再構築できる。さらに、図19の(B)に示す処理を水平方向および垂直方向に対して行うと、図20に示すサブバンド分解後の画像を分割前の画像に戻すことができる。例えば図20に示す画像2LL,2HL,2LH,2HHを合成して画像1LLを生成できる。また、画像1LL,1HL,1LH,1HHを合成して画像0LLを再構築できる。
 多重解像度解析・再構築部29は、符号化対象画像に対して、多重解像度解析部25と同様な多重解像度解析例えば離散ウェーブレット変換を行う。また、多重解像度解析・再構築部29は、多重解像度再構築部28と同様に多重解像度解析結果を選択的に用いて画像の再構築を行い、解像度の異なる符号化対象画像を生成して動き予測・補償部32aに出力する。
 イントラ予測部31は、画面並べ替えバッファ12から出力された符号化対象画像の画像データと加算部23から供給された参照画像データを用いて、候補となるすべてのイントラ予測モードのイントラ予測処理を行う。さらに、イントラ予測部31は、各イントラ予測モードに対してコスト関数値を算出して、算出したコスト関数値が最小となるイントラ予測モード、すなわち符号化効率が最良となるイントラ予測モードを、最適イントラ予測モードとして選択する。イントラ予測部31は、最適イントラ予測モードで生成された予測画像データと最適イントラ予測モードに関する予測モード情報、および最適イントラ予測モードでのコスト関数値を予測画像・最適モード選択部33に出力する。また、イントラ予測部31は、後述するようにコスト関数値の算出で用いる発生符号量を得るため、各イントラ予測モードのイントラ予測処理において、イントラ予測モードに関する予測モード情報を可逆符号化部16に出力する。
 動き予測・補償部32aは、マクロブロックに対応するすべての予測ブロックサイズ(動き補償ブロックサイズ)で動き予測・補償処理を行う。動き予測・補償部32aは、画面並べ替えバッファ12から読み出されたマクロブロックの画像における各予測ブロックサイズの画像ごとに、多重解像度再構築部28と多重解像度解析・再構築部29から供給された画像データを用いて動きベクトルを検出する。さらに、動き予測・補償部32aは、検出した動きベクトルに基づいて参照画像に動き補償処理を施して予測画像の生成を行う。
 また、動き予測・補償部32aは、予測動きベクトルの候補ごとにコスト関数値を算出して可逆符号化部16に通知する。動き予測・補償部32aは、各予測ブロックサイズで算出したコスト関数値に基づき、コスト関数値が最小となる予測ブロックサイズ、すなわち符号化効率が最良となる予測ブロックサイズを、最適インター予測モードとして選択する。動き予測・補償部32aは、最適インター予測モードで生成された予測画像データと最適インター予測モードに関する予測モード情報、および最適インター予測モードでのコスト関数値を予測画像・最適モード選択部33に出力する。また、動き予測・補償部32aは、コスト関数値の算出で用いる発生符号量を得るため、各予測ブロックサイズでのインター予測処理において、インター予測モードに関する予測モード情報を可逆符号化部16に出力する。なお、動き予測・補償部32aは、インター予測モードとして、スキップドマクロブロックやダイレクトモードの予測も行う。
 予測画像・最適モード選択部33は、イントラ予測部31から供給されたコスト関数値と動き予測・補償部32aから供給されたコスト関数値を、マクロブロック単位で比較して、コスト関数値が少ない方を、符号化効率が最良となる最適モードとして選択する。また、予測画像・最適モード選択部33は、最適モードで生成した予測画像データを減算部13と加算部23に出力する。さらに、予測画像・最適モード選択部33は、最適モードの予測モード情報を可逆符号化部16に出力する。なお、予測画像・最適モード選択部33は、スライス単位でイントラ予測またはインター予測を行う。
 <8.動きベクトルの検出動作>
  図21は、動き予測・補償部32aにおける動きベクトルの検出動作を示すフローチャートである。なお、多重解像度解析では、図20に示すサブバンド分解が行われたとする。
 ステップST131で動き予測・補償部32aは、低解像度符号化対象画像を取得する。動き予測・補償部32aは、例えば多重解像度解析・再構築部29から最も低解像度である画像2LLに相当する符号化対象のブロックの画像を低解像度符号化対象画像として取得する。
 ステップST132で動き予測・補償部32aは、低解像度参照画像を取得する。動き予測・補償部32aは、例えば多重解像度再構築部28から符号化対象ブロックに対応する画像2LLの参照画像を取得する。
 ステップST133で動き予測・補償部32aは、動きベクトルを検出する。動き予測・補償部32aは、符号化対象ブロックの画像と参照画像とでブロックマッチング等を行い、符号化対象ブロックの動きベクトルを検出する。
 ステップST134で動き予測・補償部32aは、動きベクトルの検出に用いた画像が最も高解像度の画像であるか判別する。動き予測・補償部32aは、動きベクトルの検出に用いた画像が最も高解像度の画像であるとき、動きベクトルの検出動作を終了する。また、動き予測・補償部32aは、動きベクトルの検出に用いた画像が最も高解像度の画像ではないときステップST135に進む。
 ステップST135で動き予測・補償部32aは、高解像度符号化対象画像を取得する。動き予測・補償部32aは、多重解像度解析・再構築部29から、前回の動きベクトルの検出で用いた画像よりも高解像度である符号化対象画像を取得する。例えば、前回の動きベクトルの検出で画像2LLが用いられている場合、画像2LLよりも高解像度である画像1LLに相当する符号化対象のブロックの画像を、高解像度符号化対象画像として取得する。
 ステップST136で動き予測・補償部32aは、高解像度選択参照画像を取得する。動き予測・補償部32aは、前回の動きベクトルの検出で検出された動きベクトルに基づき選択領域を設定する。また、動き予測・補償部32aは、前回の動きベクトルの検出で用いた画像よりも高解像度である選択領域の参照画像を高解像度選択参照画像として取得する。例えば、前回の動きベクトルの検出で画像2LLが用いられている場合、画像2LLよりも高解像度である画像1LLに相当する選択領域の参照画像を高解像度選択参照画像として取得して、ステップST133に戻り、高解像度の画像を用いて動きベクトルをさらに精度よく検出する。
 また、画像1LLは、最も高解像度の画像でないことから、さらに高解像度の画像すなわち符号化対象ブロックの画像0LLを取得する。また、画像1LLの解像度の画像を用いて検出した動きベクトルに基づき選択領域を設定する。さらに、動き予測・補償部32aは、前回の動きベクトルの検出で用いた画像よりも高解像度である選択領域の参照画像を取得する。この取得した画像を用いることで、動きベクトルをさらに精度よく検出できるようになる。
 このように、図21の処理を行うと、多重解像度解析結果を選択的に用いて、最も低解像度の画像の取得や選択領域の高解像度の画像の再構築を行うことで、動きベクトルを精度よく検出できる。したがって、メモリから読み出す画像データのデータ量を削減しても動きベクトルを高精度に検出できるようになるので、データの読み出しの遅延や転送速度の遅れ等の影響を軽減して、画像の符号化を効率よく行うことができる。
 また、キャッシュメモリ26は、多重解像度解析結果を低解像度から高解像度の順に記憶して、メモリ容量を超える多重解像度解析結果をフレームメモリ27に記憶させる。したがって、最も低解像度の画像の取得や選択領域の高解像度の画像の再構築を速やかに行うことが可能となり、動きベクトルの検出を効率よく行うことができる。
 <9.ソフトウェア処理の場合>
 また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、または両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させる。または、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることも可能である。
 例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。または、プログラムはフレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的または永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することができる。
 なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
 プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
 <10.電子機器に適用した場合>
 また、以上においては、符号化方式/復号方式としてH.264/AVC方式が用いられたが、本発明は、その他の動き予測・補償処理を行う符号化方式/復号方式を用いる画像符号化装置/画像復号装置に適用することもできる。
 さらに、本発明は、例えば、MPEG,H.26x等のように、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルTV(テレビジョン)、インターネット、および携帯電話機などのネットワークメディアを介して受信する際に、あるいは、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。
 上述した画像符号化装置10,10aや画像復号化装置50は、任意の電子機器に適用することができる。以下にその例について説明する。
 図22は、本発明を適用したテレビジョン装置の概略構成を例示している。テレビジョン装置90は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース部909を有している。さらに、テレビジョン装置90は、制御部910、ユーザインタフェース部911等を有している。
 チューナ902は、アンテナ901で受信された放送波信号から所望のチャンネルを選局して復調を行い、得られたストリームをデマルチプレクサ903に出力する。
 デマルチプレクサ903は、ストリームから視聴対象である番組の映像や音声のパケットを抽出して、抽出したパケットのデータをデコーダ904に出力する。また、デマルチプレクサ903は、EPG(Electronic Program Guide)等のデータのパケットを制御部910に供給する。なお、スクランブルが行われている場合、デマルチプレクサ等でスクランブルの解除を行う。
 デコーダ904は、パケットの復号化処理を行い、復号処理化によって生成された映像データを映像信号処理部905、音声データを音声信号処理部907に出力する。
 映像信号処理部905は、映像データに対して、ノイズ除去やユーザ設定に応じた映像処理等を行う。映像信号処理部905は、表示部906に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成する。また、映像信号処理部905は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それを番組の映像データに重畳する。映像信号処理部905は、このようにして生成した映像データに基づいて駆動信号を生成して表示部906を駆動する。
 表示部906は、映像信号処理部905からの駆動信号に基づき表示デバイス(例えば液晶表示素子等)を駆動して、番組の映像などを表示させる。
 音声信号処理部907は、音声データに対してノイズ除去などの所定の処理を施し、処理後の音声データのD/A変換処理や増幅処理を行い、スピーカ908に供給することで音声出力を行う。
 外部インタフェース部909は、外部機器やネットワークと接続するためのインタフェースであり、映像データや音声データ等のデータ送受信を行う。
 制御部910にはユーザインタフェース部911が接続されている。ユーザインタフェース部911は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部910に供給する。
 制御部910は、CPU(Central Processing Unit)やメモリ等を用いて構成されている。メモリは、CPUにより実行されるプログラムやCPUが処理を行う上で必要な各種のデータ、EPGデータ、ネットワークを介して取得されたデータ等を記憶する。メモリに記憶されているプログラムは、テレビジョン装置90の起動時などの所定のタイミングでCPUにより読み出されて実行される。CPUは、プログラムを実行することで、テレビジョン装置90がユーザ操作に応じた動作となるように各部を制御する。
 なお、テレビジョン装置90では、チューナ902、デマルチプレクサ903、映像信号処理部905、音声信号処理部907、外部インタフェース部909等と制御部910を接続するためバス912が設けられている。
 このように構成されたテレビジョン装置では、デコーダ904に本願の画像復号化装置(画像復号化方法)の機能が設けられる。このため、放送局側で本願の画像符号化装置の機能を用いることにより、符号化効率や画質の改善がはかられて符号化ストリームの生成が行われても、テレビジョン装置で符号化ストリームの復号化を正しく行うことができる。
 図23は、本発明を適用した携帯電話機の概略構成を例示している。携帯電話機92は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931を有している。これらは、バス933を介して互いに接続されている。
 また、通信部922にはアンテナ921が接続されており、音声コーデック923には、スピーカ924とマイクロホン925が接続されている。さらに制御部931には、操作部932が接続されている。
 携帯電話機92は、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
 音声通話モードにおいて、マイクロホン925で生成された音声信号は、音声コーデック923で音声データへの変換やデータ圧縮が行われて通信部922に供給される。通信部922は、音声データの変調処理や周波数変換処理等を行い、送信信号を生成する。また、通信部922は、送信信号をアンテナ921に供給して図示しない基地局へ送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、得られた音声データを音声コーデック923に供給する。音声コーデック923は、音声データのデータ伸張やアナログ音声信号への変換を行い、スピーカ924に出力する。
 また、データ通信モードにおいて、メール送信を行う場合、制御部931は、操作部932の操作によって入力された文字データを受け付けて、入力された文字を表示部930に表示する。また、制御部931は、操作部932におけるユーザ指示等に基づいてメールデータを生成して通信部922に供給する。通信部922は、メールデータの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ921から送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、メールデータを復元する。このメールデータを、表示部930に供給して、メール内容の表示を行う。
 なお、携帯電話機92は、受信したメールデータを、記録再生部929で記憶媒体に記憶させることも可能である。記憶媒体は、書き換え可能な任意の記憶媒体である。例えば、記憶媒体は、RAMや内蔵型フラッシュメモリ等の半導体メモリ、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USBメモリ、またはメモリカード等のリムーバブルメディアである。
 データ通信モードにおいて画像データを送信する場合、カメラ部926で生成された画像データを、画像処理部927に供給する。画像処理部927は、画像データの符号化処理を行い、符号化データを生成する。
 多重分離部928は、画像処理部927で生成された符号化データと、音声コーデック923から供給された音声データを所定の方式で多重化して、通信部922に供給する。通信部922は、多重化データの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ921から送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、多重化データを復元する。この多重化データを多重分離部928に供給する。多重分離部928は、多重化データの分離を行い、符号化データを画像処理部927、音声データを音声コーデック923に供給する。
 画像処理部927は、符号化データの復号化処理を行い、画像データを生成する。この画像データを表示部930に供給して、受信した画像の表示を行う。音声コーデック923は、音声データをアナログ音声信号に変換してスピーカ924に供給して、受信した音声を出力する。
 このように構成された携帯電話装置では、画像処理部927に本願の画像符号化装置(画像符号化方法)や画像復号化装置(画像復号化方法)の機能が設けられる。したがって、画像データの通信を行う際に、符号化効率や画質を改善することができる。
 図24は、本発明を適用した記録再生装置の概略構成を例示している。記録再生装置94は、例えば受信した放送番組のオーディオデータとビデオデータを、記録媒体に記録して、その記録されたデータをユーザの指示に応じたタイミングでユーザに提供する。また、記録再生装置94は、例えば他の装置からオーディオデータやビデオデータを取得し、それらを記録媒体に記録させることもできる。さらに、記録再生装置94は、記録媒体に記録されているオーディオデータやビデオデータを復号して出力することで、モニタ装置等において画像表示や音声出力を行うことができるようにする。
 記録再生装置94は、チューナ941、外部インタフェース部942、エンコーダ943、HDD(Hard Disk Drive)部944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)部948、制御部949、ユーザインタフェース部950を有している。
 チューナ941は、図示しないアンテナで受信された放送信号から所望のチャンネルを選局する。チューナ941は、所望のチャンネルの受信信号を復調して得られた符号化ストリームをセレクタ946に出力する。
 外部インタフェース部942は、IEEE1394インタフェース、ネットワークインタフェース部、USBインタフェース、フラッシュメモリインタフェース等の少なくともいずれで構成されている。外部インタフェース部942は、外部機器やネットワーク、メモリカード等と接続するためのインタフェースであり、記録する映像データや音声データ等のデータ受信を行う。
 エンコーダ943は、外部インタフェース部942から供給された映像データや音声データが符号化されていないとき所定の方式で符号化を行い、符号化ストリームをセレクタ946に出力する。
 HDD部944は、映像や音声等のコンテンツデータ、各種プログラムやその他のデータ等を内蔵のハードディスクに記録し、また再生時等にそれらを当該ハードディスクから読み出す。
 ディスクドライブ945は、装着されている光ディスクに対する信号の記録および再生を行う。光ディスク、例えばDVDディスク(DVD-Video、DVD-RAM、DVD-R、DVD-RW、DVD+R、DVD+RW等)やBlu-rayディスク等である。
 セレクタ946は、映像や音声の記録時には、チューナ941またはエンコーダ943からのいずれのストリームを選択して、HDD部944やディスクドライブ945のいずれに供給する。また、セレクタ946は、映像や音声の再生時に、HDD部944またはディスクドライブ945から出力されたストリームをデコーダ947に供給する。
 デコーダ947は、ストリームの復号化処理を行う。デコーダ947は、復号処理化を行うことにより生成された映像データをOSD部948に供給する。また、デコーダ947は、復号処理化を行うことにより生成された音声データを出力する。
 OSD部948は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それをデコーダ947から出力された映像データに重畳して出力する。
 制御部949には、ユーザインタフェース部950が接続されている。ユーザインタフェース部950は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部949に供給する。
 制御部949は、CPUやメモリ等を用いて構成されている。メモリは、CPUにより実行されるプログラムやCPUが処理を行う上で必要な各種のデータを記憶する。メモリに記憶されているプログラムは、記録再生装置94の起動時などの所定のタイミングでCPUにより読み出されて実行される。CPUは、プログラムを実行することで、記録再生装置94がユーザ操作に応じた動作となるように各部を制御する。
 このように構成された記録再生装置では、エンコーダ943に本願の画像符号化装置(画像符号化方法)の機能、デコーダ947に画像復号化装置(画像復号化方法)の機能が設けられて、符号化効率や画質を改善して映像の記録再生を効率よく行うことができる。
 図25は、本発明を適用した撮像装置の概略構成を例示している。撮像装置96は、被写体を撮像し、被写体の画像を表示部に表示させたり、それを画像データとして、記録媒体に記録する。
 撮像装置96は、光学ブロック961、撮像部962、カメラ信号処理部963、画像データ処理部964、表示部965、外部インタフェース部966、メモリ部967、メディアドライブ968、OSD部969、制御部970を有している。また、制御部970には、ユーザインタフェース部971が接続されている。さらに、画像データ処理部964や外部インタフェース部966、メモリ部967、メディアドライブ968、OSD部969、制御部970等は、バス972を介して接続されている。
 光学ブロック961は、フォーカスレンズや絞り機構等を用いて構成されている。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCDまたはCMOSイメージセンサを用いて構成されており、光電変換によって光学像に応じた電気信号を生成してカメラ信号処理部963に供給する。
 カメラ信号処理部963は、撮像部962から供給された電気信号に対してニー補正やガンマ補正、色補正等の種々のカメラ信号処理を行う。カメラ信号処理部963は、カメラ信号処理後の画像データを画像データ処理部964に供給する。
 画像データ処理部964は、カメラ信号処理部963から供給された画像データの符号化処理を行う。画像データ処理部964は、符号化処理を行うことにより生成された符号化データを外部インタフェース部966やメディアドライブ968に供給する。また、画像データ処理部964は、外部インタフェース部966やメディアドライブ968から供給された符号化データの復号化処理を行う。画像データ処理部964は、復号化処理を行うことにより生成された画像データを表示部965に供給する。また、画像データ処理部964は、カメラ信号処理部963から供給された画像データを表示部965に供給する処理や、OSD部969から取得した表示用データを、画像データに重畳させて表示部965に供給する。
 OSD部969は、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを生成して画像データ処理部964に出力する。
 外部インタフェース部966は、例えば、USB入出力端子などで構成され、画像の印刷を行う場合に、プリンタと接続される。また、外部インタフェース部966には、必要に応じてドライブが接続され、磁気ディスク、光ディスク等のリムーバブルメディアが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて、インストールされる。さらに、外部インタフェース部966は、LANやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。制御部970は、例えば、ユーザインタフェース部971からの指示にしたがって、メモリ部967から符号化データを読み出し、それを外部インタフェース部966から、ネットワークを介して接続される他の装置に供給させることができる。また、制御部970は、ネットワークを介して他の装置から供給される符号化データや画像データを、外部インタフェース部966を介して取得し、それを画像データ処理部964に供給したりすることができる。
 メディアドライブ968で駆動される記録メディアとしては、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアが用いられる。また、記録メディアは、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触ICカード等であってもよい。
 また、メディアドライブ968と記録メディアを一体化し、例えば、内蔵型ハードディスクドライブやSSD(Solid State Drive)等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
 制御部970は、CPUやメモリ等を用いて構成されている。メモリは、CPUにより実行されるプログラムやCPUが処理を行う上で必要な各種のデータ等を記憶する。メモリに記憶されているプログラムは、撮像装置96の起動時などの所定のタイミングでCPUにより読み出されて実行される。CPUは、プログラムを実行することで、撮像装置96がユーザ操作に応じた動作となるように各部を制御する。
 このように構成された撮像装置では、画像データ処理部964に本願の画像符号化装置(画像符号化方法)や画像復号化装置(画像復号化方法)の機能が設けられる。したがって、撮像画像をメモリ部967や記録メディア等に記録する際に、符号化効率や画質の改善をはかり撮像画像の記録再生を効率よく行うことができる。
 さらに、本発明は、上述した発明の実施の形態に限定して解釈されるべきではない。この発明の実施の形態は、例示という形態で本発明を開示しており、本発明の要旨を逸脱しない範囲で当業者が実施の形態の修正や代用をなし得ることは自明である。すなわち、本発明の要旨を判断するためには、請求の範囲を参酌すべきである。
 この発明の画像復号化装置と画像符号化装置およびその方法とプログラムでは、上位階層の動きベクトルを予測動きベクトルとして用いて予測精度を向上させることで、画像の復号化や符号化を効率よく行うことができる。また、動きベクトルの検出では、符号化対象のブロックの画像に対する多重解像度解析と画像の再構築によって生成された低解像度符号化対象画像と、参照画像に対して多重解像度解析wを行うことにより得られた多重解像度解析結果を用いて再構築された低解像度参照画像とを用いて動きベクトルの粗検出を行い、高解像度符号化対象画像と粗検出結果を用いて設定した選択領域の高解像選択参照画像を用いて動きベクトルの詳細検出が行われるので、動きベクトルの検出のためにメモリから読み出すデータ量が少なく、効率よく動きベクトルを検出できることから画像の符号化を効率よく行うことができる
 したがって、MPEG、H.26x等のように、ブロック単位で符号化を行うことにより得られた画像情報(ビットストリーム)を、衛星放送、ケーブルTV、インターネット、携帯電話などのネットワークメディアを介して送受信する際に、若しくは光、磁気ディスク、フラッシュメモリのような記憶メディア上で処理する際に用いられる画像復号化装置や画像符号化装置等に適している。
 10,10a・・画像符号化装置、11・・・A/D変換部、12,57・・・画面並べ替えバッファ、13,166・・・減算部、14・・・直交変換部、15・・・量子化部、16・・・可逆符号化部、17,51・・・蓄積バッファ、18・・・レート制御部、21,53・・・逆量子化部、22,54・・・逆直交変換部、23,55,525・・・加算部、24,56・・・デブロッキングフィルタ、25・・・多重解像度解析部、26・・・キャッシュメモリ、27,61・・・フレームメモリ、28・・・多重解像度再構築部、29・・・多重解像度解析・再構築部、31,62・・・イントラ予測部、32,32a・・・動き予測・補償部、33・・・予測画像・最適モード選択部、50・・・画像復号化装置、52・・・可逆復号化部、58・・・D/A変換部、62・・・動き補償部、64,946・・・セレクタ、90・・・テレビジョン装置、92・・・携帯電話機、94・・・記録再生装置、96・・・撮像装置、161,523・・・予測動きベクトル設定部、161a,523a・・・動きベクトル記憶部、161b,523b・・・動きベクトル選択部、164-1~164-n・・・可変長符号化部、165,522・・・選択部、166・・・階層構造情報生成部、521-1~521-n・・・可変長復号化部、901、921・・・アンテナ、902、941・・・チューナ、903・・・デマルチプレクサ、904,947・・・デコーダ、905・・・映像信号処理部、906・・・表示部、907・・・音声信号処理部、908・・・スピーカ、909、942、966・・・外部インタフェース部、910、931,949,970・・・制御部、911,932,971・・・ユーザインタフェース部、912,933,972・・・バス、922・・・通信部、923・・・音声コーデック、924・・・スピーカ、925・・・マイクロホン、926・・・カメラ部、927・・・画像処理部、928・・・多重分離部、929・・・記録再生部、930・・・表示部、943・・・エンコーダ、944・・・HDD部、945・・・ディスクドライブ、948、969・・・OSD部、961・・・光学ブロック、962・・・撮像部、963・・・カメラ信号処理部、964・・・画像データ処理部、965・・・表示部、967・・・メモリ部、968・・・メディアドライブ

Claims (15)

  1.  符号化されたストリームの復号化を行い、差分動きベクトルを出力する可変長復号化部と、
     復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを、該復号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定部と、
     前記差分動きベクトルと前記予測動きベクトルを加算して、前記復号化対象のブロックの動きベクトルを算出する加算部と
    を有する画像復号化装置。
  2.  複数の前記可変長復号化部と、
     前記可変長復号化部から出力される差分動きベクトルを選択する選択部をさらに有し、
     前記複数の可変長復号化部は、互いに異なる階層に応じて可変長符号化に対応する可変長復号化を前記ストリームに対して行い、
     前記選択部は、復号化対象のブロックの階層を示す階層構造情報に基づき、復号化対象のブロックの階層に対応した可変長復号化部の出力を選択する請求項1記載の画像復号化装置。
  3.  符号化されたストリームの復号化を行い、差分動きベクトルを出力する可変長復号化工程と、
     復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを、該復号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定工程と、
     前記差分動きベクトルと前記予測動きベクトルを加算して、前記復号化対象のブロックの動きベクトルを算出する加算工程と
     を設けた画像復号化方法。
  4.  画像符号化をコンピュータで実行させるプログラムであって、
     符号化されたストリームの復号化を行い、差分動きベクトルを出力する可変長復号化手順と、
     復号化対象のブロックを含む該復号化対象のブロックよりもブロックサイズの大きい上位階層のブロックの動きベクトルを、該復号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定手順と、
     前記差分動きベクトルと前記予測動きベクトルを加算して、前記復号化対象のブロックの動きベクトルを算出する加算手順と
     を前記コンピュータで実行させるプログラム。
  5.  符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルを、該符号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定部と、
     前記符号化対象のブロックの動きベクトルと、前記設定された予測動きベクトルとの差分を算出する差分演算部と、
     前記差分動きベクトルの可変長符号化を行う可変長符号化部と
     を有する画像符号化装置。
  6.  最上位階層のブロックサイズであるマクロブロックごとに、該マクロブロックに含まれる符号化対象のブロックの階層を示す階層構造情報を生成する階層構造情報生成部をさらに有する請求項5記載の画像符号化装置。
  7.  複数の前記可変長符号化部と、
     前記複数の可変長符号化部から出力される符号化データを選択する選択部をさらに有し、
     前記複数の可変長符号化部は、互いに異なる階層に対して符号化効率が最も高くなるように最適化した可変長符号化を前記差分動きベクトルに対して行い、
     前記選択部は、符号化対象のブロックの階層に対応する可変長符号化部の出力を選択する請求項6記載の画像符号化装置。
  8.  前記予測動きベクトル設定部は、隣接する符号化済みのマクロブロックの動きベクトルを用いて予測動きベクトルの候補として、該候補から符号化効率が最も高くなる動きベクトルを選択して前記最上位階層の予測動きベクトルに設定する請求項6記載の画像符号化装置。
  9.  符号化対象のブロックの画像に対して多重解像度解析と画像の再構築を行う多重解像度解析・再構築部と、
     前記動きベクトルの算出に用いる参照画像に対して多重解像度解析を行う多重解像度解析部と、
     前記参照画像の多重解像度解析結果を記憶するメモリと、
     前記メモリに記憶されている前記多重解像度解析結果を用いて、画像の再構築を行う多重解像度再構築部とをさらに有し、
     前記動きベクトルの検出を行う動き予測部は、前記多重解像度解析・再構築部で生成された低解像度符号化対象画像と前記多重解像度再構築部で生成された低解像度参照画像とを用いて動きベクトルの粗検出を行い、前記多重解像度解析・再構築部で生成された高解像度符号化対象画像と、前記粗検出した動きベクトルに基づいて設定した選択領域の前記多重解像度再構築部で生成された高解像度選択参照画像を用いて前記動きベクトルの詳細検出を行う請求項5記載の画像符号化装置。
  10.  符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルを、該符号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定工程と、
     前記符号化対象のブロックの動きベクトルと、前記設定された予測動きベクトルとの差分を算出する差分演算工程と、
     前記差分動きベクトルの符号化を行う可変長符号化工程と
     を設けた画像符号化方法。
  11.  画像符号化をコンピュータで実行させるプログラムであって、
     符号化対象のブロックを含む該符号化対象のブロックよりもブロックサイズの大きい上位階層のブロックについて検出した動きベクトルを、該符号化対象のブロックの予測動きベクトルに設定する予測動きベクトル設定手順と、
     前記符号化対象のブロックの動きベクトルと、前記設定された予測動きベクトルとの差分を算出する差分演算手順と、
     前記差分動きベクトルの符号化を行う可変長符号化手順と
     を前記コンピュータで実行させるプログラム。
  12.  符号化対象のブロックの画像に対して多重解像度解析と画像の再構築を行う多重解像度解析・再構築部と、
     前記動きベクトルの算出に用いる参照画像に対して多重解像度解析を行う多重解像度解析部と、
     前記参照画像の多重解像度解析結果を記憶するメモリと、
     前記メモリに記憶されている前記多重解像度解析結果を用いて、画像の再構築を行う多重解像度再構築部と、
     前記多重解像度解析・再構築部で生成された低解像度符号化対象画像と前記多重解像度再構築部で生成された低解像度参照画像とを用いて動きベクトルの粗検出を行い、前記多重解像度解析・再構築部で生成された高解像度符号化対象画像と、前記粗検出した動きベクトルに基づいて設定した選択領域の前記多重解像度再構築部で生成された高解像度選択参照画像を用いて前記動きベクトルの詳細検出を行う動き予測部と
     を有する画像符号化装置。
  13.  前記メモリは、第1のメモリと第2のメモリで構成して、
     前記第1のメモリは、多重解像度解析結果を低解像度から高解像度の順に記憶して、該第1のメモリのメモリ容量を超える多重解像度解析結果を前記第2のメモリに記憶させて、
     前記多重解像度再構築部は、前記第1のメモリに記憶されている前記多重解像度解析結果を用いて画像の再構築を行い、必要とする前記多重解像度解析結果が前記第1のメモリに記憶されていないとき、前記第2のメモリから必要とする前記多重解像度解析結果を読み出す請求項12記載の画像符号化装置。
  14.  符号化対象のブロックの画像に対して多重解像度解析と再構築を行う多重解像度解析・再構築工程と、
     前記動きベクトルの算出に用いる参照画像に対して多重解像度解析を行う多重解像度解析工程と、
     前記多重解像度解析結果をメモリに記憶する記憶工程と、
     前記メモリに記憶されている前記多重解像度解析結果を用いて、画像の再構築を行う多重解像度再構築工程と、
     前記多重解像度解析・再構築部で生成された低解像度符号化対象画像と前記多重解像度再構築部で生成された低解像度参照画像とを用いて動きベクトルの粗検出を行い、前記多重解像度解析・再構築部で生成された高解像度符号化対象画像と、前記粗検出した動きベクトルに基づいて設定した選択領域の前記多重解像度再構築部で生成された高解像度選択参照画像を用いて前記動きベクトルの詳細検出を行う動き予測工程と
     を設けた画像符号化方法。
  15.  画像符号化をコンピュータで実行させるプログラムであって、
     符号化対象のブロックの画像に対して多重解像度解析と再構築を行う多重解像度解析・再構築手順と、
     前記動きベクトルの算出に用いる参照画像に対して多重解像度解析を行う多重解像度解析手順と、
     前記多重解像度解析結果をメモリに記憶させる記憶手順と、
     前記メモリに記憶されている前記多重解像度解析結果を用いて、画像の再構築を行う多重解像度再構築手順と、
     前記多重解像度解析・再構築部で生成された低解像度符号化対象画像と前記多重解像度再構築部で生成された低解像度参照画像とを用いて動きベクトルの粗検出を行い、前記多重解像度解析・再構築部で生成された高解像度符号化対象画像と、前記粗検出した動きベクトルに基づいて設定した選択領域の前記多重解像度再構築部で生成された高解像度選択参照画像を用いて前記動きベクトルの詳細検出を行う動き予測手順と
     を前記コンピュータで実行させるプログラム。
PCT/JP2011/061973 2010-06-07 2011-05-25 画像復号化装置と画像符号化装置およびその方法とプログラム WO2011155331A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2011800272373A CN102948150A (zh) 2010-06-07 2011-05-25 图像解码装置、图像编码装置、及其方法和程序
US13/701,318 US20130077886A1 (en) 2010-06-07 2011-05-25 Image decoding apparatus, image coding apparatus, image decoding method, image coding method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010130287A JP2011259093A (ja) 2010-06-07 2010-06-07 画像復号化装置と画像符号化装置およびその方法とプログラム
JP2010-130287 2010-06-07

Publications (1)

Publication Number Publication Date
WO2011155331A1 true WO2011155331A1 (ja) 2011-12-15

Family

ID=45097939

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/061973 WO2011155331A1 (ja) 2010-06-07 2011-05-25 画像復号化装置と画像符号化装置およびその方法とプログラム

Country Status (4)

Country Link
US (1) US20130077886A1 (ja)
JP (1) JP2011259093A (ja)
CN (1) CN102948150A (ja)
WO (1) WO2011155331A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103338377A (zh) * 2013-07-11 2013-10-02 青岛海信信芯科技有限公司 用于确定运动估计中最优运动矢量的方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106131557A (zh) * 2010-06-07 2016-11-16 数码士有限公司 解码高分辨率图像的方法和装置
CN103152573A (zh) * 2013-03-15 2013-06-12 惠州Tcl移动通信有限公司 一种移动终端与智能电视间图像帧传输的方法及系统
EP3016392A4 (en) * 2013-07-24 2017-04-26 Samsung Electronics Co., Ltd. Method for determining motion vector and apparatus therefor
CN115209158A (zh) * 2016-02-01 2022-10-18 Oppo广东移动通信有限公司 预测图像生成装置、运动图像解码装置、以及运动图像编码装置
CN107289951B (zh) * 2017-07-31 2020-05-12 电子科技大学 一种基于惯性导航的室内移动机器人定位方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06209468A (ja) * 1993-01-11 1994-07-26 Sony Corp 画像信号符号化方法および画像信号符号化装置、並びに画像信号復号化方法および画像信号復号化装置
JP2006060792A (ja) * 2004-07-13 2006-03-02 Microsoft Corp 3dサブバンド符号化のための組み込み基本レイヤコーデック
JP2006108795A (ja) * 2004-09-30 2006-04-20 Sanyo Electric Co Ltd 画像符号化方法
JP2007067796A (ja) * 2005-08-31 2007-03-15 Sanyo Electric Co Ltd 符号化方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1018840A3 (en) * 1998-12-08 2005-12-21 Canon Kabushiki Kaisha Digital receiving apparatus and method
KR100631777B1 (ko) * 2004-03-31 2006-10-12 삼성전자주식회사 다 계층의 모션 벡터를 효율적으로 압축하는 방법 및 장치
KR100587561B1 (ko) * 2004-04-08 2006-06-08 삼성전자주식회사 모션 스케일러빌리티를 구현하는 방법 및 장치
CN101023672A (zh) * 2004-07-12 2007-08-22 诺基亚公司 在可调整视频编码中用于运动预测的系统和方法
KR100678949B1 (ko) * 2004-07-15 2007-02-06 삼성전자주식회사 비디오 코딩 및 디코딩 방법, 비디오 인코더 및 디코더
FR2876860A1 (fr) * 2004-10-20 2006-04-21 Thomson Licensing Sa Procede de codage hierarchique d'images video
US20080267291A1 (en) * 2005-02-18 2008-10-30 Joseph J. Laks Thomson Licensing Llc Method for Deriving Coding Information for High Resolution Images from Low Resolution Images and Coding and Decoding Devices Implementing Said Method
FR2897213A1 (fr) * 2006-02-08 2007-08-10 Thomson Licensing Sas Procede de codage par blocs d'images d'une sequence d'images video
KR101441874B1 (ko) * 2009-08-21 2014-09-25 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
KR102166520B1 (ko) * 2010-04-13 2020-10-16 지이 비디오 컴프레션, 엘엘씨 샘플 영역 병합
US20140218473A1 (en) * 2013-01-07 2014-08-07 Nokia Corporation Method and apparatus for video coding and decoding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06209468A (ja) * 1993-01-11 1994-07-26 Sony Corp 画像信号符号化方法および画像信号符号化装置、並びに画像信号復号化方法および画像信号復号化装置
JP2006060792A (ja) * 2004-07-13 2006-03-02 Microsoft Corp 3dサブバンド符号化のための組み込み基本レイヤコーデック
JP2006108795A (ja) * 2004-09-30 2006-04-20 Sanyo Electric Co Ltd 画像符号化方法
JP2007067796A (ja) * 2005-08-31 2007-03-15 Sanyo Electric Co Ltd 符号化方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103338377A (zh) * 2013-07-11 2013-10-02 青岛海信信芯科技有限公司 用于确定运动估计中最优运动矢量的方法

Also Published As

Publication number Publication date
CN102948150A (zh) 2013-02-27
US20130077886A1 (en) 2013-03-28
JP2011259093A (ja) 2011-12-22

Similar Documents

Publication Publication Date Title
JP6477939B2 (ja) テレビジョン装置、携帯電話機、再生装置、カメラ、および画像処理方法
WO2011155364A1 (ja) 画像復号化装置と画像符号化装置およびその方法とプログラム
WO2012017858A1 (ja) 画像処理装置と画像処理方法
WO2010095556A1 (ja) 画像処理装置および方法
WO2012063878A1 (ja) 画像処理装置と画像処理方法
JPWO2011145601A1 (ja) 画像処理装置と画像処理方法
WO2010035734A1 (ja) 画像処理装置および方法
WO2012063604A1 (ja) 画像処理装置と画像処理方法
WO2011155332A1 (ja) 画像復号化装置と画像符号化装置およびその方法とプログラム
WO2011155331A1 (ja) 画像復号化装置と画像符号化装置およびその方法とプログラム
US20110229049A1 (en) Image processing apparatus, image processing method, and program
JP2013150164A (ja) 符号化装置および符号化方法、並びに、復号装置および復号方法
WO2012056924A1 (ja) 画像処理装置と画像処理方法
JPWO2010035735A1 (ja) 画像処理装置および方法
JP5387520B2 (ja) 情報処理装置と情報処理方法
WO2012077533A1 (ja) 画像復号化装置と動きベクトル復号化方法、画像符号化装置と動きベクトル符号化方法

Legal Events

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

Ref document number: 201180027237.3

Country of ref document: CN

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

Ref document number: 11792288

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13701318

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11792288

Country of ref document: EP

Kind code of ref document: A1