WO2012077530A1 - 画像処理装置および方法 - Google Patents
画像処理装置および方法 Download PDFInfo
- Publication number
- WO2012077530A1 WO2012077530A1 PCT/JP2011/077507 JP2011077507W WO2012077530A1 WO 2012077530 A1 WO2012077530 A1 WO 2012077530A1 JP 2011077507 W JP2011077507 W JP 2011077507W WO 2012077530 A1 WO2012077530 A1 WO 2012077530A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- unit
- motion vector
- encoding
- image
- vector information
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
Definitions
- the present invention relates to an image processing apparatus and method, and more particularly to an image processing apparatus and method capable of further improving the encoding efficiency of image encoding.
- MPEG compressed by orthogonal transform such as discrete cosine transform and motion compensation is used for the purpose of efficient transmission and storage of information.
- a device that conforms to a system such as Moving (Pictures Experts Group) is becoming widespread in both information distribution at broadcast stations and information reception in general households.
- MPEG2 International Organization for Standardization
- IEC International Electrotechnical Commission
- MPEG2 was mainly intended for high-quality encoding suitable for broadcasting, but it did not support encoding methods with a lower code amount (bit rate) than MPEG1, that is, a higher compression rate. With the widespread use of mobile terminals, the need for such an encoding system is expected to increase in the future, and the MPEG4 encoding system has been standardized accordingly. Regarding the image coding system, the standard was approved as an international standard in December 1998 as ISO / IEC 14496-2.
- H.26L International Telecommunication Union Telecommunication Standardization Sector
- Q6 / 16 VCEG Video Coding Expert Group
- H.26L is known to achieve higher encoding efficiency than the conventional encoding schemes such as MPEG2 and MPEG4, although a large amount of calculation is required for encoding and decoding.
- Joint ⁇ ⁇ ⁇ ⁇ Model of Enhanced-Compression Video Coding has been implemented based on this H.26L and incorporating functions not supported by H.26L to achieve higher coding efficiency. It has been broken.
- AVC Advanced Video Coding
- the unit of motion prediction / compensation processing is 16 ⁇ 16 pixels in the frame motion compensation mode, and 16 ⁇ 8 pixels for each of the first field and the second field in the field motion compensation mode.
- Motion prediction / compensation processing is performed in units of.
- one macro block composed of 16 ⁇ 16 pixels is divided into any of 16 ⁇ 16, 16 ⁇ 8, 8 ⁇ 16, or 8 ⁇ 8 partitions, and independent motions are performed. It is possible to have vector information. Further, the 8 ⁇ 8 partition can be divided into any of 8 ⁇ 8, 8 ⁇ 4, 4 ⁇ 8, and 4 ⁇ 4 subpartitions and have independent motion vector information.
- motion vector encoding information is obtained by performing median prediction using motion vector information of an adjacent motion compensation unit lock when encoding a motion vector. Reduction is realized.
- the vertical component of the motion vector is always predicted first from neighboring blocks using the median, but either the vertical component or the horizontal component of the motion vector is predicted first. Whether this is more efficient depends on the characteristics of the image, so this method is not always good in encoding efficiency.
- the present invention has been made in view of such a situation, and an object thereof is to further improve the coding efficiency of image coding.
- One aspect of the present invention uses the horizontal component of the motion vector information of the neighboring block of the coding target block and the coding target block having the motion vector information having the highest correlation with the coding target block for the vertical component, A first method for encoding motion vector information searched for an encoding target block, a neighboring block of the encoding target block having motion vector information having the highest correlation with the encoding target block with respect to a horizontal component, and Evaluate the result of the encoding for each of the second methods for encoding the motion vector information searched for the encoding target block using the vertical component of the motion vector information of the encoding target block. Based on the evaluation value calculated by the evaluation value calculating means and the evaluation value calculating means Te, the first method, or an image processing apparatus and selecting means for selecting one of the second method.
- the evaluation value calculation means can calculate the evaluation value for each block, and the selection means can perform selection for each block.
- the evaluation value calculating means calculates a cost function value as a result of the encoding as the evaluation value, and the evaluation value calculating means is the cost function of the first method or the second method. The method with the smaller value can be selected.
- the evaluation value calculation means can set the code amount of the motion vector information of the encoded block to be encoded as the cost function value.
- the apparatus further comprises vertical reference encoding means for performing encoding by the first method and horizontal reference encoding means for performing encoding by the second method, wherein the selecting means is a code by the vertical reference encoding means. Either the result of encoding or the result of encoding by the horizontal reference encoding means can be selected.
- the vertical reference encoding means encodes the vertical component using motion vector information determined by the median of the motion vector information of the neighboring block, and the horizontal reference encoding means Coding can be performed using motion vector information determined by a median of motion vector information of the neighboring blocks.
- the evaluation value calculating means calculates a DR value indicating a dynamic range of a motion vector of the neighboring block as the evaluation value for each of a vertical component and a horizontal component, and the selecting means is calculated by the evaluation value calculating means When the DR value of the vertical component is large, the first method is selected, and when the DR value of the horizontal component calculated by the evaluation value calculating unit is large, the second method is selected. be able to.
- a vertical reference encoding unit that performs encoding by the first method
- the second method Horizontal reference encoding means for performing encoding by the above method.
- One aspect of the present invention is also an image processing method of an image processing device, in which an evaluation value calculation unit has a motion vector information having the highest correlation with a coding target block with respect to a vertical component, in the vicinity of the coding target block.
- an evaluation value for evaluating the result of the encoding is calculated, and selection means , Based on the calculated evaluation value, the first method, or an image processing method for selecting one of the second method.
- the vertical component is encoded using the horizontal component of the motion vector information of the neighboring block of the coding target block and the coding target block having the motion vector information having the highest correlation with the coding target block.
- a first method for encoding motion vector information searched for the target block, a neighboring block of the target block having motion vector information having the highest correlation with the target block for the horizontal component, and an encoding target An evaluation value for evaluating the encoding result is calculated for each of the second methods for encoding the motion vector information searched for the encoding target block using the vertical component of the block motion vector information. Based on the calculated evaluation value, either the first method or the second method is selected.
- an image can be processed.
- the encoding efficiency can be further improved.
- FIG. 1 shows a configuration of an embodiment of an image encoding apparatus that encodes an image by an AVC encoding method.
- the image encoding device 100 shown in FIG. 1 is a device that encodes and outputs an image by an encoding method based on the AVC standard. As illustrated in FIG. 1, the image encoding device 100 includes an A / D conversion unit 101, a screen rearrangement buffer 102, a calculation unit 103, an orthogonal transformation unit 104, a quantization unit 105, a lossless encoding unit 106, and an accumulation. A buffer 107 is provided.
- the image encoding device 100 includes an inverse quantization unit 108, an inverse orthogonal transform unit 109, a calculation unit 110, a deblock filter 111, a frame memory 112, a selection unit 113, an intra prediction unit 114, a motion prediction / compensation unit 115, A selection unit 116 and a rate control unit 117 are included.
- the A / D conversion unit 101 performs A / D conversion on the input image data, outputs it to the screen rearrangement buffer 102, and stores it.
- the screen rearrangement buffer 102 rearranges the stored frame images in the display order in the order of frames for encoding according to the GOP (Group of Picture) structure.
- the screen rearrangement buffer 102 supplies the image with the rearranged frame order to the arithmetic unit 103.
- the screen rearrangement buffer 102 also supplies the image in which the order of the frames is rearranged to the intra prediction unit 114 and the motion prediction / compensation unit 115.
- the calculation unit 103 subtracts the prediction image supplied from the intra prediction unit 114 or the motion prediction / compensation unit 115 via the selection unit 116 from the image read from the screen rearrangement buffer 102, and orthogonalizes the difference information.
- the data is output to the conversion unit 104.
- the calculation unit 103 subtracts the prediction image supplied from the intra prediction unit 114 from the image read from the screen rearrangement buffer 102.
- the arithmetic unit 103 subtracts the predicted image supplied from the motion prediction / compensation unit 115 from the image read from the screen rearrangement buffer 102.
- the orthogonal transform unit 104 performs orthogonal transform such as discrete cosine transform and Karhunen-Loeve transform on the difference information supplied from the computation unit 103 and supplies the transform coefficient to the quantization unit 105.
- the quantization unit 105 quantizes the transform coefficient output from the orthogonal transform unit 104.
- the quantization unit 105 sets a quantization parameter based on information on the target value of the code amount supplied from the rate control unit 117, and performs quantization.
- the quantization unit 105 supplies the quantized transform coefficient to the lossless encoding unit 106.
- the lossless encoding unit 106 performs lossless encoding such as variable length encoding and arithmetic encoding on the quantized transform coefficient. Since the coefficient data is quantized under the control of the rate control unit 117, the code amount becomes a target value set by the rate control unit 117 (or approximates the target value).
- the lossless encoding unit 106 acquires information indicating intra prediction from the intra prediction unit 114 and acquires information indicating inter prediction mode, motion vector information, and the like from the motion prediction / compensation unit 115.
- information indicating intra prediction is hereinafter also referred to as intra prediction mode information.
- information indicating an information mode indicating inter prediction is hereinafter also referred to as inter prediction mode information.
- the lossless encoding unit 106 encodes the quantized transform coefficient, and also converts various information such as filter coefficient, intra prediction mode information, inter prediction mode information, and quantization parameter into one piece of header information of the encoded data. Part (multiplex).
- the lossless encoding unit 106 supplies the encoded data obtained by encoding to the accumulation buffer 107 for accumulation.
- the lossless encoding unit 106 performs lossless encoding processing such as variable length encoding or arithmetic encoding.
- variable length coding examples include H.264.
- CAVLC Context-Adaptive Variable Length Coding
- arithmetic coding examples include CABAC (Context-Adaptive Binary Arithmetic Coding).
- the accumulation buffer 107 temporarily holds the encoded data supplied from the lossless encoding unit 106, and at a predetermined timing, the H.264 buffer stores the encoded data. As an encoded image encoded by the H.264 / AVC format, for example, it is output to a recording device or a transmission path (not shown) in the subsequent stage.
- the transform coefficient quantized by the quantization unit 105 is also supplied to the inverse quantization unit 108.
- the inverse quantization unit 108 inversely quantizes the quantized transform coefficient by a method corresponding to the quantization by the quantization unit 105.
- the inverse quantization unit 108 supplies the obtained transform coefficient to the inverse orthogonal transform unit 109.
- the inverse orthogonal transform unit 109 performs inverse orthogonal transform on the supplied transform coefficient by a method corresponding to the orthogonal transform processing by the orthogonal transform unit 104.
- the inversely orthogonal transformed output (restored difference information) is supplied to the calculation unit 110.
- the calculation unit 110 uses the inverse prediction unit 114 or the motion prediction / compensation unit 115 via the selection unit 116 for the inverse orthogonal transformation result supplied from the inverse orthogonal transformation unit 109, that is, the restored difference information.
- the images are added to obtain a locally decoded image (decoded image).
- the calculation unit 110 adds the prediction image supplied from the intra prediction unit 114 to the difference information.
- the calculation unit 110 adds the predicted image supplied from the motion prediction / compensation unit 115 to the difference information.
- the addition result is supplied to the deblock filter 111 or the frame memory 112.
- the deblock filter 111 removes block distortion of the decoded image by appropriately performing deblock filter processing, and improves image quality by appropriately performing loop filter processing using, for example, a Wiener filter.
- the deblocking filter 111 classifies each pixel and performs an appropriate filter process for each class.
- the deblocking filter 111 supplies the filter processing result to the frame memory 112.
- the frame memory 112 outputs the stored reference image to the intra prediction unit 114 or the motion prediction / compensation unit 115 via the selection unit 113 at a predetermined timing.
- the frame memory 112 supplies the reference image to the intra prediction unit 114 via the selection unit 113.
- the frame memory 112 supplies the reference image to the motion prediction / compensation unit 115 via the selection unit 113.
- the selection unit 113 supplies the reference image to the intra prediction unit 114 when the reference image supplied from the frame memory 112 is an image to be subjected to intra coding. Further, when the reference image supplied from the frame memory 112 is an image to be subjected to inter coding, the selection unit 113 supplies the reference image to the motion prediction / compensation unit 115.
- the intra prediction unit 114 performs intra prediction (intra-screen prediction) that generates a predicted image using pixel values in the screen.
- the intra prediction unit 114 performs intra prediction in a plurality of modes (intra prediction modes).
- an intra 4 ⁇ 4 prediction mode, an intra 8 ⁇ 8 prediction mode, and an intra 16 ⁇ 16 prediction mode are defined, and for a color difference signal,
- a prediction mode independent of the luminance signal.
- intra 4x4 prediction mode one intra prediction mode must be defined for each 4x4 luminance block, and for intra 8x8 prediction mode, for each 8x8 luminance block become.
- intra 16 ⁇ 16 prediction mode and the color difference signal one prediction mode is defined for each macroblock.
- the intra prediction unit 114 generates predicted images in all intra prediction modes, evaluates each predicted image, and selects an optimal mode. When the optimal intra prediction mode is selected, the intra prediction unit 114 supplies the prediction image generated in the optimal mode to the calculation unit 103 and the calculation unit 110 via the selection unit 116.
- the intra prediction unit 114 supplies information such as intra prediction mode information indicating the adopted intra prediction mode to the lossless encoding unit 106 as appropriate.
- the motion prediction / compensation unit 115 uses the input image supplied from the screen rearrangement buffer 102 and the reference image supplied from the frame memory 112 via the selection unit 113 for the image to be inter-coded, Motion prediction is performed, motion compensation processing is performed according to the detected motion vector, and a predicted image (inter predicted image information) is generated.
- the motion prediction / compensation unit 115 performs inter prediction processing in all candidate inter prediction modes, and generates a prediction image.
- the motion prediction / compensation unit 115 supplies the generated predicted image to the calculation unit 103 and the calculation unit 110 via the selection unit 116.
- the motion prediction / compensation unit 115 supplies the inter prediction mode information indicating the employed inter prediction mode and the motion vector information indicating the calculated motion vector to the lossless encoding unit 106.
- the selection unit 116 supplies the output of the intra prediction unit 114 to the calculation unit 103 and the calculation unit 110 in the case of an image to be subjected to intra coding, and outputs the output of the motion prediction / compensation unit 115 in the case of an image to be subjected to inter coding. It supplies to the calculating part 103 and the calculating part 110.
- the rate control unit 117 controls the quantization operation rate of the quantization unit 105 based on the compressed image stored in the storage buffer 107 so that overflow or underflow does not occur.
- FIG. 2 is a block diagram illustrating a main configuration example of an image decoding apparatus that realizes image compression by orthogonal transformation such as discrete cosine transformation or Karhunen-Labe transformation and motion compensation.
- An image decoding device 200 shown in FIG. 2 is a decoding device corresponding to the image encoding device 100.
- the encoded data encoded by the image encoding device 100 is supplied to the image decoding device 200 corresponding to the image encoding device 100 via, for example, a predetermined transmission path and decoded.
- the image decoding apparatus 200 includes a storage buffer 201, a lossless decoding unit 202, an inverse quantization unit 203, an inverse orthogonal transform unit 204, a calculation unit 205, a deblock filter 206, a screen rearrangement buffer 207, And a D / A converter 208.
- the image decoding apparatus 200 includes a frame memory 209, a selection unit 210, an intra prediction unit 211, a motion prediction / compensation unit 212, and a selection unit 213.
- the accumulation buffer 201 accumulates the transmitted encoded data. This encoded data is encoded by the image encoding device 100.
- the lossless decoding unit 202 decodes the encoded data read from the accumulation buffer 201 at a predetermined timing by a method corresponding to the encoding method of the lossless encoding unit 106 in FIG.
- intra prediction mode information is stored in the header portion of the encoded data.
- the lossless decoding unit 202 also decodes the intra prediction mode information and supplies the information to the intra prediction unit 211.
- motion vector information is stored in the header portion of the encoded data.
- the lossless decoding unit 202 also decodes the motion vector information and supplies the information to the motion prediction / compensation unit 212.
- the inverse quantization unit 203 inversely quantizes the coefficient data (quantization coefficient) obtained by decoding by the lossless decoding unit 202 by a method corresponding to the quantization method of the quantization unit 105 in FIG. That is, the inverse quantization unit 203 performs inverse quantization of the quantization coefficient by the same method as the inverse quantization unit 108 in FIG.
- the inverse quantization unit 203 supplies the inversely quantized coefficient data, that is, the orthogonal transform coefficient, to the inverse orthogonal transform unit 204.
- the inverse orthogonal transform unit 204 is a method corresponding to the orthogonal transform method of the orthogonal transform unit 104 in FIG. 1 (the same method as the inverse orthogonal transform unit 109 in FIG. 1), and inverse orthogonal transforms the orthogonal transform coefficient to obtain an image code.
- the decoding apparatus 100 obtains decoded residual data corresponding to the residual data before being orthogonally transformed in the encoding apparatus 100.
- the decoded residual data obtained by the inverse orthogonal transform is supplied to the calculation unit 205.
- a prediction image is supplied to the calculation unit 205 from the intra prediction unit 211 or the motion prediction / compensation unit 212 via the selection unit 213.
- the calculation unit 205 adds the decoded residual data and the prediction image, and obtains decoded image data corresponding to the image data before the prediction image is subtracted by the calculation unit 103 of the image encoding device 100.
- the arithmetic unit 205 supplies the decoded image data to the deblock filter 206.
- the deblocking filter 206 removes the block distortion of the supplied decoded image, and then supplies it to the screen rearrangement buffer 207.
- the screen rearrangement buffer 207 rearranges images. That is, the order of frames rearranged for the encoding order by the screen rearrangement buffer 102 in FIG. 1 is rearranged in the original display order.
- the D / A conversion unit 208 D / A converts the image supplied from the screen rearrangement buffer 207, outputs it to a display (not shown), and displays it.
- the output of the deblock filter 206 is further supplied to the frame memory 209.
- the frame memory 209, the selection unit 210, the intra prediction unit 211, the motion prediction / compensation unit 212, and the selection unit 213 are the frame memory 112, the selection unit 113, the intra prediction unit 114, and the motion prediction / compensation unit of the image encoding device 100. 115 and the selection unit 116 respectively.
- the selection unit 210 reads out the inter-processed image and the referenced image from the frame memory 209 and supplies them to the motion prediction / compensation unit 212. Further, the selection unit 210 reads an image used for intra prediction from the frame memory 209 and supplies the image to the intra prediction unit 211.
- the intra prediction unit 211 is appropriately supplied from the lossless decoding unit 202 with information indicating the intra prediction mode obtained by decoding the header information. Based on this information, the intra prediction unit 211 generates a prediction image from the reference image acquired from the frame memory 209 and supplies the generated prediction image to the selection unit 213.
- the motion prediction / compensation unit 212 acquires information (prediction mode information, motion vector information, reference frame information, flags, various parameters, and the like) obtained by decoding the header information from the lossless decoding unit 202.
- the motion prediction / compensation unit 212 generates a prediction image from the reference image acquired from the frame memory 209 based on the information supplied from the lossless decoding unit 202, and supplies the generated prediction image to the selection unit 213.
- the selection unit 213 selects the prediction image generated by the motion prediction / compensation unit 212 or the intra prediction unit 211 and supplies the selected prediction image to the calculation unit 205.
- FIG. 3 is a diagram for explaining an example of a state of motion prediction / compensation processing with 1/4 pixel accuracy defined in the AVC encoding method.
- each square represents a pixel.
- A indicates the position of integer precision pixels stored in the frame memory 112
- b, c, and d indicate positions of 1/2 pixel precision
- e1, e2, and e3 indicate 1/4 pixel precision positions. Indicates the position.
- the pixel values at the positions b and d are generated as shown in the following equations (2) and (3) using a 6 tap FIR filter.
- the pixel value at the position of c is generated as shown in the following formulas (4) to (6) by applying a 6 tap FIR filter in the horizontal direction and the vertical direction.
- Clip processing is performed only once at the end after performing both horizontal and vertical product-sum processing.
- E1 to e3 are generated by linear interpolation as shown in the following equations (7) to (9).
- Motion prediction / compensation In MPEG2, the unit of motion prediction / compensation processing is 16 ⁇ 16 pixels in the frame motion compensation mode, and 16 ⁇ for each of the first field and the second field in the field motion compensation mode. Motion prediction / compensation processing is performed in units of 8 pixels.
- one macroblock composed of 16 ⁇ 16 pixels is divided into any partition of 16 ⁇ 16, 16 ⁇ 8, 8 ⁇ 16, or 8 ⁇ 8. It is possible to have independent motion vector information for each sub macroblock. Further, as shown in FIG. 5, the 8 ⁇ 8 partition is divided into 8 ⁇ 8, 8 ⁇ 4, 4 ⁇ 8, and 4 ⁇ 4 sub-macroblocks and has independent motion vector information. It is possible.
- Each straight line shown in FIG. 5 indicates the boundary of the motion compensation block.
- E indicates the motion compensation block that is about to be encoded
- a to D indicate motion compensation blocks that are already encoded and that are adjacent to E, respectively.
- motion vector information on motion compensation blocks A, B, and C is used, and predicted motion vector information pmv E for motion compensation block E is generated by the median operation as shown in the following equation (10).
- the information about the motion compensation block C is “unavailable” due to the fact that it is the end of the image frame, the information about the motion compensation block D is substituted.
- Data mvd E encoded as motion vector information for the motion compensation block E in the image compression information is generated as shown in the following equation (11) using pmv E.
- Multi-Reference Frame (multi-reference frame), which is not specified in the conventional image encoding method such as MPEG2 and H.263, is specified.
- motion prediction / compensation processing is performed by referring to only one reference frame stored in the frame memory.
- a plurality of reference frames are stored in memory, and different memories can be referenced for each macroblock.
- Direct Mode direct mode
- the motion vector information is not stored in the image compression information.
- the motion vector information of the block is calculated from the motion vector information of the neighboring block or the motion vector information of the co-located block that is a block at the same position as the processing target block in the reference frame.
- Direct Mode There are two types of direct mode (Direct Mode): Spatial Direct Mode (spatial direct mode) and Temporal Direct Mode (temporal direct mode), which can be switched for each slice.
- Spatial Direct Mode spatial direct mode
- Temporal Direct Mode temporary direct mode
- motion vector information mvE of the processing target motion compensation block E is calculated as shown in the following equation (12).
- motion vector information generated by Median prediction is applied to the block.
- temporal direct mode Tempooral Direct Mode
- a block at the same space address as the current block is a Co-Located block
- motion vector information in the Co-Located block is mv col .
- the motion vector information mv L0 of L0 and the motion vector information mv L1 of L1 in the picture are calculated as in the following equations (13) and (14).
- the direct mode can be defined in units of 16 ⁇ 16 pixel macroblocks or in units of 8 ⁇ 8 pixel blocks.
- JM Job Model
- the following two mode determination methods can be selected: High Complexity Mode and Low Complexity Mode.
- the cost function value for each prediction mode is calculated, and the prediction mode that minimizes the cost function value is selected as the sub macroblock or the optimum mode for the macroblock.
- ⁇ is the entire set of candidate modes for encoding the block or macroblock
- D is the differential energy between the decoded image and the input image when encoded in the prediction mode.
- ⁇ is a Lagrange undetermined multiplier given as a function of the quantization parameter.
- R is the total code amount when encoding is performed in this mode, including orthogonal transform coefficients.
- D is the difference energy between the predicted image and the input image, unlike the case of High Complexity Mode.
- QP2Quant QP
- HeaderBit is a code amount related to information belonging to Header, such as a motion vector and mode, which does not include an orthogonal transform coefficient.
- a median is used to predict a vertical motion vector from neighboring blocks A, B, and C.
- a vertical motion vector actually obtained in the block The difference between the motion vectors in the vertical direction obtained by using the median is calculated and encoded.
- the absolute difference value between the vertical motion vector of the block and the vertical motion vectors of neighboring blocks A, B, and C is calculated, and the nearest neighboring block is specified.
- the motion vector in the horizontal direction is predicted from the neighboring block specified in step (b).
- the median is used to always predict the motion vector in the vertical direction first from neighboring blocks, but in reality, it is more likely that the motion vector in the vertical direction is predicted first due to the characteristics of the image. Encoding efficiency is not always better than predicting the motion vector in the direction first.
- FIG. 8 shows a configuration of an embodiment of an image encoding apparatus as an image processing apparatus to which the present invention is applied.
- An image encoding device 300 shown in FIG. 8 is a device that encodes an image, and basically has the same configuration as the image encoding device 100 that encodes an image using the AVC encoding method shown in FIG. Then, the same processing is performed.
- the image encoding apparatus 300 determines which of the vertical component and the horizontal component is encoded first when each component of the motion vector is encoded and transmitted separately. By selecting, the encoding efficiency can be improved as compared with the case of the image encoding device 100. The image encoding apparatus 300 performs this selection based on an evaluation value that evaluates the encoding efficiency of the encoding result obtained by encoding in each mode.
- the image encoding device 300 illustrated in FIG. 8 includes a motion vector encoding unit 301 in addition to the configuration of the image encoding device 100.
- the motion vector encoding unit 301 encodes a motion vector when the motion prediction / compensation unit 115 performs inter motion prediction using a median. At that time, the motion vector encoding unit 301 selects a component to be encoded first of the motion vector, for example, according to the content of the image to be encoded (evaluation value for evaluating the encoding efficiency).
- FIG. 9 is a block diagram illustrating an internal configuration example of the motion prediction / compensation unit 115 and the motion vector encoding unit 301.
- the motion prediction / compensation unit 115 includes a motion search unit 311, a cost function calculation unit 312, a mode determination unit 313, a motion compensation unit 314, and a motion vector buffer 315.
- the motion search unit 311 receives the input image pixel value from the screen rearrangement buffer 102 and the reference image pixel value from the frame memory 112.
- the motion search unit 311 performs motion search processing in all inter prediction modes for all block sizes, and supplies the motion vector information, input image pixel values, and reference image pixel values of the searched blocks to the cost function calculation unit 312. To do.
- the motion vector encoding unit 301 performs processing for a mode in which predictive encoding is performed using a median.
- the motion search unit 311 supplies the motion vector encoding unit 301 with the motion vector information of the block searched for each inter prediction mode.
- the cost function calculation unit 312 is supplied with motion vector information, input image pixel values, and reference image pixel values for each inter prediction mode from the motion search unit 311.
- the cost function calculation unit 82 generates a prediction image using the supplied information, and calculates a cost function value for each inter prediction mode.
- the cost function calculation unit 312 supplies the motion vector information, motion prediction mode information, and cost function value for each inter prediction mode to the mode determination unit 313.
- the cost function calculation unit 312 is supplied with the motion vector information, the difference motion vector information generated by the motion vector encoding unit 301, the motion prediction mode information, and the cost function value from the motion vector encoding unit 301. Is done.
- the cost function calculation unit 312 also supplies the information to the mode determination unit 313.
- the mode determination unit 313 uses, for example, a cost function value for each inter prediction mode as an evaluation value of the coding efficiency used for determining which mode is optimal to use among the inter prediction modes. That is, the mode determination unit 313 sets the inter prediction mode having the smallest cost function value as the optimal prediction mode. Then, the mode determination unit 313 supplies the optimal prediction mode information, the motion vector information (and difference motion vector information), and the cost function value to the motion compensation unit 314.
- the motion compensation unit 314 generates a prediction image in the optimal prediction mode by compensating the reference image from the frame memory 112 using the motion vector of the block corresponding to the optimal prediction mode from the mode determination unit 313. . Then, the motion compensation unit 314 outputs the prediction image in the optimal prediction mode and the cost function value to the selection unit 116.
- the motion compensation unit 314 supplies optimal inter-mode information and motion vector information (or difference motion vector information) to the lossless encoding unit 106 in order to send to the decoding side.
- the motion compensation unit 314 stores the motion vector information of the block in the motion vector buffer 315 in order to use it as a motion vector of the peripheral block in the process for the next block.
- the 0 vector is stored in the motion vector buffer 315 as motion vector information.
- the motion vector buffer 315 stores motion vector information of each block in the optimal prediction mode.
- the stored motion vector information is supplied to the cost function calculation unit 312 and the motion vector encoding unit 301 as peripheral motion vector information in order to generate predicted motion vector information in subsequent blocks.
- the motion vector encoding unit 301 includes a vertical reference encoding unit 321, a horizontal reference encoding unit 322, a cost calculation unit 323, and a selection unit 324.
- the vertical reference encoding unit 321 performs median prediction based on the vertical component as described later, generates predicted motion vector information using the motion vector information of the neighboring blocks, and the predicted motion vector information and the searched Difference motion vector information that is a difference from the motion vector information of the motion block is generated.
- the horizontal reference encoding unit 322 performs median prediction based on the horizontal component, generates predicted motion vector information using the motion vector information of the surrounding blocks, and the predicted motion vector information and the searched motion block Difference motion vector information that is a difference from the motion vector information is generated. That is, the motion vector encoding unit 301 performs median prediction in both a mode based on the vertical component and a mode based on the horizontal component (in a plurality of modes) to generate differential motion vector information.
- the vertical reference encoding unit 321 and the horizontal reference encoding unit 322 supply the difference motion vector information generated by the median prediction in each mode and the motion vector information of the block acquired from the motion search unit 311 to the cost calculation unit 323. .
- Cost calculation unit 323 calculates a cost function value for each mode. As illustrated in FIG. 9, the cost calculation unit 323 includes a vertical reference cost calculation unit 331 and a horizontal reference cost calculation unit 332.
- the vertical reference encoding unit 321 supplies the difference motion vector information generated by the median prediction in the mode based on the vertical component and the motion vector information of the block acquired from the motion search unit 311 to the vertical reference cost calculation unit 331. .
- the vertical reference cost calculation unit 331 calculates the code amount Iv of the difference motion vector information supplied from the vertical reference encoding unit 321 as a cost function value. Note that the vertical reference cost calculation unit 331 supplies the difference motion vector information and motion vector information supplied from the vertical reference encoding unit 321, the input image pixel value supplied from the screen rearrangement buffer 102, and the frame memory 112. The predicted image may be generated using the reference image pixel value to be calculated, and the cost function value may be calculated. The vertical reference cost calculation unit 331 sends the calculated cost function value, motion prediction mode information indicating a mode based on the vertical component, and motion vector information and difference motion vector information of the block to the selection unit 324. Supply.
- the horizontal reference encoding unit 322 sends the difference motion vector information generated by the median prediction in the mode based on the horizontal component and the motion vector information of the block acquired from the motion search unit 311 to the horizontal reference cost calculation unit 332. Supply.
- the horizontal reference cost calculation unit 332 calculates the code amount Ih of the difference motion vector information supplied from the horizontal reference encoding unit 322 as a cost function value.
- the horizontal reference cost calculation unit 332 supplies the difference motion vector information and the motion vector information supplied from the horizontal reference encoding unit 322, the input image pixel value supplied from the screen rearrangement buffer 102, and the frame memory 112.
- the predicted image may be generated using the reference image pixel value to be calculated, and the cost function value may be calculated.
- the horizontal reference cost calculation unit 332 sends the calculated cost function value, the motion prediction mode information indicating the mode based on the horizontal component, and the motion vector information and the difference motion vector information of the block to the selection unit 324. Supply.
- the selection unit 324 compares the cost function values (for example, Iv and Ih) supplied from the vertical reference cost calculation unit 331 and the horizontal reference cost calculation unit 332 with each other, and sets the smaller one as the optimum prediction mode for median prediction.
- the selection result is stored in 1 bit as motion prediction mode information.
- the selection unit 324 supplies the cost function value, motion prediction mode information, difference motion vector information, and motion vector information of the selected mode to the cost function calculation unit 312.
- FIG. 10 is a block diagram illustrating a main configuration example of the vertical reference encoding unit 321 and the horizontal reference encoding unit 322.
- the vertical reference encoding unit 321 performs median prediction using the vertical component as a reference, and generates differential motion vector information.
- the method based on the vertical component is a method of specifying a peripheral block to be used for horizontal motion prediction by using a vertical motion vector of the peripheral block in median prediction.
- the vertical reference encoding unit 321 includes a vertical component prediction encoding unit 341, a minimum determination unit 342, and a horizontal component difference encoding unit 343.
- the vertical component prediction encoding unit 341 predicts a vertical motion vector by median prediction from the vertical components of the motion vectors of a plurality of surrounding blocks, obtains a difference between the predicted motion vector and the motion vector of the block, Encode.
- the vertical component predictive encoding unit 341 supplies it as a vertical component of the difference motion vector information to the minimum determination unit 342 together with the peripheral block and the motion vector information of the block.
- the vertical component prediction encoding unit 341 includes a vertical component median prediction unit 351 and a vertical component difference encoding unit 352.
- the vertical component median prediction unit 351 predicts a vertical motion vector from the vertical components of the motion vector information of the peripheral blocks acquired from the motion vector buffer 315 by median prediction (generates a vertical component of the predicted motion vector).
- the vertical component median prediction unit 351 supplies the vertical component of the generated predicted motion vector, the motion vectors of the neighboring blocks, and the motion vector of the block supplied from the motion search unit 311 to the vertical component difference encoding unit 352. .
- the vertical component difference encoding unit 352 calculates and encodes the difference between the predicted motion vector information and the motion vector information of the block for the vertical component.
- the vertical component difference encoding unit 352 supplies it as a vertical component of the difference motion vector information to the minimum determination unit 342 together with the peripheral block and the motion vector information of the block.
- the minimum determination unit 342 obtains the difference between the vertical component of the motion vector of each peripheral block and the vertical component of the motion vector of the block, compares the differences, and specifies the peripheral block having the minimum difference value.
- the minimum determination unit 342 supplies the motion vector of the identified peripheral block, the motion vector of the block, and the vertical component of the difference motion vector information to the horizontal component difference encoding unit 343.
- the horizontal component difference encoding unit 343 calculates and encodes the difference between the motion vector information of the peripheral block specified by the minimum determination unit 342 and the motion vector information of the block for the horizontal component.
- the horizontal component difference encoding unit 343 supplies it as a horizontal component of the difference motion vector information to the vertical reference cost calculation unit 331 together with the vertical component of the difference motion vector information and the motion vector information of the block.
- the horizontal reference encoding unit 322 performs median prediction using the horizontal component as a reference, and generates differential motion vector information.
- the method based on the horizontal component is a method for specifying a peripheral block used for motion prediction in the vertical direction using a horizontal motion vector of the peripheral block in median prediction.
- the horizontal reference encoding unit 322 includes a horizontal component prediction encoding unit 361, a minimum determination unit 362, and a vertical component difference encoding unit 363.
- the horizontal component prediction encoding unit 361 predicts a horizontal motion vector by median prediction from the horizontal components of the motion vectors of a plurality of neighboring blocks, obtains a difference between the predicted motion vector and the motion vector of the block, Encode.
- the horizontal component predictive encoding unit 361 supplies it as a horizontal component of the difference motion vector information to the minimum determination unit 362 together with the peripheral block and the motion vector information of the block.
- the horizontal component prediction encoding unit 361 includes a horizontal component median prediction unit 371 and a horizontal component difference encoding unit 372.
- the horizontal component median prediction unit 371 predicts a horizontal motion vector from the horizontal components of the motion vector information of the peripheral blocks acquired from the motion vector buffer 315 by median prediction (generates a horizontal component of the predicted motion vector).
- the horizontal component median prediction unit 371 supplies the horizontal component of the generated predicted motion vector, the motion vectors of the neighboring blocks, and the motion vector of the block supplied from the motion search unit 311 to the horizontal component difference encoding unit 372. .
- the horizontal component difference encoding unit 372 calculates and encodes the difference between the predicted motion vector information and the motion vector information of the block for the horizontal component.
- the horizontal component difference encoding unit 372 supplies it as a horizontal component of the difference motion vector information to the minimum determination unit 362 together with the peripheral block and the motion vector information of the block.
- the minimum determination unit 362 obtains a difference between the horizontal component of the motion vector of each peripheral block and the horizontal component of the motion vector of the block, compares the differences, and specifies a peripheral block having the minimum difference value.
- the minimum determination unit 362 supplies the motion vector of the specified peripheral block, the motion vector of the block, and the horizontal component of the difference motion vector information to the vertical component difference encoding unit 363.
- the vertical component difference encoding unit 363 calculates and encodes the difference between the motion vector information of the peripheral block specified by the minimum determination unit 362 and the motion vector information of the block for the vertical component.
- the vertical component difference encoding unit 363 supplies it to the horizontal reference cost calculation unit 332 together with the horizontal component of the difference motion vector information and the motion vector information of the block as the vertical component of the difference motion vector information.
- FIG. 11 is a diagram illustrating an arrangement example of the block and peripheral blocks (neighboring blocks) and an example of a motion vector of each block.
- block A, block B, and block C are peripheral blocks (neighboring blocks), and motion vector information of each peripheral block is A ( ⁇ 5, 3), B (3 , 4) and C (3, 2), and the actual motion vector information of the block is (3, 3).
- the difference from the motion vector information of the horizontal component of the block is 8. That is, the motion vector difference is larger and the coding efficiency is lower than when prediction is performed with the horizontal components of other peripheral blocks (difference in the case of block B: 0, difference in the case of block C: 0). End up.
- the motion vector encoding unit 301 encodes the motion vector information of the block based on the vertical component and the horizontal component, compares the encoding amounts, and selects the smaller one. Therefore, by adding 1-bit motion prediction mode information, it is possible to realize efficient coding for both components of the motion vector information of the block.
- the motion vector encoding unit 301 can select a mode based on a horizontal component having a smaller cost function value.
- the effect becomes large when the motion vectors of the surrounding (neighboring) blocks have a large variation in direction and size.
- a peripheral block includes both an image of the moving object and an image around the moving object
- the direction and size of the motion vectors of each peripheral (neighboring) block are difficult to align (variation tends to increase).
- a motion vector is likely to be unstable due to generation of noise or the like, and there is a high possibility that such a portion is included in a large amount.
- the motion vector encoding unit 301 calculates the cost function value. In addition, since the mode is selected based on the value, the encoding efficiency can be improved with certainty.
- step S301 the A / D conversion unit 101 performs A / D conversion on the input image.
- step S302 the screen rearrangement buffer 102 stores the A / D converted image, and rearranges the picture from the display order to the encoding order.
- step S303 the intra prediction unit 114 performs an intra prediction process in the intra prediction mode.
- step S304 the motion prediction / compensation unit 115 performs an inter motion prediction process for performing motion prediction and motion compensation in the inter prediction mode.
- step S305 the selection unit 116 determines the optimal prediction mode based on the cost function values output from the intra prediction unit 114 and the motion prediction / compensation unit 115. That is, the selection unit 116 selects either the prediction image generated by the intra prediction unit 114 or the prediction image generated by the motion prediction / compensation unit 115.
- the selection information indicating which prediction image has been selected is supplied to the intra prediction unit 114 and the motion prediction / compensation unit 115 which has selected the prediction image.
- the intra prediction unit 114 supplies information indicating the optimal intra prediction mode (that is, intra prediction mode information) to the lossless encoding unit 106.
- the motion prediction / compensation unit 115 sends information indicating the optimal inter prediction mode and, if necessary, information corresponding to the optimal inter prediction mode to the lossless encoding unit 106.
- Information according to the optimal inter prediction mode includes motion vector information, flag information, reference frame information, and the like. For example, when a mode using median prediction is selected as the optimal inter prediction mode, information indicating whether the mode is based on the vertical component or the mode based on the horizontal component is also supplied to the lossless encoding unit 106.
- step S306 the calculation unit 103 calculates a difference between the image rearranged by the process in step S302 and the predicted image selected in step S305.
- the data amount of the difference data is reduced compared to the original image data. Therefore, the data amount can be compressed as compared with the case where the image is encoded as it is.
- step S307 the orthogonal transform unit 104 orthogonally transforms the difference information generated by the process in step S306. Specifically, orthogonal transformation such as discrete cosine transformation and Karhunen-Loeve transformation is performed, and transformation coefficients are output.
- step S308 the quantization unit 105 quantizes the orthogonal transform coefficient obtained by the process in step S307.
- step S308 The difference information quantized by the process of step S308 is locally decoded as follows. That is, in step S309, the inverse quantization unit 108 inversely quantizes the quantized orthogonal transform coefficient (also referred to as quantization coefficient) generated by the process in step S308 with characteristics corresponding to the characteristics of the quantization unit 105. To do. In step S ⁇ b> 310, the inverse orthogonal transform unit 109 performs inverse orthogonal transform on the orthogonal transform coefficient obtained by the process of step S ⁇ b> 307 with characteristics corresponding to the characteristics of the orthogonal transform unit 104.
- the quantized orthogonal transform coefficient also referred to as quantization coefficient
- step S311 the calculation unit 110 adds the predicted image to the locally decoded difference information, and generates a locally decoded image (an image corresponding to the input to the calculation unit 103).
- step S312 the deblocking filter 111 filters the image generated by the process of step S310. Thereby, block distortion is removed.
- step S313 the frame memory 112 stores the image from which block distortion has been removed by the processing in step S311. It should be noted that an image that has not been filtered by the deblocking filter 111 is also supplied from the computing unit 110 and stored in the frame memory 112.
- step S314 the lossless encoding unit 106 encodes the transform coefficient quantized by the process in step S308. That is, lossless encoding such as variable length encoding or arithmetic encoding is performed on the difference image (secondary difference image in the case of inter).
- the lossless encoding unit 106 encodes the quantization parameter calculated in step S308 and adds it to the encoded data.
- the lossless encoding unit 106 encodes information regarding the prediction mode of the prediction image selected by the process of step S305, and adds the encoded information to the encoded data obtained by encoding the difference image. That is, the lossless encoding unit 106 also encodes intra prediction mode information supplied from the intra prediction unit 114 or information according to the optimal inter prediction mode supplied from the motion prediction / compensation unit 115, and the like. Append to
- step S315 the accumulation buffer 107 accumulates the encoded data output from the lossless encoding unit 106.
- the encoded data stored in the storage buffer 107 is appropriately read out and transmitted to the decoding side via the transmission path.
- step S316 the rate control unit 117 controls the quantization operation rate of the quantization unit 105 so that overflow or underflow does not occur based on the compressed image accumulated in the accumulation buffer 107 by the process of step S315. .
- step S316 When the process of step S316 is finished, the encoding process is finished.
- step S331 the motion search unit 311 determines each block size (e.g., eight block sizes including 16 ⁇ 16 pixels to 4 ⁇ 4 pixels described with reference to FIG. 4).
- the motion vector and the reference image are determined for each inter prediction mode.
- step S332 the cost function calculation unit 312 performs a compensation process on the reference image based on the determined motion vector for each inter prediction mode, and generates a predicted image.
- step S333 the motion vector encoding unit 301 performs median prediction encoding processing that generates differential motion vector information using median prediction.
- step S334 the cost function calculation unit 312 calculates the cost function value for each inter prediction mode using the supplied information.
- step S335 the mode determination unit 313 compares the cost function values of all candidate inter prediction modes, and determines the inter prediction mode with the minimum cost function value as the optimal inter prediction mode.
- step S336 the motion compensation unit 314 performs compensation processing on the reference image from the frame memory 112 based on the motion vector in the optimal inter prediction mode, and generates a predicted image.
- the motion compensation unit 314 outputs the prediction image and the cost function value in the optimal prediction mode to the selection unit 116, ends the inter motion prediction process, returns the process to step S304 in FIG. 12, and executes the processes after step S305.
- the motion search unit 311 detects the motion of the block in step S351.
- step S352 the vertical reference encoding unit 321 performs vertical reference encoding processing for performing median prediction in a mode based on the vertical component.
- the vertical reference cost calculation unit 331 calculates a cost function value for vertical reference encoding in step S353. For example, the vertical reference cost calculation unit 331 calculates the code amount of the difference motion vector information generated by the vertical reference encoding process as the cost function value of the vertical reference encoding.
- step S354 the horizontal reference encoding unit 322 performs a horizontal reference encoding process for performing median prediction in a mode based on the horizontal component.
- the horizontal reference cost calculation unit 332 calculates a cost function value for horizontal reference encoding in step S355. For example, the horizontal reference cost calculation unit 332 calculates the code amount of the difference motion vector information generated by the horizontal reference encoding process as a cost function value for horizontal reference encoding.
- step S356 the selection unit 324 compares the cost function value of the vertical reference encoding calculated in step S353 with the cost function value of the horizontal reference encoding calculated in step S355, and the smaller value is obtained. Select the mode as the best mode. When the mode is selected, the selection unit 324 ends the median prediction encoding process, returns the process to step S333 in FIG. 13, and causes the processes after step S334 to be executed.
- the vertical component median prediction unit 351 predicts a motion vector by the median for the vertical component in step S371.
- step S372 the vertical component difference encoding unit 352 obtains and encodes the difference between the motion vector of the block and the prediction result (prediction result in the vertical direction) in step S371 for the vertical component.
- the minimum determination unit 342 specifies a peripheral (neighboring) block having a motion vector having a minimum difference value with respect to the motion vector of the block with respect to the vertical component.
- step S374 the horizontal component difference encoding unit 343 encodes a difference absolute value between the motion vector of the specified neighboring (neighboring) block and the motion vector of the block for the horizontal component.
- step S374 When the process of step S374 is completed, the horizontal component difference encoding unit 343 ends the vertical reference encoding process, returns the process to step S352 of FIG. 14, and executes the processes after step S353.
- the horizontal component median prediction unit 371 predicts the motion vector by the median for the horizontal component in step S381.
- step S382 the horizontal component difference encoding unit 372 calculates and encodes the difference between the motion vector of the block and the prediction result (horizontal prediction result) in step S381 for the horizontal component.
- the minimum determination unit 362 specifies a peripheral (neighboring) block having a motion vector that has a minimum difference absolute value from the motion vector of the block with respect to the horizontal component.
- step S384 the vertical component difference encoding unit 363 encodes a difference absolute value between the motion vector of the specified neighboring (neighboring) block and the motion vector of the block for the vertical component.
- step S384 When the process of step S384 is completed, the vertical component difference encoding unit 363 ends the horizontal reference encoding process, returns the process to step S354 of FIG. 14, and executes the processes after step S355.
- the motion vector encoding unit 301 selects each of the vertical component and the horizontal component as a reference by executing each process. That is, for the reference component, the motion vector encoding unit 301 predicts a motion vector by median prediction to obtain differential motion vector information. For a non-reference component, the reference component is used as the reference component. Difference motion vector information is obtained using a motion vector of a peripheral block having the smallest difference absolute value of the motion vector as a predicted motion vector. Then, the motion vector encoding unit 301 performs such processing on the basis of the vertical component and the horizontal component, calculates each cost function value, and selects the smaller one as the optimum mode.
- the motion vector encoding unit 301 can improve the encoding efficiency of encoding by median prediction.
- FIG. 17 shows the configuration of an embodiment of an image decoding apparatus as an image processing apparatus to which the present invention is applied.
- An image decoding apparatus 400 shown in FIG. 17 is an apparatus that decodes encoded data obtained by encoding an image in the image encoding apparatus 300. Basically, the image decoding apparatus 200 of the AVC encoding method shown in FIG. And the same processing is performed.
- the image decoding apparatus 400 generates the encoded data to be decoded using the median prediction based on the vertical component or the median prediction based on the horizontal component. It is determined whether the encoded data has been encoded, and decoding is performed according to each mode.
- the image decoding device 400 further includes a motion vector decoding unit 401 in addition to the configuration of the image decoding device 200.
- the motion vector decoding unit 401 decodes a motion vector for inter motion prediction using a median. At this time, the motion vector decoding unit 401 identifies a component that is used as a reference by the image encoding device 300 (that is, the motion vector encoding unit 301), and uses that component as a reference (the same component as the motion vector encoding unit 301). (Based on).
- FIG. 18 is a block diagram illustrating an internal configuration example of the motion prediction / compensation unit 212 and the motion vector decoding unit 401. In FIG. 18, only the configuration related to the median prediction mode is shown for convenience of explanation.
- the motion prediction / compensation unit 115 includes a mode buffer 411, a differential motion vector information buffer 412, a motion compensation unit 413, and a motion vector buffer 414.
- the mode buffer 411 stores information on the motion prediction mode of the block obtained by the lossless decoding unit 202 losslessly decoding the encoded data, and supplies the information to the motion vector decoding unit 401 at a predetermined timing.
- the difference motion vector information buffer 412 stores the difference motion vector information of the block obtained by the lossless decoding unit 202 losslessly decoding the encoded data, and supplies it to the motion vector decoding unit 401 at a predetermined timing.
- the motion compensation unit 413 performs motion compensation on the reference image pixel value supplied from the frame memory 209 using the motion vector information of the block obtained by decoding in the motion vector decoding unit 401, and obtains a predicted image. Generate.
- the motion compensation unit 413 supplies the generated predicted image pixel value to the selection unit 213.
- the motion vector buffer 414 stores motion vector information of the block obtained by decoding in the motion vector decoding unit 401, and uses the motion vector information as motion vector information of neighboring (neighboring) blocks in the processing for the next and subsequent blocks.
- the data is supplied to the decoding unit 401 as appropriate.
- the motion vector decoding unit 401 includes a mode determination unit 421, a vertical reference decoding unit 422, and a horizontal reference decoding unit 423.
- the mode determination unit 421 Based on the information regarding the motion prediction mode supplied from the mode buffer 411, the mode determination unit 421 performs median prediction based on the vertical component or median prediction based on the horizontal component during encoding. It is determined. When it is determined that the median prediction has been performed based on the vertical component at the time of encoding, the mode determination unit 421 operates the vertical reference decoding unit 422. Also, when it is determined that median prediction has been performed based on the horizontal component during encoding, the mode determination unit 421 operates the horizontal reference decoding unit 423.
- the vertical reference decoding unit 422 operates based on an instruction from the mode determination unit 421.
- the vertical reference decoding unit 422 acquires the difference motion vector information of the block from the difference motion vector information buffer 412.
- the vertical reference decoding unit 422 acquires motion vector information of neighboring (neighboring) blocks from the motion vector buffer 414.
- the vertical reference decoding unit 422 uses the motion vector information of the surrounding blocks to decode the difference motion vector information using the vertical component as a reference to obtain the motion vector information of the block.
- the vertical reference decoding unit 422 since the difference motion vector information of the block is subjected to median prediction based on the vertical component at the time of encoding, the vertical reference decoding unit 422 performs the difference motion according to the procedure according to the encoding procedure. Vector information is decoded to obtain motion vector information of the block.
- the vertical reference decoding unit 422 supplies the motion vector information to the motion compensation unit 413 and the motion vector buffer 414.
- the motion vector information supplied to the motion compensation unit 413 is used for generating a predicted image.
- the motion vector information supplied to the motion vector buffer 414 is used as motion vector information of neighboring (neighboring) blocks in the decoding process for the subsequent blocks.
- the horizontal reference decoding unit 423 operates based on an instruction from the mode determination unit 421.
- the horizontal reference decoding unit 423 acquires the difference motion vector information of the block from the difference motion vector information buffer 412.
- the horizontal reference decoding unit 423 obtains motion vector information of neighboring (neighboring) blocks from the motion vector buffer 414.
- the horizontal reference decoding unit 423 uses the motion vector information of the neighboring blocks to decode the difference motion vector information using the horizontal component as a reference to obtain the motion vector information of the block.
- the horizontal reference decoding unit 423 since the difference motion vector information of the block is subjected to median prediction based on the horizontal component at the time of encoding, the horizontal reference decoding unit 423 performs the difference motion according to the procedure according to the encoding procedure. Vector information is decoded to obtain motion vector information of the block.
- the horizontal reference decoding unit 423 supplies the motion vector information to the motion compensation unit 413 and the motion vector buffer 414.
- the motion vector information supplied to the motion compensation unit 413 is used for generating a predicted image.
- the motion vector information supplied to the motion vector buffer 414 is used as motion vector information of neighboring (neighboring) blocks in the decoding process for the subsequent blocks.
- the motion vector decoding unit 401 refers to the information related to the motion prediction mode supplied from the image encoding device 300, generates the difference motion vector information to be decoded, and the image encoding device 300 generates the difference motion vector information. It decodes by the method according to the prediction mode at the time. Therefore, the image decoding apparatus 400 can appropriately decode the encoded data generated by encoding the image by the image encoding apparatus 300, and can improve the encoding efficiency.
- step S401 the accumulation buffer 201 accumulates the transmitted encoded data.
- step S402 the lossless decoding unit 202 decodes the encoded data supplied from the accumulation buffer 201. That is, the I picture, P picture, and B picture encoded by the lossless encoding unit 106 in FIG. 8 are decoded.
- motion vector information reference frame information
- prediction mode information intra prediction mode or inter prediction mode
- information such as flags and quantization parameters
- the prediction mode information is intra prediction mode information
- the prediction mode information is supplied to the intra prediction unit 211.
- the prediction mode information is inter prediction mode information
- motion vector information corresponding to the prediction mode information is supplied to the motion prediction / compensation unit 212.
- step S403 the inverse quantization unit 203 performs inverse quantization on the quantized orthogonal transform coefficient obtained by decoding by the lossless decoding unit 202 by a method corresponding to the quantization processing by the quantization unit 105 in FIG.
- step S404 the inverse orthogonal transform unit 204 performs inverse orthogonal transform on the orthogonal transform coefficient obtained by inverse quantization by the inverse quantization unit 203 by a method corresponding to the orthogonal transform processing by the orthogonal transform unit 104 in FIG.
- the difference information corresponding to the input of the orthogonal transform unit 104 output of the calculation unit 103) in FIG. 8 is decoded.
- step S405 the calculation unit 205 adds the predicted image to the difference information obtained by the process in step S404. As a result, the original image data is decoded.
- step S406 the deblocking filter 206 appropriately filters the decoded image obtained by the process in step S405. Thereby, block distortion is appropriately removed from the decoded image.
- step S407 the frame memory 209 stores the filtered decoded image.
- step S408 the intra prediction unit 211 or the motion prediction / compensation unit 212 performs image prediction processing corresponding to the prediction mode information supplied from the lossless decoding unit 202, respectively.
- the intra prediction unit 211 performs an intra prediction process in the intra prediction mode. Also, when inter prediction mode information is supplied from the lossless decoding unit 202, the motion prediction / compensation unit 212 performs motion prediction processing in the inter prediction mode.
- step S409 the selection unit 213 selects a predicted image. That is, the prediction unit 213 is supplied with the prediction image generated by the intra prediction unit 211 or the prediction image generated by the motion prediction / compensation unit 212. The selection unit 213 selects the side to which the predicted image is supplied, and supplies the predicted image to the calculation unit 205. This predicted image is added to the difference information by the process of step S405.
- step S410 the screen rearrangement buffer 207 rearranges the frames of the decoded image data. That is, the order of the frames of the decoded image data rearranged for encoding by the screen rearrangement buffer 102 (FIG. 8) of the image encoding device 100 is rearranged to the original display order.
- step S411 the D / A converter 208 D / A converts the decoded image data in which the frames are rearranged in the screen rearrangement buffer 207.
- the decoded image data is output to a display (not shown), and the image is displayed.
- step S431 the lossless decoding unit 202 determines whether the encoded data is intra-encoded based on the decoded prediction mode information.
- the lossless decoding unit 202 advances the process to step S432.
- the intra prediction unit 211 acquires information necessary for generating a predicted image, such as intra prediction mode information, from the lossless decoding unit 202.
- the intra prediction unit 211 acquires a reference image from the frame memory 209, performs intra prediction processing in the intra prediction mode, and generates a predicted image.
- the intra prediction unit 211 supplies the generated prediction image to the calculation unit 205 via the selection unit 213, ends the prediction processing, returns the processing to step S408 in FIG. 19, and returns to step S409.
- the subsequent processing is executed.
- step S431 in FIG. 20 when it is determined in step S431 in FIG. 20 that inter coding has been performed, the lossless decoding unit 202 advances the processing to step S434.
- step S434 the motion prediction / compensation unit 212 performs an inter prediction process, and generates a prediction image in the inter prediction mode employed at the time of encoding.
- the motion prediction / compensation unit 212 supplies the generated predicted image to the calculation unit 205 via the selection unit 213, ends the prediction process, and returns the process to step S408 in FIG. The processing after step S409 is executed.
- the lossless decoding unit 202 decodes the mode information in step S451.
- the mode determination unit 421, in step S452 based on the mode information, the prediction mode when generating the difference motion vector information is the vertical reference mode based on the vertical component. It is determined whether or not.
- step S453 the vertical reference decoding unit 422 decodes the difference motion vector information using a method based on the vertical component.
- the vertical reference decoding unit 422 advances the process to step S455.
- step S452 If it is determined in step S452 that the prediction mode for generating differential motion vector information is the horizontal reference mode based on the horizontal component based on the mode information, the mode determination unit 421 performs the process in step S454. Proceed to In step S454, the horizontal reference decoding unit 423 decodes the difference motion vector information by a method based on the horizontal component. When the difference motion vector information is decoded and the motion vector information of the block is obtained, the horizontal reference decoding unit 423 advances the process to step S455.
- step S455 the motion compensation unit 413 performs motion compensation on the reference image supplied from the frame memory 209 using the motion vector information of the block generated by the vertical standard decoding unit 422 or the horizontal standard decoding unit 423. To generate a predicted image.
- the motion compensation unit 413 ends the inter prediction process, returns the process to step S434 in FIG. 20, and ends the prediction process.
- the image decoding apparatus 400 can realize improvement in encoding efficiency.
- FIG. 22 is a block diagram illustrating another configuration example of the motion prediction / compensation unit and the motion vector encoding unit included in the image encoding device 500 (not illustrated).
- the image encoding device 500 is an image encoding device that has basically the same configuration as the above-described image encoding device 300 and performs the same processing. However, as illustrated in FIG. 22, the image encoding device 500 includes a motion vector encoding unit 501 instead of the motion vector encoding unit 301.
- This image coding apparatus 500 performs prediction mode selection in median prediction based on the motion vector variations of neighboring (neighboring) blocks instead of cost function values.
- the motion vector encoding unit 501 in FIG. 22 uses the DR value (dynamic range) of the motion vector of each peripheral block as a parameter indicating the variation of the motion vector of the peripheral block.
- DR value is the range for each motion vector component.
- the motion vectors of the peripheral blocks are A ( ⁇ 5,3), B (3,4), C (3,2)
- the horizontal component DR value is “8” ( 3-( ⁇ 5))
- the DR value of the vertical component is “2” (4-2). That is, the greater the range in which each motion vector exists (the spread between motion vectors), the greater the DR value.
- the motion vector encoding unit 501 calculates a DR value for each of the vertical and horizontal components of the motion vector of each peripheral (neighboring) block, and selects a reference component based on the calculated value. More specifically, the motion vector encoding unit 501 generates difference vector information based on a component having a larger DR value.
- the motion vector encoding unit 501 includes a DR calculation unit 511, a selection unit 512, a vertical reference encoding unit 321, and a horizontal reference encoding unit 322.
- the DR calculation unit 511 calculates a DR value indicating a variation in value (the size of the range) for each of the vertical component and the horizontal component of the motion vector information of the peripheral (neighboring) block supplied from the motion vector buffer 315, It supplies to the selection part 512.
- the selection unit 512 compares the DR value of the vertical component and the DR value of the horizontal component, selects the component having the larger value as a reference, and selects the vertical reference encoding unit 321 or the horizontal reference encoding unit 322. To do.
- the selection unit 512 selects a mode based on the horizontal component. That is, the selection unit 512 operates the horizontal reference encoding unit 322 to generate difference motion vector information in a prediction mode based on the horizontal component.
- a component that is not used as a reference for a motion prediction vector is set based on a reference component. Therefore, by performing median prediction so as to reduce the variation of non-reference components, the absolute value of the difference between the predicted motion vector information and the motion vector information of the block is not greatly changed depending on the selected block. Can do.
- the vertical reference encoding unit 321 or the horizontal reference encoding unit 322 can reduce the risk of selecting a block having a large motion vector difference.
- encoding efficiency can be improved by using the horizontal component as a reference, compared to the case where the vertical component is used as a reference.
- the motion vector encoding unit 501 can improve the encoding efficiency by selecting the reference component based on the DR value.
- the motion vector encoding unit 501 may calculate the DR value that is easier to process than the calculation of the cost function value instead of the cost function value.
- the motion vector encoding unit 501 can select a mode first based on the calculated DR value, the motion vector encoding unit 501 can generate a difference motion vector information using a mode based on a vertical component or a horizontal component. It suffices to perform only one of the reference modes. Therefore, the motion vector encoding unit 501 can reduce the processing load as compared with the case of the motion vector encoding unit 301 of the first embodiment.
- the motion vector encoding unit 301 that calculates the cost function value can reduce the code amount more reliably than the motion vector encoding unit 501 that calculates the DR value.
- the parameter indicating the variation of the motion vector of the peripheral blocks may be any parameter, and may be other than the DR value.
- it may be a distribution of motion vectors of each peripheral block, or may be other than that. That is, the DR calculation unit 511 may calculate a value other than the DR value indicating the variation of the motion vector instead of the DR value and supply it to the selection unit 512.
- step S551 the motion search unit 311 detects the motion of the block and generates a motion vector.
- step S552 the DR value calculation unit 511 calculates the DR value of the motion vector information of the neighboring block for the vertical component, and similarly calculates the DR value of the motion vector information of the neighboring block for the horizontal component in step S553. .
- step S554 the selection unit 512 compares the DR values for the components calculated in step S552 and step S553, and selects an optimal motion prediction mode. That is, the selection unit 512 selects the median prediction mode based on the component having the larger DR value.
- step S555 of the vertical reference encoding unit 321 or the horizontal reference encoding unit 322, the one corresponding to the mode selected in step S554 performs predictive encoding of a motion vector using a median in the selected mode.
- the difference motion vector information is generated.
- step S555 ends, the motion vector encoding unit 501 ends the median predictive encoding process, returns the process to step S333 of FIG. 13, and executes the processes after step S334.
- the motion vector encoding unit 501 can more easily improve the encoding efficiency.
- the image decoding device 600 has basically the same configuration as the image decoding device 400 described in the second embodiment and performs the same processing, but as shown in FIG. 24, the motion vector decoding unit 401 Instead of this, a motion vector decoding unit 601 is provided.
- the image encoding device 500 does not supply the image decoding device 600 with mode information indicating which of the vertical component and the horizontal component is used as a reference in median prediction. Therefore, the motion vector decoding unit 601 calculates the DR value for each component from the motion vector information of the surrounding (neighboring) blocks, as in the case of the image encoding device 500, and the mode of the mode adopted in the image encoding device 500. Make an estimate.
- the motion vector decoding unit 601 includes a DR value calculation unit 621, a mode determination unit 622, a vertical reference decoding unit 422, and a horizontal reference decoding unit 423.
- the DR value calculation unit 621 acquires the motion vector information of the surrounding blocks from the motion vector buffer 414, and calculates the DR value for each of the vertical component and the horizontal component. .
- the mode determination unit 622 is configured to select a mode based on the vertical component in the image coding apparatus 500 based on the DR value calculated by the DR value calculation unit 621, or Then, it is determined (estimated) which mode is selected based on the horizontal component, and the difference motion vector information is decoded in the estimated mode.
- the mode determination unit 622 operates either the vertical reference decoding unit 422 or the horizontal reference decoding unit 423 that corresponds to the estimated mode, and decodes the differential motion vector information acquired from the differential motion vector information buffer 412.
- the DR value calculation unit 621 calculates the DR value for each component of the motion vector information of the surrounding (neighboring) block in step S651.
- step S652 the mode determination unit 622 compares the DR value of each component calculated in step S651, and determines whether the DR value of the vertical component is larger than the DR value of the horizontal component. When it is determined that the vertical component is larger, the mode determination unit 622 advances the process to step S653. In step S653, the vertical reference decoding unit 422 decodes the difference motion vector information using the vertical component as a reference. When the process of step S653 ends, the vertical reference decoding unit 422 advances the process to step S655.
- step S652 If it is determined in step S652 that the DR value of the vertical component is not greater than the DR value of the horizontal component, the mode determination unit 622 advances the process to step S654.
- step S654 the horizontal reference decoding unit 423 decodes the difference motion vector information based on the horizontal component.
- the horizontal reference decoding unit 423 advances the process to step S655.
- step S655 the motion compensation unit 413 performs motion compensation using the motion vector information of the block obtained in step S653 or step S654, and generates a predicted image.
- step S655 the motion vector decoding unit 601 ends the inter prediction process, returns the process to step S434 in FIG. 20, and ends the prediction process.
- the motion vector decoding unit 601 can appropriately decode the differential motion vector information generated by the motion vector encoding unit 501, and can realize improvement in encoding efficiency.
- the image encoding device 700 (not shown) in this case basically has the same configuration as the image encoding device 300 in FIG. 8 and performs the same processing, but instead of the motion vector encoding unit 301.
- a motion vector encoding unit 701 is included.
- FIG. 26 is a block diagram illustrating a main configuration example of the motion vector encoding unit in that case.
- the motion vector encoding unit 701 includes a motion vector encoding unit 301, a motion vector encoding unit 501, and a control unit 711.
- the motion vector encoding unit 301 calculates a cost function value, and based on the size of the cost function value, uses the vertical component as a reference or the horizontal component as a reference.
- the difference motion vector information is generated in the cost calculation mode for selecting whether or not.
- the motion vector encoding unit 501 calculates a DR value, and uses the vertical component as a reference or the horizontal component as a reference based on the magnitude of the DR value. Difference motion vector information is generated in a DR value calculation mode for selecting.
- the control unit 711 first controls the motion vector encoding unit 301 that can reliably improve the encoding efficiency to calculate the difference motion vector information. In parallel with this, the control unit 711 also controls the motion vector encoding unit 501 to generate differential motion vector information. The control unit 711 compares the modes (whether the vertical component is used as a reference or the horizontal component is used as a reference) selected in both, and the mode selection between the motion vector encoding unit 301 and the motion vector encoding unit 501 is performed. When it is determined that the result matches a predetermined criterion or more and the mode selection results of both match stably, the process of the motion vector encoding unit 301 is stopped, and the motion vector encoding unit 501 generates differential motion vector information To reduce the processing load.
- control unit 711 first starts in a more reliable cost calculation mode, and when there is no problem in the result, the control unit 711 switches the motion vector encoding unit 301 and the motion vector encoding so as to switch to the DR value calculation mode with less load.
- the unit 501 is controlled.
- the control unit 711 performs such control for each predetermined data unit in the time-series direction of the moving image, such as GOP. That is, for example, when the GOP ends, the control unit 711 resets the control, and operates the motion vector encoding unit 301 at the head of the next GOP.
- the motion vector encoding unit 701 can improve the encoding efficiency more reliably and easily.
- the control unit 711 may determine whether or not the mode selection results are equal to or greater than a predetermined number of blocks for each frame image.
- the control unit 711 may perform determination using an arbitrary statistic such as an average value of blocks having the same mode selection result or the number of consecutive blocks.
- mode switching has been described as being controlled by matching or mismatching of mode selections.
- the present invention is not limited to this and may be controlled by any standard. For example, it may be controlled based on the size of the code amount.
- the control unit 711 controls the motion vector encoding unit 301 in step S701, and performs the median prediction encoding process (FIG. 14) in a mode for calculating the cost function value. Make it.
- step S702 the control unit 711 controls the motion vector encoding unit 501 to perform median predictive encoding processing (FIG. 23) in a mode for calculating a DR value.
- step S703 the control unit 711 outputs the median predictive encoding process result in the mode for calculating the cost function value calculated in step S701.
- step S704 the control unit 711 counts the coincidence of prediction results in both modes of step S701 and step S702.
- step S705 the control unit 711 determines whether or not the prediction result is equal to or greater than a predetermined reference. If it is determined that the prediction result is not equal, the control unit 711 returns the process to step S701 and repeats the subsequent processes.
- step S705 If it is determined in step S705 that the prediction results of both modes match a predetermined reference or more, the control unit 711 advances the processing to step S706.
- step S706 the control unit 711 ends the mode for calculating the cost value for the subsequent blocks, and performs the median predictive encoding process only in the mode for calculating the DR value.
- step S707 the control unit 711 notifies the cost function calculation unit 312 of the end of the mode for calculating the cost value.
- this notification is supplied to the decoding side.
- control unit 711 ends the median predictive coding control process. Note that the control unit 711 repeatedly executes the median predictive coding control process for each predetermined data unit.
- control unit 711 performs the median predictive coding control process, so that the motion vector coding unit 701 can improve coding efficiency more reliably and easily.
- the encoded data generated by the image encoding device 700 (not shown) according to the fifth embodiment is decoded by the image decoding device 800 (not shown).
- the image decoding device 800 basically has the same configuration as the image decoding device 400 in FIG. 17 and performs the same processing, but includes a motion vector decoding unit 801 instead of the motion vector decoding unit 401.
- FIG. 28 is a block diagram illustrating a main configuration example of the motion vector decoding unit 801.
- the motion vector decoding unit 801 includes a mode determination unit 821, a motion vector decoding unit 401, and a motion vector decoding unit 601.
- the mode determination unit 821 acquires information on the motion prediction mode from the lossless decoding unit 202 via the mode buffer 411, encoding is performed in either the cost calculation mode or the DR value calculation mode based on the information. Judgment was made.
- the motion vector decoding unit 401 decodes the difference motion vector information generated by the motion vector encoding unit 301 in the cost calculation mode.
- the motion vector decoding unit 601 decodes the difference motion vector information generated by the motion vector encoding unit 501 in the DR value calculation mode. Since the decoding in each mode has been described in the second embodiment and the fourth embodiment, a description thereof will be omitted.
- the motion vector information of the block calculated in each mode is supplied to the motion compensation unit 413 and the motion vector buffer 414, and is used in motion compensation processing and processing for other blocks.
- the motion vector decoding unit 801 can correctly decode the differential motion vector information generated by the motion vector encoding unit 701.
- the lossless decoding unit 202 decodes the mode information in step S851.
- the mode determination unit 821 determines whether or not it is a median prediction mode for calculating a cost function value based on the mode information decoded in step S851.
- the motion vector decoding unit 401 performs the inter prediction process (FIG. 21) in the mode for calculating the cost function value in step S853.
- step S852 If it is determined in step S852 that the mode is for calculating the DR value, the motion vector decoding unit 601 performs inter prediction processing (FIG. 25) in the mode for calculating the DR value in step S854.
- step S855 the motion compensation unit 413 generates a predicted image using the motion vector information of the block decoded in step S853 or step S854.
- the motion vector decoding unit 801 ends the inter prediction process, returns the process to step S424 in FIG. 20, and ends the prediction process.
- the motion vector decoding unit 801 can appropriately decode the differential motion vector information generated by the motion vector encoding unit 701, and can realize improvement in encoding efficiency.
- the prediction result by median is used.
- the present invention is not limited to this.
- median + co-located different time It is also possible to use it for a macroblock or motion vector information of a block at the same position as the block in FIG.
- the cost function value (the amount of code of the differential motion vector) or the DR value is used as an example of the evaluation value for evaluating the encoding efficiency of the encoding result obtained by encoding in each mode.
- the evaluation value is arbitrary, and any parameter may be used as long as the encoding efficiency is evaluated. For example, all or a part of the MC residual calculated using the motion vector generated in each mode may be compared as a cost function value.
- FIG. 30 is a diagram illustrating an example of an extended macroblock size.
- a macro block composed of 32 ⁇ 32 pixels divided into blocks (partitions) of 32 ⁇ 32 pixels, 32 ⁇ 16 pixels, 16 ⁇ 32 pixels, and 16 ⁇ 16 pixels. They are shown in order.
- blocks from 16 ⁇ 16 pixels divided into 16 ⁇ 16 pixels, 16 ⁇ 8 pixels, 8 ⁇ 16 pixels, and 8 ⁇ 8 pixel blocks are sequentially shown from the left. Yes.
- an 8 ⁇ 8 pixel block divided into 8 ⁇ 8 pixel, 8 ⁇ 4 pixel, 4 ⁇ 8 pixel, and 4 ⁇ 4 pixel blocks is sequentially shown from the left. .
- the 32 ⁇ 32 pixel macroblock can be processed in the 32 ⁇ 32 pixel, 32 ⁇ 16 pixel, 16 ⁇ 32 pixel, and 16 ⁇ 16 pixel blocks shown in the upper part of FIG.
- the 16 ⁇ 16 pixel block shown on the right side of the upper row is H.264. Similar to the H.264 / AVC format, processing in blocks of 16 ⁇ 16 pixels, 16 ⁇ 8 pixels, 8 ⁇ 16 pixels, and 8 ⁇ 8 pixels shown in the middle stage is possible.
- the 8 ⁇ 8 pixel block shown on the right side of the middle row is H.264. Similar to the H.264 / AVC format, processing in blocks of 8 ⁇ 8 pixels, 8 ⁇ 4 pixels, 4 ⁇ 8 pixels, and 4 ⁇ 4 pixels shown in the lower stage is possible.
- H. A larger block is defined as a superset while maintaining compatibility with the H.264 / AVC format.
- the present invention can also be applied to the extended macroblock size proposed as described above.
- prediction motion vector information (Spatial Predictor) based on median prediction is used as prediction motion vector information.
- prediction motion vector information includes temporal prediction motion vector information (Temporal Predictor) and time. Spatial prediction motion vector information (Spatial-Temporal Predictor) or other prediction motion vector information may be used.
- H.264 / AVC format is used as a base, but this is not a limitation. That is, the present invention can also be applied to other encoding schemes / decoding schemes that perform motion vector information encoding processing using difference processing.
- the present invention includes, for example, MPEG, H.264, and the like.
- image information such as discrete cosine transformation and motion compensation, such as 26x
- network media such as satellite broadcasting, cable television, the Internet, or mobile phones.
- the present invention can be applied to an image encoding device and an image decoding device used in Further, the present invention can be applied to an image encoding device and an image decoding device used when processing on a storage medium such as an optical, magnetic disk, and flash memory. Furthermore, the present invention can also be applied to motion prediction / compensation devices included in such image encoding devices and image decoding devices.
- a CPU (Central Processing Unit) 901 of the personal computer 900 performs various processes according to a program stored in a ROM (Read Only Memory) 902 or a program loaded from a storage unit 913 into a RAM (Random Access Memory) 903. Execute the process.
- the RAM 903 also appropriately stores data necessary for the CPU 901 to execute various processes.
- the CPU 901, ROM 902, and RAM 903 are connected to each other via a bus 904.
- An input / output interface 910 is also connected to the bus 904.
- the input / output interface 910 includes an input unit 911 including a keyboard and a mouse, a display including a CRT (Cathode Ray Tube) and an LCD (Liquid Crystal Display), an output unit 912 including a speaker, and a hard disk.
- a communication unit 914 including a storage unit 913 and a modem is connected. The communication unit 914 performs communication processing via a network including the Internet.
- a drive 915 is also connected to the input / output interface 910 as necessary, and a removable medium 921 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory is appropriately mounted, and a computer program read from them is loaded. It is installed in the storage unit 913 as necessary.
- a program constituting the software is installed from a network or a recording medium.
- the recording medium is distributed to distribute the program to the user separately from the apparatus main body, and includes a magnetic disk (including a flexible disk) on which the program is recorded, an optical disk ( It is only composed of removable media 921 consisting of CD-ROM (compact disc-read only memory), DVD (digital versatile disc), magneto-optical disc (MD (mini disc) included), or semiconductor memory. Rather, it is composed of a ROM 902 on which a program is recorded and a hard disk included in the storage unit 913, which is distributed to the user in a state of being incorporated in the apparatus main body in advance.
- a magnetic disk including a flexible disk
- an optical disk It is only composed of removable media 921 consisting of CD-ROM (compact disc-read only memory), DVD (digital versatile disc), magneto-optical disc (MD (mini disc) included), or semiconductor memory. Rather, it is composed of a ROM 902 on which a program is recorded and a hard disk included in the storage unit 913, which is distributed to the user in a
- the program executed by the computer may be a program that is processed in time series in the order described in this specification, or in parallel or at a necessary timing such as when a call is made. It may be a program for processing.
- the step of describing the program recorded on the recording medium is not limited to the processing performed in chronological order according to the described order, but may be performed in parallel or It also includes processes that are executed individually.
- system represents the entire apparatus composed of a plurality of devices (apparatuses).
- the configuration described as one device (or processing unit) may be divided and configured as a plurality of devices (or processing units).
- the configurations described above as a plurality of devices (or processing units) may be combined into a single device (or processing unit).
- a configuration other than that described above may be added to the configuration of each device (or each processing unit).
- a part of the configuration of a certain device (or processing unit) may be included in the configuration of another device (or other processing unit). . That is, the embodiment of the present invention is not limited to the above-described embodiment, and various modifications can be made without departing from the gist of the present invention.
- image encoding device and image decoding device can be applied to any electronic device. Examples thereof will be described below.
- FIG. 32 is a block diagram illustrating a main configuration example of a television receiver using the image decoding device 400, the image decoding device 600, or the image decoding device 800 to which the present invention is applied.
- the television receiver 1000 shown in FIG. 32 includes a terrestrial tuner 1013, a video decoder 1015, a video signal processing circuit 1018, a graphic generation circuit 1019, a panel drive circuit 1020, and a display panel 1021.
- the television receiver 1000 shown in FIG. 32 includes a terrestrial tuner 1013, a video decoder 1015, a video signal processing circuit 1018, a graphic generation circuit 1019, a panel drive circuit 1020, and a display panel 1021.
- the terrestrial tuner 1013 receives a broadcast wave signal of terrestrial analog broadcast via an antenna, demodulates it, acquires a video signal, and supplies it to the video decoder 1015.
- the video decoder 1015 performs a decoding process on the video signal supplied from the terrestrial tuner 1013 and supplies the obtained digital component signal to the video signal processing circuit 1018.
- the video signal processing circuit 1018 performs predetermined processing such as noise removal on the video data supplied from the video decoder 1015 and supplies the obtained video data to the graphic generation circuit 1019.
- the graphic generation circuit 1019 generates video data of a program to be displayed on the display panel 1021, image data by processing based on an application supplied via a network, and the generated video data and image data to the panel drive circuit 1020. Supply.
- the graphic generation circuit 1019 generates video data (graphics) for displaying a screen used by the user for selecting an item and superimposing it on the video data of the program.
- a process of supplying data to the panel drive circuit 1020 is also appropriately performed.
- the panel drive circuit 1020 drives the display panel 1021 based on the data supplied from the graphic generation circuit 1019, and causes the display panel 1021 to display the video of the program and the various screens described above.
- the display panel 1021 is composed of an LCD (Liquid Crystal Display) or the like, and displays a program video or the like according to control by the panel drive circuit 1020.
- LCD Liquid Crystal Display
- the television receiver 1000 also includes an audio A / D (Analog / Digital) conversion circuit 1014, an audio signal processing circuit 1022, an echo cancellation / audio synthesis circuit 1023, an audio amplification circuit 1024, and a speaker 1025.
- an audio A / D (Analog / Digital) conversion circuit 1014 An audio signal processing circuit 1022, an echo cancellation / audio synthesis circuit 1023, an audio amplification circuit 1024, and a speaker 1025.
- the terrestrial tuner 1013 acquires not only the video signal but also the audio signal by demodulating the received broadcast wave signal.
- the terrestrial tuner 1013 supplies the acquired audio signal to the audio A / D conversion circuit 1014.
- the audio A / D conversion circuit 1014 performs A / D conversion processing on the audio signal supplied from the terrestrial tuner 1013, and supplies the obtained digital audio signal to the audio signal processing circuit 1022.
- the audio signal processing circuit 1022 performs predetermined processing such as noise removal on the audio data supplied from the audio A / D conversion circuit 1014 and supplies the obtained audio data to the echo cancellation / audio synthesis circuit 1023.
- the echo cancellation / voice synthesis circuit 1023 supplies the voice data supplied from the voice signal processing circuit 1022 to the voice amplification circuit 1024.
- the audio amplification circuit 1024 performs D / A conversion processing and amplification processing on the audio data supplied from the echo cancellation / audio synthesis circuit 1023, adjusts to a predetermined volume, and then outputs the audio from the speaker 1025.
- the television receiver 1000 also has a digital tuner 1016 and an MPEG decoder 1017.
- the digital tuner 1016 receives a broadcast wave signal of digital broadcasting (terrestrial digital broadcasting, BS (Broadcasting Satellite) / CS (Communications Satellite) digital broadcasting) via an antenna, demodulates, and MPEG-TS (Moving Picture Experts Group). -Transport Stream) and supply it to the MPEG decoder 1017.
- digital broadcasting terrestrial digital broadcasting, BS (Broadcasting Satellite) / CS (Communications Satellite) digital broadcasting
- MPEG-TS Motion Picture Experts Group
- the MPEG decoder 1017 releases the scramble applied to the MPEG-TS supplied from the digital tuner 1016 and extracts a stream including program data to be played (viewing target).
- the MPEG decoder 1017 decodes the audio packet constituting the extracted stream, supplies the obtained audio data to the audio signal processing circuit 1022, decodes the video packet constituting the stream, and converts the obtained video data into the video This is supplied to the signal processing circuit 1018.
- the MPEG decoder 1017 supplies EPG (Electronic Program Guide) data extracted from the MPEG-TS to the CPU 1032 via a path (not shown).
- EPG Electronic Program Guide
- the television receiver 1000 uses the image decoding device 400, the image decoding device 600, or the image decoding device 800 described above as the MPEG decoder 1017 for decoding the video packet in this way.
- MPEG-TS transmitted from a broadcasting station or the like is encoded by the image encoding device 300, the image encoding device 500, or the image encoding device 700.
- the MPEG decoder 1017 determines whether the median prediction is based on the vertical component or the horizontal component as a broadcast station (image code).
- the video data supplied from the MPEG decoder 1017 is subjected to predetermined processing in the video signal processing circuit 1018 as in the case of the video data supplied from the video decoder 1015, and the generated video data in the graphic generation circuit 1019. Are appropriately superimposed and supplied to the display panel 1021 via the panel drive circuit 1020, and the image is displayed.
- the audio data supplied from the MPEG decoder 1017 is subjected to predetermined processing in the audio signal processing circuit 1022 as in the case of the audio data supplied from the audio A / D conversion circuit 1014, and an echo cancellation / audio synthesis circuit 1023.
- predetermined processing in the audio signal processing circuit 1022 as in the case of the audio data supplied from the audio A / D conversion circuit 1014, and an echo cancellation / audio synthesis circuit 1023.
- sound adjusted to a predetermined volume is output from the speaker 1025.
- the television receiver 1000 also includes a microphone 1026 and an A / D conversion circuit 1027.
- the A / D conversion circuit 1027 receives a user's voice signal captured by a microphone 1026 provided in the television receiver 1000 for voice conversation, and performs A / D conversion processing on the received voice signal.
- the obtained digital audio data is supplied to the echo cancellation / audio synthesis circuit 1023.
- the echo cancellation / audio synthesis circuit 1023 performs echo cancellation on the audio data of the user A.
- the voice data obtained by combining with other voice data is output from the speaker 1025 via the voice amplifier circuit 1024.
- the television receiver 1000 also includes an audio codec 1028, an internal bus 1029, an SDRAM (Synchronous Dynamic Random Access Memory) 1030, a flash memory 1031, a CPU 1032, a USB (Universal Serial Bus) I / F 1033, and a network I / F 1034.
- an audio codec 1028 an internal bus 1029
- an SDRAM Serial Dynamic Random Access Memory
- flash memory 1031
- CPU central processing unit
- USB Universal Serial Bus
- the A / D conversion circuit 1027 receives a user's voice signal captured by a microphone 1026 provided in the television receiver 1000 for voice conversation, and performs A / D conversion processing on the received voice signal.
- the obtained digital audio data is supplied to the audio codec 1028.
- the audio codec 1028 converts the audio data supplied from the A / D conversion circuit 1027 into data of a predetermined format for transmission via the network, and supplies the data to the network I / F 1034 via the internal bus 1029.
- the network I / F 1034 is connected to the network via a cable attached to the network terminal 1035.
- the network I / F 1034 transmits the audio data supplied from the audio codec 1028 to another device connected to the network.
- the network I / F 1034 receives, for example, audio data transmitted from another device connected via the network via the network terminal 1035, and receives the audio data via the internal bus 1029 to the audio codec 1028. Supply.
- the voice codec 1028 converts the voice data supplied from the network I / F 1034 into data of a predetermined format and supplies it to the echo cancellation / voice synthesis circuit 1023.
- the echo cancellation / speech synthesis circuit 1023 performs echo cancellation on the speech data supplied from the speech codec 1028, and synthesizes speech data obtained by combining with other speech data via the speech amplification circuit 1024. And output from the speaker 1025.
- the SDRAM 1030 stores various data necessary for the CPU 1032 to perform processing.
- the flash memory 1031 stores a program executed by the CPU 1032.
- the program stored in the flash memory 1031 is read by the CPU 1032 at a predetermined timing such as when the television receiver 1000 is activated.
- the flash memory 1031 also stores EPG data acquired via digital broadcasting, data acquired from a predetermined server via a network, and the like.
- the flash memory 1031 stores MPEG-TS including content data acquired from a predetermined server via a network under the control of the CPU 1032.
- the flash memory 1031 supplies the MPEG-TS to the MPEG decoder 1017 via the internal bus 1029, for example, under the control of the CPU 1032.
- the MPEG decoder 1017 processes the MPEG-TS as in the case of MPEG-TS supplied from the digital tuner 1016. In this way, the television receiver 1000 receives content data including video and audio via the network, decodes it using the MPEG decoder 1017, displays the video, and outputs audio. Can do.
- the television receiver 1000 also includes a light receiving unit 1037 that receives an infrared signal transmitted from the remote controller 1051.
- the light receiving unit 1037 receives infrared rays from the remote controller 1051 and outputs a control code representing the contents of the user operation obtained by demodulation to the CPU 1032.
- the CPU 1032 executes a program stored in the flash memory 1031 and controls the entire operation of the television receiver 1000 according to a control code supplied from the light receiving unit 1037.
- the CPU 1032 and each part of the television receiver 1000 are connected via a path (not shown). *
- the USB I / F 1033 transmits / receives data to / from an external device of the television receiver 1000 connected via a USB cable attached to the USB terminal 1036.
- the network I / F 1034 is connected to the network via a cable attached to the network terminal 1035, and transmits / receives data other than audio data to / from various devices connected to the network.
- the television receiver 1000 uses the image decoding device 400, the image decoding device 600, or the image decoding device 800 as the MPEG decoder 1017, so that a broadcast wave signal received via an antenna or content data acquired via a network is used.
- the encoding efficiency can be improved.
- FIG. 33 shows main parts of a mobile phone using the image encoding device 300 and the image decoding device 400, the image encoding device 500 and the image decoding device 600, or the image encoding device 700 and the image decoding device 800 to which the present invention is applied. It is a block diagram which shows the example of a structure.
- a cellular phone 1100 shown in FIG. 33 includes a main control unit 1150, a power supply circuit unit 1151, an operation input control unit 1152, an image encoder 1153, a camera I / F unit 1154, an LCD control, which are configured to control each unit in an integrated manner.
- the mobile phone 1100 also includes operation keys 1119, a CCD (Charge Coupled Devices) camera 1116, a liquid crystal display 1118, a storage unit 1123, a transmission / reception circuit unit 1163, an antenna 1114, a microphone (microphone) 1121, and a speaker 1117.
- a CCD Charge Coupled Devices
- the power supply circuit unit 1151 starts up the mobile phone 1100 in an operable state by supplying power from the battery pack to each unit.
- the mobile phone 1100 transmits and receives voice signals, e-mails and image data, and images in various modes such as a voice call mode and a data communication mode based on the control of the main control unit 1150 including a CPU, a ROM, a RAM, and the like. Various operations such as shooting or data recording are performed.
- the mobile phone 1100 converts the voice signal collected by the microphone (microphone) 1121 into digital voice data by the voice codec 1159, performs spectrum spread processing by the modulation / demodulation circuit unit 1158, and transmits and receives
- the unit 1163 performs digital / analog conversion processing and frequency conversion processing.
- the cellular phone 1100 transmits the transmission signal obtained by the conversion process to a base station (not shown) via the antenna 1114.
- the transmission signal (voice signal) transmitted to the base station is supplied to the mobile phone of the other party via the public telephone line network.
- the cellular phone 1100 in the voice call mode, the cellular phone 1100 amplifies the received signal received by the antenna 1114 by the transmission / reception circuit unit 1163, further performs frequency conversion processing and analog-digital conversion processing, and performs spectrum despreading processing by the modulation / demodulation circuit unit 1158. Then, the audio codec 1159 converts it into an analog audio signal. The cellular phone 1100 outputs an analog audio signal obtained by the conversion from the speaker 1117.
- the mobile phone 1100 when transmitting an e-mail in the data communication mode, receives the text data of the e-mail input by operating the operation key 1119 in the operation input control unit 1152.
- the cellular phone 1100 processes the text data in the main control unit 1150 and displays it on the liquid crystal display 1118 as an image via the LCD control unit 1155.
- the mobile phone 1100 generates e-mail data in the main control unit 1150 based on text data received by the operation input control unit 1152, user instructions, and the like.
- the cellular phone 1100 performs spread spectrum processing on the e-mail data by the modulation / demodulation circuit unit 1158 and digital / analog conversion processing and frequency conversion processing by the transmission / reception circuit unit 1163.
- the cellular phone 1100 transmits the transmission signal obtained by the conversion process to a base station (not shown) via the antenna 1114.
- the transmission signal (e-mail) transmitted to the base station is supplied to a predetermined destination via a network and a mail server.
- the mobile phone 1100 when receiving an e-mail in the data communication mode, receives and amplifies the signal transmitted from the base station by the transmission / reception circuit unit 1163 via the antenna 1114, and further performs frequency conversion processing and Analog-digital conversion processing.
- the cellular phone 1100 performs spectrum despreading processing on the received signal by the modulation / demodulation circuit unit 1158 to restore the original e-mail data.
- the cellular phone 1100 displays the restored e-mail data on the liquid crystal display 1118 via the LCD control unit 1155.
- the mobile phone 1100 can also record (store) the received e-mail data in the storage unit 1123 via the recording / playback unit 1162.
- the storage unit 1123 is an arbitrary rewritable storage medium.
- the storage unit 1123 may be, for example, a semiconductor memory such as a RAM or a built-in flash memory, a hard disk, or a removable disk such as a magnetic disk, a magneto-optical disk, an optical disk, a USB memory, or a memory card. It may be media. Of course, other than these may be used.
- the mobile phone 1100 when transmitting image data in the data communication mode, the mobile phone 1100 generates image data with the CCD camera 1116 by imaging.
- the CCD camera 1116 has an optical device such as a lens and a diaphragm and a CCD as a photoelectric conversion element, images a subject, converts the intensity of received light into an electrical signal, and generates image data of the subject image.
- the CCD camera 1116 encodes the image data by the image encoder 1153 via the camera I / F unit 1154 and converts the encoded image data into encoded image data.
- the mobile phone 1100 uses the image encoding device 300, the image encoding device 500, or the image encoding device 700 described above as the image encoder 1153 that performs such processing.
- the image encoder 1153 determines whether the vertical component or the horizontal component is the reference in median prediction. Select as appropriate. By doing so, the image encoder 1153 can improve the encoding efficiency.
- the cellular phone 1100 simultaneously converts the audio collected by the microphone (microphone) 1121 during imaging by the CCD camera 1116 to analog-digital conversion by the audio codec 1159 and further encodes it.
- the cellular phone 1100 multiplexes the encoded image data supplied from the image encoder 1153 and the digital audio data supplied from the audio codec 1159 in a demultiplexing unit 1157.
- the cellular phone 1100 performs spread spectrum processing on the multiplexed data obtained as a result by the modulation / demodulation circuit unit 1158 and digital / analog conversion processing and frequency conversion processing by the transmission / reception circuit unit 1163.
- the cellular phone 1100 transmits the transmission signal obtained by the conversion process to a base station (not shown) via the antenna 1114.
- a transmission signal (image data) transmitted to the base station is supplied to a communication partner via a network or the like.
- the mobile phone 1100 can also display the image data generated by the CCD camera 1116 on the liquid crystal display 1118 via the LCD control unit 1155 without using the image encoder 1153.
- the mobile phone 1100 when receiving data of a moving image file linked to a simple homepage or the like in the data communication mode, transmits a signal transmitted from the base station to the transmission / reception circuit unit 1163 via the antenna 1114. Receive, amplify, and further perform frequency conversion processing and analog-digital conversion processing.
- the cellular phone 1100 restores the original multiplexed data by subjecting the received signal to spectrum despreading processing by the modulation / demodulation circuit unit 1158.
- the demultiplexing unit 1157 separates the multiplexed data and divides it into encoded image data and audio data.
- the cellular phone 1100 generates reproduced moving image data by decoding the encoded image data in the image decoder 1156, and displays it on the liquid crystal display 1118 via the LCD control unit 1155. Thereby, for example, the moving image data included in the moving image file linked to the simple homepage is displayed on the liquid crystal display 1118.
- the cellular phone 1100 uses the above-described image decoding device 400, image decoding device 600, or image decoding device 800 as the image decoder 1156 that performs such processing.
- the image decoder 1156 determines whether to use the vertical component or the horizontal component as a reference in median prediction. This is determined appropriately according to the device 300, the image encoding device 500, or the image encoding device 700. Therefore, the image decoder 1156 can realize improvement in encoding efficiency.
- the cellular phone 1100 simultaneously converts the digital audio data into an analog audio signal in the audio codec 1159 and outputs it from the speaker 1117. Thereby, for example, audio data included in the moving image file linked to the simple homepage is reproduced.
- the mobile phone 1100 can record (store) the data linked to the received simplified home page in the storage unit 1123 via the recording / playback unit 1162. .
- the mobile phone 1100 can analyze the two-dimensional code obtained by the CCD camera 1116 and captured by the main control unit 1150 and obtain information recorded in the two-dimensional code.
- the cellular phone 1100 can communicate with an external device by infrared rays at the infrared communication unit 1181.
- the image encoding device 300 uses the image encoding device 300, the image encoding device 500, or the image encoding device 700 as the image encoder 1153, for example, the image data generated by the CCD camera 1116 is encoded and transmitted. In addition, encoding efficiency can be improved.
- the cellular phone 1100 uses the image decoding device 400, the image decoding device 600, or the image decoding device 800 as the image decoder 1156, so that, for example, data (encoded data) of a moving image file linked to a simple homepage or the like. It is possible to improve the coding efficiency.
- the cellular phone 1100 uses the CCD camera 1116.
- an image sensor CMOS image sensor
- CMOS Complementary Metal Metal Oxide Semiconductor
- the mobile phone 1100 can capture an image of a subject and generate image data of the image of the subject, as in the case where the CCD camera 1116 is used.
- the mobile phone 1100 has been described.
- a PDA Personal Digital Assistant
- a smartphone an UMPC (Ultra Mobile Personal Computer)
- a netbook a notebook personal computer, etc.
- any image encoding device and image decoding device to which the present invention is applied can be applied to any device as long as the device has a communication function.
- FIG. 34 is a block diagram showing a main configuration example of a hard disk recorder using the image encoding device and the image decoding device to which the present invention is applied.
- a hard disk recorder (HDD recorder) 1200 shown in FIG. 34 receives audio data and video data of a broadcast program included in a broadcast wave signal (television signal) transmitted from a satellite or a ground antenna received by a tuner.
- This is an apparatus for storing in a built-in hard disk and providing the stored data to the user at a timing according to the user's instruction.
- the hard disk recorder 1200 can extract, for example, audio data and video data from broadcast wave signals, appropriately decode them, and store them in a built-in hard disk.
- the hard disk recorder 1200 can also acquire audio data and video data from other devices via a network, for example, decode them as appropriate, and store them in a built-in hard disk.
- the hard disk recorder 1200 decodes audio data and video data recorded on the built-in hard disk, supplies them to the monitor 1260, displays the image on the screen of the monitor 1260, and displays the sound from the speaker of the monitor 1260. Can be output. Further, the hard disk recorder 1200 decodes audio data and video data extracted from a broadcast wave signal acquired via a tuner, or audio data and video data acquired from another device via a network, for example. The image can be supplied to the monitor 1260, the image can be displayed on the screen of the monitor 1260, and the sound can be output from the speaker of the monitor 1260.
- the hard disk recorder 1200 includes a receiving unit 1221, a demodulating unit 1222, a demultiplexer 1223, an audio decoder 1224, a video decoder 1225, and a recorder control unit 1226.
- the hard disk recorder 1200 further includes an EPG data memory 1227, a program memory 1228, a work memory 1229, a display converter 1230, an OSD (On-Screen Display) control unit 1231, a display control unit 1232, a recording / playback unit 1233, a D / A converter 1234, And a communication unit 1235.
- the display converter 1230 has a video encoder 1241.
- the recording / playback unit 1233 includes an encoder 1251 and a decoder 1252.
- the receiving unit 1221 receives an infrared signal from a remote controller (not shown), converts it into an electrical signal, and outputs it to the recorder control unit 1226.
- the recorder control unit 1226 is constituted by, for example, a microprocessor and executes various processes according to a program stored in the program memory 1228. At this time, the recorder control unit 1226 uses the work memory 1229 as necessary.
- the communication unit 1235 is connected to the network and performs communication processing with other devices via the network.
- the communication unit 1235 is controlled by the recorder control unit 1226, communicates with a tuner (not shown), and mainly outputs a channel selection control signal to the tuner.
- the demodulator 1222 demodulates the signal supplied from the tuner and outputs the demodulated signal to the demultiplexer 1223.
- the demultiplexer 1223 separates the data supplied from the demodulation unit 1222 into audio data, video data, and EPG data, and outputs them to the audio decoder 1224, the video decoder 1225, or the recorder control unit 1226, respectively.
- the audio decoder 1224 decodes the input audio data and outputs it to the recording / playback unit 1233.
- the video decoder 1225 decodes the input video data and outputs it to the display converter 1230.
- the recorder control unit 1226 supplies the input EPG data to the EPG data memory 1227 for storage.
- the display converter 1230 encodes the video data supplied from the video decoder 1225 or the recorder control unit 1226 into, for example, NTSC (National Television Standards Committee) video data using the video encoder 1241, and outputs the video data to the recording / playback unit 1233.
- the display converter 1230 converts the screen size of the video data supplied from the video decoder 1225 or the recorder control unit 1226 into a size corresponding to the size of the monitor 1260, and converts the video data to NTSC video data by the video encoder 1241. Then, it is converted into an analog signal and output to the display control unit 1232.
- the display control unit 1232 Under the control of the recorder control unit 1226, the display control unit 1232 superimposes the OSD signal output by the OSD (On Screen Display) control unit 1231 on the video signal input from the display converter 1230, and displays it on the monitor 1260 display. Output and display.
- OSD On Screen Display
- the monitor 1260 is also supplied with the audio data output from the audio decoder 1224 after being converted into an analog signal by the D / A converter 1234.
- the monitor 1260 outputs this audio signal from a built-in speaker.
- the recording / playback unit 1233 has a hard disk as a storage medium for recording video data, audio data, and the like.
- the recording / playback unit 1233 encodes the audio data supplied from the audio decoder 1224 by the encoder 1251, for example.
- the recording / playback unit 1233 encodes the video data supplied from the video encoder 1241 of the display converter 1230 by the encoder 1251.
- the recording / playback unit 1233 combines the encoded data of the audio data and the encoded data of the video data by a multiplexer.
- the recording / playback unit 1233 amplifies the synthesized data by channel coding, and writes the data to the hard disk via the recording head.
- the recording / playback unit 1233 plays back the data recorded on the hard disk via the playback head, amplifies it, and separates it into audio data and video data by a demultiplexer.
- the recording / playback unit 1233 uses the decoder 1252 to decode the audio data and the video data.
- the recording / playback unit 1233 performs D / A conversion on the decoded audio data and outputs it to the speaker of the monitor 1260.
- the recording / playback unit 1233 performs D / A conversion on the decoded video data and outputs it to the display of the monitor 1260.
- the recorder control unit 1226 reads the latest EPG data from the EPG data memory 1227 based on the user instruction indicated by the infrared signal from the remote controller received via the receiving unit 1221, and supplies it to the OSD control unit 1231. To do.
- the OSD control unit 1231 generates image data corresponding to the input EPG data, and outputs the image data to the display control unit 1232.
- the display control unit 1232 outputs the video data input from the OSD control unit 1231 to the display of the monitor 1260 for display. As a result, an EPG (electronic program guide) is displayed on the display of the monitor 1260.
- the hard disk recorder 1200 can acquire various data such as video data, audio data, or EPG data supplied from other devices via a network such as the Internet.
- the communication unit 1235 is controlled by the recorder control unit 1226, acquires encoded data such as video data, audio data, and EPG data transmitted from another device via the network, and supplies the encoded data to the recorder control unit 1226. To do.
- the recorder control unit 1226 supplies the encoded data of the acquired video data and audio data to the recording / playback unit 1233 and stores it in the hard disk.
- the recorder control unit 1226 and the recording / playback unit 1233 may perform processing such as re-encoding as necessary.
- the recorder control unit 1226 decodes the acquired encoded data of video data and audio data, and supplies the obtained video data to the display converter 1230. Similar to the video data supplied from the video decoder 1225, the display converter 1230 processes the video data supplied from the recorder control unit 1226, supplies the processed video data to the monitor 1260 via the display control unit 1232, and displays the image. .
- the recorder control unit 1226 may supply the decoded audio data to the monitor 1260 via the D / A converter 1234 and output the sound from the speaker.
- the recorder control unit 1226 decodes the encoded data of the acquired EPG data and supplies the decoded EPG data to the EPG data memory 1227.
- the hard disk recorder 1200 as described above uses the image decoding device 400, the image decoding device 600, or the image decoding device 800 as a decoder built in the video decoder 1225, the decoder 1252, and the recorder control unit 1226. That is, the video decoder 1225, the decoder 1252, and the decoder built in the recorder control unit 1226 are based on the vertical component in the median prediction as in the case of the image decoding device 400, the image decoding device 600, or the image decoding device 800. Whether to use the horizontal component as a reference is appropriately determined according to the image encoding device 300, the image encoding device 500, or the image encoding device 700. Therefore, the video decoder 1225, the decoder 1252, and the decoder built in the recorder control unit 1226 can realize improvement in encoding efficiency.
- the hard disk recorder 1200 realizes, for example, improvement in encoding efficiency of video data (encoded data) received by the tuner or the communication unit 1235 and video data (encoded data) reproduced by the recording / reproducing unit 1233. Can do.
- the hard disk recorder 1200 uses the image encoding device 300, the image encoding device 500, or the image encoding device 700 as the encoder 1251. Therefore, as in the case of the image encoding device 300, the image encoding device 500, or the image encoding device 700, the encoder 1251 determines whether the median prediction is based on the vertical component or the horizontal component. Is appropriately selected. By doing in this way, the encoder 1251 can improve encoding efficiency.
- the hard disk recorder 1200 can improve the encoding efficiency when generating encoded data to be recorded on the hard disk, for example.
- the hard disk recorder 1200 for recording video data and audio data on the hard disk has been described.
- any recording medium may be used.
- FIG. 35 is a block diagram illustrating a main configuration example of a camera using an image encoding device and an image decoding device to which the present invention has been applied.
- the camera 1300 shown in FIG. 35 captures a subject and displays an image of the subject on the LCD 1316 or records it on the recording medium 1333 as image data.
- the lens block 1311 causes light (that is, an image of the subject) to enter the CCD / CMOS 1312.
- the CCD / CMOS 1312 is an image sensor using CCD or CMOS, converts the intensity of received light into an electric signal, and supplies it to the camera signal processing unit 1313.
- the camera signal processing unit 1313 converts the electrical signal supplied from the CCD / CMOS 1312 into Y, Cr, and Cb color difference signals and supplies them to the image signal processing unit 1314.
- the image signal processing unit 1314 performs predetermined image processing on the image signal supplied from the camera signal processing unit 1313 or encodes the image signal with the encoder 1341 under the control of the controller 1321.
- the image signal processing unit 1314 supplies encoded data generated by encoding the image signal to the decoder 1315. Further, the image signal processing unit 1314 acquires display data generated in the on-screen display (OSD) 1320 and supplies it to the decoder 1315.
- OSD on-screen display
- the camera signal processing unit 1313 appropriately uses DRAM (Dynamic Random Access Memory) 1318 connected via the bus 1317, and if necessary, image data or a code obtained by encoding the image data.
- DRAM Dynamic Random Access Memory
- the digitized data or the like is held in the DRAM 1318.
- the decoder 1315 decodes the encoded data supplied from the image signal processing unit 1314 and supplies the obtained image data (decoded image data) to the LCD 1316. In addition, the decoder 1315 supplies the display data supplied from the image signal processing unit 1314 to the LCD 1316. The LCD 1316 appropriately synthesizes the image of the decoded image data supplied from the decoder 1315 and the image of the display data, and displays the synthesized image.
- the on-screen display 1320 outputs display data such as menu screens and icons composed of symbols, characters, or figures to the image signal processing unit 1314 via the bus 1317 under the control of the controller 1321.
- the controller 1321 executes various processes based on a signal indicating the content instructed by the user using the operation unit 1322, and also via the bus 1317, an image signal processing unit 1314, a DRAM 1318, an external interface 1319, an on-screen display. 1320, media drive 1323, and the like are controlled.
- the FLASH ROM 1324 stores programs and data necessary for the controller 1321 to execute various processes.
- the controller 1321 can encode the image data stored in the DRAM 1318 or decode the encoded data stored in the DRAM 1318 instead of the image signal processing unit 1314 and the decoder 1315.
- the controller 1321 may be configured to perform encoding / decoding processing by a method similar to the encoding / decoding method of the image signal processing unit 1314 or the decoder 1315, or the image signal processing unit 1314 or the decoder 1315 is compatible.
- the encoding / decoding process may be performed by a method that is not performed.
- the controller 1321 reads out image data from the DRAM 1318 and supplies it to the printer 1334 connected to the external interface 1319 via the bus 1317. Let it print.
- the controller 1321 reads the encoded data from the DRAM 1318 and supplies it to the recording medium 1333 mounted on the media drive 1323 via the bus 1317.
- the recording medium 1333 is an arbitrary readable / writable removable medium such as a magnetic disk, a magneto-optical disk, an optical disk, or a semiconductor memory.
- the recording medium 1333 may be of any kind as a removable medium, and may be a tape device, a disk, or a memory card.
- a non-contact IC card or the like may be used.
- media drive 1323 and the recording medium 1333 may be integrated and configured by a non-portable storage medium such as a built-in hard disk drive or SSD (Solid State Drive).
- SSD Solid State Drive
- the external interface 1319 is composed of, for example, a USB input / output terminal, and is connected to the printer 1334 when printing an image.
- a drive 1331 is connected to the external interface 1319 as necessary, and a removable medium 1332 such as a magnetic disk, an optical disk, or a magneto-optical disk is appropriately mounted, and a computer program read from them is loaded as necessary. Installed in the FLASH ROM 1324.
- the external interface 1319 has a network interface connected to a predetermined network such as a LAN or the Internet.
- the controller 1321 can read the encoded data from the DRAM 1318 in accordance with an instruction from the operation unit 1322 and supply the encoded data to the other device connected via the network from the external interface 1319.
- the controller 1321 acquires encoded data and image data supplied from another device via the network via the external interface 1319, holds the data in the DRAM 1318, or supplies it to the image signal processing unit 1314. Can be.
- the camera 1300 as described above uses the image decoding device 400, the image decoding device 600, or the image decoding device 800 described above as the decoder 1315. That is, the decoder 1315 encodes whether the median prediction is based on the vertical component or the horizontal component, as in the case of the image decoding device 400, the image decoding device 600, or the image decoding device 800 described above. It determines appropriately according to the side (the image coding apparatus 300, the image coding apparatus 500, or the image coding apparatus 700). Therefore, the decoder 1315 can improve the encoding efficiency.
- the camera 1300 for example, encodes image data generated in the CCD / CMOS 1312, encoded data of video data read from the DRAM 1318 or the recording medium 1333, and encoded efficiency of encoded data of video data acquired via the network. Can be improved.
- the camera 1300 uses the image encoding device 300, the image encoding device 500, or the image encoding device 700 as the encoder 1341.
- the encoder 1341 appropriately determines whether the vertical component or the horizontal component is the reference in median prediction. select. By doing in this way, the encoder 1341 can improve encoding efficiency.
- the camera 1300 can improve the encoding efficiency when generating encoded data to be recorded in the DRAM 1318 or the recording medium 1333 or encoded data to be provided to another device.
- the decoding method of the image decoding device 400, the image decoding device 600, or the image decoding device 800 may be applied to the decoding process performed by the controller 1321.
- the encoding method of the image encoding device 300, the image encoding device 500, or the image encoding device 700 may be applied to the encoding process performed by the controller 1321.
- the image data captured by the camera 1300 may be a moving image or a still image.
- image encoding device and the image decoding device to which the present invention is applied can also be applied to devices and systems other than those described above.
- 300 image coding device 301 motion vector coding unit, 321 vertical reference coding unit, 322 horizontal reference coding unit, 323 cost calculation unit, 324 selection unit, 400 image decoding device, 401 motion vector decoding unit, 421 mode determination Part, 422 vertical reference decoding part, 423 horizontal reference decoding part
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本発明は、符号化効率を向上させることができるようにする画像処理装置および方法に関する。垂直基準コスト算出部331は、垂直基準符号化部321から供給される差分動きベクトル情報の符号量Ivをコスト関数値として算出する。水平基準コスト算出部332は、水平基準符号化部322から供給される差分動きベクトル情報の符号量Ihをコスト関数値として算出する。選択部324は、垂直基準コスト算出部331と水平基準コスト算出部332から供給されるコスト関数値(例えば、IvとIh)を互いに比較し、その値が小さい方をメディアン予測の最適予測モードとして選択し、その選択結果を動き予測モード情報として、1ビットで格納する。本発明は、例えば、画像処理装置に適用することができる。
Description
本発明は、画像処理装置および方法に関し、特に、画像符号化の符号化効率をより向上させることができるようにした画像処理装置および方法に関する。
近年、画像情報をデジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮するMPEG(Moving Picture Experts Group)などの方式に準拠した装置が、放送局などの情報配信、及び一般家庭における情報受信の双方において普及しつつある。
特に、MPEG2(ISO(International Organization for Standardization)/IEC(International Electrotechnical Commission) 13818-2)は、汎用画像符号化方式として定義されており、飛び越し走査画像及び順次走査画像の双方、並びに標準解像度画像及び高精細画像を網羅する標準で、プロフェッショナル用途及びコンシューマ用途の広範なアプリケーションに現在広く用いられている。MPEG2圧縮方式を用いることにより、例えば720×480画素を持つ標準解像度の飛び越し走査画像であれば4Mbps乃至8Mbpsの符号量(ビットレート)、1920×1088画素を持つ高解像度の飛び越し走査画像であれば18Mbps乃至22Mbpsの符号量(ビットレート)を割り当てることで、高い圧縮率と良好な画質の実現が可能である。
MPEG2は主として放送用に適合する高画質符号化を対象としていたが、MPEG1より低い符号量(ビットレート)、つまりより高い圧縮率の符号化方式には対応していなかった。携帯端末の普及により、今後そのような符号化方式のニーズは高まると思われ、これに対応してMPEG4符号化方式の標準化が行われた。画像符号化方式に関しては、1998年12月にISO/IEC 14496-2としてその規格が国際標準に承認された。
更に、近年、当初テレビ会議用の画像符号化を目的として、H.26L (ITU-T(International Telecommunication Union Telecommunication Standardization Sector) Q6/16 VCEG(Video Coding Expert Group))という標準の規格化が進んでいる。H.26LはMPEG2やMPEG4といった従来の符号化方式に比べ、その符号化、復号化により多くの演算量が要求されるものの、より高い符号化効率が実現されることが知られている。また、現在、MPEG4の活動の一環として、このH.26Lをベースに、H.26Lではサポートされない機能をも取り入れ、より高い符号化効率を実現する標準化がJoint Model of Enhanced-Compression Video Codingとして行われている。
標準化のスケジュールとしては、2003年3月にはH.264及びMPEG-4 Part10 (Advanced Video Coding、以下AVCと記す)という名の元に国際標準となった。
MPEG2においては、動き予測・補償処理の単位は、フレーム動き補償モードの場合には16×16画素、フィールド動き補償モードの場合には第1フィールド、第2フィールドのそれぞれに対し、16×8画素を単位として動き予測・補償処理が行なわれる。
これに対し、AVCにおいては、16×16画素により構成される1つのマクロブロックを、16×16、16×8、8×16若しくは8×8のいずれかのパーティションに分割し、それぞれ独立した動きベクトル情報を持つことが可能である。更に、8×8パーティションに関しては、8×8、8×4、4×8、4×4のいずれかのサブパーティションに分割し、それぞれ独立した動きベクトル情報を持つことが可能である。
AVC画像符号化方式において、かかるような動き予測・補償処理が行なわれることにより、膨大な動きベクトル情報が生成され、これをこのまま符号化することは、符号化効率の低下を招く恐れがあった。
かかる問題を解決する手法として、AVC画像符号化においては、動きベクトルの符号化の際に、隣接する動き補償部ロックの動きベクトル情報を用いてメディアン予測を行うことにより、動きベクトルの符号化情報の低減が実現されている。
このようなメディアン予測を用いた動きベクトルの符号化をさらに改善する(動きベクトルを伝送するのに必要な情報量を減らす)ため、動きベクトルの各成分を別々に送ることが提案されている(例えば非特許文献参照)。
Martin Winken, Sebastian Bosse, Benjamin Bross, Philipp Helle, Tobias Hinz, Heiner Kirchhoffer, Haricharan Lakshman, Detlev Marpe, Simon Oudin, Matthias Preiss, Heiko Schwarz, Mischa Siekmann, Karsten Suehring, and Thomas Wiegand,"Description of video coding technology proposed by Fraunhofer HHI",JCTVC-A116,April,2010
しかしながら、非特許文献に記載の方法の場合、メディアンを利用して近傍ブロックから、動きベクトルの垂直成分が常に先に予測されるが、動きベクトルの、垂直成分若しくは水平成分のどちらを先に予測する方がより高効率であるかは画像の特性に依存するので、この方法が常に符号化効率が良いとは限らなかった。
本発明は、このような状況に鑑みてなされたものであり、画像符号化の符号化効率をより向上させることができるようにすることを目的とする。
本発明の一側面は、垂直成分について符号化対象ブロックと最も相関の高い動きベクトル情報を有する前記符号化対象ブロックの近傍ブロックおよび前記符号化対象ブロックの動きベクトル情報の水平成分を用いて、前記符号化対象ブロックに対して探索された動きベクトル情報の符号化を行う第1の方法と、水平成分について符号化対象ブロックと最も相関の高い動きベクトル情報を有する前記符号化対象ブロックの近傍ブロックおよび前記符号化対象ブロックの動きベクトル情報の垂直成分を用いて、前記符号化対象ブロックに対して探索された動きベクトル情報の符号化を行う第2の方法のそれぞれについて、前記符号化の結果を評価する評価値を算出する評価値算出手段と、前記評価値算出手段により算出された前記評価値に基づいて、前記第1の方法、若しくは前記第2の方法のいずれか一方を選択する選択手段とを備える画像処理装置である。
前記評価値算出手段は、ブロック毎に前記評価値を算出し、前記選択手段は、前記ブロック毎に、選択を行うことができる。
前記評価値算出手段は、前記評価値として、前記符号化の結果のコスト関数値を算出し、前記評価値算出手段は、前記第1の方法若しくは前記第2の方法のうち、の前記コスト関数値が小さい方の方法を選択することができる。
前記評価値算出手段は、前記符号化された前記符号化対象ブロックの動きベクトル情報の符号量を前記コスト関数値とすることができる。
前記第1の方法で符号化を行う垂直基準符号化手段と、前記第2の方法で符号化を行う水平基準符号化手段とをさらに備え、前記選択手段は、前記垂直基準符号化手段による符号化の結果、若しくは、前記水平基準符号化手段による符号化の結果のいずれか一方を選択することができる。
前記垂直基準符号化手段は、前記垂直成分について、前記近傍ブロックの動きベクトル情報のメディアンで決定される動きベクトル情報を用いて符号化を行い、前記水平基準符号化手段は、前記水平成分について、前記近傍ブロックの動きベクトル情報のメディアンで決定される動きベクトル情報を用いて符号化を行うことができる。
前記評価値算出手段は、前記評価値として、前記近傍ブロックの動きベクトルのダイナミックレンジを示すDR値を、垂直成分および水平成分のそれぞれについて算出し、前記選択手段は、前記評価値算出手段により算出された前記垂直成分の前記DR値が大きい場合、前記第1の方法を選択し、前記評価値算出手段により算出された前記水平成分の前記DR値が大きい場合、前記第2の方法を選択することができる。
前記選択手段により前記第1の方法が選択された場合、前記第1の方法で符号化を行う垂直基準符号化手段と、前記選択手段により前記第2の方法が選択された場合、前記第2の方法で符号化を行う水平基準符号化手段とをさらに備えることができる。
本発明の一側面は、また、画像処理装置の画像処理方法であって、評価値算出手段が、垂直成分について符号化対象ブロックと最も相関の高い動きベクトル情報を有する前記符号化対象ブロックの近傍ブロックおよび前記符号化対象ブロックの動きベクトル情報の水平成分を用いて、前記符号化対象ブロックに対して探索された動きベクトル情報の符号化を行う第1の方法と、水平成分について符号化対象ブロックと最も相関の高い動きベクトル情報を有する前記符号化対象ブロックの近傍ブロックおよび前記符号化対象ブロックの動きベクトル情報の垂直成分を用いて、前記符号化対象ブロックに対して探索された動きベクトル情報の符号化を行う第2の方法のそれぞれについて、前記符号化の結果を評価する評価値を算出し、選択手段が、算出された前記評価値に基づいて、前記第1の方法、若しくは前記第2の方法のいずれか一方を選択する画像処理方法である。
本発明の一側面においては、垂直成分について符号化対象ブロックと最も相関の高い動きベクトル情報を有する符号化対象ブロックの近傍ブロックおよび符号化対象ブロックの動きベクトル情報の水平成分を用いて、符号化対象ブロックに対して探索された動きベクトル情報の符号化を行う第1の方法と、水平成分について符号化対象ブロックと最も相関の高い動きベクトル情報を有する符号化対象ブロックの近傍ブロックおよび符号化対象ブロックの動きベクトル情報の垂直成分を用いて、符号化対象ブロックに対して探索された動きベクトル情報の符号化を行う第2の方法のそれぞれについて、符号化の結果を評価する評価値が算出され、算出された評価値に基づいて、第1の方法、若しくは第2の方法のいずれか一方が選択される。
本発明によれば、画像を処理することができる。特に、符号化効率をより向上させることができる。
以下、発明を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(画像符号化装置)
2.第2の実施の形態(画像復号装置)
3.第3の実施の形態(画像符号化装置)
4.第4の実施の形態(画像復号装置)
5.第5の実施の形態(画像符号化装置)
6.第6の実施の形態(画像復号装置)
7.第7の実施の形態(パーソナルコンピュータ)
8.第8の実施の形態(テレビジョン受像機)
9.第9の実施の形態(携帯電話機)
10.第10の実施の形態(ハードディスクレコーダ)
11.第11の実施の形態(カメラ)
1.第1の実施の形態(画像符号化装置)
2.第2の実施の形態(画像復号装置)
3.第3の実施の形態(画像符号化装置)
4.第4の実施の形態(画像復号装置)
5.第5の実施の形態(画像符号化装置)
6.第6の実施の形態(画像復号装置)
7.第7の実施の形態(パーソナルコンピュータ)
8.第8の実施の形態(テレビジョン受像機)
9.第9の実施の形態(携帯電話機)
10.第10の実施の形態(ハードディスクレコーダ)
11.第11の実施の形態(カメラ)
<1.第1の実施の形態>
[AVC符号化方式の画像符号化装置]
図1は、AVC符号化方式により画像を符号化する画像符号化装置の一実施の形態の構成を表している。
[AVC符号化方式の画像符号化装置]
図1は、AVC符号化方式により画像を符号化する画像符号化装置の一実施の形態の構成を表している。
図1に示される画像符号化装置100は、AVC規格に基づいた符号化方式で画像を符号化し、出力する装置である。図1に示されるように、画像符号化装置100は、A/D変換部101、画面並べ替えバッファ102、演算部103、直交変換部104、量子化部105、可逆符号化部106、および蓄積バッファ107を有する。また、画像符号化装置100は、逆量子化部108、逆直交変換部109、演算部110、デブロックフィルタ111、フレームメモリ112、選択部113、イントラ予測部114、動き予測・補償部115、選択部116、およびレート制御部117を有する。
A/D変換部101は、入力された画像データをA/D変換し、画面並べ替えバッファ102に出力し、記憶させる。画面並べ替えバッファ102は、記憶した表示の順番のフレームの画像を、GOP(Group of Picture)構造に応じて、符号化のためのフレームの順番に並べ替える。画面並べ替えバッファ102は、フレームの順番を並び替えた画像を、演算部103に供給する。また、画面並べ替えバッファ102は、フレームの順番を並び替えた画像を、イントラ予測部114および動き予測・補償部115にも供給する。
演算部103は、画面並べ替えバッファ102から読み出された画像から、選択部116を介してイントラ予測部114若しくは動き予測・補償部115から供給される予測画像を減算し、その差分情報を直交変換部104に出力する。
例えば、イントラ符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、イントラ予測部114から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、動き予測・補償部115から供給される予測画像を減算する。
直交変換部104は、演算部103から供給される差分情報に対して、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、その変換係数を量子化部105に供給する。
量子化部105は、直交変換部104が出力する変換係数を量子化する。量子化部105は、レート制御部117から供給される符号量の目標値に関する情報に基づいて量子化パラメータを設定し、量子化を行う。量子化部105は、量子化された変換係数を可逆符号化部106に供給する。
可逆符号化部106は、その量子化された変換係数に対して、可変長符号化、算術符号化等の可逆符号化を施す。係数データは、レート制御部117の制御の下で量子化されているので、この符号量は、レート制御部117が設定した目標値となる(若しくは目標値に近似する)。
可逆符号化部106は、イントラ予測を示す情報などをイントラ予測部114から取得し、インター予測モードを示す情報や動きベクトル情報などを動き予測・補償部115から取得する。なお、イントラ予測(画面内予測)を示す情報は、以下、イントラ予測モード情報とも称する。また、インター予測(画面間予測)を示す情報モードを示す情報は、以下、インター予測モード情報とも称する。
可逆符号化部106は、量子化された変換係数を符号化するとともに、フィルタ係数、イントラ予測モード情報、インター予測モード情報、および量子化パラメータなどの各種情報を、符号化データのヘッダ情報の一部とする(多重化する)。可逆符号化部106は、符号化して得られた符号化データを蓄積バッファ107に供給して蓄積させる。
例えば、可逆符号化部106においては、可変長符号化または算術符号化等の可逆符号化処理が行われる。可変長符号化としては、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などがあげられる。算術符号化としては、CABAC(Context-Adaptive Binary Arithmetic Coding)などがあげられる。
蓄積バッファ107は、可逆符号化部106から供給された符号化データを、一時的に保持し、所定のタイミングにおいて、H.264/AVC方式で符号化された符号化画像として、例えば、後段の図示せぬ記録装置や伝送路などに出力する。
また、量子化部105において量子化された変換係数は、逆量子化部108にも供給される。逆量子化部108は、その量子化された変換係数を、量子化部105による量子化に対応する方法で逆量子化する。逆量子化部108は、得られた変換係数を、逆直交変換部109に供給する。
逆直交変換部109は、供給された変換係数を、直交変換部104による直交変換処理に対応する方法で逆直交変換する。逆直交変換された出力(復元された差分情報)は、演算部110に供給される。
演算部110は、逆直交変換部109より供給された逆直交変換結果、すなわち、復元された差分情報に、選択部116を介してイントラ予測部114若しくは動き予測・補償部115から供給される予測画像を加算し、局部的に復号された画像(復号画像)を得る。
例えば、差分情報が、イントラ符号化が行われる画像に対応する場合、演算部110は、その差分情報にイントラ予測部114から供給される予測画像を加算する。また、例えば、差分情報が、インター符号化が行われる画像に対応する場合、演算部110は、その差分情報に動き予測・補償部115から供給される予測画像を加算する。
その加算結果は、デブロックフィルタ111またはフレームメモリ112に供給される。
デブロックフィルタ111は、適宜デブロックフィルタ処理を行うことにより復号画像のブロック歪を除去するとともに、例えばウィナーフィルタ(Wiener Filter)を用いて適宜ループフィルタ処理を行うことにより画質改善を行う。デブロックフィルタ111は、各画素をクラス分類し、クラスごとに適切なフィルタ処理を施す。デブロックフィルタ111は、そのフィルタ処理結果をフレームメモリ112に供給する。
フレームメモリ112は、所定のタイミングにおいて、蓄積されている参照画像を、選択部113を介してイントラ予測部114または動き予測・補償部115に出力する。
例えば、イントラ符号化が行われる画像の場合、フレームメモリ112は、参照画像を、選択部113を介してイントラ予測部114に供給する。また、例えば、インター符号化が行われる場合、フレームメモリ112は、参照画像を、選択部113を介して動き予測・補償部115に供給する。
選択部113は、フレームメモリ112から供給される参照画像がイントラ符号化を行う画像である場合、その参照画像をイントラ予測部114に供給する。また、選択部113は、フレームメモリ112から供給される参照画像がインター符号化を行う画像である場合、その参照画像を動き予測・補償部115に供給する。
イントラ予測部114は、画面内の画素値を用いて予測画像を生成するイントラ予測(画面内予測)を行う。イントラ予測部114は、複数のモード(イントラ予測モード)によりイントラ予測を行う。
H.264画像情報符号化方式において、輝度信号に対しては、イントラ4×4予測モード、イントラ8×8予測モード及びイントラ16×16予測モードが定義されており、また、色差信号に関しては、それぞれのマクロブロックごとに、輝度信号とは独立した予測モードを定義することが可能である。イントラ4×4予測モードについては、それぞれの4×4輝度ブロックに対して、イントラ8×8予測モードについては、それぞれの8×8輝度ブロックに対して、1つのイントラ予測モードが定義されることになる。イントラ16×16予測モード、並びに、色差信号に対しては、1つのマクロブロックに対して、それぞれ1つの予測モードが定義されることになる。
イントラ予測部114は、全てのイントラ予測モードで予測画像を生成し、各予測画像を評価し、最適なモードを選択する。イントラ予測部114は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、選択部116を介して演算部103や演算部110に供給する。
また、上述したように、イントラ予測部114は、採用したイントラ予測モードを示すイントラ予測モード情報等の情報を、適宜可逆符号化部106に供給する。
動き予測・補償部115は、インター符号化が行われる画像について、画面並べ替えバッファ102から供給される入力画像と、選択部113を介してフレームメモリ112から供給される参照画像とを用いて、動き予測を行い、検出された動きベクトルに応じて動き補償処理を行い、予測画像(インター予測画像情報)を生成する。
動き予測・補償部115は、候補となる全てのインター予測モードのインター予測処理を行い、予測画像を生成する。動き予測・補償部115は、生成された予測画像を、選択部116を介して演算部103や演算部110に供給する。
また、動き予測・補償部115は、採用されたインター予測モードを示すインター予測モード情報や、算出した動きベクトルを示す動きベクトル情報を可逆符号化部106に供給する。
選択部116は、イントラ符号化を行う画像の場合、イントラ予測部114の出力を演算部103や演算部110に供給し、インター符号化を行う画像の場合、動き予測・補償部115の出力を演算部103や演算部110に供給する。
レート制御部117は、蓄積バッファ107に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
[AVC符号化方式の画像復号装置]
図2は、離散コサイン変換若しくはカルーネン・レーベ変換等の直交変換と動き補償により画像圧縮を実現する画像復号装置の主な構成例を示すブロック図である。図2に示される画像復号装置200は、画像符号化装置100に対応する復号装置である。
図2は、離散コサイン変換若しくはカルーネン・レーベ変換等の直交変換と動き補償により画像圧縮を実現する画像復号装置の主な構成例を示すブロック図である。図2に示される画像復号装置200は、画像符号化装置100に対応する復号装置である。
画像符号化装置100より符号化された符号化データは、例えば、所定の伝送路を介して、この画像符号化装置100に対応する画像復号装置200に供給され、復号される。
図2に示されるように、画像復号装置200は、蓄積バッファ201、可逆復号部202、逆量子化部203、逆直交変換部204、演算部205、デブロックフィルタ206、画面並べ替えバッファ207、およびD/A変換部208を有する。また、画像復号装置200は、フレームメモリ209、選択部210、イントラ予測部211、動き予測・補償部212、および選択部213を有する。
蓄積バッファ201は、伝送されてきた符号化データを蓄積する。この符号化データは、画像符号化装置100により符号化されたものである。可逆復号部202は、蓄積バッファ201から所定のタイミングで読み出された符号化データを、図1の可逆符号化部106の符号化方式に対応する方式で復号する。
また、当該フレームがイントラ符号化されたものである場合、符号化データのヘッダ部にはイントラ予測モード情報が格納されている。可逆復号部202は、このイントラ予測モード情報も復号し、その情報をイントラ予測部211に供給する。これに対して、当該フレームがインター符号化されたものである場合、符号化データのヘッダ部には動きベクトル情報が格納されている。可逆復号部202は、この動きベクトル情報も復号し、その情報を動き予測・補償部212に供給する。
逆量子化部203は、可逆復号部202により復号されて得られた係数データ(量子化係数)を、図1の量子化部105の量子化方式に対応する方式で逆量子化する。つまり、逆量子化部203は、図1の逆量子化部108と同様の方法で量子化係数の逆量子化を行う。
逆量子化部203は、逆量子化された係数データ、つまり、直交変換係数を、逆直交変換部204に供給する。逆直交変換部204は、図1の直交変換部104の直交変換方式に対応する方式(図1の逆直交変換部109と同様の方式)で、その直交変換係数を逆直交変換し、画像符号化装置100において直交変換される前の残差データに対応する復号残差データを得る。
逆直交変換されて得られた復号残差データは、演算部205に供給される。また、演算部205には、選択部213を介して、イントラ予測部211若しくは動き予測・補償部212から予測画像が供給される。
演算部205は、その復号残差データと予測画像とを加算し、画像符号化装置100の演算部103により予測画像が減算される前の画像データに対応する復号画像データを得る。演算部205は、その復号画像データをデブロックフィルタ206に供給する。
デブロックフィルタ206は、供給された復号画像のブロック歪を除去した後、画面並べ替えバッファ207に供給する。
画面並べ替えバッファ207は、画像の並べ替えを行う。すなわち、図1の画面並べ替えバッファ102により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部208は、画面並べ替えバッファ207から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
デブロックフィルタ206の出力は、さらに、フレームメモリ209に供給される。
フレームメモリ209、選択部210、イントラ予測部211、動き予測・補償部212、および選択部213は、画像符号化装置100のフレームメモリ112、選択部113、イントラ予測部114、動き予測・補償部115、および選択部116にそれぞれ対応する。
選択部210は、インター処理される画像と参照される画像をフレームメモリ209から読み出し、動き予測・補償部212に供給する。また、選択部210は、イントラ予測に用いられる画像をフレームメモリ209から読み出し、イントラ予測部211に供給する。
イントラ予測部211には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報等が可逆復号部202から適宜供給される。イントラ予測部211は、この情報に基づいて、フレームメモリ209から取得した参照画像から予測画像を生成し、生成した予測画像を選択部213に供給する。
動き予測・補償部212は、ヘッダ情報を復号して得られた情報(予測モード情報、動きベクトル情報、参照フレーム情報、フラグ、および各種パラメータ等)を可逆復号部202から取得する。
動き予測・補償部212は、可逆復号部202から供給されるそれらの情報に基づいて、フレームメモリ209から取得した参照画像から予測画像を生成し、生成した予測画像を選択部213に供給する。
選択部213は、動き予測・補償部212またはイントラ予測部211により生成された予測画像を選択し、演算部205に供給する。
[少数画素精度の動き予測・補償処理]
MPEG2等の符号化方式においては、線形内挿処理により、1/2画素精度の動き予測・補償処理を行っているが、AVC符号化方式においては、これが、6タップのFIRフィルタを用いた1/4画素精度の動き予測・補償処理を行っており、これにより、符号化効率が向上している。
MPEG2等の符号化方式においては、線形内挿処理により、1/2画素精度の動き予測・補償処理を行っているが、AVC符号化方式においては、これが、6タップのFIRフィルタを用いた1/4画素精度の動き予測・補償処理を行っており、これにより、符号化効率が向上している。
図3は、AVC符号化方式において規定されている、1/4画素精度の動き予測・補償処理の様子の例を説明する図である。図3において、各四角は、画素を示している。その内、Aはフレームメモリ112に格納されている整数精度画素の位置を示し、b,c,dは、1/2画素精度の位置を示し、e1,e2,e3は1/4画素精度の位置を示している。
以下においては、関数Clip1()を以下の式(1)のように定義する。
例えば、入力画像が8ビット精度である場合、式(1)のmax_pixの値は255となる。
b及びdの位置における画素値は、6tapのFIRフィルタを用いて、以下の式(2)および式(3)のように生成される。
cの位置における画素値は、水平方向及び垂直方向に6tapのFIRフィルタを適用し、以下の式(4)乃至式(6)のように生成される。
なお、Clip処理は、水平方向及び垂直方向の積和処理の両方を行った後、最後に1度のみ行われる。
e1乃至e3は、以下の式(7)乃至式(9)のように、線形内挿により生成される。
[動き予測・補償処理]
また、MPEG2においては、動き予測・補償処理の単位は、フレーム動き補償モードの場合には16×16画素、フィールド動き補償モードの場合には第1フィールド、第2フィールドのそれぞれに対し、16×8画素を単位として動き予測・補償処理が行なわれる。
また、MPEG2においては、動き予測・補償処理の単位は、フレーム動き補償モードの場合には16×16画素、フィールド動き補償モードの場合には第1フィールド、第2フィールドのそれぞれに対し、16×8画素を単位として動き予測・補償処理が行なわれる。
これに対し、AVCにおいては、図4に示されるように、16×16画素により構成される1つのマクロブロックを、16×16、16×8、8×16若しくは8×8のいずれかのパーティションに分割し、サブマクロブロック毎に、互いに独立した動きベクトル情報を持つことが可能である。更に、8×8パーティションに関しては、図5に示されるとおり、8×8、8×4、4×8、4×4のいずれかのサブマクロブロックに分割し、それぞれ独立した動きベクトル情報を持つことが可能である。
しかしながら、AVC画像符号化方式において、MPEG2の場合と同様に、かかるような動き予測・補償処理が行なわれるようにすると、膨大な動きベクトル情報が生成されてしまう恐れがあった。そして、その生成された動きベクトル情報をこのまま符号化することは、符号化効率の低下を招く恐れがあった。
かかる問題を解決する手法として、AVC画像符号化においては、以下のような手法により、動きベクトルの符号化情報の低減が実現されている。
図5に示される各直線は、動き補償ブロックの境界を示している。また、図5において、Eはこれから符号化されようとしている当該動き補償ブロックを示し、A乃至Dは、それぞれ、既に符号化済の、Eに隣接する動き補償ブロックを示す。
今、X=A,B,C,D,Eとして、Xに対する動きベクトル情報を、mvxとする。
まず、動き補償ブロックA,B、およびCに関する動きベクトル情報を用い、動き補償ブロックEに対する予測動きベクトル情報pmvEを、メディアンオペレーションにより、以下の式(10)のように生成する。
動き補償ブロックCに関する情報が、画枠の端である等の理由により“unavailable”である場合、動き補償ブロックDに関する情報で代用される。
画像圧縮情報に、動き補償ブロックEに対する動きベクトル情報として符号化されるデータmvdEは、pmvEを用いて、以下の式(11)のように生成される。
なお、実際の処理は、動きベクトル情報の水平方向および垂直方向のそれぞれの成分に対して、独立に処理が行なわれる。
また、AVCにおいては、Multi-Reference Frame(マルチ(複数)参照フレーム)という、MPEG2やH.263等、従来の画像符号化方式では規定されていなかった方式が規定されている。
図6を用いて、AVCにおいて規定されている、マルチ参照フレーム(Multi-Reference Frame)を説明する。
すなわち、MPEG2やH.263においては、Pピクチャの場合、フレームメモリに格納された参照フレーム1枚のみを参照することにより動き予測・補償処理が行われていたが、AVCにおいては、図6に示されるように、複数の参照フレームがメモリに格納され、マクロブロック毎に、異なるメモリを参照することが可能である。
ところで、Bピクチャにおける動きベクトル情報における情報量は膨大であるが、AVCにおいては、Direct Mode(ダイレクトモード)と称されるモードが用意されている。
このダイレクトモード(Direct Mode)において、動きベクトル情報は、画像圧縮情報中には格納されない。画像復号装置においては、周辺ブロックの動きベクトル情報、若しくは、参照フレームにおける処理対象ブロックと同じ位置のブロックであるco-locatedブロックの動きベクトル情報から、当該ブロックの動きベクトル情報が算出される。
ダイレクトモード(Direct Mode)には、Spatial Direct Mode(空間ダイレクトモード)と、Temporal Direct Mode(時間ダイレクトモード)の2種類が存在し、スライス毎に切り替えることが可能である。
空間ダイレクトモード(Spatial Direct Mode)においては、以下の式(12)に示されるように、処理対象動き補償ブロックEの動きベクトル情報mvEが算出される。
mvE = pmvE ・・・(12)
すなわち、Median(メディアン)予測により生成された動きベクトル情報が、当該ブロックに適用される。
以下においては、図7を用いて、時間ダイレクトモード(Temporal Direct Mode)を説明する。
図7において、L0参照ピクチャにおける、当該ブロックと同じ空間上のアドレスにあるブロックを、Co-Locatedブロックとし、Co-Locatedブロックにおける動きベクトル情報を、mvcolとする。また、当該ピクチャとL0参照ピクチャの時間軸上の距離をTDBとし、L0参照ピクチャとL1参照ピクチャの時間軸上の距離をTDDとする。
この時、当該ピクチャにおける、L0の動きベクトル情報mvL0及びL1の動きベクトル情報mvL1は、以下の式(13)および式(14)のように算出される。
なお、AVC画像圧縮情報においては、時間軸上の距離を表す情報TDが存在しないため、POC(Picture Order Count)を用いて、上述した式(13)および式(14)の演算が行われるものとする。
また、AVC画像圧縮情報においては、ダイレクトモード(Direct Mode)は、16×16画素マクロブロック単位、若しくは、8×8画素ブロック単位で定義することが可能である。
[予測モードの選択]
ところで、AVC符号化方式において、より高い符号化効率を達成するには、適切な予測モードの選択が重要である。
ところで、AVC符号化方式において、より高い符号化効率を達成するには、適切な予測モードの選択が重要である。
かかる選択方式の例として、JM(Joint Model)と呼ばれるH.264/MPEG4 AVCの参照ソフトウエア(http://iphome.hhi.de/suehring/tml/index.htm において公開されている)に実装されている方法を挙げることが出来る。
JMにおいては、以下に述べる、High Complexity Modeと、Low Complexity Modeの2通りのモード判定方法を選択することができる。どちらも、それぞれの予測モードに関するコスト関数値を算出し、これを最小にする予測モードを当該サブマクロブロック、または、当該マクロブロックに対する最適モードとして選択する。
High Complexity Modeにおけるコスト関数は、以下の式(15)のように示される。
Cost(Mode ) = D + λ*R ・・・(15)
ここで、Ωは、当該ブロック乃至マクロブロックを符号化するための候補モードの全体集合、Dは、当該予測モードで符号化した場合の、復号画像と入力画像の差分エネルギーである。λは、量子化パラメータの関数として与えられるLagrange未定乗数である。Rは、直交変換係数を含んだ、当該モードで符号化した場合の総符号量である。
つまり、High Complexity Modeでの符号化を行うには、上記パラメータD及びRを算出するため、全ての候補モードにより、一度、仮エンコード処理を行う必要があり、より高い演算量を要する。
Low Complexity Modeにおけるコスト関数は、以下の式(16)のように示される。
Cost(Mode ) = D + QP2Quant(QP) * HeaderBit ・・・(16)
ここで、Dは、High Complexity Modeの場合と異なり、予測画像と入力画像の差分エネルギーとなる。QP2Quant(QP)は、量子化パラメータQPの関数として与えられ、HeaderBitは、直交変換係数を含まない、動きベクトルや、モードといった、Headerに属する情報に関する符号量である。
すなわち、Low Complexity Modeにおいては、それぞれの候補モードに関して、予測処理を行う必要があるが、復号画像までは必要ないため、符号化処理まで行う必要はない。このため、High Complexity Modeより低い演算量での実現が可能である。
[メディアン予測]
ところで、図5に示されるような、メディアン予測を用いた動きベクトルの符号化を改善する(動きベクトルを伝送するのに必要な情報量を減らす)ため、上述した非特許文献などにおいては、動きベクトルの各成分を別々に送ることが提案されている。
ところで、図5に示されるような、メディアン予測を用いた動きベクトルの符号化を改善する(動きベクトルを伝送するのに必要な情報量を減らす)ため、上述した非特許文献などにおいては、動きベクトルの各成分を別々に送ることが提案されている。
具体的には、以下のように処理される。
1.メディアンを利用して、近傍ブロックA,B、およびCから垂直方向の動きベクトルを予測する。
2.当該ブロックで実際に求めた垂直方向の動きベクトルと、1.においてメディアンを利用して求めた垂直方向の動きベクトルの差分を算出し、符号化する。
3.当該ブロックの垂直方向の動きベクトルと、近傍ブロックA,B、およびCの垂直方向の各動きベクトルとの差分絶対値を算出し、最小となる近傍ブロックを特定する。
4.3.において特定した近傍ブロックから水平方向の動きベクトルを予測する。
2.当該ブロックで実際に求めた垂直方向の動きベクトルと、1.においてメディアンを利用して求めた垂直方向の動きベクトルの差分を算出し、符号化する。
3.当該ブロックの垂直方向の動きベクトルと、近傍ブロックA,B、およびCの垂直方向の各動きベクトルとの差分絶対値を算出し、最小となる近傍ブロックを特定する。
4.3.において特定した近傍ブロックから水平方向の動きベクトルを予測する。
この手法では、メディアンを利用して近傍ブロックから、常に垂直方向の動きベクトルを先に予測しているが、実際には、画像の特性により、垂直方向の動きベクトルを先に予測する方が水平方向の動きベクトルを先に予測するよりも、常に符号化効率が良いとは限らなかった。
[画像符号化装置]
図8は、本発明を適用した画像処理装置としての画像符号化装置の一実施の形態の構成を表している。
図8は、本発明を適用した画像処理装置としての画像符号化装置の一実施の形態の構成を表している。
図8に示される画像符号化装置300は、画像を符号化する装置であり、基本的に図1に示されるAVC符号化方式で画像を符号化する画像符号化装置100と同様の構成を有し、同様の処理を行う。
ただし、画像符号化装置300は、メディアンを用いた動きベクトルの予測において、動きベクトルの各成分を別々に符号化して伝送する際に、垂直成分と水平成分のどちらを先に符号化するかを選択することにより、画像符号化装置100の場合よりも、符号化効率を向上させることができる。画像符号化装置300は、各モードの符号化によって得られる符号化結果の符号化効率を評価する評価値に基づいて、この選択を行う。
図8に示される画像符号化装置300は、画像符号化装置100の構成に加え、さらに動きベクトル符号化部301を有する。
動きベクトル符号化部301は、動き予測・補償部115がメディアンを用いたインター動き予測を行う際に、動きベクトルの符号化を行う。その際、動きベクトル符号化部301は、例えば符号化する画像の内容(符号化効率を評価する評価値)に応じて、動きベクトルの、先に符号化する成分を選択する。
[動き予測・補償部および動きベクトル符号化部]
図9は、動き予測・補償部115と動きベクトル符号化部301の内部の構成例を示すブロック図である。
図9は、動き予測・補償部115と動きベクトル符号化部301の内部の構成例を示すブロック図である。
図9に示されるように、動き予測・補償部115は、動き探索部311、コスト関数算出部312、モード判定部313、動き補償部314、および動きベクトルバッファ315を有する。
動き探索部311は、画面並べ替えバッファ102からの入力画像画素値と、フレームメモリ112からの参照画像画素値が入力される。動き探索部311は、全てのブロックサイズについて全てのインター予測モードの動き探索処理を行い、探索した当該ブロックの動きベクトル情報、入力画像画素値、および参照画像画素値をコスト関数算出部312に供給する。
ただし、メディアンを用いて予測符号化を行うモードについての処理は、動きベクトル符号化部301において行う。動き探索部311は、各インター予測モードについて探索した当該ブロックの動きベクトル情報を、動きベクトル符号化部301に供給する。
コスト関数算出部312には、動き探索部311から、各インター予測モードの動きベクトル情報、入力画像画素値、および参照画像画素値が供給される。コスト関数算出部82は、供給された情報を用いて、予測画像を生成し、各インター予測モードに対するコスト関数値を算出する。コスト関数算出部312は、各インター予測モードに対する動きベクトル情報、動き予測モード情報、およびコスト関数値をモード判定部313に供給する。
また、コスト関数算出部312には、動きベクトル符号化部301から、動きベクトル情報、動きベクトル符号化部301において生成された差分動きベクトル情報、その動き予測モード情報、およびそのコスト関数値が供給される。コスト関数算出部312は、それらの情報もモード判定部313に供給する。
モード判定部313は、各インター予測モードのうち、どのモードを用いるのが最適かの判定に用いる符号化効率の評価値として、例えば、各インター予測モードに対するコスト関数値を用いる。つまり、モード判定部313は、最も小さいコスト関数値のインター予測モードを、最適予測モードとする。そして、モード判定部313は、最適予測モード情報、その動きベクトル情報(および差分動きベクトル情報)、並びに、そのコスト関数値を、動き補償部314に供給する。
動き補償部314は、モード判定部313からの最適予測モードに対応する当該ブロックの動きベクトルを用いて、フレームメモリ112からの参照画像に補償を行うことで、最適予測モードの予測画像を生成する。そして、動き補償部314は、最適予測モードの予測画像とコスト関数値を、選択部116に出力する。
選択部116により最適インターモードの予測画像が選択された場合には、それを示す信号が選択部116から供給される。これに対応して、動き補償部314は、最適インターモード情報や動きベクトル情報(若しくは差分動きベクトル情報)を、復号側へ送るために、可逆符号化部106に供給する。また、動き補償部314は、次のブロックに対する処理において周辺ブロックの動きベクトルとして利用するために、当該ブロックの動きベクトル情報を、動きベクトルバッファ315に格納する。
なお、選択部116により最適インターモードの予測画像が選択されなかった場合(すなわち、イントラ予測画像が選択された場合)、動きベクトル情報として0ベクトルが動きベクトルバッファ315に格納される。
動きベクトルバッファ315には、最適予測モードの各ブロックの動きベクトル情報が格納されている。格納されている動きベクトル情報は、次以降のブロックにおける予測動きベクトル情報を生成するために、周辺動きベクトル情報として、コスト関数算出部312や動きベクトル符号化部301に供給される。
図9に示されるように、動きベクトル符号化部301は、垂直基準符号化部321、水平基準符号化部322、コスト算出部323、および選択部324を有する。
垂直基準符号化部321は、後述するように垂直成分を基準とするメディアン予測を行い、周辺ブロックの動きベクトル情報を用いて予測動きベクトル情報を生成し、その予測動きベクトル情報と、探索された当該動きブロックの動きベクトル情報との差分である差分動きベクトル情報を生成する。水平基準符号化部322は、水平成分を基準とするメディアン予測を行い、周辺ブロックの動きベクトル情報を用いて予測動きベクトル情報を生成し、その予測動きベクトル情報と、探索された当該動きブロックの動きベクトル情報との差分である差分動きベクトル情報を生成する。つまり、動きベクトル符号化部301は、垂直成分を基準とするモードと、水平成分を基準とするモードの両方で(複数のモードで)メディアン予測を行い、差分動きベクトル情報を生成する。
垂直基準符号化部321および水平基準符号化部322は、各モードのメディアン予測により生成した差分動きベクトル情報と、動き探索部311から取得した当該ブロックの動きベクトル情報をコスト算出部323に供給する。
コスト算出部323は、各モードについてコスト関数値を算出する。図9に示されるように、コスト算出部323は、垂直基準コスト算出部331と水平基準コスト算出部332を有する。
垂直基準符号化部321は、垂直成分を基準とするモードのメディアン予測により生成した差分動きベクトル情報と、動き探索部311から取得した当該ブロックの動きベクトル情報を垂直基準コスト算出部331に供給する。
垂直基準コスト算出部331は、垂直基準符号化部321から供給される差分動きベクトル情報の符号量Ivをコスト関数値として算出する。なお、垂直基準コスト算出部331が、垂直基準符号化部321から供給される差分動きベクトル情報および動きベクトル情報、画面並べ替えバッファ102から供給される入力画像画素値、並びに、フレームメモリ112から供給される参照画像画素値を用いて、予測画像を生成し、コスト関数値を算出するようにしてもよい。垂直基準コスト算出部331は、算出したコスト関数値、垂直成分を基準とするモードであることを示す動き予測モード情報、並びに、当該ブロックの動きベクトル情報および差分動きベクトル情報を、選択部324に供給する。
また、水平基準符号化部322は、水平成分を基準とするモードのメディアン予測により生成した差分動きベクトル情報と、動き探索部311から取得した当該ブロックの動きベクトル情報を水平基準コスト算出部332に供給する。
水平基準コスト算出部332は、水平基準符号化部322から供給される差分動きベクトル情報の符号量Ihをコスト関数値として算出する。なお、水平基準コスト算出部332は、水平基準符号化部322から供給される差分動きベクトル情報および動きベクトル情報、画面並べ替えバッファ102から供給される入力画像画素値、並びに、フレームメモリ112から供給される参照画像画素値を用いて、予測画像を生成し、コスト関数値を算出するようにしてもよい。水平基準コスト算出部332は、算出したコスト関数値、水平成分を基準とするモードであることを示す動き予測モード情報、並びに、当該ブロックの動きベクトル情報および差分動きベクトル情報を、選択部324に供給する。
選択部324は、垂直基準コスト算出部331と水平基準コスト算出部332から供給されるコスト関数値(例えば、IvとIh)を互いに比較し、その値が小さい方をメディアン予測の最適予測モードとして選択し、その選択結果を動き予測モード情報として、1ビットで格納する。選択部324は、選択したモードの、コスト関数値、動き予測モード情報、差分動きベクトル情報、および動きベクトル情報をコスト関数算出部312に供給する。
[垂直基準符号化部および水平基準符号化部]
図10は、垂直基準符号化部321および水平基準符号化部322の主な構成例を示すブロック図である。
図10は、垂直基準符号化部321および水平基準符号化部322の主な構成例を示すブロック図である。
垂直基準符号化部321は、垂直成分を基準としてメディアン予測を行い、差分動きベクトル情報を生成する。垂直成分を基準とする方法とは、メディアン予測において、周辺ブロックの垂直方向の動きベクトルを用いて、水平方向の動き予測に用いる周辺ブロックを特定する方法である。
図10に示されるように、垂直基準符号化部321は、垂直成分予測符号化部341、最小判定部342、および水平成分差分符号化部343を有する。
垂直成分予測符号化部341は、複数の周辺ブロックの動きベクトルの垂直成分から、メディアン予測により、垂直方向の動きベクトルを予測し、その予測動きベクトルと当該ブロックの動きベクトルとの差分を求め、符号化する。垂直成分予測符号化部341は、それを差分動きベクトル情報の垂直成分として、周辺ブロックおよび当該ブロックの動きベクトル情報とともに、最小判定部342に供給する。
図10に示されるように、垂直成分予測符号化部341は、垂直成分メディアン予測部351と垂直成分差分符号化部352を有する。垂直成分メディアン予測部351は、メディアン予測により、動きベクトルバッファ315から取得した周辺ブロックの動きベクトル情報の垂直成分から、垂直方向の動きベクトルを予測する(予測動きベクトルの垂直成分を生成する)。垂直成分メディアン予測部351は、生成した予測動きベクトルの垂直成分、周辺ブロックの動きベクトル、および、動き探索部311から供給された当該ブロックの動きベクトルを、垂直成分差分符号化部352に供給する。
垂直成分差分符号化部352は、垂直成分について、予測動きベクトル情報と当該ブロックの動きベクトル情報との差分を算出し、符号化する。垂直成分差分符号化部352は、それを差分動きベクトル情報の垂直成分として、周辺ブロックおよび当該ブロックの動きベクトル情報とともに、最小判定部342に供給する。
最小判定部342は、各周辺ブロックの動きベクトルの垂直成分と、当該ブロックの動きベクトルの垂直成分との差分を求め、各差分を比較し、その差分値が最小となる周辺ブロックを特定する。最小判定部342は、特定した周辺ブロックの動きベクトル、当該ブロックの動きベクトル、および差分動きベクトル情報の垂直成分を水平成分差分符号化部343に供給する。
水平成分差分符号化部343は、水平成分について、最小判定部342により特定された周辺ブロックの動きベクトル情報と当該ブロックの動きベクトル情報との差分を算出し、符号化する。水平成分差分符号化部343は、それを差分動きベクトル情報の水平成分として、差分動きベクトル情報の垂直成分、および、当該ブロックの動きベクトル情報とともに、垂直基準コスト算出部331に供給する。
水平基準符号化部322は、水平成分を基準としてメディアン予測を行い、差分動きベクトル情報を生成する。水平成分を基準とする方法とは、メディアン予測において、周辺ブロックの水平方向の動きベクトルを用いて、垂直方向の動き予測に用いる周辺ブロックを特定する方法である。
つまり、垂直基準符号化部321による垂直成分を基準とする方法と、基準とする成分が異なること以外、基本的に同様の処理が行われる。
図10に示されるように、水平基準符号化部322は、水平成分予測符号化部361、最小判定部362、および垂直成分差分符号化部363を有する。
水平成分予測符号化部361は、複数の周辺ブロックの動きベクトルの水平成分から、メディアン予測により、水平方向の動きベクトルを予測し、その予測動きベクトルと当該ブロックの動きベクトルとの差分を求め、符号化する。水平成分予測符号化部361は、それを差分動きベクトル情報の水平成分として、周辺ブロックおよび当該ブロックの動きベクトル情報とともに、最小判定部362に供給する。
図10に示されるように、水平成分予測符号化部361は、水平成分メディアン予測部371と水平成分差分符号化部372を有する。水平成分メディアン予測部371は、メディアン予測により、動きベクトルバッファ315から取得した周辺ブロックの動きベクトル情報の水平成分から、水平方向の動きベクトルを予測する(予測動きベクトルの水平成分を生成する)。水平成分メディアン予測部371は、生成した予測動きベクトルの水平成分、周辺ブロックの動きベクトル、および、動き探索部311から供給された当該ブロックの動きベクトルを、水平成分差分符号化部372に供給する。
水平成分差分符号化部372は、水平成分について、予測動きベクトル情報と当該ブロックの動きベクトル情報との差分を算出し、符号化する。水平成分差分符号化部372は、それを差分動きベクトル情報の水平成分として、周辺ブロックおよび当該ブロックの動きベクトル情報とともに、最小判定部362に供給する。
最小判定部362は、各周辺ブロックの動きベクトルの水平成分と、当該ブロックの動きベクトルの水平成分との差分を求め、各差分を比較し、その差分値が最小となる周辺ブロックを特定する。最小判定部362は、特定した周辺ブロックの動きベクトル、当該ブロックの動きベクトル、および差分動きベクトル情報の水平成分を垂直成分差分符号化部363に供給する。
垂直成分差分符号化部363は、垂直成分について、最小判定部362により特定された周辺ブロックの動きベクトル情報と当該ブロックの動きベクトル情報との差分を算出し、符号化する。垂直成分差分符号化部363は、それを差分動きベクトル情報の垂直成分として、差分動きベクトル情報の水平成分、および、当該ブロックの動きベクトル情報とともに、水平基準コスト算出部332に供給する。
[差分動きベクトル情報の算出方法]
差分動きベクトル情報の算出方法について、より具体的に説明する。図11は、当該ブロックと周辺ブロック(近傍ブロック)の配置例、並びに、各ブロックの動きベクトルの例を示す図である。
差分動きベクトル情報の算出方法について、より具体的に説明する。図11は、当該ブロックと周辺ブロック(近傍ブロック)の配置例、並びに、各ブロックの動きベクトルの例を示す図である。
図11に示されるように、この中で、ブロックA、ブロックB、およびブロックCを周辺ブロック(近傍ブロック)とし、各周辺ブロックの動きベクトル情報は、A(-5,3)、B(3,4)、C(3,2)であるとし、当該ブロックの実際の動きベクトル情報は、(3,3)であるとする。
非特許文献に記載の方法の場合、先に垂直成分の予測動きベクトル情報が、周辺ブロックA乃至Cから、メディアン(median)によって生成されるので、
(垂直成分の予測動きベクトル)=3
となる。
(垂直成分の予測動きベクトル)=3
となる。
そして、次に、当該ブロックの垂直成分の動きベクトル情報と、周辺ブロックA、B、Cの垂直成分の動きベクトル情報の差分絶対値が算出され、
(ブロックAとの差分絶対値)=0
(ブロックBとの差分絶対値)=1
(ブロックCとの差分絶対値)=1
となる。そして、差分絶対値の最小となる周辺ブロックは、
Min(A,B,C)=A
となる。
(ブロックAとの差分絶対値)=0
(ブロックBとの差分絶対値)=1
(ブロックCとの差分絶対値)=1
となる。そして、差分絶対値の最小となる周辺ブロックは、
Min(A,B,C)=A
となる。
さらに、Min(A,B,C)=Aの水平成分の動きベクトル情報から、当該ブロックに対する水平成分の予測動きベクトル情報が生成され、
(水平成分の予測動きベクトル)=-5
となる。
(水平成分の予測動きベクトル)=-5
となる。
したがって、当該ブロックの水平成分の動きベクトル情報との差分が8となる。つまり、他の周辺ブロックの水平成分で予測する場合(ブロックBの場合の差分:0、ブロックCの場合の差分:0)に比べて、動きベクトルの差分が大きくなり、符号化効率が悪くなってしまう。
このように非特許文献に記載の方法の場合、常に垂直成分を基に、当該ブロックの動きベクトル情報が符号化されるため、当該ブロックの、特に水平成分の動きベクトル情報の符号化が最適であるとは限らない。これに対して、動きベクトル符号化部301は、垂直成分・水平成分を、それぞれ基に当該ブロックの動きベクトル情報を符号化し、その符号化量を比較して、その小さい方の方式を選択して符号化するため、1ビットの動き予測モード情報の追加で、当該ブロックの動きベクトル情報の両成分に対して、効率の良い符号化を実現することができる。
例えば、図11の例において水平成分を基準としてメディアン予測を行うとする。この場合、まず、水平成分の予測動きベクトル情報がメディアン(median)によって生成されるので、
(水平成分の予測動きベクトル)=3
となる。
(水平成分の予測動きベクトル)=3
となる。
次に、当該ブロックの水平成分の動きベクトル情報と、近傍ブロックA、B、Cの水平成分の動きベクトル情報の差分絶対値が算出され、
(ブロックAとの差分絶対値)=5
(ブロックBとの差分絶対値)=0
(ブロックCとの差分絶対値)=0
となる。そして、差分絶対値の最小となる周辺ブロックは、
Min(A,B,C)=B若しくはC
となる。
(ブロックAとの差分絶対値)=5
(ブロックBとの差分絶対値)=0
(ブロックCとの差分絶対値)=0
となる。そして、差分絶対値の最小となる周辺ブロックは、
Min(A,B,C)=B若しくはC
となる。
したがって、Min(A,B,C)=B or Cの水平成分の動きベクトル情報から、当該ブロックに対する水平成分の予測動きベクトル情報は、
(Bの水平成分の予測動きベクトル)=1
(Cの水平成分の予測動きベクトル)=1
となる。すなわち、近傍ブロックがB、Cのいずれの場合でも、当該ブロックの水平成分の動きベクトル情報との差分が1となり、上述した垂直成分を基準とする場合よりも差分動きベクトル情報が小さくなり、コスト関数値が小さくなる。
(Bの水平成分の予測動きベクトル)=1
(Cの水平成分の予測動きベクトル)=1
となる。すなわち、近傍ブロックがB、Cのいずれの場合でも、当該ブロックの水平成分の動きベクトル情報との差分が1となり、上述した垂直成分を基準とする場合よりも差分動きベクトル情報が小さくなり、コスト関数値が小さくなる。
つまり、図11に示される例の場合、動きベクトル符号化部301は、コスト関数値がより小さな水平成分を基準とするモードを選択することができる。
特に、図11に示される例のように、各周辺(近傍)ブロックの動きベクトルの向きや大きさのばらつきが大きい場合、その効果が大きくなる。
例えば、動画像内において移動や変形を行う物体(動物体)とその周辺の境界部分(例えば周辺ブロックに動物体の画像とその動物体周辺の画像の両方が含まれるような場合)においては、各周辺(近傍)ブロックの動きベクトルの向きや大きさが揃い難い(ばらつきが大きくなりやすい)。
例えば複数の激しい動きを含む動画像においては、このような部分が多く含まれる可能性が高い。また、画像が複雑な(例えば高周波成分を多く含むような)テクスチャが動く(移動や変形を行う)ような動画像にも、このような部分が多く含まれる可能性が高い。
さらに、画像内の平坦部分(例えば低周波成分を多く含むような部分)においても、ノイズの発生等により動きベクトルが不安定となり易く、このような部分が多く含まれる可能性が高い。
このような場合、従来の方法のように垂直成分を必ず基準とする方法では、上述したように、符号化効率が低減する恐れがあるが、動きベクトル符号化部301は、コスト関数値を算出し、その値に基づいてモードを選択するので、確実に符号化効率を向上させることができる。
[符号化処理の流れ]
次に、以上のような画像符号化装置300により実行される各処理の流れについて説明する。最初に、図12のフローチャートを参照して、符号化処理の流れの例を説明する。
次に、以上のような画像符号化装置300により実行される各処理の流れについて説明する。最初に、図12のフローチャートを参照して、符号化処理の流れの例を説明する。
ステップS301において、A/D変換部101は入力された画像をA/D変換する。ステップS302において、画面並べ替えバッファ102は、A/D変換された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップS303において、イントラ予測部114は、イントラ予測モードのイントラ予測処理を行う。ステップS304において、動き予測・補償部115は、インター予測モードでの動き予測や動き補償を行うインター動き予測処理を行う。
ステップS305において、選択部116は、イントラ予測部114および動き予測・補償部115から出力された各コスト関数値に基づいて、最適予測モードを決定する。つまり、選択部116は、イントラ予測部114により生成された予測画像と、動き予測・補償部115により生成された予測画像のいずれか一方を選択する。
また、このいずれの予測画像が選択されたかを示す選択情報は、イントラ予測部114および動き予測・補償部115のうち、予測画像が選択された方に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部114は、最適イントラ予測モードを示す情報(すなわち、イントラ予測モード情報)を、可逆符号化部106に供給する。
最適インター予測モードの予測画像が選択された場合、動き予測・補償部115は、最適インター予測モードを示す情報と、必要に応じて、最適インター予測モードに応じた情報を可逆符号化部106に出力する。最適インター予測モードに応じた情報としては、動きベクトル情報やフラグ情報、参照フレーム情報などがあげられる。例えば、メディアン予測を用いるモードが最適インター予測モードとして選択される場合、垂直成分を基準とするモードか水平成分を基準とするモードかを示す情報も可逆符号化部106に供給される。
ステップS306において、演算部103は、ステップS302の処理により並び替えられた画像と、ステップS305において選択された予測画像との差分を演算する。差分データは元の画像データに較べてデータ量が低減される。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
ステップS307において、直交変換部104は,ステップS306の処理により生成された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。ステップS308において、量子化部105は、ステップS307の処理により得られた直交変換係数を量子化する。
ステップS308の処理により量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS309において、逆量子化部108は、ステップS308の処理により生成された量子化された直交変換係数(量子化係数とも称する)を量子化部105の特性に対応する特性で逆量子化する。ステップS310において、逆直交変換部109は、ステップS307の処理により得られた直交変換係数を、直交変換部104の特性に対応する特性で逆直交変換する。
ステップS311において、演算部110は、予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像(演算部103への入力に対応する画像)を生成する。ステップS312においてデブロックフィルタ111は、ステップS310の処理により生成された画像をフィルタリングする。これによりブロック歪みが除去される。
ステップS313において、フレームメモリ112は、ステップS311の処理によりブロック歪みが除去された画像を記憶する。なお、フレームメモリ112にはデブロックフィルタ111によりフィルタ処理されていない画像も演算部110から供給され、記憶される。
ステップS314において、可逆符号化部106は、ステップS308の処理により量子化された変換係数を符号化する。すなわち、差分画像(インターの場合、2次差分画像)に対して、可変長符号化や算術符号化等の可逆符号化が行われる。
なお、可逆符号化部106は、ステップS308において算出された量子化パラメータを符号化し、符号化データに付加する。
また、可逆符号化部106は、ステップS305の処理により選択された予測画像の予測モードに関する情報を符号化し、差分画像を符号化して得られる符号化データに付加する。つまり、可逆符号化部106は、イントラ予測部114から供給されるイントラ予測モード情報、または、動き予測・補償部115から供給される最適インター予測モードに応じた情報なども符号化し、符号化データに付加する。
ステップS315において蓄積バッファ107は、可逆符号化部106から出力される符号化データを蓄積する。蓄積バッファ107に蓄積された符号化データは、適宜読み出され、伝送路を介して復号側に伝送される。
ステップS316においてレート制御部117は、ステップS315の処理により蓄積バッファ107に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
ステップS316の処理が終了すると、符号化処理が終了される。
[インター動き予測処理の流れ]
次に、図13のフローチャートを参照して、図12のステップS304において実行されるインター動き予測処理の流れの例を説明する。
次に、図13のフローチャートを参照して、図12のステップS304において実行されるインター動き予測処理の流れの例を説明する。
インター動き予測処理が開始されると、ステップS331において、動き探索部311は、各ブロックサイズ(例えば図4を参照して説明した、16×16画素乃至4×4画素からなる8種類のブロックサイズ)の各インター予測モードに対して動きベクトルと参照画像をそれぞれ決定する。
そして、コスト関数算出部312は、ステップS332において、各インター予測モードについて、決定した動きベクトルに基づいて参照画像に補償処理を行い、予測画像を生成する。
ステップS333において、動きベクトル符号化部301は、メディアン予測を用いて差分動きベクトル情報を生成するメディアン予測符号化処理を行う。
ステップS334において、コスト関数算出部312は、供給された情報を用いて、各インター予測モードに対するコスト関数値を算出する。
ステップS335において、モード判定部313は、候補の全インター予測モードのコスト関数値を比較し、最小のコスト関数値のインター予測モードを、最適インター予測モードとして決定する。
ステップS336において、動き補償部314は、最適インター予測モードの動きベクトルに基づいて、フレームメモリ112からの参照画像に補償処理を行い、予測画像を生成する。動き補償部314は、最適予測モードの予測画像とコスト関数値を、選択部116に出力し、インター動き予測処理を終了し、処理を図12のステップS304に戻し、ステップS305以降の処理を実行させる。
[メディアン予測符号化処理の流れ]
次に、図14のフローチャートを参照して、図13のステップS333において実行されるメディアン予測符号化処理の流れの例を説明する。
次に、図14のフローチャートを参照して、図13のステップS333において実行されるメディアン予測符号化処理の流れの例を説明する。
メディアン予測符号化処理が開始されると、動き探索部311は、ステップS351において、当該ブロックの動きを検出する。
ステップS352において、垂直基準符号化部321は、垂直成分を基準とするモードでメディアン予測を行う垂直基準符号化処理を行う。垂直基準符号化処理が終了すると、垂直基準コスト算出部331は、ステップS353において、垂直基準符号化のコスト関数値を算出する。例えば、垂直基準コスト算出部331は、垂直基準符号化処理により生成された差分動きベクトル情報の符号量を、垂直基準符号化のコスト関数値として算出する。
ステップS354において、水平基準符号化部322は、水平成分を基準とするモードでメディアン予測を行う水平基準符号化処理を行う。水平基準符号化処理が終了すると、水平基準コスト算出部332は、ステップS355において、水平基準符号化のコスト関数値を算出する。例えば、水平基準コスト算出部332は、水平基準符号化処理により生成された差分動きベクトル情報の符号量を、水平基準符号化のコスト関数値として算出する。
ステップS356において、選択部324は、ステップS353において算出された垂直基準符号化のコスト関数値と、ステップS355において算出された水平基準符号化のコスト関数値とを比較し、その値が小さい方のモードを最適なモードとして選択する。モードを選択すると選択部324は、メディアン予測符号化処理を終了し、処理を図13のステップS333に戻し、ステップS334以降の処理を実行させる。
[垂直基準符号化処理の流れ]
次に、図15のフローチャートを参照して、図14のステップS352において実行される垂直基準符号化処理の流れの例を説明する。
次に、図15のフローチャートを参照して、図14のステップS352において実行される垂直基準符号化処理の流れの例を説明する。
垂直基準符号化処理が開始されると、垂直成分メディアン予測部351は、ステップS371において、垂直成分について、メディアンによる動きベクトルの予測を行う。
ステップS372において、垂直成分差分符号化部352は、垂直成分について、当該ブロックの動きベクトルと、ステップS371の予測結果(垂直方向の予測結果)との差分を求め、符号化する。
ステップS373において、最小判定部342は、垂直成分について、当該ブロックの動きベクトルとの差分絶対値が最小となる動きベクトルを有する周辺(近傍)ブロックを特定する。
ステップS374において、水平成分差分符号化部343は、水平成分について、特定された周辺(近傍)ブロックの動きベクトルと、当該ブロックの動きベクトルとの差分絶対値を符号化する。
ステップS374の処理を終了すると、水平成分差分符号化部343は、垂直基準符号化処理を終了し、処理を図14のステップS352に戻し、ステップS353以降の処理を実行させる。
[水平基準符号化処理の流れ]
次に、図16のフローチャートを参照して、図14のステップS354において実行される水平基準符号化処理の流れの例を説明する。この処理は、垂直成分の代わりに水平成分を基準とすること以外、垂直基準符号化処理(図15)と基本的に同様の処理が行われる。
次に、図16のフローチャートを参照して、図14のステップS354において実行される水平基準符号化処理の流れの例を説明する。この処理は、垂直成分の代わりに水平成分を基準とすること以外、垂直基準符号化処理(図15)と基本的に同様の処理が行われる。
水平基準符号化処理が開始されると、水平成分メディアン予測部371は、ステップS381において、水平成分について、メディアンによる動きベクトルの予測を行う。
ステップS382において、水平成分差分符号化部372は、水平成分について、当該ブロックの動きベクトルと、ステップS381の予測結果(水平方向の予測結果)との差分を求め、符号化する。
ステップS383において、最小判定部362は、水平成分について、当該ブロックの動きベクトルとの差分絶対値が最小となる動きベクトルを有する周辺(近傍)ブロックを特定する。
ステップS384において、垂直成分差分符号化部363は、垂直成分について、特定された周辺(近傍)ブロックの動きベクトルと、当該ブロックの動きベクトルとの差分絶対値を符号化する。
ステップS384の処理を終了すると、垂直成分差分符号化部363は、水平基準符号化処理を終了し、処理を図14のステップS354に戻し、ステップS355以降の処理を実行させる。
以上のように、動きベクトル符号化部301は、各処理を実行することで、垂直成分を基準とするか水平成分を基準とするかを選択する。つまり、動きベクトル符号化部301は、基準とする成分については、メディアン予測により動きベクトルの予測を行い、差分動きベクトル情報を求め、基準としない成分については、基準とする成分において、当該ブロックの動きベクトルの差分絶対値が最小となる周辺ブロックの動きベクトルを予測動きベクトルとし、差分動きベクトル情報を求める。そして、動きベクトル符号化部301は、このような処理を、垂直成分および水平成分をそれぞれ基準として行い、それぞれのコスト関数値を算出し、値が小さい方を最適モードとして選択する。
このようにすることにより、動きベクトル符号化部301は、メディアン予測による符号化の符号化効率を向上させることができる。
<2.第2の実施の形態>
[画像復号装置]
次に、以上のような画像符号化装置300により符号化された符号化データを復号する(画像符号化装置300に対応する)画像復号装置について説明する。図17は、本発明を適用した画像処理装置としての画像復号装置の一実施の形態の構成を表している。
[画像復号装置]
次に、以上のような画像符号化装置300により符号化された符号化データを復号する(画像符号化装置300に対応する)画像復号装置について説明する。図17は、本発明を適用した画像処理装置としての画像復号装置の一実施の形態の構成を表している。
図17に示される画像復号装置400は、画像符号化装置300において画像が符号化された符号化データを復号する装置であり、基本的に図2に示されるAVC符号化方式の画像復号装置200と同様の構成を有し、同様の処理を行う。
ただし、画像復号装置400は、復号する符号化データが、垂直成分を基準とするメディアン予測を用いて生成された符号化データであるか、若しくは、水平成分を基準とするメディアン予測を用いて生成された符号化データであるかを判断し、各モードに応じた復号を行う。
図17に示されるように、画像復号装置400は、画像復号装置200の構成に加え、さらに動きベクトル復号部401を有する。
動きベクトル復号部401は、メディアンを用いたインター動き予測の動きベクトルの復号を行う。その際、動きベクトル復号部401は、画像符号化装置300(すなわち、動きベクトル符号化部301)により基準とされた成分を特定し、その成分を基準として(動きベクトル符号化部301と同じ成分を基準として)復号を行う。
[動き予測・補償部および動きベクトル復号部]
図18は、動き予測・補償部212と動きベクトル復号部401の内部の構成例を示すブロック図である。なお、図18においては、説明の便宜上、メディアン予測モードに関する構成のみを示す。
図18は、動き予測・補償部212と動きベクトル復号部401の内部の構成例を示すブロック図である。なお、図18においては、説明の便宜上、メディアン予測モードに関する構成のみを示す。
図18に示されるように、動き予測・補償部115は、モードバッファ411、差分動きベクトル情報バッファ412、動き補償部413、および動きベクトルバッファ414を有する。
モードバッファ411は、可逆復号部202が符号化データを可逆復号して得られた当該ブロックの、動き予測モードに関する情報を記憶し、所定のタイミングにおいてそれを動きベクトル復号部401に供給する。
差分動きベクトル情報バッファ412は、可逆復号部202が符号化データを可逆復号して得られた当該ブロックの差分動きベクトル情報を記憶し、所定のタイミングにおいてそれを動きベクトル復号部401に供給する。
動き補償部413は、動きベクトル復号部401において復号されて得られた当該ブロックの動きベクトル情報を用いて、フレームメモリ209から供給される参照画像画素値に対して動き補償を行い、予測画像を生成する。動き補償部413は、生成した予測画像画素値を選択部213に供給する。
動きベクトルバッファ414は、動きベクトル復号部401において復号されて得られた当該ブロックの動きベクトル情報を記憶し、それを、次以降のブロックに対する処理において周辺(近傍)ブロックの動きベクトル情報として動きベクトル復号部401に適宜供給する。
図18に示されるように、動きベクトル復号部401は、モード判定部421、垂直基準復号部422、および水平基準復号部423を有する。
モード判定部421は、モードバッファ411から供給される動き予測モードに関する情報に基づいて、符号化の際に、垂直成分を基準としてメディアン予測が行われたか、水平成分を基準としてメディアン予測が行われたかを判定する。符号化の際に垂直成分を基準としてメディアン予測が行われたと判定された場合、モード判定部421は、垂直基準復号部422を動作させる。また、符号化の際に水平成分を基準としてメディアン予測が行われたと判定された場合、モード判定部421は、水平基準復号部423を動作させる。
垂直基準復号部422は、モード判定部421の指示に基づいて動作する。垂直基準復号部422は、差分動きベクトル情報バッファ412から当該ブロックの差分動きベクトル情報を取得する。また、垂直基準復号部422は、動きベクトルバッファ414から周辺(近隣)ブロックの動きベクトル情報を取得する。垂直基準復号部422は、その周辺ブロックの動きベクトル情報を用いて、差分動きベクトル情報を、垂直成分を基準として復号し、当該ブロックの動きベクトル情報を得る。
この場合、当該ブロックの差分動きベクトル情報は、符号化の際に垂直成分を基準としてメディアン予測が行われているので、垂直基準復号部422は、その符号化の手順に応じた手順で差分動きベクトル情報を復号し、当該ブロックの動きベクトル情報を得る。
当該ブロックの動きベクトル情報を得ると、垂直基準復号部422は、その動きベクトル情報を、動き補償部413および動きベクトルバッファ414に供給する。動き補償部413に供給された動きベクトル情報は、予測画像の生成に利用される。動きベクトルバッファ414に供給された動きベクトル情報は、次以降のブロックに対する復号処理において、周辺(近傍)ブロックの動きベクトル情報として利用される。
水平基準復号部423は、モード判定部421の指示に基づいて動作する。水平基準復号部423は、差分動きベクトル情報バッファ412から当該ブロックの差分動きベクトル情報を取得する。また、水平基準復号部423は、動きベクトルバッファ414から周辺(近隣)ブロックの動きベクトル情報を取得する。水平基準復号部423は、その周辺ブロックの動きベクトル情報を用いて、差分動きベクトル情報を、水平成分を基準として復号し、当該ブロックの動きベクトル情報を得る。
この場合、当該ブロックの差分動きベクトル情報は、符号化の際に水平成分を基準としてメディアン予測が行われているので、水平基準復号部423は、その符号化の手順に応じた手順で差分動きベクトル情報を復号し、当該ブロックの動きベクトル情報を得る。
当該ブロックの動きベクトル情報を得ると、水平基準復号部423は、その動きベクトル情報を、動き補償部413および動きベクトルバッファ414に供給する。動き補償部413に供給された動きベクトル情報は、予測画像の生成に利用される。動きベクトルバッファ414に供給された動きベクトル情報は、次以降のブロックに対する復号処理において、周辺(近傍)ブロックの動きベクトル情報として利用される。
つまり、動きベクトル復号部401は、画像符号化装置300から供給される動き予測モードに関する情報を参照して、復号すべき差分動きベクトル情報を、画像符号化装置300がその差分動きベクトル情報を生成した際の予測モードに応じた方法で復号する。したがって、画像復号装置400は、画像符号化装置300が画像を符号化して生成した符号化データを適切に復号することができ、符号化効率の向上を実現することができる。
[復号処理の流れ]
次に、以上のような画像復号装置400により実行される各処理の流れについて説明する。最初に、図19のフローチャートを参照して、復号処理の流れの例を説明する。
次に、以上のような画像復号装置400により実行される各処理の流れについて説明する。最初に、図19のフローチャートを参照して、復号処理の流れの例を説明する。
復号処理が開始されると、ステップS401において、蓄積バッファ201は、伝送されてきた符号化データを蓄積する。ステップS402において、可逆復号部202は、蓄積バッファ201から供給される符号化データを復号する。すなわち、図8の可逆符号化部106により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。
このとき、動きベクトル情報、参照フレーム情報、予測モード情報(イントラ予測モード、またはインター予測モード)、並びに、フラグや量子化パラメータ等の情報も復号される。
予測モード情報がイントラ予測モード情報である場合、予測モード情報は、イントラ予測部211に供給される。予測モード情報がインター予測モード情報である場合、予測モード情報と対応する動きベクトル情報は、動き予測・補償部212に供給される。
ステップS403において、逆量子化部203は、可逆復号部202により復号されて得られた、量子化された直交変換係数を、図8の量子化部105による量子化処理に対応する方法で逆量子化する。ステップS404において逆直交変換部204は逆量子化部203により逆量子化されて得られた直交変換係数を、図8の直交変換部104による直交変換処理に対応する方法で逆直交変換する。これにより図8の直交変換部104の入力(演算部103の出力)に対応する差分情報が復号されたことになる。
ステップS405において、演算部205は、ステップS404の処理により得られた差分情報に、予測画像を加算する。これにより元の画像データが復号される。
ステップS406において、デブロックフィルタ206は、ステップS405の処理により得られた復号画像を適宜フィルタリングする。これにより適宜復号画像からブロック歪みが除去される。
ステップS407において、フレームメモリ209は、フィルタリングされた復号画像を記憶する。
ステップS408において、イントラ予測部211、または動き予測・補償部212は、可逆復号部202から供給される予測モード情報に対応して、それぞれ画像の予測処理を行う。
すなわち、可逆復号部202からイントラ予測モード情報が供給された場合、イントラ予測部211は、イントラ予測モードのイントラ予測処理を行う。また、可逆復号部202からインター予測モード情報が供給された場合、動き予測・補償部212は、インター予測モードの動き予測処理を行う。
ステップS409において、選択部213は予測画像を選択する。すなわち、選択部213には、イントラ予測部211により生成された予測画像、若しくは、動き予測・補償部212により生成された予測画像が供給される。選択部213は、その予測画像が供給された側を選択し、その予測画像を演算部205に供給する。この予測画像は、ステップS405の処理により差分情報に加算される。
ステップS410において、画面並べ替えバッファ207は、復号画像データのフレームの並べ替えを行う。すなわち、復号画像データの、画像符号化装置100の画面並べ替えバッファ102(図8)により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS411において、D/A変換部208は、画面並べ替えバッファ207においてフレームが並べ替えられた復号画像データをD/A変換する。この復号画像データが図示せぬディスプレイに出力され、その画像が表示される。
[予測処理の流れ]
次に、図20のフローチャートを参照して、図19のステップS408において実行される予測処理の詳細な流れの例を説明する。
次に、図20のフローチャートを参照して、図19のステップS408において実行される予測処理の詳細な流れの例を説明する。
予測処理が開始されると、可逆復号部202は、ステップS431において、復号した予測モード情報に基づいて、符号化データがイントラ符号化されているか否かを判定する。
イントラ符号化されていると判定された場合、可逆復号部202は、処理をステップS432に進める。ステップS432において、イントラ予測部211は、可逆復号部202より、イントラ予測モード情報等、予測画像の生成に必要な情報を取得する。ステップS433において、イントラ予測部211は、フレームメモリ209から参照画像を取得し、イントラ予測モードのイントラ予測処理を行って、予測画像を生成する。
予測画像を生成すると、イントラ予測部211は、生成した予測画像を、選択部213を介して演算部205に供給し、予測処理を終了して、処理を図19のステップS408に戻し、ステップS409以降の処理を実行させる。
また、図20のステップS431において、インター符号化されていると判定された場合、可逆復号部202は、処理をステップS434に進める。
ステップS434において、動き予測・補償部212は、インター予測処理を行い、符号化の際に採用されたインター予測モードで予測画像を生成する。
予測画像を生成すると、動き予測・補償部212は、生成した予測画像を、選択部213を介して演算部205に供給し、予測処理を終了して、処理を図19のステップS408に戻し、ステップS409以降の処理を実行させる。
[インター予測処理の流れ]
次に、図21のフローチャートを参照して、図20のステップS434において実行されるインター予測処理の流れの例を説明する。
次に、図21のフローチャートを参照して、図20のステップS434において実行されるインター予測処理の流れの例を説明する。
インター予測処理が開始されると、可逆復号部202は、ステップS451において、モード情報を復号する。そのモード情報をモードバッファ411を介して取得すると、モード判定部421は、ステップS452において、そのモード情報に基づいて、差分動きベクトル情報生成の際の予測モードが垂直成分を基準とする垂直基準モードであるか否かを判定する。
垂直基準モードであると判定された場合、モード判定部421は、処理をステップS453に進める。ステップS453において、垂直基準復号部422は、垂直成分を基準とする方法で差分動きベクトル情報を復号する。差分動きベクトル情報を復号し、当該ブロックの動きベクトル情報を得ると、垂直基準復号部422は、処理をステップS455に進める。
また、ステップS452において、モード情報に基づいて、差分動きベクトル情報生成の際の予測モードが水平成分を基準とする水平基準モードであると判定された場合、モード判定部421は、処理をステップS454に進める。ステップS454において、水平基準復号部423は、水平成分を基準とする方法で差分動きベクトル情報を復号する。差分動きベクトル情報を復号し、当該ブロックの動きベクトル情報を得ると、水平基準復号部423は、処理をステップS455に進める。
ステップS455において、動き補償部413は、垂直基準復号部422若しくは水平基準復号部423により生成された当該ブロックの動きベクトル情報を用いて、フレームメモリ209から供給される参照画像に対して動き補償を行い、予測画像を生成する。
予測画像が生成されると、動き補償部413は、インター予測処理を終了し、処理を図20のステップS434に戻し、予測処理を終了させる。
以上のように各種処理を実行することにより、画像復号装置400は、符号化効率の向上を実現することができる。
<3.第3の実施の形態>
[動き予測・補償部および動きベクトル符号化部]
図22は、画像符号化装置500(図示せず)が有する動き予測・補償部および動きベクトル符号化部の他の構成例を示すブロック図である。画像符号化装置500は、上述した画像符号化装置300と基本的に同様の構成を有し、同様の処理を行う画像符号化装置である。ただし、図22に示されるように、画像符号化装置500は、動きベクトル符号化部301の代わりに、動きベクトル符号化部501を有する。
[動き予測・補償部および動きベクトル符号化部]
図22は、画像符号化装置500(図示せず)が有する動き予測・補償部および動きベクトル符号化部の他の構成例を示すブロック図である。画像符号化装置500は、上述した画像符号化装置300と基本的に同様の構成を有し、同様の処理を行う画像符号化装置である。ただし、図22に示されるように、画像符号化装置500は、動きベクトル符号化部301の代わりに、動きベクトル符号化部501を有する。
この画像符号化装置500は、メディアン予測における予測モード選択を、コスト関数値の代わりに周辺(近傍)ブロックの動きベクトルのばらつきに基づいて行う。図22の動きベクトル符号化部501は、周辺ブロックの動きベクトルのばらつきを示すパラメータとして、各周辺ブロックの動きベクトルのDR値(ダイナミックレンジ)を用いる。
DR値とは、各動きベクトルの成分毎の範囲である。例えば、図11の場合、周辺ブロックの動きベクトルは、A(―5,3)、B(3,4)、C(3,2)であるので、水平成分のDR値は、「8」(3-(-5))となり、垂直成分のDR値は、「2」(4-2)となる。つまり、各動きベクトルが存在する範囲(動きベクトル間の拡がり)が大きいほどDR値は大きな値をとる。
動きベクトル符号化部501は、各周辺(近傍)ブロックの動きベクトルの垂直成分と水平成分のそれぞれについてDR値を算出し、その値に基づいて基準とする成分の選択を行う。より具体的には、動きベクトル符号化部501は、DR値が大きい方の成分を基準として差分ベクトル情報の生成を行う。
動きベクトル符号化部501は、DR算出部511、選択部512、垂直基準符号化部321、および水平基準符号化部322を有する。
DR算出部511は、動きベクトルバッファ315から供給される周辺(近傍)ブロックの動きベクトル情報の垂直成分と水平成分のそれぞれについて、値のばらつき(範囲の大きさ)を示すDR値を算出し、選択部512に供給する。
選択部512は、垂直成分のDR値と水平成分のDR値とを比較し、その値が大きい方を基準とする成分として選択し、垂直基準符号化部321若しくは水平基準符号化部322を選択する。
図11の例の場合、水平成分の方がDR値が大きいので、選択部512は、水平成分を基準とするモードを選択する。すなわち、選択部512は、水平基準符号化部322を動作させ、水平成分を基準とする予測モードで差分動きベクトル情報を生成させる。
DR値が小さいほど、各動きベクトルのばらつきが小さいことを示す。つまり、DR値がより大きい成分(ばらつきが大きな成分)を基準とすることにより、各周辺ブロックの動きベクトルの基準としない成分のばらつきを小さくすることができる。上述したように、メディアン予測においては、動き予測ベクトルの基準としない成分は、基準とする成分に基づいて設定される。したがって、基準としない成分のばらつきを小さくするようにメディアン予測を行うことにより、選択されるブロックによって、予測動きベクトル情報と当該ブロックの動きベクトル情報との差分絶対値が大きく変化しないようにすることができる。
したがって、図11の例のブロックAのように、垂直基準符号化部321または水平基準符号化部322が、動きベクトルの差分が大きなブロックを選択するリスクを低減させることができる。図11の例の場合、第1の実施の形態において上述したように、水平成分を基準とすることにより、垂直成分を基準とする場合よりも符号化効率を向上させることができる。このように、動きベクトル符号化部501は、DR値に基づいて基準とする成分を選択することにより、符号化効率を向上させることができる。
また、動きベクトル符号化部501は、コスト関数値の代わりに、コスト関数値の算出よりも処理が容易なDR値の算出を行えばよい。また、動きベクトル符号化部501は、算出したDR値に基づいて先にモードの選択を行うことができるので、差分動きベクトル情報の生成を、垂直成分を基準とするモード、若しくは、水平成分を基準とするモードのいずれか一方のみで行えばよい。したがって、動きベクトル符号化部501は、第1の実施の形態の動きベクトル符号化部301の場合よりも、処理の負荷を低減させることができる。
ただし、本実施の形態において説明したDR値に基づいて予測モードを選択する方法の場合、上述したように、非特許文献に記載の方法のように常に垂直成分を基準とする場合よりも符号化効率を向上させることができるが、必ず符号化効率が最も良くなるようにすることができるとは限らない。したがって、コスト関数値を算出する動きベクトル符号化部301の方が、DR値を算出する動きベクトル符号化部501よりも確実に符号量を低減させることができる。
なお、本実施の形態において説明したDR値に基づいて予測モードを選択する方法の場合、予測モードを示す情報(垂直成分を基準とするか水平成分を基準とするかを示す情報)を復号側に伝送する必要がなく、その分、符号化効率を向上させることができる。
なお、周辺ブロックの動きベクトルのばらつきを示すパラメータは、どのようなものであってもよく、DR値以外であってもよい。例えば、各周辺ブロックの動きベクトルの分散であってもよいし、それ以外であってもよい。つまり、DR算出部511が、DR値の代わりに、動きベクトルのばらつきを示すDR値以外の値を算出し、それを選択部512に供給するようにしてもよい。
[メディアン予測符号化処理の流れ]
この場合も、符号化処理およびインター動き予測処理は、図12および図13のフローチャートを参照して説明した、第1の実施の形態の場合と同様に行われる。
この場合も、符号化処理およびインター動き予測処理は、図12および図13のフローチャートを参照して説明した、第1の実施の形態の場合と同様に行われる。
図23のフローチャートを参照して、この場合のメディアン予測符号化処理の流れの例を説明する。
動き探索部311は、ステップS551において、当該ブロックの動きを検出し、動きベクトルを生成する。
DR値算出部511は、ステップS552において、垂直成分について、近傍ブロックの動きベクトル情報のDR値を算出し、ステップS553において、水平成分について、同様に近傍ブロックの動きベクトル情報のDR値を算出する。
ステップS554において、選択部512は、ステップS552およびステップS553において算出された各成分についてのDR値を比較し、最適な動き予測モードを選択する。つまり、選択部512は、DR値が大きい方の成分を基準とするメディアン予測モードを選択する。
ステップS555において、垂直基準符号化部321若しくは水平基準符号化部322のうち、ステップS554において選択されたモードに対応する方は、選択されたモードでメディアンを用いた動きベクトルの予測符号化を行い、差分動きベクトル情報を生成する。
ステップS555の処理が終了すると、動きベクトル符号化部501は、メディアン予測符号化処理を終了し、処理を図13のステップS333に戻し、ステップS334以降の処理を実行させる。
以上のような処理を行うことにより、動きベクトル符号化部501は、より容易に符号化効率を向上させることができる。
<4.第4の実施の形態>
[動き予測・補償部および動きベクトル復号部]
第3の実施の形態の画像符号化装置500(図示せず)に対応する画像復号装置600(図示せず)について説明する。画像符号化装置500により符号化された符号化データは、画像復号装置600により、正しく復号することができる。
[動き予測・補償部および動きベクトル復号部]
第3の実施の形態の画像符号化装置500(図示せず)に対応する画像復号装置600(図示せず)について説明する。画像符号化装置500により符号化された符号化データは、画像復号装置600により、正しく復号することができる。
画像復号装置600は、第2の実施の形態において説明した画像復号装置400と基本的に同様の構成を有し、同様の処理を行うが、図24に示されるように、動きベクトル復号部401の代わりに、動きベクトル復号部601を有する。
第3の実施の形態において上述したように画像符号化装置500は、メディアン予測において、垂直成分若しくは水平成分のいずれを基準としたかを示すモード情報を、画像復号装置600に供給しない。したがって、動きベクトル復号部601は、画像符号化装置500の場合と同様に、周辺(近傍)ブロックの動きベクトル情報から成分毎のDR値を算出し、画像符号化装置500において採用されたモードの推定を行う。
図24に示されるように、動きベクトル復号部601は、DR値算出部621、モード判定部622、垂直基準復号部422、および水平基準復号部423を有する。
DR値算出部621は、DR算出部511(図22)の場合と同様に、動きベクトルバッファ414から周辺ブロックの動きベクトル情報を取得し、垂直成分および水平成分のそれぞれについて、DR値を算出する。モード判定部622は、選択部512(図22)の場合と同様に、DR値算出部621により算出されたDR値に基づいて、画像符号化装置500において、垂直成分を基準とするモード、若しくは、水平成分を基準とするモードのいずれが選択されたかを判定(推定)し、推定したモードで差分動きベクトル情報を復号する。
つまり、モード判定部622は、垂直基準復号部422若しくは水平基準復号部423のうち、推定したモードに対応する方を動作させ、差分動きベクトル情報バッファ412から取得した差分動きベクトル情報を復号する。
[インター予測処理の流れ]
この場合のインター予測処理の流れの例を、図25のフローチャートを参照して説明する。
この場合のインター予測処理の流れの例を、図25のフローチャートを参照して説明する。
インター予測処理が開始されると、DR値算出部621は、ステップS651において、周辺(近傍)ブロックの動きベクトル情報の成分毎のDR値を算出する。
ステップS652において、モード判定部622は、ステップS651において算出された各成分のDR値を比較し、垂直成分のDR値の方が水平成分のDR値より大きいか否かを判定する。垂直成分の方が大きいと判定された場合、モード判定部622は、処理をステップS653に進める。ステップS653において、垂直基準復号部422は、垂直成分を基準として差分動きベクトル情報を復号する。ステップS653の処理が終了すると、垂直基準復号部422は、処理をステップS655に進める。
また、ステップS652において、垂直成分のDR値の方が水平成分のDR値より大きくないと判定された場合、モード判定部622は、処理をステップS654に進める。ステップS654において、水平基準復号部423は、水平成分を基準として差分動きベクトル情報を復号する。ステップS654の処理が終了すると、水平基準復号部423は、処理をステップS655に進める。
ステップS655において、動き補償部413は、ステップS653若しくはステップS654において得られた当該ブロックの動きベクトル情報を用いて動き補償を行い、予測画像を生成する。
ステップS655の処理が終了すると、動きベクトル復号部601は、インター予測処理を終了し、処理を図20のステップS434に戻し、予測処理を終了させる。
以上のように、動きベクトル復号部601は、動きベクトル符号化部501により生成された差分動きベクトル情報を適切に復号し、符号化効率の向上を実現することができる。
<5.第5の実施の形態>
[動きベクトル符号化部]
なお、第1の実施の形態において説明した、メディアン予測においてコスト関数値を算出する方法と、第3の実施の形態において説明した、メディアン予測においてDR値を算出する方法の両方を併用するようにしてもよい。
[動きベクトル符号化部]
なお、第1の実施の形態において説明した、メディアン予測においてコスト関数値を算出する方法と、第3の実施の形態において説明した、メディアン予測においてDR値を算出する方法の両方を併用するようにしてもよい。
この場合の画像符号化装置700(図示せず)は、基本的に図8の画像符号化装置300と同様の構成を有し、同様の処理を行うが、動きベクトル符号化部301の代わりに動きベクトル符号化部701を有する。
図26は、その場合の動きベクトル符号化部の主な構成例を示すブロック図である。図26に示されるように、動きベクトル符号化部701は、動きベクトル符号化部301、動きベクトル符号化部501、および制御部711を有する。
動きベクトル符号化部301は、例えば図9を参照して説明したように、コスト関数値を算出し、そのコスト関数値の大きさに基づいて、垂直成分を基準とするか、水平成分を基準とするかを選択するコスト算出モードで差分動きベクトル情報を生成する。
動きベクトル符号化部501は、例えば図22を参照して説明したように、DR値を算出し、そのDR値の大きさに基づいて、垂直成分を基準とするか、水平成分を基準とするかを選択するDR値算出モードで差分動きベクトル情報を生成する。
制御部711は、最初、確実に符号化効率を向上させることができる動きベクトル符号化部301を制御して、差分動きベクトル情報を算出させる。それと並行して、制御部711は、動きベクトル符号化部501も制御し、差分動きベクトル情報を生成させる。制御部711は、両者において選択されるモード(垂直成分を基準とするか、若しくは、水平成分を基準とするか)を比較し、動きベクトル符号化部301と動きベクトル符号化部501のモード選択結果が所定の基準以上一致し、両者のモード選択結果が安定して一致すると判定される場合、動きベクトル符号化部301の処理を停止させ、動きベクトル符号化部501に差分動きベクトル情報を生成させ、処理の負荷を軽減させる。
つまり、制御部711は、最初、より確実なコスト算出モードで開始し、結果に問題が無い場合、より負荷が少ないDR値算出モードに切り替えるように、動きベクトル符号化部301および動きベクトル符号化部501を制御する。
制御部711は、このような制御を、例えばGOP等の、動画像の時系列方向の所定のデータ単位毎に行う。すなわち、例えばGOPが終了すると、制御部711は、制御をリセットし、次のGOPの先頭において、動きベクトル符号化部301を動作させる。
このようにすることにより、動きベクトル符号化部701は、より確実かつ容易に符号化効率を向上させることができる。
なお、モード選択結果の一致度を判定する基準は、任意である。例えば、制御部711が、フレーム画像毎に、所定のブロック数以上、モード選択結果が一致するか否かを判定するようにしてもよい。また、制御部711が、モード選択結果が一致するブロックの平均値や、連続数等、任意の統計量を用いて判定を行うようにしてもよい。
また、以上においては、モードの切り替えは、モード選択の一致不一致により制御されるように説明したが、これに限らず、どのような基準により制御されるようにしてもよい。例えば、符号量の大きさに基づいて制御されるようにしてもよい。
[メディアン予測符号化制御処理の流れ]
次に、図27のフローチャートを参照して、制御部711が実行するメディアン予測符号化制御処理の流れの例を説明する。
次に、図27のフローチャートを参照して、制御部711が実行するメディアン予測符号化制御処理の流れの例を説明する。
メディアン予測符号化制御処理が開始されると、制御部711は、ステップS701において、動きベクトル符号化部301を制御し、コスト関数値を算出するモードでメディアン予測符号化処理(図14)を行わせる。
ステップS702において、制御部711は、動きベクトル符号化部501を制御し、DR値を算出するモードでメディアン予測符号化処理(図23)を行わせる。
ステップS703において、制御部711は、ステップS701において算出された、コスト関数値を算出するモードのメディアン予測符号化処理結果を出力する。ステップS704において、制御部711は、ステップS701およびステップS702の両モードの予測結果の一致をカウントする。
ステップS705において、制御部711は、予測結果が所定の基準以上に一致したか否かを判定し、一致していないと判定した場合、処理をステップS701に戻し、それ以降の処理を繰り返す。
また、ステップS705において、両モードの予測結果が所定の基準以上に一致したと判定された場合、制御部711は、処理をステップS706に進める。
ステップS706において、制御部711は、以降のブロックについてコスト値を算出するモードを終了させ、DR値を算出するモードでのみメディアン予測符号化処理を行わせる。
ステップS707において、制御部711は、コスト値を算出するモードの終了を、コスト関数算出部312に通知する。このモードが最適予測モードとして採用される場合、この通知が、復号側に供給される。
ステップS707の処理が終了すると、制御部711は、メディアン予測符号化制御処理を終了する。なお、制御部711は、このメディアン予測符号化制御処理を所定のデータ単位毎に繰り返し実行する。
以上のように制御部711がメディアン予測符号化制御処理を行うことにより、動きベクトル符号化部701は、より確実かつ容易に符号化効率を向上させることができる。
<6.第6の実施の形態>
[動き予測・補償部および動きベクトル復号部]
第5の実施の形態の画像符号化装置700(図示せず)が生成した符号化データは、画像復号装置800(図示せず)が復号する。この画像復号装置800は、基本的に図17の画像復号装置400と同様の構成を有し、同様の処理を行うが、動きベクトル復号部401の代わりに動きベクトル復号部801を有する。
[動き予測・補償部および動きベクトル復号部]
第5の実施の形態の画像符号化装置700(図示せず)が生成した符号化データは、画像復号装置800(図示せず)が復号する。この画像復号装置800は、基本的に図17の画像復号装置400と同様の構成を有し、同様の処理を行うが、動きベクトル復号部401の代わりに動きベクトル復号部801を有する。
図28は、動きベクトル復号部801の主な構成例を示すブロック図である。図28に示されるように、動きベクトル復号部801は、モード判定部821および動きベクトル復号部401、および、動きベクトル復号部601を有する。
画像符号化装置700から画像復号装置800へは、コスト算出モードとDR値算出モードのいずれのモードで符号化が行われたかを示す動き予測モードに関する情報が供給される。
モード判定部821は、その動き予測モードに関する情報をモードバッファ411を介して可逆復号部202から取得すると、その情報に基づいて、符号化がコスト算出モードとDR値算出モードのいずれのモードで行われたかを判定する。
動きベクトル復号部401は、コスト算出モードで、動きベクトル符号化部301により生成された差分動きベクトル情報を復号する。動きベクトル復号部601は、DR値算出モードで、動きベクトル符号化部501により生成された差分動きベクトル情報を復号する。各モードの復号については、第2の実施の形態および第4の実施の形態において上述したのでその説明を省略する。
各モードで算出された当該ブロックの動きベクトル情報は、動き補償部413や動きベクトルバッファ414に供給され、動き補償処理や、他のブロックに対する処理において利用される。
このように、動きベクトル復号部801は、動きベクトル符号化部701において生成された差分動きベクトル情報を正しく復号することができる。
[インター予測処理の流れ]
この場合のインター予測処理の流れの例を、図29のフローチャートを参照して説明する。
この場合のインター予測処理の流れの例を、図29のフローチャートを参照して説明する。
インター予測処理が開始されると、ステップS851において、可逆復号部202は、モード情報を復号する。ステップS852において、モード判定部821は、ステップS851において復号されたモード情報に基づいて、コスト関数値を算出するメディアン予測モードであるか否かを判定する。コスト関数値を算出するモードであると判定された場合、動きベクトル復号部401は、ステップS853において、コスト関数値を算出するモードでインター予測処理(図21)を行う。
ステップS852においてDR値を算出するモードであると判定された場合、動きベクトル復号部601は、ステップS854において、DR値を算出するモードでインター予測処理(図25)を行う。
ステップS855において、動き補償部413は、ステップS853若しくはステップS854において復号された当該ブロックの動きベクトル情報を用いて予測画像を生成する。ステップS855の処理が終了されると、動きベクトル復号部801は、インター予測処理を終了し、処理を図20のステップS424に戻し、予測処理を終了する。
以上のように、動きベクトル復号部801は、動きベクトル符号化部701により生成された差分動きベクトル情報を適切に復号し、符号化効率の向上を実現することができる。
以上において、水平成分・垂直成分を、それぞれ基に当該ブロックの動きベクトル情報を符号化する際に、medianによる予測結果を利用していたが、これに限らず、例えば、median+co-located(異なる時間における当該ブロックと同じ位置にあるマクロブロック若しくはブロックの動きベクトル情報)に利用することも可能である。
また、以上においては、各モードの符号化によって得られる符号化結果の符号化効率を評価する評価値の例として、コスト関数値(差分動きベクトルの符号量)やDR値を用いて説明したが、この評価値は任意であり、符号化効率を評価するものであれば、どのようなパラメータであってもよい。例えば、各モードで生成された動きベクトルを用いて算出されたMC残差の全部または一部をコスト関数値として比較するようにしてもよい。
[拡張マクロブロック]
なお、上記説明においては、マクロブロックの大きさが、16×16画素の場合について説明してきたが、本発明は、拡張されたマクロブロックサイズに対しても適用することが可能である。
なお、上記説明においては、マクロブロックの大きさが、16×16画素の場合について説明してきたが、本発明は、拡張されたマクロブロックサイズに対しても適用することが可能である。
図30は、拡張されたマクロブロックサイズの例を示す図である。
図30の上段には、左から、32×32画素、32×16画素、16×32画素、および16×16画素のブロック(パーティション)に分割された32×32画素で構成されるマクロブロックが順に示されている。図30の中段には、左から、16×16画素、16×8画素、8×16画素、および8×8画素のブロックに分割された16×16画素で構成されるブロックが順に示されている。また、図30の下段には、左から、8×8画素、8×4画素、4×8画素、および4×4画素のブロックに分割された8×8画素のブロックが順に示されている。
すなわち、32×32画素のマクロブロックは、図30の上段に示される32×32画素、32×16画素、16×32画素、および16×16画素のブロックでの処理が可能である。
また、上段の右側に示される16×16画素のブロックは、H.264/AVC方式と同様に、中段に示される16×16画素、16×8画素、8×16画素、および8×8画素のブロックでの処理が可能である。
さらに、中段の右側に示される8×8画素のブロックは、H.264/AVC方式と同様に、下段に示される8×8画素、8×4画素、4×8画素、および4×4画素のブロックでの処理が可能である。
このような階層構造を採用することにより、拡張されたマクロブロックサイズにおいては、16×16画素のブロック以下に関してH.264/AVC方式と互換性を保ちながら、そのスーパーセットとして、より大きなブロックが定義されている。
以上のように提案される拡張されたマクロブロックサイズにも、本発明を適用することができる。
なお、上記説明においては、予測動きベクトル情報として、メディアン予測による空間予測動きベクトル情報(Spatial Predictor)を用いて説明したが、予測動きベクトル情報としては、時間予測動きベクトル情報(Temporal Predictor)および時空間予測動きベクトル情報(Spatial-Temporal Predictor)、あるいは、その他の予測動きベクトル情報を用いるようにしてもよい。
以上においては、符号化方式としてH.264/AVC方式をベースに用いるようにしたが、これに限らない。すなわち、本発明は、差分処理を用いた動きベクトル情報符号化処理を行う、その他の符号化方式/復号方式にも適用することができる。
なお、本発明は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本発明は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本発明は、それらの画像符号化装置および画像復号装置などに含まれる動き予測補償装置にも適用することができる。
<7.第7の実施の形態>
[パーソナルコンピュータ]
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、図31に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
[パーソナルコンピュータ]
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、図31に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
図31において、パーソナルコンピュータ900のCPU(Central Processing Unit)901は、ROM(Read Only Memory)902に記憶されているプログラム、または記憶部913からRAM(Random Access Memory)903にロードされたプログラムに従って各種の処理を実行する。RAM903にはまた、CPU901が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU901、ROM902、およびRAM903は、バス904を介して相互に接続されている。このバス904にはまた、入出力インタフェース910も接続されている。
入出力インタフェース910には、キーボード、マウスなどよりなる入力部911、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部912、ハードディスクなどより構成される記憶部913、モデムなどより構成される通信部914が接続されている。通信部914は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース910にはまた、必要に応じてドライブ915が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア921が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部913にインストールされる。
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図31に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、若しくは半導体メモリなどよりなるリムーバブルメディア921により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM902や、記憶部913に含まれるハードディスクなどで構成される。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、上述した画像符号化装置や画像復号装置は、任意の電子機器に適用することができる。以下にその例について説明する。
<8.第8の実施の形態>
[テレビジョン受像機]
図32は、本発明を適用した画像復号装置400、画像復号装置600、若しくは、画像復号装置800を用いるテレビジョン受像機の主な構成例を示すブロック図である。
[テレビジョン受像機]
図32は、本発明を適用した画像復号装置400、画像復号装置600、若しくは、画像復号装置800を用いるテレビジョン受像機の主な構成例を示すブロック図である。
図32に示されるテレビジョン受像機1000は、地上波チューナ1013、ビデオデコーダ1015、映像信号処理回路1018、グラフィック生成回路1019、パネル駆動回路1020、および表示パネル1021を有する。
地上波チューナ1013は、地上アナログ放送の放送波信号を、アンテナを介して受信し、復調し、映像信号を取得し、それをビデオデコーダ1015に供給する。ビデオデコーダ1015は、地上波チューナ1013から供給された映像信号に対してデコード処理を施し、得られたデジタルのコンポーネント信号を映像信号処理回路1018に供給する。
映像信号処理回路1018は、ビデオデコーダ1015から供給された映像データに対してノイズ除去などの所定の処理を施し、得られた映像データをグラフィック生成回路1019に供給する。
グラフィック生成回路1019は、表示パネル1021に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成し、生成した映像データや画像データをパネル駆動回路1020に供給する。また、グラフィック生成回路1019は、項目の選択などにユーザにより利用される画面を表示するための映像データ(グラフィック)を生成し、それを番組の映像データに重畳したりすることによって得られた映像データをパネル駆動回路1020に供給するといった処理も適宜行う。
パネル駆動回路1020は、グラフィック生成回路1019から供給されたデータに基づいて表示パネル1021を駆動し、番組の映像や上述した各種の画面を表示パネル1021に表示させる。
表示パネル1021はLCD(Liquid Crystal Display)などよりなり、パネル駆動回路1020による制御に従って番組の映像などを表示させる。
また、テレビジョン受像機1000は、音声A/D(Analog/Digital)変換回路1014、音声信号処理回路1022、エコーキャンセル/音声合成回路1023、音声増幅回路1024、およびスピーカ1025も有する。
地上波チューナ1013は、受信した放送波信号を復調することにより、映像信号だけでなく音声信号も取得する。地上波チューナ1013は、取得した音声信号を音声A/D変換回路1014に供給する。
音声A/D変換回路1014は、地上波チューナ1013から供給された音声信号に対してA/D変換処理を施し、得られたデジタルの音声信号を音声信号処理回路1022に供給する。
音声信号処理回路1022は、音声A/D変換回路1014から供給された音声データに対してノイズ除去などの所定の処理を施し、得られた音声データをエコーキャンセル/音声合成回路1023に供給する。
エコーキャンセル/音声合成回路1023は、音声信号処理回路1022から供給された音声データを音声増幅回路1024に供給する。
音声増幅回路1024は、エコーキャンセル/音声合成回路1023から供給された音声データに対してD/A変換処理、増幅処理を施し、所定の音量に調整した後、音声をスピーカ1025から出力させる。
さらに、テレビジョン受像機1000は、デジタルチューナ1016およびMPEGデコーダ1017も有する。
デジタルチューナ1016は、デジタル放送(地上デジタル放送、BS(Broadcasting Satellite)/CS(Communications Satellite)デジタル放送)の放送波信号を、アンテナを介して受信し、復調し、MPEG-TS(Moving Picture Experts Group-Transport Stream)を取得し、それをMPEGデコーダ1017に供給する。
MPEGデコーダ1017は、デジタルチューナ1016から供給されたMPEG-TSに施されているスクランブルを解除し、再生対象(視聴対象)になっている番組のデータを含むストリームを抽出する。MPEGデコーダ1017は、抽出したストリームを構成する音声パケットをデコードし、得られた音声データを音声信号処理回路1022に供給するとともに、ストリームを構成する映像パケットをデコードし、得られた映像データを映像信号処理回路1018に供給する。また、MPEGデコーダ1017は、MPEG-TSから抽出したEPG(Electronic Program Guide)データを図示せぬ経路を介してCPU1032に供給する。
テレビジョン受像機1000は、このように映像パケットをデコードするMPEGデコーダ1017として、上述した画像復号装置400、画像復号装置600、若しくは画像復号装置800を用いる。なお、放送局等より送信されるMPEG-TSは、画像符号化装置300、画像符号化装置500、若しくは、画像符号化装置700によって符号化されている。
MPEGデコーダ1017は、画像復号装置400、画像復号装置600、若しくは画像復号装置800の場合と同様に、メディアン予測において垂直成分を基準とするか水平成分を基準とするかを、放送局(画像符号化装置300、画像符号化装置500、若しくは、画像符号化装置700)に応じて適切に決定する。したがって、MPEGデコーダ1017は、符号化効率の向上を実現することができる。
MPEGデコーダ1017から供給された映像データは、ビデオデコーダ1015から供給された映像データの場合と同様に、映像信号処理回路1018において所定の処理が施され、グラフィック生成回路1019において、生成された映像データ等が適宜重畳され、パネル駆動回路1020を介して表示パネル1021に供給され、その画像が表示される。
MPEGデコーダ1017から供給された音声データは、音声A/D変換回路1014から供給された音声データの場合と同様に、音声信号処理回路1022において所定の処理が施され、エコーキャンセル/音声合成回路1023を介して音声増幅回路1024に供給され、D/A変換処理や増幅処理が施される。その結果、所定の音量に調整された音声がスピーカ1025から出力される。
また、テレビジョン受像機1000は、マイクロホン1026、およびA/D変換回路1027も有する。
A/D変換回路1027は、音声会話用のものとしてテレビジョン受像機1000に設けられるマイクロホン1026により取り込まれたユーザの音声の信号を受信し、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データをエコーキャンセル/音声合成回路1023に供給する。
エコーキャンセル/音声合成回路1023は、テレビジョン受像機1000のユーザ(ユーザA)の音声のデータがA/D変換回路1027から供給されている場合、ユーザAの音声データを対象としてエコーキャンセルを行い、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路1024を介してスピーカ1025より出力させる。
さらに、テレビジョン受像機1000は、音声コーデック1028、内部バス1029、SDRAM(Synchronous Dynamic Random Access Memory)1030、フラッシュメモリ1031、CPU1032、USB(Universal Serial Bus) I/F1033、およびネットワークI/F1034も有する。
A/D変換回路1027は、音声会話用のものとしてテレビジョン受像機1000に設けられるマイクロホン1026により取り込まれたユーザの音声の信号を受信し、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データを音声コーデック1028に供給する。
音声コーデック1028は、A/D変換回路1027から供給された音声データを、ネットワーク経由で送信するための所定のフォーマットのデータに変換し、内部バス1029を介してネットワークI/F1034に供給する。
ネットワークI/F1034は、ネットワーク端子1035に装着されたケーブルを介してネットワークに接続される。ネットワークI/F1034は、例えば、そのネットワークに接続される他の装置に対して、音声コーデック1028から供給された音声データを送信する。また、ネットワークI/F1034は、例えば、ネットワークを介して接続される他の装置から送信される音声データを、ネットワーク端子1035を介して受信し、それを、内部バス1029を介して音声コーデック1028に供給する。
音声コーデック1028は、ネットワークI/F1034から供給された音声データを所定のフォーマットのデータに変換し、それをエコーキャンセル/音声合成回路1023に供給する。
エコーキャンセル/音声合成回路1023は、音声コーデック1028から供給される音声データを対象としてエコーキャンセルを行い、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路1024を介してスピーカ1025より出力させる。
SDRAM1030は、CPU1032が処理を行う上で必要な各種のデータを記憶する。
フラッシュメモリ1031は、CPU1032により実行されるプログラムを記憶する。フラッシュメモリ1031に記憶されているプログラムは、テレビジョン受像機1000の起動時などの所定のタイミングでCPU1032により読み出される。フラッシュメモリ1031には、デジタル放送を介して取得されたEPGデータ、ネットワークを介して所定のサーバから取得されたデータなども記憶される。
例えば、フラッシュメモリ1031には、CPU1032の制御によりネットワークを介して所定のサーバから取得されたコンテンツデータを含むMPEG-TSが記憶される。フラッシュメモリ1031は、例えばCPU1032の制御により、そのMPEG-TSを、内部バス1029を介してMPEGデコーダ1017に供給する。
MPEGデコーダ1017は、デジタルチューナ1016から供給されたMPEG-TSの場合と同様に、そのMPEG-TSを処理する。このようにテレビジョン受像機1000は、映像や音声等よりなるコンテンツデータを、ネットワークを介して受信し、MPEGデコーダ1017を用いてデコードし、その映像を表示させたり、音声を出力させたりすることができる。
また、テレビジョン受像機1000は、リモートコントローラ1051から送信される赤外線信号を受光する受光部1037も有する。
受光部1037は、リモートコントローラ1051からの赤外線を受光し、復調して得られたユーザ操作の内容を表す制御コードをCPU1032に出力する。
CPU1032は、フラッシュメモリ1031に記憶されているプログラムを実行し、受光部1037から供給される制御コードなどに応じてテレビジョン受像機1000の全体の動作を制御する。CPU1032とテレビジョン受像機1000の各部は、図示せぬ経路を介して接続されている。
USB I/F1033は、USB端子1036に装着されたUSBケーブルを介して接続される、テレビジョン受像機1000の外部の機器との間でデータの送受信を行う。ネットワークI/F1034は、ネットワーク端子1035に装着されたケーブルを介してネットワークに接続し、ネットワークに接続される各種の装置と音声データ以外のデータの送受信も行う。
テレビジョン受像機1000は、MPEGデコーダ1017として画像復号装置400、画像復号装置600、若しくは画像復号装置800を用いることにより、アンテナを介して受信する放送波信号や、ネットワークを介して取得するコンテンツデータの符号化効率の向上を実現することができる。
<9.第9の実施の形態>
[携帯電話機]
図33は、本発明を適用した画像符号化装置300および画像復号装置400、画像符号化装置500および画像復号装置600、または、画像符号化装置700および画像復号装置800を用いる携帯電話機の主な構成例を示すブロック図である。
[携帯電話機]
図33は、本発明を適用した画像符号化装置300および画像復号装置400、画像符号化装置500および画像復号装置600、または、画像符号化装置700および画像復号装置800を用いる携帯電話機の主な構成例を示すブロック図である。
図33に示される携帯電話機1100は、各部を統括的に制御するようになされた主制御部1150、電源回路部1151、操作入力制御部1152、画像エンコーダ1153、カメラI/F部1154、LCD制御部1155、画像デコーダ1156、多重分離部1157、記録再生部1162、変復調回路部1158、および音声コーデック1159を有する。これらは、バス1160を介して互いに接続されている。
また、携帯電話機1100は、操作キー1119、CCD(Charge Coupled Devices)カメラ1116、液晶ディスプレイ1118、記憶部1123、送受信回路部1163、アンテナ1114、マイクロホン(マイク)1121、およびスピーカ1117を有する。
電源回路部1151は、ユーザの操作により終話および電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話機1100を動作可能な状態に起動する。
携帯電話機1100は、CPU、ROMおよびRAM等でなる主制御部1150の制御に基づいて、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
例えば、音声通話モードにおいて、携帯電話機1100は、マイクロホン(マイク)1121で集音した音声信号を、音声コーデック1159によってデジタル音声データに変換し、これを変復調回路部1158でスペクトラム拡散処理し、送受信回路部1163でデジタルアナログ変換処理および周波数変換処理する。携帯電話機1100は、その変換処理により得られた送信用信号を、アンテナ1114を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(音声信号)は、公衆電話回線網を介して通話相手の携帯電話機に供給される。
また、例えば、音声通話モードにおいて、携帯電話機1100は、アンテナ1114で受信した受信信号を送受信回路部1163で増幅し、さらに周波数変換処理およびアナログデジタル変換処理し、変復調回路部1158でスペクトラム逆拡散処理し、音声コーデック1159によってアナログ音声信号に変換する。携帯電話機1100は、その変換して得られたアナログ音声信号をスピーカ1117から出力する。
更に、例えば、データ通信モードにおいて電子メールを送信する場合、携帯電話機1100は、操作キー1119の操作によって入力された電子メールのテキストデータを、操作入力制御部1152において受け付ける。携帯電話機1100は、そのテキストデータを主制御部1150において処理し、LCD制御部1155を介して、画像として液晶ディスプレイ1118に表示させる。
また、携帯電話機1100は、主制御部1150において、操作入力制御部1152が受け付けたテキストデータやユーザ指示等に基づいて電子メールデータを生成する。携帯電話機1100は、その電子メールデータを、変復調回路部1158でスペクトラム拡散処理し、送受信回路部1163でデジタルアナログ変換処理および周波数変換処理する。携帯電話機1100は、その変換処理により得られた送信用信号を、アンテナ1114を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(電子メール)は、ネットワークおよびメールサーバ等を介して、所定のあて先に供給される。
また、例えば、データ通信モードにおいて電子メールを受信する場合、携帯電話機1100は、基地局から送信された信号を、アンテナ1114を介して送受信回路部1163で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機1100は、その受信信号を変復調回路部1158でスペクトラム逆拡散処理して元の電子メールデータを復元する。携帯電話機1100は、復元された電子メールデータを、LCD制御部1155を介して液晶ディスプレイ1118に表示する。
なお、携帯電話機1100は、受信した電子メールデータを、記録再生部1162を介して、記憶部1123に記録する(記憶させる)ことも可能である。
この記憶部1123は、書き換え可能な任意の記憶媒体である。記憶部1123は、例えば、RAMや内蔵型フラッシュメモリ等の半導体メモリであってもよいし、ハードディスクであってもよいし、磁気ディスク、光磁気ディスク、光ディスク、USBメモリ、またはメモリカード等のリムーバブルメディアであってもよい。もちろん、これら以外のものであってもよい。
さらに、例えば、データ通信モードにおいて画像データを送信する場合、携帯電話機1100は、撮像によりCCDカメラ1116で画像データを生成する。CCDカメラ1116は、レンズや絞り等の光学デバイスと光電変換素子としてのCCDを有し、被写体を撮像し、受光した光の強度を電気信号に変換し、被写体の画像の画像データを生成する。CCDカメラ1116は、その画像データを、カメラI/F部1154を介して、画像エンコーダ1153で符号化し、符号化画像データに変換する。
携帯電話機1100は、このような処理を行う画像エンコーダ1153として、上述した画像符号化装置300、画像符号化装置500、若しくは、画像符号化装置700を用いる。画像エンコーダ1153は、画像符号化装置300、画像符号化装置500、若しくは、画像符号化装置700の場合と同様に、メディアン予測において、垂直成分を基準とするか、水平成分を基準とするかを適宜選択する。このようにすることにより、画像エンコーダ1153は、符号化効率を向上させることができる。
なお、携帯電話機1100は、このとき同時に、CCDカメラ1116で撮像中にマイクロホン(マイク)1121で集音した音声を、音声コーデック1159においてアナログデジタル変換し、さらに符号化する。
携帯電話機1100は、多重分離部1157において、画像エンコーダ1153から供給された符号化画像データと、音声コーデック1159から供給されたデジタル音声データとを、所定の方式で多重化する。携帯電話機1100は、その結果得られる多重化データを、変復調回路部1158でスペクトラム拡散処理し、送受信回路部1163でデジタルアナログ変換処理および周波数変換処理する。携帯電話機1100は、その変換処理により得られた送信用信号を、アンテナ1114を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(画像データ)は、ネットワーク等を介して、通信相手に供給される。
なお、画像データを送信しない場合、携帯電話機1100は、CCDカメラ1116で生成した画像データを、画像エンコーダ1153を介さずに、LCD制御部1155を介して液晶ディスプレイ1118に表示させることもできる。
また、例えば、データ通信モードにおいて、簡易ホームページ等にリンクされた動画像ファイルのデータを受信する場合、携帯電話機1100は、基地局から送信された信号を、アンテナ1114を介して送受信回路部1163で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機1100は、その受信信号を変復調回路部1158でスペクトラム逆拡散処理して元の多重化データを復元する。携帯電話機1100は、多重分離部1157において、その多重化データを分離して、符号化画像データと音声データとに分ける。
携帯電話機1100は、画像デコーダ1156において符号化画像データをデコードすることにより、再生動画像データを生成し、これを、LCD制御部1155を介して液晶ディスプレイ1118に表示させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる動画データが液晶ディスプレイ1118に表示される。
携帯電話機1100は、このような処理を行う画像デコーダ1156として、上述した画像復号装置400、画像復号装置600、若しくは画像復号装置800を用いる。つまり、画像デコーダ1156は、画像復号装置400、画像復号装置600、若しくは画像復号装置800の場合と同様に、メディアン予測において垂直成分を基準とするか水平成分を基準とするかを、画像符号化装置300、画像符号化装置500、若しくは、画像符号化装置700に応じて適切に決定する。したがって、画像デコーダ1156は、符号化効率の向上を実現することができる。
このとき、携帯電話機1100は、同時に、音声コーデック1159において、デジタルの音声データをアナログ音声信号に変換し、これをスピーカ1117より出力させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる音声データが再生される。
なお、電子メールの場合と同様に、携帯電話機1100は、受信した簡易ホームページ等にリンクされたデータを、記録再生部1162を介して、記憶部1123に記録する(記憶させる)ことも可能である。
また、携帯電話機1100は、主制御部1150において、撮像されてCCDカメラ1116で得られた2次元コードを解析し、2次元コードに記録された情報を取得することができる。
さらに、携帯電話機1100は、赤外線通信部1181で赤外線により外部の機器と通信することができる。
携帯電話機1100は、画像エンコーダ1153として画像符号化装置300、画像符号化装置500、若しくは、画像符号化装置700を用いることにより、例えばCCDカメラ1116において生成された画像データを符号化して伝送する際に、符号化効率を向上させることができる。
また、携帯電話機1100は、画像デコーダ1156として画像復号装置400、画像復号装置600、若しくは画像復号装置800を用いることにより、例えば、簡易ホームページ等にリンクされた動画像ファイルのデータ(符号化データ)の符号化効率の向上を実現させることができる。
なお、以上において、携帯電話機1100が、CCDカメラ1116を用いるように説明したが、このCCDカメラ1116の代わりに、CMOS(Complementary Metal Oxide Semiconductor)を用いたイメージセンサ(CMOSイメージセンサ)を用いるようにしてもよい。この場合も、携帯電話機1100は、CCDカメラ1116を用いる場合と同様に、被写体を撮像し、被写体の画像の画像データを生成することができる。
また、以上においては携帯電話機1100として説明したが、例えば、PDA(Personal Digital Assistants)、スマートフォン、UMPC(Ultra Mobile Personal Computer)、ネットブック、ノート型パーソナルコンピュータ等、この携帯電話機1100と同様の撮像機能や通信機能を有する装置であれば、どのような装置であっても携帯電話機1100の場合と同様に、本発明を適用した画像符号化装置および画像復号装置を適用することができる。
<10.第10の実施の形態>
[ハードディスクレコーダ]
図34は、本発明を適用した画像符号化装置および画像復号装置を用いるハードディスクレコーダの主な構成例を示すブロック図である。
[ハードディスクレコーダ]
図34は、本発明を適用した画像符号化装置および画像復号装置を用いるハードディスクレコーダの主な構成例を示すブロック図である。
図34に示されるハードディスクレコーダ(HDDレコーダ)1200は、チューナにより受信された、衛星や地上のアンテナ等より送信される放送波信号(テレビジョン信号)に含まれる放送番組のオーディオデータとビデオデータを、内蔵するハードディスクに保存し、その保存したデータをユーザの指示に応じたタイミングでユーザに提供する装置である。
ハードディスクレコーダ1200は、例えば、放送波信号よりオーディオデータとビデオデータを抽出し、それらを適宜復号し、内蔵するハードディスクに記憶させることができる。また、ハードディスクレコーダ1200は、例えば、ネットワークを介して他の装置からオーディオデータやビデオデータを取得し、それらを適宜復号し、内蔵するハードディスクに記憶させることもできる。
さらに、ハードディスクレコーダ1200は、例えば、内蔵するハードディスクに記録されているオーディオデータやビデオデータを復号してモニタ1260に供給し、モニタ1260の画面にその画像を表示させ、モニタ1260のスピーカよりその音声を出力させることができる。また、ハードディスクレコーダ1200は、例えば、チューナを介して取得された放送波信号より抽出されたオーディオデータとビデオデータ、または、ネットワークを介して他の装置から取得したオーディオデータやビデオデータを復号してモニタ1260に供給し、モニタ1260の画面にその画像を表示させ、モニタ1260のスピーカよりその音声を出力させることもできる。
もちろん、この他の動作も可能である。
図34に示されるように、ハードディスクレコーダ1200は、受信部1221、復調部1222、デマルチプレクサ1223、オーディオデコーダ1224、ビデオデコーダ1225、およびレコーダ制御部1226を有する。ハードディスクレコーダ1200は、さらに、EPGデータメモリ1227、プログラムメモリ1228、ワークメモリ1229、ディスプレイコンバータ1230、OSD(On Screen Display)制御部1231、ディスプレイ制御部1232、記録再生部1233、D/Aコンバータ1234、および通信部1235を有する。
また、ディスプレイコンバータ1230は、ビデオエンコーダ1241を有する。記録再生部1233は、エンコーダ1251およびデコーダ1252を有する。
受信部1221は、リモートコントローラ(図示せず)からの赤外線信号を受信し、電気信号に変換してレコーダ制御部1226に出力する。レコーダ制御部1226は、例えば、マイクロプロセッサなどにより構成され、プログラムメモリ1228に記憶されているプログラムに従って、各種の処理を実行する。レコーダ制御部1226は、このとき、ワークメモリ1229を必要に応じて使用する。
通信部1235は、ネットワークに接続され、ネットワークを介して他の装置との通信処理を行う。例えば、通信部1235は、レコーダ制御部1226により制御され、チューナ(図示せず)と通信し、主にチューナに対して選局制御信号を出力する。
復調部1222は、チューナより供給された信号を、復調し、デマルチプレクサ1223に出力する。デマルチプレクサ1223は、復調部1222より供給されたデータを、オーディオデータ、ビデオデータ、およびEPGデータに分離し、それぞれ、オーディオデコーダ1224、ビデオデコーダ1225、またはレコーダ制御部1226に出力する。
オーディオデコーダ1224は、入力されたオーディオデータをデコードし、記録再生部1233に出力する。ビデオデコーダ1225は、入力されたビデオデータをデコードし、ディスプレイコンバータ1230に出力する。レコーダ制御部1226は、入力されたEPGデータをEPGデータメモリ1227に供給し、記憶させる。
ディスプレイコンバータ1230は、ビデオデコーダ1225またはレコーダ制御部1226より供給されたビデオデータを、ビデオエンコーダ1241により、例えばNTSC(National Television Standards Committee)方式のビデオデータにエンコードし、記録再生部1233に出力する。また、ディスプレイコンバータ1230は、ビデオデコーダ1225またはレコーダ制御部1226より供給されるビデオデータの画面のサイズを、モニタ1260のサイズに対応するサイズに変換し、ビデオエンコーダ1241によってNTSC方式のビデオデータに変換し、アナログ信号に変換し、ディスプレイ制御部1232に出力する。
ディスプレイ制御部1232は、レコーダ制御部1226の制御のもと、OSD(On Screen Display)制御部1231が出力したOSD信号を、ディスプレイコンバータ1230より入力されたビデオ信号に重畳し、モニタ1260のディスプレイに出力し、表示させる。
モニタ1260にはまた、オーディオデコーダ1224が出力したオーディオデータが、D/Aコンバータ1234によりアナログ信号に変換されて供給されている。モニタ1260は、このオーディオ信号を内蔵するスピーカから出力する。
記録再生部1233は、ビデオデータやオーディオデータ等を記録する記憶媒体としてハードディスクを有する。
記録再生部1233は、例えば、オーディオデコーダ1224より供給されるオーディオデータを、エンコーダ1251によりエンコードする。また、記録再生部1233は、ディスプレイコンバータ1230のビデオエンコーダ1241より供給されるビデオデータを、エンコーダ1251によりエンコードする。記録再生部1233は、そのオーディオデータの符号化データとビデオデータの符号化データとをマルチプレクサにより合成する。記録再生部1233は、その合成データをチャネルコーディングして増幅し、そのデータを、記録ヘッドを介してハードディスクに書き込む。
記録再生部1233は、再生ヘッドを介してハードディスクに記録されているデータを再生し、増幅し、デマルチプレクサによりオーディオデータとビデオデータに分離する。記録再生部1233は、デコーダ1252によりオーディオデータおよびビデオデータをデコードする。記録再生部1233は、復号したオーディオデータをD/A変換し、モニタ1260のスピーカに出力する。また、記録再生部1233は、復号したビデオデータをD/A変換し、モニタ1260のディスプレイに出力する。
レコーダ制御部1226は、受信部1221を介して受信されるリモートコントローラからの赤外線信号により示されるユーザ指示に基づいて、EPGデータメモリ1227から最新のEPGデータを読み出し、それをOSD制御部1231に供給する。OSD制御部1231は、入力されたEPGデータに対応する画像データを発生し、ディスプレイ制御部1232に出力する。ディスプレイ制御部1232は、OSD制御部1231より入力されたビデオデータをモニタ1260のディスプレイに出力し、表示させる。これにより、モニタ1260のディスプレイには、EPG(電子番組ガイド)が表示される。
また、ハードディスクレコーダ1200は、インターネット等のネットワークを介して他の装置から供給されるビデオデータ、オーディオデータ、またはEPGデータ等の各種データを取得することができる。
通信部1235は、レコーダ制御部1226に制御され、ネットワークを介して他の装置から送信されるビデオデータ、オーディオデータ、およびEPGデータ等の符号化データを取得し、それをレコーダ制御部1226に供給する。レコーダ制御部1226は、例えば、取得したビデオデータやオーディオデータの符号化データを記録再生部1233に供給し、ハードディスクに記憶させる。このとき、レコーダ制御部1226および記録再生部1233が、必要に応じて再エンコード等の処理を行うようにしてもよい。
また、レコーダ制御部1226は、取得したビデオデータやオーディオデータの符号化データを復号し、得られるビデオデータをディスプレイコンバータ1230に供給する。ディスプレイコンバータ1230は、ビデオデコーダ1225から供給されるビデオデータと同様に、レコーダ制御部1226から供給されるビデオデータを処理し、ディスプレイ制御部1232を介してモニタ1260に供給し、その画像を表示させる。
また、この画像表示に合わせて、レコーダ制御部1226が、復号したオーディオデータを、D/Aコンバータ1234を介してモニタ1260に供給し、その音声をスピーカから出力させるようにしてもよい。
さらに、レコーダ制御部1226は、取得したEPGデータの符号化データを復号し、復号したEPGデータをEPGデータメモリ1227に供給する。
以上のようなハードディスクレコーダ1200は、ビデオデコーダ1225、デコーダ1252、およびレコーダ制御部1226に内蔵されるデコーダとして画像復号装置400、画像復号装置600、若しくは画像復号装置800を用いる。つまり、ビデオデコーダ1225、デコーダ1252、およびレコーダ制御部1226に内蔵されるデコーダは、画像復号装置400、画像復号装置600、若しくは画像復号装置800の場合と同様に、メディアン予測において垂直成分を基準とするか水平成分を基準とするかを、画像符号化装置300、画像符号化装置500、若しくは、画像符号化装置700に応じて適切に決定する。したがって、ビデオデコーダ1225、デコーダ1252、およびレコーダ制御部1226に内蔵されるデコーダは、符号化効率の向上を実現することができる。
したがって、ハードディスクレコーダ1200は、例えば、チューナや通信部1235が受信するビデオデータ(符号化データ)や、記録再生部1233が再生するビデオデータ(符号化データ)の符号化効率の向上を実現させることができる。
また、ハードディスクレコーダ1200は、エンコーダ1251として画像符号化装置300、画像符号化装置500、若しくは、画像符号化装置700を用いる。したがって、エンコーダ1251は、画像符号化装置300、画像符号化装置500、若しくは、画像符号化装置700の場合と同様に、メディアン予測において、垂直成分を基準とするか、水平成分を基準とするかを適宜選択する。このようにすることにより、エンコーダ1251は、符号化効率を向上させることができる。
したがって、ハードディスクレコーダ1200は、例えば、ハードディスクに記録する符号化データを生成する際に、符号化効率を向上させることができる。
なお、以上においては、ビデオデータやオーディオデータをハードディスクに記録するハードディスクレコーダ1200について説明したが、もちろん、記録媒体はどのようなものであってもよい。例えばフラッシュメモリ、光ディスク、またはビデオテープ等、ハードディスク以外の記録媒体を適用するレコーダであっても、上述したハードディスクレコーダ1200の場合と同様に、本発明を適用した画像符号化装置300および画像復号装置400、画像符号化装置500および画像復号装置600、または、画像符号化装置700および画像復号装置800を適用することができる。
<11.第11の実施の形態>
[カメラ]
図35は、本発明を適用した画像符号化装置および画像復号装置を用いるカメラの主な構成例を示すブロック図である。
[カメラ]
図35は、本発明を適用した画像符号化装置および画像復号装置を用いるカメラの主な構成例を示すブロック図である。
図35に示されるカメラ1300は、被写体を撮像し、被写体の画像をLCD1316に表示させたり、それを画像データとして、記録メディア1333に記録したりする。
レンズブロック1311は、光(すなわち、被写体の映像)を、CCD/CMOS1312に入射させる。CCD/CMOS1312は、CCDまたはCMOSを用いたイメージセンサであり、受光した光の強度を電気信号に変換し、カメラ信号処理部1313に供給する。
カメラ信号処理部1313は、CCD/CMOS1312から供給された電気信号を、Y,Cr,Cbの色差信号に変換し、画像信号処理部1314に供給する。画像信号処理部1314は、コントローラ1321の制御の下、カメラ信号処理部1313から供給された画像信号に対して所定の画像処理を施したり、その画像信号をエンコーダ1341で符号化したりする。画像信号処理部1314は、画像信号を符号化して生成した符号化データを、デコーダ1315に供給する。さらに、画像信号処理部1314は、オンスクリーンディスプレイ(OSD)1320において生成された表示用データを取得し、それをデコーダ1315に供給する。
以上の処理において、カメラ信号処理部1313は、バス1317を介して接続されるDRAM(Dynamic Random Access Memory)1318を適宜利用し、必要に応じて画像データや、その画像データが符号化された符号化データ等をそのDRAM1318に保持させる。
デコーダ1315は、画像信号処理部1314から供給された符号化データを復号し、得られた画像データ(復号画像データ)をLCD1316に供給する。また、デコーダ1315は、画像信号処理部1314から供給された表示用データをLCD1316に供給する。LCD1316は、デコーダ1315から供給された復号画像データの画像と表示用データの画像を適宜合成し、その合成画像を表示する。
オンスクリーンディスプレイ1320は、コントローラ1321の制御の下、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを、バス1317を介して画像信号処理部1314に出力する。
コントローラ1321は、ユーザが操作部1322を用いて指令した内容を示す信号に基づいて、各種処理を実行するとともに、バス1317を介して、画像信号処理部1314、DRAM1318、外部インタフェース1319、オンスクリーンディスプレイ1320、およびメディアドライブ1323等を制御する。FLASH ROM1324には、コントローラ1321が各種処理を実行する上で必要なプログラムやデータ等が格納される。
例えば、コントローラ1321は、画像信号処理部1314やデコーダ1315に代わって、DRAM1318に記憶されている画像データを符号化したり、DRAM1318に記憶されている符号化データを復号したりすることができる。このとき、コントローラ1321は、画像信号処理部1314やデコーダ1315の符号化・復号方式と同様の方式によって符号化・復号処理を行うようにしてもよいし、画像信号処理部1314やデコーダ1315が対応していない方式により符号化・復号処理を行うようにしてもよい。
また、例えば、操作部1322から画像印刷の開始が指示された場合、コントローラ1321は、DRAM1318から画像データを読み出し、それを、バス1317を介して外部インタフェース1319に接続されるプリンタ1334に供給して印刷させる。
さらに、例えば、操作部1322から画像記録が指示された場合、コントローラ1321は、DRAM1318から符号化データを読み出し、それを、バス1317を介してメディアドライブ1323に装着される記録メディア1333に供給して記憶させる。
記録メディア1333は、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアである。記録メディア1333は、もちろん、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触ICカード等であっても良い。
また、メディアドライブ1323と記録メディア1333を一体化し、例えば、内蔵型ハードディスクドライブやSSD(Solid State Drive)等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
外部インタフェース1319は、例えば、USB入出力端子などで構成され、画像の印刷を行う場合に、プリンタ1334と接続される。また、外部インタフェース1319には、必要に応じてドライブ1331が接続され、磁気ディスク、光ディスク、あるいは光磁気ディスクなどのリムーバブルメディア1332が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて、FLASH ROM1324にインストールされる。
さらに、外部インタフェース1319は、LANやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。コントローラ1321は、例えば、操作部1322からの指示に従って、DRAM1318から符号化データを読み出し、それを外部インタフェース1319から、ネットワークを介して接続される他の装置に供給させることができる。また、コントローラ1321は、ネットワークを介して他の装置から供給される符号化データや画像データを、外部インタフェース1319を介して取得し、それをDRAM1318に保持させたり、画像信号処理部1314に供給したりすることができる。
以上のようなカメラ1300は、デコーダ1315として上述した画像復号装置400、画像復号装置600、若しくは画像復号装置800を用いる。つまり、デコーダ1315は、上述した画像復号装置400、画像復号装置600、若しくは画像復号装置800の場合と同様に、メディアン予測において垂直成分を基準とするか水平成分を基準とするかを、符号化側(画像符号化装置300、画像符号化装置500、若しくは、画像符号化装置700)に応じて適切に決定する。したがって、デコーダ1315は、符号化効率の向上を実現することができる。
したがって、カメラ1300は、例えば、CCD/CMOS1312において生成される画像データや、DRAM1318または記録メディア1333から読み出すビデオデータの符号化データや、ネットワークを介して取得するビデオデータの符号化データの符号化効率の向上を実現させることができる。
また、カメラ1300は、エンコーダ1341として画像符号化装置300、画像符号化装置500、若しくは、画像符号化装置700を用いる。エンコーダ1341は、画像符号化装置300、画像符号化装置500、若しくは、画像符号化装置700の場合と同様に、メディアン予測において、垂直成分を基準とするか、水平成分を基準とするかを適宜選択する。このようにすることにより、エンコーダ1341は、符号化効率を向上させることができる。
したがって、カメラ1300は、例えば、DRAM1318や記録メディア1333に記録する符号化データや、他の装置に提供する符号化データを生成する際に、符号化効率を向上させることができる。
なお、コントローラ1321が行う復号処理に画像復号装置400、画像復号装置600、若しくは画像復号装置800の復号方法を適用するようにしてもよい。同様に、コントローラ1321が行う符号化処理に画像符号化装置300、画像符号化装置500、若しくは、画像符号化装置700の符号化方法を適用するようにしてもよい。
また、カメラ1300が撮像する画像データは動画像であってもよいし、静止画像であってもよい。
もちろん、本発明を適用した画像符号化装置および画像復号装置は、上述した装置以外の装置やシステムにも適用可能である。
300 画像符号化装置, 301 動きベクトル符号化部, 321 垂直基準符号化部, 322 水平基準符号化部, 323 コスト算出部, 324 選択部, 400 画像復号装置, 401 動きベクトル復号部, 421 モード判定部, 422 垂直基準復号部, 423 水平基準復号部
Claims (9)
- 垂直成分について符号化対象ブロックと最も相関の高い動きベクトル情報を有する前記符号化対象ブロックの近傍ブロックおよび前記符号化対象ブロックの動きベクトル情報の水平成分を用いて、前記符号化対象ブロックに対して探索された動きベクトル情報の符号化を行う第1の方法と、水平成分について符号化対象ブロックと最も相関の高い動きベクトル情報を有する前記符号化対象ブロックの近傍ブロックおよび前記符号化対象ブロックの動きベクトル情報の垂直成分を用いて、前記符号化対象ブロックに対して探索された動きベクトル情報の符号化を行う第2の方法のそれぞれについて、前記符号化の結果を評価する評価値を算出する評価値算出手段と、
前記評価値算出手段により算出された前記評価値に基づいて、前記第1の方法、若しくは前記第2の方法のいずれか一方を選択する選択手段と
を備える画像処理装置。 - 前記評価値算出手段は、ブロック毎に前記評価値を算出し、
前記選択手段は、前記ブロック毎に、選択を行う
請求項1に記載の画像処理装置。 - 前記評価値算出手段は、前記評価値として、前記符号化の結果のコスト関数値を算出し、
前記評価値算出手段は、前記第1の方法若しくは前記第2の方法のうち、の前記コスト関数値が小さい方の方法を選択する
請求項1に記載の画像処理装置。 - 前記評価値算出手段は、前記符号化された前記符号化対象ブロックの動きベクトル情報の符号量を前記コスト関数値とする
請求項3に記載の画像処理装置。 - 前記第1の方法で符号化を行う垂直基準符号化手段と、
前記第2の方法で符号化を行う水平基準符号化手段と
をさらに備え、
前記選択手段は、前記垂直基準符号化手段による符号化の結果、若しくは、前記水平基準符号化手段による符号化の結果のいずれか一方を選択する
請求項1に記載の画像処理装置。 - 前記垂直基準符号化手段は、前記垂直成分について、前記近傍ブロックの動きベクトル情報のメディアンで決定される動きベクトル情報を用いて符号化を行い、
前記水平基準符号化手段は、前記水平成分について、前記近傍ブロックの動きベクトル情報のメディアンで決定される動きベクトル情報を用いて符号化を行う
請求項5に記載の画像処理装置。 - 前記評価値算出手段は、前記評価値として、前記近傍ブロックの動きベクトルのダイナミックレンジを示すDR値を、垂直成分および水平成分のそれぞれについて算出し、
前記選択手段は、前記評価値算出手段により算出された前記垂直成分の前記DR値が大きい場合、前記第1の方法を選択し、前記評価値算出手段により算出された前記水平成分の前記DR値が大きい場合、前記第2の方法を選択する
請求項1に記載の画像処理装置。 - 前記選択手段により前記第1の方法が選択された場合、前記第1の方法で符号化を行う垂直基準符号化手段と、
前記選択手段により前記第2の方法が選択された場合、前記第2の方法で符号化を行う水平基準符号化手段と
をさらに備える
請求項7に記載の画像処理装置。 - 画像処理装置の画像処理方法であって、
評価値算出手段が、垂直成分について符号化対象ブロックと最も相関の高い動きベクトル情報を有する前記符号化対象ブロックの近傍ブロックおよび前記符号化対象ブロックの動きベクトル情報の水平成分を用いて、前記符号化対象ブロックに対して探索された動きベクトル情報の符号化を行う第1の方法と、水平成分について符号化対象ブロックと最も相関の高い動きベクトル情報を有する前記符号化対象ブロックの近傍ブロックおよび前記符号化対象ブロックの動きベクトル情報の垂直成分を用いて、前記符号化対象ブロックに対して探索された動きベクトル情報の符号化を行う第2の方法のそれぞれについて、前記符号化の結果を評価する評価値を算出し、
選択手段が、算出された前記評価値に基づいて、前記第1の方法、若しくは前記第2の方法のいずれか一方を選択する
画像処理方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010-271654 | 2010-12-06 | ||
JP2010271654A JP2012124580A (ja) | 2010-12-06 | 2010-12-06 | 画像処理装置および方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012077530A1 true WO2012077530A1 (ja) | 2012-06-14 |
Family
ID=46207021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2011/077507 WO2012077530A1 (ja) | 2010-12-06 | 2011-11-29 | 画像処理装置および方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2012124580A (ja) |
WO (1) | WO2012077530A1 (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008211697A (ja) * | 2007-02-28 | 2008-09-11 | Sharp Corp | 符号化装置及び復号装置 |
-
2010
- 2010-12-06 JP JP2010271654A patent/JP2012124580A/ja not_active Abandoned
-
2011
- 2011-11-29 WO PCT/JP2011/077507 patent/WO2012077530A1/ja active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008211697A (ja) * | 2007-02-28 | 2008-09-11 | Sharp Corp | 符号化装置及び復号装置 |
Non-Patent Citations (2)
Title |
---|
"Test Model under Consideration, Output Document (draft007)", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11, JCTVC-A205, July 2010 (2010-07-01), DRESDEN, DE, pages 1 - 6, 126-129 * |
MARTIN WINKEN ET AL.: "Description of video coding technology proposal by Fraunhofer HHI", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/ SC29/WG11, DRESDEN * |
Also Published As
Publication number | Publication date |
---|---|
JP2012124580A (ja) | 2012-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6057140B2 (ja) | 画像処理装置および方法、プログラム、並びに、記録媒体 | |
JP5234368B2 (ja) | 画像処理装置および方法 | |
WO2010101064A1 (ja) | 画像処理装置および方法 | |
TWI405469B (zh) | Image processing apparatus and method | |
WO2011155378A1 (ja) | 画像処理装置および方法 | |
WO2011152315A1 (ja) | 画像処理装置および方法 | |
JPWO2010095560A1 (ja) | 画像処理装置および方法 | |
JP2011050001A (ja) | 画像処理装置および方法 | |
JPWO2010035731A1 (ja) | 画像処理装置および方法 | |
WO2011089973A1 (ja) | 画像処理装置および方法 | |
US20120288004A1 (en) | Image processing apparatus and image processing method | |
JP5988071B2 (ja) | 画像処理装置および方法、並びに、プログラム | |
JP2013098899A (ja) | 符号化装置および符号化方法、並びに、復号装置および復号方法 | |
WO2011145437A1 (ja) | 画像処理装置および方法 | |
WO2012005194A1 (ja) | 画像処理装置および方法 | |
WO2013084775A1 (ja) | 画像処理装置および方法 | |
WO2012077530A1 (ja) | 画像処理装置および方法 | |
WO2012096228A1 (ja) | 画像処理装置および方法 | |
WO2011125625A1 (ja) | 画像処理装置および方法 | |
WO2013002105A1 (ja) | 画像処理装置および方法 | |
JP6268556B2 (ja) | 画像処理装置および方法、プログラム、並びに、記録媒体 | |
JP2013150347A (ja) | 画像処理装置および方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11847603 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 11847603 Country of ref document: EP Kind code of ref document: A1 |