WO2013002105A1 - 画像処理装置および方法 - Google Patents
画像処理装置および方法 Download PDFInfo
- Publication number
- WO2013002105A1 WO2013002105A1 PCT/JP2012/065814 JP2012065814W WO2013002105A1 WO 2013002105 A1 WO2013002105 A1 WO 2013002105A1 JP 2012065814 W JP2012065814 W JP 2012065814W WO 2013002105 A1 WO2013002105 A1 WO 2013002105A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- motion vector
- unit
- image
- motion
- 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/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
Definitions
- the present disclosure relates to an image processing apparatus and method, and more particularly, to an image processing apparatus and method capable of suppressing an increase in storage capacity necessary for storing motion vectors.
- 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 macro block size of 16 pixels x 16 pixels is optimal for large image frames such as UHD (Ultra High Definition: 4000 pixels x 2000 pixels), which are the targets of the next generation coding system. There was no fear.
- HEVC High Efficiency Video Video Coding
- JCTVC Joint Collaboration Collaboration Team Video Coding
- a coding unit (Coding Unit) is defined as a processing unit similar to a macroblock in AVC.
- the CU is not fixed to a size of 16 ⁇ 16 pixels like the AVC macroblock, and is specified in the image compression information in each sequence.
- Temporal Predictor In order to improve motion vector coding using median prediction in AVC, in addition to “Spatial Predictor” required by median prediction defined in AVC, “Temporal Predictor” and “Spatio-Temporal Predictor” It has been proposed to use any of them adaptively as predicted motion vector information (hereinafter also referred to as MV Competition) (see, for example, Non-Patent Document 2).
- a cost function when each predicted motion vector information is used is calculated for each block, and optimal predicted motion vector information is selected.
- flag information indicating information regarding which predicted motion vector information is used is transmitted to each block.
- the motion vector information of the reference frame must be retained for Temporal Predictor and Spatio-Temporal Predictor that use temporal correlation.
- the motion vector information obtained by motion prediction must be secured in the memory (storage area) until processing of an area referring to itself of a frame processed after itself is performed.
- the present disclosure has been made in view of such a situation, and an object thereof is to suppress an increase in storage capacity necessary for storing motion vectors.
- One aspect of the present disclosure is a reduction unit configured to reduce an information amount of a motion vector in a peripheral region of the region that is referred to when predicting a motion vector of the region of the image that is a processing target in motion prediction of the image. And a storage unit for storing the motion vector whose information amount is reduced by the reduction unit.
- the reduction unit quantizes the motion vector to reduce the information amount of the motion vector, and the storage unit can store the quantized motion vector.
- the reduction unit may determine a quantization step size according to the size of the motion vector, and may quantize the motion vector with the determined quantization step size.
- the reduction unit can determine the quantization step size to a larger value as the motion vector is larger.
- the reduction unit sets a threshold value, determines the magnitude of the motion vector using the threshold value, determines the quantization step size according to the determination result, and determines the quantization step size with the determined quantization step size.
- the motion vector can be quantized.
- the reduction unit can set the threshold according to the profile level.
- the profile level may be the size of the image or the decimal precision of the motion vector.
- the reduction unit determines the size of each component of the motion vector using the threshold, determines the quantization step size according to a determination result of a larger component, and uses the determined quantization step size to determine the quantization step size.
- the motion vector can be quantized.
- It may further comprise an encoding unit for encoding the threshold value.
- the reduction unit can reduce the information amount of the motion vector by clip processing that changes all values equal to or higher than the upper limit value to the upper limit value.
- the reduction unit can reduce the information amount of the motion vector for each component of the motion vector.
- the reduction unit sets a threshold value for each component of the motion vector, determines the size of each component of the motion vector using the threshold value of the component, and determines the quantization step size according to the determination result Can be determined for each component, and each component of the motion vector can be quantized with the determined quantization step size.
- the reduction unit sets a threshold, determines the magnitude of the motion vector using the threshold, determines the quantization step size according to the determination result, and uses the determined quantization step size for the motion vector.
- the inverse quantization unit determines the size of the quantized motion vector read from the storage unit using the threshold, and determines the quantization step size according to the determination result.
- the quantized motion vector can be inversely quantized with the determined quantization step size.
- the apparatus may further include a predicted motion vector generation unit that generates a predicted motion vector of the region using the motion vector inversely quantized by the inverse quantization unit as a temporal peripheral motion vector.
- a threshold acquisition unit that acquires a threshold is further provided, wherein the reduction unit determines the magnitude of the motion vector using the threshold acquired by the threshold acquisition unit, and the quantization according to the determination result
- a step size can be determined, and the motion vector can be quantized with the determined quantization step size.
- the threshold acquisition unit uses the threshold acquired by the threshold acquisition unit to determine the magnitude of the quantized motion vector read from the storage unit, determine the quantization step size according to the determination result, and determine An inverse quantization unit that inversely quantizes the quantized motion vector with the quantization step size, and the motion vector inversely quantized by the inverse quantization unit is used as a temporal peripheral motion vector, And a predicted motion vector reconstruction unit that reconstructs the predicted motion vector.
- the threshold acquisition unit can acquire the threshold stored in the sequence parameter set.
- One aspect of the present disclosure is also an image processing method of the image processing apparatus, and the reduction unit is referred to when predicting a motion vector of the region of the image that is a processing target in image motion prediction.
- This is an image processing method in which the information amount of the motion vector in the peripheral region of the region is reduced, and the storage unit stores the motion vector in which the information amount is reduced.
- the information amount of a motion vector in a peripheral region of the region that is referred to when predicting a motion vector of the region of the image that is a processing target is reduced.
- the motion vector whose information amount is reduced is stored.
- an image can be processed.
- an increase in storage capacity necessary for storing motion vectors can be suppressed.
- FIG. 26 is a block diagram illustrating a main configuration example of a personal computer. It is a block diagram which shows an example of a schematic structure of a television apparatus.
- FIG. 1 is a block diagram illustrating a main configuration example of an image encoding device.
- the image encoding device 100 shown in FIG. Like the H.264 and MPEG (Moving Picture Experts Group) 4 Part 10 (AVC (Advanced Video Coding)) coding system, the image data is encoded using a prediction process.
- H.264 and MPEG Motion Picture Experts Group 4 Part 10 (AVC (Advanced Video Coding)
- AVC Advanced Video Coding
- 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 a storage buffer. 107.
- the image coding apparatus 100 also includes an inverse quantization unit 108, an inverse orthogonal transform unit 109, a calculation unit 110, a loop filter 111, a frame memory 112, a selection unit 113, an intra prediction unit 114, a motion prediction / compensation unit 115, and a prediction.
- An image selection unit 116 and a rate control unit 117 are included.
- the image encoding apparatus 100 further includes a motion vector encoding unit 121, a motion vector quantization unit 122, a motion vector buffer 123, and a motion vector inverse quantization unit 124.
- the A / D conversion unit 101 performs A / D conversion on the input image data, and supplies the converted image data (digital data) to the screen rearrangement buffer 102 for storage.
- the screen rearrangement buffer 102 rearranges the images of the frames in the stored display order in the order of frames for encoding in accordance with GOP (Group Of Picture), and the images in which the order of the frames is rearranged. This is supplied to the calculation 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 prediction image selection unit 116 from the image read from the screen rearrangement buffer 102, and the difference information Is output to the orthogonal transform 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. Note that this orthogonal transformation method is arbitrary.
- the orthogonal transform unit 104 supplies the transform coefficient to the quantization unit 105.
- the quantization unit 105 quantizes the transform coefficient supplied from the orthogonal transform unit 104.
- the quantization unit 105 sets a quantization parameter based on the information regarding the target value of the code amount supplied from the rate control unit 117, and performs the quantization. Note that this quantization method is arbitrary.
- the quantization unit 105 supplies the quantized transform coefficient to the lossless encoding unit 106.
- the lossless encoding unit 106 encodes the transform coefficient quantized by the quantization unit 105 using an arbitrary encoding method. 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 intra prediction information including information indicating an intra prediction mode from the intra prediction unit 114, and moves inter prediction information including information indicating an inter prediction mode, motion vector information, and the like. Obtained from the prediction / compensation unit 115. Further, the lossless encoding unit 106 acquires filter coefficients used in the loop filter 111 and the like. Further, the lossless encoding unit 106 acquires the threshold supplied from the motion vector quantization unit 122.
- the lossless encoding unit 106 encodes these various types of information using an arbitrary encoding method, and makes it a part of the header information of the encoded data (multiplexes).
- the lossless encoding unit 106 stores the threshold supplied from the motion vector quantization unit 122 in a sequence parameter set (SPS).
- SPS sequence parameter set
- the position where this threshold value is stored is arbitrary and may be other than the sequence parameter set. For example, it may be stored in a picture parameter set (PPS), a slice header, or the like.
- PPS picture parameter set
- the lossless encoding unit 106 supplies the encoded data obtained by encoding to the accumulation buffer 107 for accumulation.
- Examples of the encoding method of the lossless encoding unit 106 include variable length encoding or arithmetic encoding.
- Examples of variable length coding include H.264.
- CAVLC Context-Adaptive Variable Length Coding
- Examples of arithmetic coding include CABAC (Context-Adaptive Binary Arithmetic Coding).
- the accumulation buffer 107 temporarily holds the encoded data supplied from the lossless encoding unit 106.
- the accumulation buffer 107 outputs the stored encoded data as a bit stream at a predetermined timing, for example, to a recording device (recording medium) or a transmission path (not shown) in the subsequent stage. That is, various encoded information is supplied to the decoding side.
- 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 method may be any method as long as it is a method corresponding to the quantization processing 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 transform coefficient supplied from the inverse quantization unit 108 by a method corresponding to the orthogonal transform process by the orthogonal transform unit 104.
- the inverse orthogonal transform method may be any method as long as it corresponds to the orthogonal transform processing by the orthogonal transform unit 104.
- the inversely orthogonally transformed output (difference information restored locally) is supplied to the calculation unit 110.
- the calculation unit 110 converts the inverse orthogonal transform result supplied from the inverse orthogonal transform unit 109, that is, locally restored difference information, into the intra prediction unit 114 or the motion prediction / compensation unit 115 via the predicted image selection unit 116. Are added to the predicted image to obtain a locally reconstructed image (hereinafter referred to as a reconstructed image).
- the reconstructed image is supplied to the loop filter 111 or the frame memory 112.
- the loop filter 111 includes a deblock filter, an adaptive loop filter, and the like, and appropriately performs a filtering process on the decoded image supplied from the calculation unit 110.
- the loop filter 111 removes block distortion of the decoded image by performing a deblocking filter process on the decoded image.
- the loop filter 111 performs image quality improvement by performing loop filter processing using a Wiener filter on the deblock filter processing result (decoded image from which block distortion has been removed). Do.
- the loop filter 111 may perform arbitrary filter processing on the decoded image. Further, the loop filter 111 can supply information such as filter coefficients used for the filter processing to the lossless encoding unit 106 and encode it as necessary.
- the loop filter 111 supplies a filter processing result (hereinafter referred to as a decoded image) to the frame memory 112.
- the frame memory 112 stores the reconstructed image supplied from the calculation unit 110 and the decoded image supplied from the loop filter 111, respectively.
- the frame memory 112 supplies the stored reconstructed image to the intra prediction unit 114 via the selection unit 113 at a predetermined timing or based on a request from the outside such as the intra prediction unit 114.
- the frame memory 112 also stores the decoded image stored at a predetermined timing or based on a request from the outside such as the motion prediction / compensation unit 115 via the selection unit 113. 115.
- the selection unit 113 indicates the supply destination of the image output from the frame memory 112. For example, in the case of intra prediction, the selection unit 113 reads an image (reconstructed image) that has not been subjected to filter processing from the frame memory 112 and supplies it to the intra prediction unit 114 as peripheral pixels.
- the selection unit 113 reads out an image (decoded image) that has been filtered from the frame memory 112, and supplies it as a reference image to the motion prediction / compensation unit 115.
- the intra prediction unit 114 When the intra prediction unit 114 acquires an image (peripheral image) of a peripheral region located around the processing target region from the frame memory 112, the intra prediction unit 114 basically uses a pixel value of the peripheral image to perform a prediction unit (PU). Intra prediction (intra-screen prediction) for generating a predicted image with the processing unit as the processing unit. The intra prediction unit 114 performs this intra prediction in a plurality of modes (intra prediction modes) prepared in advance.
- Intra prediction modes intra prediction modes
- the intra prediction unit 114 generates predicted images in all candidate intra prediction modes, evaluates the cost function value of each predicted image using the input image supplied from the screen rearrangement buffer 102, and selects the optimum mode. select. When the intra prediction unit 114 selects the optimal intra prediction mode, the intra prediction unit 114 supplies the predicted image generated in the optimal mode to the predicted image selection unit 116.
- the intra prediction unit 114 appropriately supplies intra prediction information including information related to intra prediction, such as an optimal intra prediction mode, to the lossless encoding unit 106 to be encoded.
- the motion prediction / compensation unit 115 basically performs motion prediction (inter prediction) using the input image supplied from the screen rearrangement buffer 102 and the reference image supplied from the frame memory 112 as a processing unit. And a motion compensation process is performed according to the detected motion vector to generate a predicted image (inter predicted image information).
- the motion prediction / compensation unit 115 performs such inter prediction in a plurality of modes (inter prediction modes) prepared in advance.
- the motion prediction / compensation unit 115 generates prediction images in all candidate inter prediction modes, evaluates the cost function value of each prediction image, and selects an optimal mode. When the optimal inter prediction mode is selected, the motion prediction / compensation unit 115 supplies the predicted image generated in the optimal mode to the predicted image selection unit 116.
- the motion prediction / compensation unit 115 supplies inter prediction information including information related to inter prediction, such as an optimal inter prediction mode, to the lossless encoding unit 106 to be encoded.
- the predicted image selection unit 116 selects a supply source of a predicted image to be supplied to the calculation unit 103 or the calculation unit 110.
- the prediction image selection unit 116 selects the intra prediction unit 114 as a supply source of the prediction image, and supplies the prediction image supplied from the intra prediction unit 114 to the calculation unit 103 and the calculation unit 110.
- the predicted image selection unit 116 selects the motion prediction / compensation unit 115 as a supply source of the predicted image, and calculates the predicted image supplied from the motion prediction / compensation unit 115 as the calculation unit 103. To the arithmetic unit 110.
- the rate control unit 117 controls the quantization operation rate of the quantization unit 105 based on the code amount of the encoded data stored in the storage buffer 107 so that overflow or underflow does not occur.
- the motion vector encoding unit 121 predicts a motion vector of the region using a motion vector around the region that is a prediction processing target, and obtains the predicted motion vector (predicted motion information) and motion prediction. A difference (difference motion information) from the motion vector (motion information) of the obtained area is calculated.
- This difference motion information is obtained by reducing the amount of motion information in the area, and is transmitted to the decoding side instead of the motion information.
- the motion vector quantization unit 122 quantizes the motion vector (motion information) stored in the motion vector buffer 123.
- the motion vector buffer 123 stores the motion vector (motion information) quantized by the motion vector quantization unit 122.
- the motion vector dequantization unit 124 dequantizes the quantized motion vector (quantized motion information) read from the motion vector buffer 123 by the motion vector encoding unit 121.
- FIG. 2 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, d indicate positions of 1/2 pixel precision
- e1, e2, e3 indicate 1/4 pixel precision. 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).
- the unit of motion prediction / compensation processing is 16 ⁇ 16 pixels in the frame motion compensation mode, and 16 ⁇ 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. 3, 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. 4 indicates the boundary of the motion compensation block.
- E indicates the motion compensation block that is about to be encoded
- a through D indicate motion compensation blocks that are already encoded and that are adjacent to E.
- 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 end of the image frame or the like, 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 In AVC, a method called Multi-Reference Frame (multi-reference frame), such as MPEG2 and H.263, which has not been specified in the conventional image encoding method 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 the memory, and it is possible to refer to different memories for each macroblock.
- Direct mode By the way, although the amount of information in the motion vector information in the B picture is enormous, in AVC, a mode called Direct Mode is provided.
- 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 peripheral 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 mv E 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
- the block at the same space address as the current block is a Co-Located block
- the 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.
- Non-Patent Document 1 proposes a method as described below.
- Predictor is defined by the following equations (17) to (19).
- a cost function is calculated when using each predicted motion vector information, and optimal predicted motion vector information is selected.
- image compression information a flag indicating information regarding which predicted motion vector information is used is transmitted for each block.
- the macro block size of 16 pixels ⁇ 16 pixels is optimal for a large image frame such as UHD (Ultra High Definition; 4000 pixels ⁇ 2000 pixels), which is a target of the next generation encoding method. is not.
- AVC Advanced Video Coding
- CU Coding Unit
- CU is also called Coding Tree Block (CTB), and is a partial area of a picture unit image that plays the same role as a macroblock in AVC.
- CTB Coding Tree Block
- the latter is fixed to a size of 16 ⁇ 16 pixels, whereas the size of the former is not fixed, and is specified in the image compression information in each sequence.
- the maximum size (LCU (Largest Coding Unit)) and the minimum size ((SCU (Smallest Coding Unit)) are specified. Is done.
- the LCU size is 128 and the maximum hierarchical depth is 5.
- split_flag is “1”
- the 2N ⁇ 2N size CU is divided into N ⁇ N size CUs that are one level below.
- the CU is divided into prediction units (Prediction Units (PU)) that are regions (partial regions of images in units of pictures) that are processing units of intra or inter prediction, and are regions that are processing units of orthogonal transformation It is divided into transform units (Transform Unit (TU)), which is (a partial area of an image in units of pictures).
- Prediction Units PU
- transform Unit Transform Unit
- a macroblock in AVC corresponds to an LCU.
- the size of the LCU in the highest hierarchy is generally set larger than the AVC macroblock, for example, 128 ⁇ 128 pixels. is there.
- area includes all the above-described various areas (for example, macroblock, sub-macroblock, LCU, CU, SCU, PU, TU, etc.) (any of them). .
- units other than those described above may be included, and units that are impossible according to the content of the description are appropriately excluded.
- the motion vector information of the reference frame is used by utilizing temporal correlation.
- the motion information of the region to be processed obtained by motion prediction may be used in processing of a region that refers to the region of a frame processed after the frame to be processed.
- temporal prediction motion information Temporal Predictor or Spatio-Temporal Predictor
- the motion information of the area obtained by motion prediction needs to be secured in the memory (storage area) until it is not referenced.
- the motion information of the region obtained by motion prediction is a region processed after the region of the same frame as spatial prediction motion information (spatial predictor) in MV competition or motion information of a spatial peripheral region in merge mode. May also be used in However, since the reference range in the same frame is basically only an area adjacent to or near the area, for such use, the motion information is approximately one line of the area to be processed. It is sufficient to hold up to the upper area. Therefore, a storage area necessary for storing motion information is sufficient with a small capacity such as a register.
- the horizontal and vertical component motion vector information related to List0 and List1 is 1/4 in units of 4 ⁇ 4 blocks. Since one frame or more must be stored with pixel accuracy, a huge capacity buffer is required.
- spatial direction prediction spatial predictor
- the moving area movement may cause the stationary area to be dragged, which reduces the prediction accuracy, There is a risk that the coding efficiency may be reduced. Therefore, by applying the prediction in the time direction (temporal predictor), it is possible to improve the coding efficiency particularly in the still region. Therefore, the prediction in the time direction is necessary together with the prediction in the spatial direction.
- a large-capacity storage area is required, which may increase the cost.
- the image coding apparatus 100 quantizes the motion vector and stores it in the buffer in order to suppress an increase in storage capacity necessary for storing the motion vector for temporal prediction. Like that.
- FIG. 10 is a block diagram illustrating a main configuration example of the motion prediction / compensation unit 115 and the like.
- the motion prediction / compensation unit 115 includes a motion search unit 131, a cost function value generation unit 132, a mode determination unit 133, and a motion compensation unit 134.
- the motion vector encoding unit 121 includes a predicted motion vector generation unit 141 and a difference motion vector generation unit 142.
- the motion search unit 131 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 131 performs motion search processing for all inter prediction modes, and generates motion information including a motion vector and a reference index. The motion search unit 131 supplies the motion information to the predicted motion vector generation unit 141 of the motion vector encoding unit 121.
- the motion search unit 131 performs compensation processing on the reference image using the searched motion vector, and generates a predicted image. Further, the motion search unit 131 calculates a difference image between the predicted image and the input image, and supplies the difference image pixel value that is the pixel value to the cost function value generation unit 132.
- the cost function value generation unit 132 acquires the difference image pixel value of each inter prediction mode supplied from the motion search unit 131.
- the cost function value generation unit 132 calculates the cost function value of each inter prediction mode using the difference image pixel value.
- the cost function value generation unit 132 acquires the difference motion information of each inter prediction mode and the prediction motion vector information of each inter prediction mode from the difference motion vector generation unit 142 of the motion vector encoding unit 121.
- the predicted motion vector information includes a predicted motion vector that is a predicted value of a motion vector of the region to be processed, and information indicating a peripheral region to which the motion vector is referenced in order to generate the predicted motion vector.
- the difference motion information includes a difference motion vector that is a difference between the motion vector of the region to be processed and the predicted motion vector.
- the cost function value generation unit 132 supplies the cost function value, difference motion information, and prediction motion vector information of each inter prediction mode to the mode determination unit 133.
- the mode determination unit 133 acquires the cost function value, difference motion information, and prediction motion vector information of each inter prediction mode supplied from the cost function value generation unit 132.
- the mode determination unit 133 selects the inter prediction mode having the smallest cost function value as the optimum mode.
- the mode determination unit 133 supplies optimal mode information, which is information indicating the inter prediction mode selected as the optimal mode, to the motion compensation unit 134 together with the difference motion information and the prediction motion vector information of the optimal inter prediction mode. To do.
- the motion compensation unit 134 uses the difference motion information and the prediction motion vector information supplied from the mode determination unit 133 to generate an optimal inter prediction mode motion vector.
- the motion compensation unit 134 generates a prediction image in the optimal inter prediction mode by performing compensation processing on the reference image from the frame memory 112 using the motion vector.
- the motion compensation unit 134 supplies the generated predicted image pixel value (predicted image pixel value) to the predicted image selection unit 116.
- the motion compensation unit 134 supplies the optimal mode information to the lossless encoding unit 106 together with the differential motion information and the predicted motion information of the optimal inter prediction mode, encodes them, and transmits them to the decoding side.
- the predicted motion information includes information indicating a peripheral area to which a motion vector is referred to generate a predicted motion vector.
- the motion compensation unit 134 supplies the motion information in the optimal inter prediction mode used for generating the predicted image to the motion vector quantization unit 122. Note that, when inter prediction is not selected by the prediction image selection unit 116 (that is, when an intra prediction image is selected), a zero vector is supplied to the motion vector quantization unit 122 as motion vector information.
- the motion vector quantization unit 122 acquires the motion information supplied from the motion compensation unit 134.
- the motion vector quantization unit 122 quantizes the acquired motion information (motion vector) and reduces the amount of information. Although details of the quantization will be described later, the motion vector quantization unit 122 sets a threshold value and performs nonlinear quantization according to the threshold value in order to suppress a reduction in coding efficiency.
- the motion vector quantization unit 122 supplies the quantized motion information to the motion vector buffer 123.
- the motion vector quantization unit 122 supplies the set threshold value to the motion vector inverse quantization unit 124. Furthermore, the motion vector quantization unit 122 supplies the set threshold value to the lossless encoding unit 106, encodes it, and stores it in the sequence parameter set of the bit stream, for example, and transmits it to the decoding side.
- the motion vector buffer 123 acquires and stores the quantized motion information supplied from the motion vector quantization unit 122. That is, the motion vector buffer 123 stores the motion information of the optimum prediction mode of the region processed in the past. This motion information is used as temporal peripheral motion information in processing of another region that refers to the region as a temporal peripheral region of a frame processed temporally after the frame of the region corresponding to the motion information.
- the temporal peripheral region is a region that is temporally located in the vicinity of the region to be processed.
- the temporal peripheral region is processed before the frame of the region (the frame) and is referred to in the prediction process of the region.
- This is an area of the reference frame to be processed.
- the time peripheral area is a collocated area of the reference frame that exists at a position corresponding to the area in the frame.
- the time peripheral motion information is motion information of the time peripheral region.
- the motion vector buffer 123 supplies the stored motion information to the motion vector inverse quantization unit 124 as time peripheral motion information in response to a request.
- the motion vector buffer 123 sequentially stores the supplied motion information and holds it until it is no longer used as temporal peripheral motion information. That is, since the storage capacity of the motion vector buffer 123 is finite, the motion vector buffer 123 secures a free area by deleting motion information (old motion information) of an area that is no longer a time peripheral area of the processing target area. Then, the motion information of the new area to be supplied is stored.
- the motion vector inverse quantization unit 124 acquires the motion information requested by the predicted motion vector generation unit 141 from the motion vector buffer 123. Further, the motion vector inverse quantization unit 124 acquires the threshold supplied from the motion vector quantization unit 122. The motion vector inverse quantization unit 124 uses the threshold value to inversely quantize the motion information (motion vector) read from the motion vector buffer 123 by a method corresponding to the quantization by the motion vector quantization unit 122. Inverse quantization). The motion vector dequantization unit 124 supplies the dequantized motion information to the predicted motion vector generation unit 141 as temporal peripheral motion information.
- the predicted motion vector generation unit 141 acquires the motion information of the region supplied from the motion search unit 131.
- the motion vector predictor generation unit 141 generates a spatial motion vector predictor for each inter prediction mode using the motion information.
- the spatial prediction motion vector is a prediction motion vector generated using a motion vector in a spatial peripheral region.
- the spatial peripheral region is a region that is spatially located around the region to be processed, and is a region that exists in the frame and that is processed temporally before the region.
- the space peripheral area is an area of the frame in the vicinity of the area (for example, adjacent to the upper left, upper, upper right, left, or the like).
- the spatial peripheral motion information is motion information of the spatial peripheral region.
- the predicted motion vector generation unit 141 holds the motion information supplied from the motion search unit 131 after the generation of the predicted motion vector, and holds it in the processing of other regions that are processed temporally after that region.
- the motion information that is present is used as spatial peripheral motion information to generate a spatial prediction motion vector.
- the predicted motion vector generation unit 141 generates a temporal prediction motion vector for each inter prediction mode using the motion information of the region.
- the temporal motion vector predictor is a motion vector predictor generated using a motion vector in the temporal peripheral region.
- the predicted motion vector generation unit 141 acquires temporal peripheral motion information corresponding to the motion information supplied from the motion search unit 131 from the motion vector buffer 123 via the motion vector inverse quantization unit 124.
- the predicted motion vector generation unit 141 generates a temporal prediction motion vector using the temporal peripheral motion information.
- the predicted motion vector generation unit 141 compares the generated spatial prediction motion vector with the temporal prediction motion vector for each inter prediction mode, and selects the one closer to the motion vector of the region.
- the prediction motion vector generation unit 141 generates prediction motion vector information including the selected prediction motion vector for each inter prediction mode, and supplies the prediction motion vector information to the difference motion vector generation unit 142 together with the motion information of the region.
- the difference motion vector generation unit 142 acquires the motion information and prediction motion vector information of the area supplied from the prediction motion vector generation unit 141.
- the difference motion vector generation unit 142 generates a difference motion vector that is a difference between the motion vector of the region and the predicted motion vector, and generates difference motion information including the difference motion vector.
- the difference motion vector generation unit 142 supplies the generated difference motion information and the predicted motion vector information used for generating the difference motion information to the cost function value generation unit 132.
- the predicted motion vector generation unit 141 stores the motion information of the region. This motion information is used as spatial peripheral motion information. Since the space peripheral area in which the area refers to the motion vector exists in the frame and is located in the vicinity of the area, the range of the space peripheral area is relatively narrow. Accordingly, the storage capacity required for the motion vector predictor 141 to store motion information may be small.
- temporal peripheral motion information is stored in the motion vector buffer 123 having a large-capacity storage area.
- the motion information of the area is stored as it is, for example, the motion vector information of the horizontal and vertical components related to List0 and List1 must be stored with 1/4 pixel accuracy in units of 4 ⁇ 4 blocks.
- the vector buffer 123 a huge storage area is required, which may increase the cost.
- higher-resolution images have been targeted for encoding, and there has been a risk of requiring a larger storage area.
- the image encoding apparatus 100 when storing the motion information in the motion vector buffer 123, stores the motion information after reducing the amount of information by quantization and reading the stored motion information. Inverse quantization is performed.
- the motion vector quantization unit 122 quantizes the motion information stored in the motion vector buffer 123
- the motion vector dequantization unit 124 dequantizes the motion information read from the motion vector buffer 123. To do.
- the image encoding device 100 can suppress an increase in the storage capacity of the motion vector buffer 123 and can suppress an increase in cost.
- the motion vector has a 1/4 pixel accuracy.
- the temporal prediction motion vector improves the encoding efficiency especially in a still region. That is, when a spatial predictor is applied at the boundary between the moving body region and the stationary region, the stationary region is dragged by the movement of the moving body region.
- a temporal prediction motion vector temporary predictor
- spatial prediction motion vector spatial predictor
- a motion vector having a smaller value is considered to contribute to higher coding efficiency.
- the smaller the value of the motion vector the smaller the information amount, the influence on the information amount due to the increase / decrease in pixel accuracy becomes smaller.
- information management in the motion vector buffer 123 is generally a fixed length method (Fixed length), but in this case, the storage capacity is the information amount of the maximum value of the motion vector (that is, the dynamic range of the motion vector). Depends on.
- the motion vector quantization unit 122 and the motion vector inverse quantization unit 124 change the size of the quantization step in accordance with the size of the motion vector, so that the smaller motion vector can be moved to the motion vector buffer 123 with higher pixel accuracy. To be stored.
- the motion vector quantization unit 122 sets a threshold for the magnitude of the motion vector, classifies the magnitude of the motion vector according to the threshold, and changes the magnitude of the quantization step according to the level. To do.
- the motion vector inverse quantization unit 124 performs nonlinear inverse quantization corresponding to the nonlinear quantization using the threshold value.
- FIG. 11 shows an example of the nonlinear quantization.
- the motion vector quantization unit 122 sets two threshold values ⁇ 1/4 and ⁇ 1/2 for the magnitude Tmv of the motion vector that becomes the temporal prediction motion vector. That is, the motion vector magnitude range (Tmv ⁇ MV max ) is divided into three regions (Area1 to Area3) based on these threshold values.
- Area 1 is in the range of Tmv ⁇ 1/4
- Area 2 is in the range of ⁇ 1/4 ⁇ Tmv ⁇ 1/2
- Area 3 is in the range of ⁇ 1/2 ⁇ Tmv. ⁇ MV max range.
- the motion vector quantization unit 122 determines the magnitude of the motion vector stored in the motion vector buffer 123 using the threshold values ⁇ 1/4 and ⁇ 1/2 , and when the magnitude is Area 1, 1/4 pixel accuracy When the size is Area2, the quantization step is determined so that the pixel accuracy is 1 ⁇ 2 pixel, and when the size is Area3, the integer pixel accuracy is determined and quantization is performed.
- the maximum value after quantization of the motion vector belonging to Area 1 is ⁇ 1/4 as before the quantization
- the maximum value after quantization of the motion vector belonging to Area 2 is ((1/2) ⁇ ⁇ 1/4 + (1/2) ⁇ ⁇ 1/2 )
- the maximum value of the motion vector belonging to Area 3 after quantization is ((1/2) ⁇ MV max + ( 1/2) ⁇ ⁇ 1/4 ).
- the dynamic range of the motion vector is reduced by MV max -((1/2) ⁇ MV max + (1/2) ⁇ ⁇ 1/4 ) as indicated by the double-headed arrow shown in FIG. Can do. That is, the storage capacity of the motion vector buffer 123 can be reduced accordingly.
- the motion vector belonging to Area 1 can maintain the 1 ⁇ 4 pixel accuracy, so that it is possible to suppress the reduction in the pixel accuracy of the motion vector in the still region where the temporal prediction motion vector is easily adopted. And a reduction in encoding efficiency can be suppressed.
- the motion vector quantization unit 122 can reduce the storage capacity of the motion vector buffer 123 while suppressing a reduction in encoding efficiency.
- the motion vector inverse quantization unit 124 can perform nonlinear inverse quantization corresponding to such nonlinear quantization by the motion vector quantization unit 122 by acquiring the threshold value from the motion vector quantization unit 122. That is, the motion vector dequantization unit 124 can realize a reduction in the storage capacity of the motion vector buffer 123 while suppressing a reduction in encoding efficiency.
- step S101 the A / D converter 101 performs A / D conversion on the input image.
- step S102 the screen rearrangement buffer 102 stores the A / D converted image, and rearranges the picture from the display order to the encoding order.
- step S103 the intra prediction unit 114 performs an intra prediction process.
- step S104 the motion prediction / compensation unit 115 performs an inter motion prediction process.
- step S105 the predicted image selection unit 116 selects one of a predicted image generated by intra prediction and a predicted image generated by inter prediction.
- step S106 the calculation unit 103 calculates a difference between the image rearranged by the process of step S102 and the predicted image selected by the process of step S105 (generates a difference image).
- the generated difference image has a reduced data amount compared to the original image. Therefore, the data amount can be compressed as compared with the case where the image is encoded as it is.
- step S107 the orthogonal transform unit 104 orthogonally transforms the difference image generated by the process in step S106. Specifically, orthogonal transformation such as discrete cosine transformation and Karhunen-Loeve transformation is performed, and orthogonal transformation coefficients are output.
- step S108 the quantization unit 105 quantizes the orthogonal transform coefficient obtained by the process in step S107.
- the difference image quantized by the process in step S108 is locally decoded as follows. That is, in step S109, the inverse quantization unit 108 inversely quantizes the quantized orthogonal transform coefficient (also referred to as a quantization coefficient) generated by the process in step S108 with characteristics corresponding to the characteristics of the quantization unit 105. To do. In step S ⁇ b> 110, the inverse orthogonal transform unit 109 performs inverse orthogonal transform on the orthogonal transform coefficient obtained by the process of step S ⁇ b> 109 with characteristics corresponding to the characteristics of the orthogonal transform unit 104. Thereby, the difference image is restored.
- the quantized orthogonal transform coefficient also referred to as a quantization coefficient
- step S111 the calculation unit 110 adds the predicted image selected in step S105 to the difference image generated in step S110, and generates a locally decoded image (reconstructed image).
- step S112 the loop filter 111 appropriately performs a loop filter process including a deblocking filter process and an adaptive loop filter process on the reconstructed image obtained by the process of step S111 to generate a decoded image.
- step S113 the frame memory 112 stores the decoded image generated by the process of step S112 or the reconstructed image generated by the process of step S111.
- step S114 the lossless encoding unit 106 encodes the orthogonal transform coefficient quantized by the process in step S108. That is, lossless encoding such as variable length encoding or arithmetic encoding is performed on the difference image. Note that the lossless encoding unit 106 encodes information about prediction, information about quantization, information about filter processing, and the like, and adds the information to the bitstream.
- step S115 the accumulation buffer 107 accumulates the bit stream obtained by the process in step S114.
- the encoded data stored in the storage buffer 107 is appropriately read and transmitted to the decoding side via a transmission path or a recording medium.
- step S116 the rate control unit 117 causes the quantization unit 105 to prevent overflow or underflow based on the code amount (generated code amount) of the encoded data accumulated in the accumulation buffer 107 by the process of step S115. Controls the rate of quantization operation.
- step S116 When the process of step S116 is finished, the encoding process is finished.
- step S131 the motion search unit 131 performs a motion search for each inter prediction mode, generates motion information of the region to be processed, performs a compensation process using the motion information, and generates a predicted image. Further, a difference image is generated using the predicted image.
- step S132 the predicted motion vector generation unit 141 generates a spatial motion vector predictor for each inter prediction mode using the motion information generated in step S131 and the spatial peripheral motion information.
- the predicted motion vector generation unit 141 requests temporal peripheral motion information corresponding to the motion information of the region to be processed in order to generate a temporal prediction motion vector for each inter prediction mode.
- the motion vector inverse quantization unit 124 reads out the requested temporal peripheral motion information from the motion vector buffer 123, and inverse quantizes the temporal peripheral motion vector.
- step S134 the prediction motion vector generation unit 141 generates a temporal prediction motion vector for each inter prediction mode using the temporal peripheral motion information obtained by the processing in step S133.
- step S135 for each inter prediction mode, the motion vector predictor generating unit 141 outputs either the spatial prediction motion vector generated in step S132 or the temporal motion vector predictor generated by the process in step S134. Select and generate predicted motion information.
- step S136 the differential motion vector generation unit 142 generates differential motion information for each inter prediction mode using the predicted motion information generated in step S135.
- step S137 the cost function value generation unit 132 calculates a cost function value for each inter prediction mode using the pixel value of the difference image generated in step S131.
- step S138 the mode determination unit 133 determines the optimal inter prediction mode based on the cost function value of each inter prediction mode calculated in step S137.
- step S139 the motion compensation unit 134 performs motion compensation in the optimal inter prediction mode determined by the process in step S138, and generates a predicted image.
- step S140 the motion compensation unit 134 supplies the prediction image generated by the processing in step S139 to the calculation unit 103 and the calculation unit 110 via the prediction image selection unit 116, and generates difference image information and a decoded image.
- step S141 the motion compensation unit 134 supplies the prediction motion information, the difference motion information, and the optimal mode information to the lossless encoding unit 106, and encodes information related to the optimal inter prediction mode.
- this process is abbreviate
- step S142 the motion vector quantization unit 122 quantizes the motion vector of the region used for the motion compensation in step S139.
- step S143 the motion vector buffer 123 stores motion information including the motion vector quantized in step S142. This motion information is used as temporal peripheral motion information in another region processed after the region.
- step S143 the motion vector buffer 123 returns the process to FIG.
- step S161 the motion vector quantization unit 122 sets a threshold (for example, ⁇ 1/4 or ⁇ 1/2 ). This process can be omitted if the threshold has already been set and there is no need for updating.
- a threshold for example, ⁇ 1/4 or ⁇ 1/2
- step S162 the motion vector quantization unit 122 determines the magnitude of the motion vector to be quantized using the threshold set in step S161, and determines the quantization step size according to the magnitude.
- step S163 the motion vector quantization unit 122 quantizes the motion vector with the quantization step size determined in step S162.
- step S164 the motion vector quantization unit 122 supplies the threshold set in step S161 to the lossless encoding unit 106 to be encoded.
- this process is also abbreviate
- step S164 the motion vector quantization unit 122 returns the process to FIG.
- step S181 the motion vector inverse quantization unit 124 acquires the quantization processing threshold set in the motion vector quantization unit 122 by the processing in step S161 of FIG. 14, and sets it as a threshold used for the inverse quantization processing. . This process can be omitted if the threshold has already been set and there is no need for updating.
- the motion vector dequantization unit 124 determines the size of the temporal peripheral motion vector to be dequantized using the threshold set in step S181, and determines the quantization step size according to the size.
- the threshold value ( ⁇ 1/4 , ⁇ 1/2 ) is the value of the vertical axis ( ⁇ 1/4 , ((1/2) ⁇ ⁇ ) in FIG. 1/4 + (1/2) ⁇ ⁇ 1/2 )) and is compared with the size of the motion vector around time.
- step S183 the motion vector inverse quantization unit 124 inversely quantizes the temporal peripheral motion vector with the quantization step size determined by the process in step S182.
- step S183 the motion vector inverse quantization unit 124 returns the process to FIG.
- the image encoding device 100 can reduce the storage capacity necessary for storing motion vectors.
- the image encoding device 100 can reduce the storage capacity necessary for storing a motion vector used as temporal peripheral motion information.
- the image encoding device 100 reduces the storage capacity necessary for storing temporal peripheral motion information while suppressing reduction in encoding efficiency. be able to.
- FIG. 16 is a block diagram illustrating a main configuration example of an image decoding apparatus corresponding to the image encoding apparatus 100 of FIG.
- the image decoding apparatus 200 shown in FIG. 16 decodes the encoded data generated by the image encoding apparatus 100 by a decoding method corresponding to the encoding method.
- 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 loop filter 206, a screen rearrangement buffer 207, and a D A / A converter 208 is included.
- 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 image decoding apparatus 200 includes a motion vector decoding unit 221, a motion vector quantization unit 222, a motion vector buffer 223, and a motion vector inverse quantization unit 224.
- the accumulation buffer 201 accumulates the transmitted encoded data, and supplies the encoded data to the lossless decoding unit 202 at a predetermined timing.
- the lossless decoding unit 202 decodes the information supplied from the accumulation buffer 201 and encoded by the lossless encoding unit 106 in FIG. 1 by a method corresponding to the encoding method of the lossless encoding unit 106.
- the lossless decoding unit 202 supplies the quantized coefficient data of the difference image obtained by decoding to the inverse quantization unit 203.
- the lossless decoding unit 202 refers to information on the optimal prediction mode obtained by decoding the encoded data, and determines whether the intra prediction mode or the inter prediction mode is selected as the optimal prediction mode. .
- the lossless decoding unit 202 supplies information on the optimal prediction mode to the intra prediction unit 211 or the motion prediction / compensation unit 212 based on the determination result. That is, for example, when the intra prediction mode is selected as the optimal prediction mode in the image encoding apparatus 100, intra prediction information that is information regarding the optimal prediction mode is supplied to the intra prediction unit 211.
- intra prediction information that is information regarding the optimal prediction mode is supplied to the intra prediction unit 211.
- inter prediction information that is information related to the optimal prediction mode is supplied to the motion prediction / compensation unit 212.
- the lossless decoding unit 202 decodes the encoded data, thereby converting the motion vector quantization thresholds (for example, ⁇ 1/4 , ⁇ 1/2 ) transmitted from the image encoding device 100 into sequence parameters. Extract from set (SPS) etc.
- the lossless decoding unit 202 supplies the obtained threshold value to the motion vector quantization unit 222 and the motion vector inverse quantization unit 224.
- the inverse quantization unit 203 inversely quantizes the quantized coefficient data obtained by decoding by the lossless decoding unit 202 using a method corresponding to the quantization method of the quantization unit 105 in FIG.
- Data is supplied to the inverse orthogonal transform unit 204.
- the inverse orthogonal transform unit 204 performs inverse orthogonal transform on the coefficient data supplied from the inverse quantization unit 203 in a method corresponding to the orthogonal transform method of the orthogonal transform unit 104 in FIG.
- the inverse orthogonal transform unit 204 obtains a difference image corresponding to the difference image before being orthogonally transformed in the image encoding device 100 by the inverse orthogonal transform process.
- the difference image 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 difference image and the prediction image, and obtains a reconstructed image corresponding to the image before the prediction image is subtracted by the calculation unit 103 of the image encoding device 100.
- the arithmetic unit 205 supplies the reconstructed image to the loop filter 206.
- the loop filter 206 appropriately performs a loop filter process including a deblock filter process and an adaptive loop filter process on the supplied reconstructed image to generate a decoded image.
- the loop filter 206 removes block distortion by performing a deblocking filter process on the reconstructed image.
- the loop filter 206 performs image quality improvement by performing loop filter processing using a Wiener filter on the deblock filter processing result (reconstructed image from which block distortion has been removed). I do.
- the type of filter processing performed by the loop filter 206 is arbitrary, and filter processing other than that described above may be performed. Further, the loop filter 206 may perform filter processing using the filter coefficient supplied from the image encoding device 100 of FIG.
- the loop filter 206 supplies the decoded image as the filter processing result to the screen rearrangement buffer 207 and the frame memory 209. Note that the filter processing by the loop filter 206 can be omitted. That is, the output of the calculation unit 205 can be stored in the frame memory 209 without being subjected to filter processing.
- the intra prediction unit 211 uses pixel values of pixels included in this image as pixel values of peripheral pixels.
- the screen rearrangement buffer 207 rearranges the supplied decoded 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 decoded image supplied from the screen rearrangement buffer 207, and outputs and displays the decoded image on a display (not shown).
- the frame memory 209 stores supplied reconstructed images and decoded images.
- the frame memory 209 also stores the reconstructed image and the decoded image stored at a predetermined timing or based on an external request such as the intra prediction unit 211 or the motion prediction / compensation unit 212. This is supplied to the motion prediction / compensation unit 212.
- the intra prediction unit 211 performs basically the same processing as the intra prediction unit 114 in FIG. However, the intra prediction unit 211 performs intra prediction only on a region where a prediction image is generated by intra prediction at the time of encoding.
- the motion prediction / compensation unit 212 performs an inter motion prediction process based on the inter prediction information supplied from the lossless decoding unit 202, and generates a predicted image. Note that the motion prediction / compensation unit 212 performs the inter motion prediction process only on the region where the inter prediction is performed at the time of encoding, based on the inter prediction information supplied from the lossless decoding unit 202.
- the motion prediction / compensation unit 212 supplies the generated predicted image to the calculation unit 205 via the selection unit 213 for each region of the prediction processing unit.
- the selection unit 213 supplies the prediction image supplied from the intra prediction unit 211 or the prediction image supplied from the motion prediction / compensation unit 212 to the calculation unit 205.
- the motion vector decoding unit 221 acquires the prediction motion information supplied from the image encoding device 100 from the motion prediction / compensation unit 212, and reconstructs a prediction motion vector used in the motion prediction / compensation unit 212.
- the motion vector decoding unit 221 acquires the motion information stored in the motion vector buffer 223 as time peripheral motion information via the motion vector inverse quantization unit 224 as necessary.
- the motion vector decoding unit 221 acquires the motion information reconstructed by the motion prediction / compensation unit 212 and stores it for use as spatial peripheral motion information.
- the motion vector quantization unit 222 acquires the motion information supplied from the motion prediction / compensation unit 212 and stored in the motion vector buffer 223, and uses the same method as that of the motion vector quantization unit 122 (FIG. 1). Quantize the vector. That is, the threshold value supplied from the lossless decoding unit 202 (the threshold value supplied from the image encoding device 100) is acquired, and the motion vector is quantized using the threshold value. The motion vector quantization unit 222 supplies the quantized motion information to the motion vector buffer 223.
- the motion vector buffer 223 stores the quantized motion information supplied from the motion vector quantization unit 222.
- the motion vector buffer 223 supplies the stored motion information to the motion vector inverse quantization unit 224 as temporal peripheral motion information according to the request. That is, the motion vector buffer 223 is a processing unit similar to the motion vector buffer 123 (FIG. 1), and has a finite storage area for storing motion information, like the motion vector buffer 123.
- the motion vector inverse quantization unit 224 reads out the temporal peripheral motion information requested by the motion vector decoding unit 221 from the motion vector buffer 223, and uses the motion vector in the same manner as the motion vector inverse quantization unit 124 (FIG. 1). Is dequantized. That is, the threshold value supplied from the lossless decoding unit 202 (the threshold value supplied from the image encoding device 100) is acquired, and the motion vector is inversely quantized using the threshold value. The motion vector dequantization unit 224 supplies the dequantized temporal peripheral motion information to the motion vector decoding unit 221.
- FIG. 17 is a block diagram illustrating a main configuration example of the motion prediction / compensation unit 212 and the like.
- the motion prediction / compensation unit 212 includes a differential motion information buffer 231, a predicted motion information buffer 232, a threshold buffer 233, a motion information reconstruction unit 234, and a motion compensation unit 235.
- the motion vector decoding unit 221 includes a predicted motion vector reconstruction unit 241.
- the difference motion information buffer 231 acquires and stores the difference motion information extracted from the bit stream supplied from the lossless decoding unit 202.
- the difference motion information buffer 231 supplies the stored difference motion information to the motion information reconstruction unit 234 at a predetermined timing or based on an external request.
- the prediction motion information buffer 232 acquires and stores the prediction motion information extracted from the bit stream supplied from the lossless decoding unit 202.
- the predicted motion information includes information indicating a peripheral region (temporal peripheral region or spatial peripheral region) to which the motion vector is referred in order to generate a predicted motion vector.
- the predicted motion information buffer 232 supplies the stored predicted motion information to the predicted motion vector reconstruction unit 241 at a predetermined timing or based on an external request.
- the threshold buffer 233 acquires and stores thresholds (for example, ⁇ 1/4 , ⁇ 1/2 ) extracted from the sequence parameter set of the bit stream supplied from the lossless decoding unit 202.
- the threshold buffer 233 supplies the stored threshold value to the motion vector quantization unit 222 and the motion vector inverse quantization unit 224 at a predetermined timing or based on an external request.
- the motion information reconstruction unit 234 acquires the predicted motion vector information of the region from the prediction motion vector reconstruction unit 241. Is used to reconstruct the motion information of the area. More specifically, the motion information reconstruction unit 234 reconstructs the motion vector of the region by adding the predicted motion vector of the predicted motion vector information to the differential motion vector of the differential motion information.
- the motion information reconstruction unit 234 supplies the motion information including the motion vector to the motion compensation unit 235, the motion vector quantization unit 222, and the predicted motion vector reconstruction unit 241.
- the motion compensation unit 235 acquires the motion information of the region supplied from the motion information reconstruction unit 234. In addition, the motion compensation unit 235 acquires the reference image pixel value supplied from the frame memory 209. The motion compensation unit 235 performs motion compensation using these to generate a predicted image. The motion compensation unit 235 supplies the predicted image pixel value to the calculation unit 205 via the selection unit 213.
- the predicted motion vector reconstruction unit 241 of the motion vector decoding unit 221 acquires the predicted motion information of the region to be processed from the predicted motion information buffer 232, the predicted motion vector of the region is calculated using the predicted motion information. Rebuild.
- the predicted motion vector reconstruction unit 241 includes the spatial peripheral motion information held by itself (that is, the spatial peripheral region specified in the predicted motion information).
- Motion information is a spatial prediction motion vector.
- the predicted motion vector reconstruction unit 241 includes the temporal peripheral motion information stored in the motion vector buffer 223 (that is, specified in the predicted motion information). Motion information of the temporal peripheral region) is acquired via the motion vector inverse quantization unit 224, and the motion vector is set as a temporal prediction motion vector.
- the predicted motion vector reconstruction unit 241 supplies the motion information reconstruction unit 234 with the predicted motion vector information including the predicted motion vector (spatial motion vector or temporal prediction motion vector) reconstructed in this way.
- the predicted motion vector reconstruction unit 241 acquires and holds the motion information of the region reconstructed by the motion information reconstruction unit 234 supplied from the motion information reconstruction unit 234. This motion information is used as spatial peripheral motion information in the processing of other regions that are processed later in time than the region.
- the image decoding device 200 stores the motion information in the motion vector buffer 223 after reducing the amount of information by quantization, and stores the stored motion information. Dequantize when reading.
- the motion vector quantization unit 222 performs quantization processing in the same manner as the motion vector quantization unit 122, quantizes the motion information stored in the motion vector buffer 223, and the motion vector inverse quantization unit 224 In the same manner as in the case of the motion vector inverse quantization unit 124, inverse quantization processing is performed, and the motion information read from the motion vector buffer 223 is inversely quantized.
- the image decoding apparatus 200 can suppress an increase in the storage capacity of the motion vector buffer 223 and can suppress an increase in cost.
- the motion vector quantization unit 222 performs nonlinear quantization using the threshold supplied from the image encoding device 100 in the same manner as the motion vector quantization unit 122, so that the motion vector belonging to Area1 is obtained. Since 1 ⁇ 4 pixel accuracy can be maintained, it is possible to suppress a reduction in pixel accuracy of a motion vector in a still region in which a temporal prediction motion vector is easily adopted, and a reduction in encoding efficiency can be suppressed. .
- the motion vector quantization unit 222 can reduce the storage capacity of the motion vector buffer 223 while suppressing a decrease in encoding efficiency.
- the motion vector inverse quantization unit 224 can perform nonlinear inverse quantization using the threshold supplied from the image encoding device 100 as in the case of the motion vector inverse quantization unit 124. That is, the motion vector dequantization unit 224 can reduce the storage capacity of the motion vector buffer 223 while suppressing a decrease in encoding efficiency.
- step S201 the accumulation buffer 201 accumulates the transmitted bit stream.
- step S202 the lossless decoding unit 202 decodes the bit stream (encoded difference image information) supplied from the accumulation buffer 201. At this time, various types of information other than the difference image information included in the bit stream such as intra prediction information and inter prediction information are also decoded.
- step S203 the inverse quantization unit 203 inversely quantizes the quantized orthogonal transform coefficient obtained by the process in step S202.
- step S204 the inverse orthogonal transform unit 204 performs inverse orthogonal transform on the orthogonal transform coefficient inversely quantized in step S203.
- step S205 the intra prediction unit 211 or the motion prediction / compensation unit 212 performs a prediction process using the supplied information.
- step S206 the calculation unit 205 adds the predicted image generated in step S205 to the difference image information obtained by the inverse orthogonal transform in step S204. Thereby, a reconstructed image is generated.
- step S207 the loop filter 206 appropriately performs loop filter processing including deblock filter processing and adaptive loop filter processing on the reconstructed image obtained in step S206.
- step S208 the screen rearrangement buffer 207 rearranges the decoded images generated by the filtering process in step S207. That is, the order of frames rearranged for encoding by the screen rearrangement buffer 102 of the image encoding device 100 is rearranged to the original display order.
- step S209 the D / A converter 208 D / A converts the decoded image in which the frame order is rearranged.
- the decoded image is output and displayed on a display (not shown).
- step S210 the frame memory 209 stores the decoded image obtained by the filtering process in step S207. This decoded image is used as a reference image in the inter prediction process.
- step S210 When the process of step S210 is completed, the decoding process is terminated.
- the lossless decoding unit 202 determines whether or not intra prediction has been performed when the region to be processed is encoded in step S231. If it is determined that intra prediction has been performed, the lossless decoding unit 202 advances the process to step S232.
- the intra prediction unit 211 acquires the intra prediction mode information from the lossless decoding unit 202 in step S232, and generates a prediction image by intra prediction in step S233.
- the intra prediction unit 211 ends the prediction process and returns the process to FIG.
- step S231 If it is determined in step S231 that the region is an inter-predicted region, the lossless decoding unit 202 advances the process to step S234.
- step S234 the motion prediction / compensation unit 212 performs an inter motion prediction process. When the inter motion prediction process ends, the motion prediction / compensation unit 212 ends the prediction process and returns the process to FIG.
- the predicted motion information buffer 232 acquires the predicted motion information from the lossless decoding unit 202 in step S251.
- the motion vector predictor reconstruction unit 241 determines whether the motion vector prediction of the area is temporal prediction referring to the temporal peripheral area or spatial prediction referring to the spatial peripheral area from the predicted motion information. Determine whether.
- the prediction motion vector reconstruction part 241 requests
- step S253 the motion vector inverse quantization unit 224 reads the requested temporal peripheral motion information from the motion vector buffer 223, and inverse quantizes the motion vector (temporal peripheral motion vector). This inverse quantization is the same as the temporal peripheral motion vector inverse quantization process performed by the motion vector inverse quantization unit 124 described with reference to the flowchart of FIG.
- step S254 the motion vector predictor reconstruction unit 241 reconstructs the motion vector predictor using the temporal peripheral motion information obtained by the process in step S253, and the process proceeds to step S256.
- step S252 If it is determined in step S252 that the motion vector prediction of the area is spatial prediction, the motion vector predictor reconstruction unit 241 advances the process to step S255.
- step S255 the motion vector predictor reconstruction unit 241 reconstructs a motion vector predictor using the spatial motion information held in the space, and advances the process to step S256.
- step S256 the differential motion information buffer 231 acquires the differential motion information obtained in the lossless decoding unit 202.
- the motion information reconstruction unit 234 uses the predicted motion vector information reconstructed by the process of step S254 or step S255 and the difference motion information acquired by the process of step S256, and performs motion of the area. Reconstruct information.
- step S258 the motion compensation unit 235 performs motion compensation of the motion information reconstructed by the process in step S257 using the reference image pixel value read from the frame memory 209, and generates a predicted image.
- step S259 the motion compensation unit 235 supplies the predicted image pixel value obtained by the process in step S258 to the calculation unit 205 via the selection unit 213, and generates a reconstructed image.
- step S260 the motion vector quantization unit 222 quantizes the motion vector of the motion information of the region reconstructed by the process in step S257. Since this quantization is the same as the motion vector quantization processing by the motion vector quantization unit 122 described with reference to the flowchart of FIG. 14, the description thereof is omitted.
- step S261 the motion vector buffer 223 stores the motion information quantized by the process in step S260.
- step S261 the motion vector buffer 223 ends the inter motion prediction process and returns the process to FIG.
- the image decoding apparatus 200 can reduce the storage capacity necessary for storing motion vectors.
- the image decoding apparatus 200 can reduce the storage capacity necessary for storing a motion vector used as temporal peripheral motion information. Further, as described above, since the amount of information of a larger motion vector is further reduced, the image decoding apparatus 200 reduces the storage capacity necessary for storing temporal peripheral motion information while suppressing a reduction in encoding efficiency. Can be made.
- the amount of motion information stored in the motion vector buffer 123 and the motion vector buffer 223 is reduced by quantization.
- the present invention is not limited to this. Any processing may be performed.
- an upper limit value of the motion vector is set, and clipping processing (that is, processing for reducing the length of the motion vector to the upper limit value or less) for changing all values above the upper limit value to the upper limit value is performed. May be.
- the quantization step size is changed according to the size of the motion vector. Any method can be used. For example, table information or a function that associates the magnitude of the motion vector with the quantization step size may be prepared in advance, and the quantization step size may be determined according to the size of the motion vector according to the information.
- the number of threshold values ⁇ is two, but the number of threshold values is arbitrary. For example, there may be one, or three or more.
- the threshold value is arbitrary.
- the method for determining the threshold value is also arbitrary.
- the threshold value may be determined using all or part of the standard deviation of the motion vector of the image data to be processed.
- the setting frequency of the threshold is arbitrary.
- a threshold value may be set for each arbitrary data unit such as a sequence, a picture, a slice, an LCU, a CU, or a PU.
- a threshold value may be set when a predetermined event occurs such as a user instruction.
- the threshold value may be a predetermined fixed value.
- the threshold has been described as being transmitted from the image encoding device 100 to the image decoding device 200.
- the present invention is not limited to this.
- a threshold may be set in each of the image encoding device 100 and the image decoding device 200 according to the parameters.
- the demand for memory capacity reduction for real-time operation is higher as the image frame and frame rate are higher, that is, as the amount of pixels to be processed per unit time is larger.
- the frequency information per unit pixel is higher as the image frame is smaller, and the deterioration of the encoding efficiency due to lowering the resolution of the motion vector information is greater when the image frame is smaller. Therefore, for example, a relatively larger ⁇ value may be set as the image frame is smaller.
- the method for reducing the information amount of the motion vector stored in the buffer has been described as being the same between the image coding apparatus 100 and the image decoding apparatus 200.
- the amount of motion vector information stored in the respective buffers may be reduced by the encoding device 100 and the image decoding device 200 using different methods. For example, one may perform clip processing and the other may perform quantization. Further, for example, one may perform nonlinear quantization using a threshold value, and the other may perform quantization that determines a quantization step size using table information or a function. Further, for example, the number of threshold values, the value, the setting method, the setting frequency, and the like may be different from each other.
- the information management of the motion vector buffer 123 and the motion vector buffer 223 may be a variable length method. Even in that case, it is possible to reduce the total amount of the motion information stored in the buffers by the quantization process. Therefore, the image encoding device 100 and the image decoding device 200 can obtain the same effects as those of the fixed length described above. Also, the information management method may be different between the image encoding device 100 and the image decoding device 200.
- the accuracy of the motion vector is set to 1/4 pixel accuracy, but the accuracy of the motion vector is arbitrary.
- the motion vector may be quantized for each component. That is, for example, the motion vector quantization unit 122 may quantize the horizontal component and the vertical component of the motion vector independently of each other.
- step S301 the motion vector quantization unit 122 sets a threshold (for example, ⁇ 1/4 or ⁇ 1/2 ). This process can be omitted if the threshold has already been set and there is no need for updating.
- a threshold for example, ⁇ 1/4 or ⁇ 1/2
- step S302 the motion vector quantization unit 122 determines the size of the horizontal component of the motion vector to be quantized using the threshold set in step S301, and determines the quantization step size according to the size.
- step S303 the motion vector quantization unit 122 quantizes the horizontal component of the motion vector with the quantization step size determined in step S302.
- step S304 the motion vector quantization unit 122 determines the magnitude of the vertical component of the motion vector to be quantized using the threshold set in step S301, and determines the quantization step size according to the magnitude.
- step S305 the motion vector quantization unit 122 quantizes the vertical component of the motion vector with the quantization step size determined in step S304.
- step S306 the motion vector quantization unit 122 supplies the threshold set in step S301 to the lossless encoding unit 106 to be encoded.
- this process is also omitted.
- step S306 the motion vector quantization unit 122 returns the process to FIG.
- step S321 the motion vector inverse quantization unit 124 acquires the quantization processing threshold set in the motion vector quantization unit 122 by the processing in step S301 in FIG. 21, and sets it as a threshold used for the inverse quantization processing. . This process can be omitted if the threshold has already been set and there is no need for updating.
- the motion vector dequantization unit 124 determines the size of the horizontal component of the temporal peripheral motion vector to be dequantized using the threshold set in step S321, and the quantization step size according to the size. To decide.
- the threshold value ( ⁇ 1/4 , ⁇ 1/2 ) is the value of the vertical axis ( ⁇ 1/4 , ((1/2) ⁇ ⁇ ) in FIG. 1/4 + (1/2) ⁇ ⁇ 1/2 )) and is compared with the horizontal component of the temporal motion vector.
- step S323 the motion vector inverse quantization unit 124 inversely quantizes the horizontal component of the temporal peripheral motion vector with the quantization step size determined by the process in step S322.
- step S324 the motion vector dequantization unit 124 determines the size of the vertical component of the temporal peripheral motion vector to be dequantized using the threshold set in step S321, and the quantization step size according to the size. To decide.
- step S325 the motion vector inverse quantization unit 124 inversely quantizes the vertical component of the temporal peripheral motion vector with the quantization step size determined by the process in step S324.
- step S325 the motion vector inverse quantization unit 124 returns the process to FIG.
- the image coding apparatus 100 can perform quantization and dequantization more easily.
- the image encoding device 100 stores motion vectors stored in the motion vector buffer 123. It is necessary to obtain the length, which may increase the amount of calculation. However, the amount of information is reduced in the case of the first embodiment or the second embodiment than in the case of performing quantization / inverse quantization for each component as in the third embodiment. be able to.
- the quantization / inverse quantization performed in the image coding apparatus 100 has been described.
- the quantization / inverse quantization performed in the image decoding apparatus 200 is performed for each component as described above. Can be done independently.
- a horizontal component threshold value and a vertical component threshold value may be provided, and the respective values may be set independently of each other.
- the quantization step size may be determined according to the larger component of the motion vector components.
- step S401 the motion vector quantization unit 122 sets a threshold value (for example, ⁇ 1/4 or ⁇ 1/2 ). This process can be omitted if the threshold has already been set and there is no need for updating.
- a threshold value for example, ⁇ 1/4 or ⁇ 1/2 .
- step S402 the motion vector quantization unit 122 determines the magnitude of the larger one of the components of the motion vector to be quantized using the threshold set in step S401, and determines the quantum according to the magnitude. Determine the step size.
- step S403 the motion vector quantization unit 122 quantizes the motion vector with the quantization step size determined in step S402.
- step S404 the motion vector quantization unit 122 supplies the threshold set in step S401 to the lossless encoding unit 106 to be encoded.
- this process is also omitted.
- step S404 the motion vector quantization unit 122 returns the process to FIG.
- step S421 the motion vector dequantization unit 124 acquires the threshold value of the quantization process set in the motion vector quantization unit 122 by the process of step S401 in FIG. 23, and sets it as a threshold value used for the dequantization process. . This process can be omitted if the threshold has already been set and there is no need for updating.
- step S422 the motion vector dequantization unit 124 determines the magnitude of the larger one of the components of the temporal peripheral motion vector to be dequantized using the threshold set in step S421, and the magnitude thereof.
- the quantization step size is determined according to.
- step S423 the motion vector inverse quantization unit 124 inversely quantizes the temporal peripheral motion vector with the quantization step size determined by the process in step S422.
- step S423 the motion vector inverse quantization unit 124 returns the process to FIG.
- the image coding apparatus 100 can more reliably store information on the motion vector stored in the motion vector buffer 123. The amount can be reduced.
- the quantization / inverse quantization performed in the image coding apparatus 100 has been described.
- the quantization / inverse quantization performed in the image decoding apparatus 200 is performed for each component as described above. Can be done independently.
- the amount of motion information used as temporal peripheral motion information has been described as being reduced.
- the present invention is not limited to this, and the amount of motion information used as spatial peripheral motion information is reduced. It may be.
- this technology is, for example, MPEG, H.264.
- image information bitstream
- orthogonal transform such as discrete cosine transform 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 the above.
- the present technology can be applied to an image encoding device and an image decoding device that are used when processing is performed on a storage medium such as an optical disk, a magnetic disk, and a flash memory.
- the present technology can also be applied to motion prediction / compensation devices included in such image encoding devices and image decoding devices.
- the series of processes described above can be executed by hardware or can be executed by software.
- a program constituting the software is installed in the computer.
- the computer includes a computer incorporated in dedicated hardware, a general-purpose personal computer capable of executing various functions by installing various programs, and the like.
- a CPU (Central Processing Unit) 501 of the personal computer 500 performs various processes according to a program stored in a ROM (Read Only Memory) 502 or a program loaded from a storage unit 513 to a RAM (Random Access Memory) 503. Execute the process.
- the RAM 503 also appropriately stores data necessary for the CPU 501 to execute various processes.
- the CPU 501, the ROM 502, and the RAM 503 are connected to each other via a bus 504.
- An input / output interface 510 is also connected to the bus 504.
- the input / output interface 510 includes an input unit 511 including a keyboard and a mouse, a display including a CRT (Cathode Ray Tube) and an LCD (Liquid Crystal Display), an output unit 512 including a speaker, and a hard disk.
- a communication unit 514 including a storage unit 513 and a modem is connected. The communication unit 514 performs communication processing via a network including the Internet.
- a drive 515 is connected to the input / output interface 510 as necessary, and a removable medium 521 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 It is installed in the storage unit 513 as necessary.
- a removable medium 521 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 It is installed in the storage unit 513 as necessary.
- a program constituting the software is installed from a network or a recording medium.
- this recording medium is distributed to distribute a program to a user separately from the apparatus main body, and includes a magnetic disk (including a flexible disk) on which a program is recorded, an optical disk ( It only consists of removable media 521 consisting of CD-ROM (compact disc -read only memory), DVD (including digital Versatile disc), magneto-optical disk (including MD (mini disc)), or semiconductor memory. Rather, it is composed of a ROM 502 on which a program is recorded and a hard disk included in the storage unit 513, which is distributed to the user in a state of being pre-installed in the apparatus body.
- a magnetic disk including a flexible disk
- an optical disk It only consists of removable media 521 consisting of CD-ROM (compact disc -read only memory), DVD (including digital Versatile disc), magneto-optical disk (including MD (mini disc)), or semiconductor memory. Rather, it is composed of a ROM 502 on which a program is recorded and a hard disk included in the storage unit 513,
- 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 present technology is not limited to the above-described embodiment, and various modifications can be made without departing from the gist of the present technology.
- An image encoding device and an image decoding device include a transmitter or a receiver in optical broadcasting, satellite broadcasting, cable broadcasting such as cable TV, distribution on the Internet, and distribution to terminals by cellular communication, etc.
- the present invention can be applied to various electronic devices such as a recording device that records an image on a medium such as a magnetic disk and a flash memory, or a playback device that reproduces an image from these storage media.
- a recording device that records an image on a medium such as a magnetic disk and a flash memory
- a playback device that reproduces an image from these storage media.
- FIG. 26 illustrates an example of a schematic configuration of a television device to which the above-described embodiment is applied.
- the television apparatus 900 includes an antenna 901, a tuner 902, a demultiplexer 903, a decoder 904, a video signal processing unit 905, a display unit 906, an audio signal processing unit 907, a speaker 908, an external interface 909, a control unit 910, a user interface 911, And a bus 912.
- Tuner 902 extracts a signal of a desired channel from a broadcast signal received via antenna 901, and demodulates the extracted signal. Then, the tuner 902 outputs the encoded bit stream obtained by the demodulation to the demultiplexer 903. That is, the tuner 902 has a role as a transmission unit in the television device 900 that receives an encoded stream in which an image is encoded.
- the demultiplexer 903 separates the video stream and audio stream of the viewing target program from the encoded bit stream, and outputs each separated stream to the decoder 904. Further, the demultiplexer 903 extracts auxiliary data such as EPG (Electronic Program Guide) from the encoded bit stream, and supplies the extracted data to the control unit 910. Note that the demultiplexer 903 may perform descrambling when the encoded bit stream is scrambled.
- EPG Electronic Program Guide
- the decoder 904 decodes the video stream and audio stream input from the demultiplexer 903. Then, the decoder 904 outputs the video data generated by the decoding process to the video signal processing unit 905. In addition, the decoder 904 outputs audio data generated by the decoding process to the audio signal processing unit 907.
- the video signal processing unit 905 reproduces the video data input from the decoder 904 and causes the display unit 906 to display the video.
- the video signal processing unit 905 may cause the display unit 906 to display an application screen supplied via a network.
- the video signal processing unit 905 may perform additional processing such as noise removal on the video data according to the setting.
- the video signal processing unit 905 may generate a GUI (Graphical User Interface) image such as a menu, a button, or a cursor, and superimpose the generated image on the output image.
- GUI Graphic User Interface
- the display unit 906 is driven by a drive signal supplied from the video signal processing unit 905, and displays an image on a video screen of a display device (for example, a liquid crystal display, a plasma display, or an OELD (Organic ElectroLuminescence Display) (organic EL display)). Or an image is displayed.
- a display device for example, a liquid crystal display, a plasma display, or an OELD (Organic ElectroLuminescence Display) (organic EL display)). Or an image is displayed.
- the audio signal processing unit 907 performs reproduction processing such as D / A conversion and amplification on the audio data input from the decoder 904, and outputs audio from the speaker 908.
- the audio signal processing unit 907 may perform additional processing such as noise removal on the audio data.
- the external interface 909 is an interface for connecting the television apparatus 900 to an external device or a network.
- a video stream or an audio stream received via the external interface 909 may be decoded by the decoder 904. That is, the external interface 909 also has a role as a transmission unit in the television apparatus 900 that receives an encoded stream in which an image is encoded.
- the control unit 910 includes a processor such as a CPU and memories such as a RAM and a ROM.
- the memory stores a program executed by the CPU, program data, EPG data, data acquired via a network, and the like.
- the program stored in the memory is read and executed by the CPU when the television apparatus 900 is activated.
- the CPU executes the program to control the operation of the television device 900 according to an operation signal input from the user interface 911, for example.
- the user interface 911 is connected to the control unit 910.
- the user interface 911 includes, for example, buttons and switches for the user to operate the television device 900, a remote control signal receiving unit, and the like.
- the user interface 911 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 910.
- the bus 912 connects the tuner 902, the demultiplexer 903, the decoder 904, the video signal processing unit 905, the audio signal processing unit 907, the external interface 909, and the control unit 910 to each other.
- the decoder 904 has the function of the image decoding apparatus according to the above-described embodiment. Accordingly, an increase in storage capacity necessary for storing motion vectors can be suppressed when an image is decoded by the television device 900.
- FIG. 27 shows an example of a schematic configuration of a mobile phone to which the above-described embodiment is applied.
- a mobile phone 920 includes an antenna 921, a communication unit 922, an audio codec 923, a speaker 924, a microphone 925, a camera unit 926, an image processing unit 927, a demultiplexing unit 928, a recording / reproducing unit 929, a display unit 930, a control unit 931, an operation A portion 932 and a bus 933.
- the antenna 921 is connected to the communication unit 922.
- the speaker 924 and the microphone 925 are connected to the audio codec 923.
- the operation unit 932 is connected to the control unit 931.
- the bus 933 connects the communication unit 922, the audio codec 923, the camera unit 926, the image processing unit 927, the demultiplexing unit 928, the recording / reproducing unit 929, the display unit 930, and the control unit 931 to each other.
- the mobile phone 920 has various operation modes including a voice call mode, a data communication mode, a shooting mode, and a videophone mode, and is used for sending and receiving voice signals, sending and receiving e-mail or image data, taking images, and recording data. Perform the action.
- the analog voice signal generated by the microphone 925 is supplied to the voice codec 923.
- the audio codec 923 converts an analog audio signal into audio data, A / D converts the compressed audio data, and compresses it. Then, the audio codec 923 outputs the compressed audio data to the communication unit 922.
- the communication unit 922 encodes and modulates the audio data and generates a transmission signal. Then, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921. In addition, the communication unit 922 amplifies a radio signal received via the antenna 921 and performs frequency conversion to acquire a received signal.
- the communication unit 922 demodulates and decodes the received signal to generate audio data, and outputs the generated audio data to the audio codec 923.
- the audio codec 923 decompresses the audio data and performs D / A conversion to generate an analog audio signal. Then, the audio codec 923 supplies the generated audio signal to the speaker 924 to output audio.
- the control unit 931 generates character data constituting the e-mail in response to an operation by the user via the operation unit 932.
- the control unit 931 causes the display unit 930 to display characters.
- the control unit 931 generates e-mail data in response to a transmission instruction from the user via the operation unit 932, and outputs the generated e-mail data to the communication unit 922.
- the communication unit 922 encodes and modulates email data and generates a transmission signal. Then, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921.
- the communication unit 922 amplifies a radio signal received via the antenna 921 and performs frequency conversion to acquire a received signal.
- the communication unit 922 demodulates and decodes the received signal to restore the email data, and outputs the restored email data to the control unit 931.
- the control unit 931 displays the content of the electronic mail on the display unit 930 and stores the electronic mail data in the storage medium of the recording / reproducing unit 929.
- the recording / reproducing unit 929 has an arbitrary readable / writable storage medium.
- the storage medium may be a built-in storage medium such as RAM or flash memory, and is externally mounted such as a hard disk, magnetic disk, magneto-optical disk, optical disk, USB (Unallocated Space Space Bitmap) memory, or memory card. It may be a storage medium.
- the camera unit 926 images a subject to generate image data, and outputs the generated image data to the image processing unit 927.
- the image processing unit 927 encodes the image data input from the camera unit 926 and stores the encoded stream in the storage medium of the storage / playback unit 929.
- the demultiplexing unit 928 multiplexes the video stream encoded by the image processing unit 927 and the audio stream input from the audio codec 923, and the multiplexed stream is the communication unit 922. Output to.
- the communication unit 922 encodes and modulates the stream and generates a transmission signal. Then, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921.
- the communication unit 922 amplifies a radio signal received via the antenna 921 and performs frequency conversion to acquire a received signal.
- These transmission signal and reception signal may include an encoded bit stream.
- the communication unit 922 demodulates and decodes the received signal to restore the stream, and outputs the restored stream to the demultiplexing unit 928.
- the demultiplexing unit 928 separates the video stream and the audio stream from the input stream, and outputs the video stream to the image processing unit 927 and the audio stream to the audio codec 923.
- the image processing unit 927 decodes the video stream and generates video data.
- the video data is supplied to the display unit 930, and a series of images is displayed on the display unit 930.
- the audio codec 923 decompresses the audio stream and performs D / A conversion to generate an analog audio signal. Then, the audio codec 923 supplies the generated audio signal to the speaker 924 to output audio.
- the image processing unit 927 has the functions of the image encoding device and the image decoding device according to the above-described embodiment. Accordingly, an increase in storage capacity necessary for storing motion vectors can be suppressed when encoding and decoding images with the mobile phone 920.
- FIG. 28 shows an example of a schematic configuration of a recording / reproducing apparatus to which the above-described embodiment is applied.
- the recording / reproducing device 940 encodes audio data and video data of a received broadcast program and records the encoded data on a recording medium.
- the recording / reproducing device 940 may encode audio data and video data acquired from another device and record them on a recording medium, for example.
- the recording / reproducing device 940 reproduces data recorded on the recording medium on a monitor and a speaker, for example, in accordance with a user instruction. At this time, the recording / reproducing device 940 decodes the audio data and the video data.
- the recording / reproducing apparatus 940 includes a tuner 941, an external interface 942, an encoder 943, an HDD (Hard Disk Drive) 944, a disk drive 945, a selector 946, a decoder 947, an OSD (On-Screen Display) 948, a control unit 949, and a user interface. 950.
- Tuner 941 extracts a signal of a desired channel from a broadcast signal received via an antenna (not shown), and demodulates the extracted signal. Then, the tuner 941 outputs the encoded bit stream obtained by the demodulation to the selector 946. That is, the tuner 941 serves as a transmission unit in the recording / reproducing apparatus 940.
- the external interface 942 is an interface for connecting the recording / reproducing apparatus 940 to an external device or a network.
- the external interface 942 may be, for example, an IEEE1394 interface, a network interface, a USB interface, or a flash memory interface.
- video data and audio data received via the external interface 942 are input to the encoder 943. That is, the external interface 942 serves as a transmission unit in the recording / reproducing device 940.
- the encoder 943 encodes video data and audio data when the video data and audio data input from the external interface 942 are not encoded. Then, the encoder 943 outputs the encoded bit stream to the selector 946.
- the HDD 944 records an encoded bit stream in which content data such as video and audio are compressed, various programs, and other data on an internal hard disk. Further, the HDD 944 reads out these data from the hard disk when reproducing video and audio.
- the disk drive 945 performs recording and reading of data to and from the mounted recording medium.
- the recording medium mounted on the disk drive 945 is, for example, a DVD disk (DVD-Video, DVD-RAM, DVD-R, DVD-RW, DVD + R, DVD + RW, etc.) or a Blu-ray (registered trademark) disk. It may be.
- the selector 946 selects an encoded bit stream input from the tuner 941 or the encoder 943 when recording video and audio, and outputs the selected encoded bit stream to the HDD 944 or the disk drive 945. In addition, the selector 946 outputs the encoded bit stream input from the HDD 944 or the disk drive 945 to the decoder 947 during video and audio reproduction.
- the decoder 947 decodes the encoded bit stream and generates video data and audio data. Then, the decoder 947 outputs the generated video data to the OSD 948. The decoder 904 outputs the generated audio data to an external speaker.
- OSD 948 reproduces the video data input from the decoder 947 and displays the video. Further, the OSD 948 may superimpose a GUI image such as a menu, a button, or a cursor on the video to be displayed.
- the control unit 949 includes a processor such as a CPU and memories such as a RAM and a ROM.
- the memory stores a program executed by the CPU, program data, and the like.
- the program stored in the memory is read and executed by the CPU when the recording / reproducing apparatus 940 is activated, for example.
- the CPU controls the operation of the recording / reproducing apparatus 940 in accordance with an operation signal input from the user interface 950, for example, by executing the program.
- the user interface 950 is connected to the control unit 949.
- the user interface 950 includes, for example, buttons and switches for the user to operate the recording / reproducing device 940, a remote control signal receiving unit, and the like.
- the user interface 950 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 949.
- the encoder 943 has the function of the image encoding apparatus according to the above-described embodiment.
- the decoder 947 has the function of the image decoding apparatus according to the above-described embodiment. Therefore, it is possible to suppress an increase in storage capacity necessary for storing a motion vector when encoding and decoding an image in the recording / reproducing device 940.
- FIG. 29 illustrates an example of a schematic configuration of an imaging apparatus to which the above-described embodiment is applied.
- the imaging device 960 images a subject to generate an image, encodes the image data, and records it on a recording medium.
- the imaging device 960 includes an optical block 961, an imaging unit 962, a signal processing unit 963, an image processing unit 964, a display unit 965, an external interface 966, a memory 967, a media drive 968, an OSD 969, a control unit 970, a user interface 971, and a bus. 972.
- the optical block 961 is connected to the imaging unit 962.
- the imaging unit 962 is connected to the signal processing unit 963.
- the display unit 965 is connected to the image processing unit 964.
- the user interface 971 is connected to the control unit 970.
- the bus 972 connects the image processing unit 964, the external interface 966, the memory 967, the media drive 968, the OSD 969, and the control unit 970 to each other.
- the optical block 961 includes a focus lens and a diaphragm mechanism.
- the optical block 961 forms an optical image of the subject on the imaging surface of the imaging unit 962.
- the imaging unit 962 includes an image sensor such as a CCD (Charge-Coupled Device) or a CMOS (Complementary Metal-Oxide Semiconductor), and converts an optical image formed on the imaging surface into an image signal as an electrical signal by photoelectric conversion. Then, the imaging unit 962 outputs the image signal to the signal processing unit 963.
- CCD Charge-Coupled Device
- CMOS Complementary Metal-Oxide Semiconductor
- the signal processing unit 963 performs various camera signal processing such as knee correction, gamma correction, and color correction on the image signal input from the imaging unit 962.
- the signal processing unit 963 outputs the image data after the camera signal processing to the image processing unit 964.
- the image processing unit 964 encodes the image data input from the signal processing unit 963 and generates encoded data. Then, the image processing unit 964 outputs the generated encoded data to the external interface 966 or the media drive 968. The image processing unit 964 also decodes encoded data input from the external interface 966 or the media drive 968 to generate image data. Then, the image processing unit 964 outputs the generated image data to the display unit 965. In addition, the image processing unit 964 may display the image by outputting the image data input from the signal processing unit 963 to the display unit 965. Further, the image processing unit 964 may superimpose display data acquired from the OSD 969 on an image output to the display unit 965.
- the OSD 969 generates a GUI image such as a menu, a button, or a cursor, and outputs the generated image to the image processing unit 964.
- the external interface 966 is configured as a USB input / output terminal, for example.
- the external interface 966 connects the imaging device 960 and a printer, for example, when printing an image.
- a drive is connected to the external interface 966 as necessary.
- a removable medium such as a magnetic disk or an optical disk is attached to the drive, and a program read from the removable medium can be installed in the imaging device 960.
- the external interface 966 may be configured as a network interface connected to a network such as a LAN or the Internet. That is, the external interface 966 has a role as a transmission unit in the imaging device 960.
- the recording medium mounted on the media drive 968 may be any readable / writable removable medium such as a magnetic disk, a magneto-optical disk, an optical disk, or a semiconductor memory.
- a recording medium may be fixedly mounted on the media drive 968, and a non-portable storage unit such as an internal hard disk drive or an SSD (Solid State Drive) may be configured.
- the control unit 970 includes a processor such as a CPU and memories such as a RAM and a ROM.
- the memory stores a program executed by the CPU, program data, and the like.
- the program stored in the memory is read and executed by the CPU when the imaging device 960 is activated, for example.
- the CPU controls the operation of the imaging device 960 according to an operation signal input from the user interface 971 by executing the program.
- the user interface 971 is connected to the control unit 970.
- the user interface 971 includes, for example, buttons and switches for the user to operate the imaging device 960.
- the user interface 971 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 970.
- the image processing unit 964 has the functions of the image encoding device and the image decoding device according to the above-described embodiment. Accordingly, an increase in storage capacity necessary for storing motion vectors can be suppressed when encoding and decoding images with the imaging device 960.
- the method for transmitting such information is not limited to such an example.
- these pieces of information may be transmitted or recorded as separate data associated with the encoded bitstream without being multiplexed into the encoded bitstream.
- the term “associate” means that an image (which may be a part of an image such as a slice or a block) included in the bitstream and information corresponding to the image can be linked at the time of decoding. Means. That is, information may be transmitted on a transmission path different from that of the image (or bit stream).
- Information may be recorded on a recording medium (or another recording area of the same recording medium) different from the image (or bit stream). Furthermore, the information and the image (or bit stream) may be associated with each other in an arbitrary unit such as a plurality of frames, one frame, or a part of the frame.
- this technique can also take the following structures.
- a reduction unit that reduces the information amount of the motion vector in the peripheral region of the region that is referred to when predicting the motion vector of the region of the image that is the processing target;
- An image processing apparatus comprising: a storage unit that stores the motion vector whose information amount is reduced by the reduction unit.
- the reduction unit reduces the information amount of the motion vector by quantizing the motion vector, The image processing apparatus according to (1), wherein the storage unit stores the quantized motion vector.
- the reduction unit determines a quantization step size according to a size of the motion vector, and quantizes the motion vector with the determined quantization step size. apparatus.
- the reduction unit determines the size of each component of the motion vector using the threshold value, determines the quantization step size according to a determination result of a larger component, and determines the determined quantization step
- the image processing device according to any one of (5) to (7), wherein the motion vector is quantized by size.
- the image processing apparatus according to any one of (5) to (8), further including an encoding unit that encodes the threshold value.
- the image processing device reduces the information amount of the motion vector by clip processing that changes all values equal to or higher than an upper limit value to the upper limit value.
- (11) The image processing device according to any one of (1) to (10), wherein the reduction unit reduces an information amount of the motion vector for each component of the motion vector.
- the reduction unit sets a threshold value for each component of the motion vector, determines the magnitude of each component of the motion vector using the threshold value of the component, and determines the quantum according to the determination result.
- the image processing device according to (11), wherein a quantization step size is determined for each component, and each component of the motion vector is quantized with the determined quantization step size.
- the image processing device according to any one of (2) to (12), further including an inverse quantization unit that reads and inverse-quantizes a quantized motion vector stored in the storage unit.
- the reduction unit sets a threshold value, determines the magnitude of the motion vector using the threshold value, determines the quantization step size according to the determination result, and uses the determined quantization step size.
- the inverse quantization unit determines the size of the quantized motion vector read from the storage unit using the threshold, determines the quantization step size according to the determination result, and determines the determined quantum
- the image processing apparatus according to (13), wherein the quantized motion vector is inversely quantized with a quantization step size.
- the apparatus further includes a prediction motion vector generation unit that generates a prediction motion vector of the region using the motion vector inversely quantized by the inverse quantization unit as a temporal peripheral motion vector.
- the apparatus further includes a motion vector predictor reconstructing unit that reconstructs a motion vector predictor in the region by using the motion vector dequantized by the inverse quantizer as a temporal peripheral motion vector.
- a threshold acquisition unit that acquires a threshold is further provided,
- the reduction unit determines the magnitude of the motion vector using the threshold acquired by the threshold acquisition unit, determines the quantization step size according to the determination result, and determines the determined quantization
- the image processing device according to any one of (3) to (16), wherein the motion vector is quantized with a step size.
- the size of the quantized motion vector read from the storage unit is determined using the threshold acquired by the threshold acquisition unit, and the quantization step size is determined according to the determination result
- An inverse quantization unit that inversely quantizes the quantized motion vector with the determined quantization step size
- the motion vector dequantized by the inverse quantization unit is further used as a temporal motion vector, and further includes a predicted motion vector reconstruction unit that reconstructs a predicted motion vector of the region.
- Image processing device (19) The image processing apparatus according to (17) or (18), wherein the threshold acquisition unit acquires the threshold stored in a sequence parameter set.
- the reduction unit reduces the information amount of the motion vector in the peripheral region of the region, which is referred to when predicting the motion vector of the region of the image to be processed in the image motion prediction, An image processing method in which a storage unit stores the motion vector with a reduced amount of information.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本開示は、動きベクトルを格納するのに必要な記憶容量の増大を抑制することができるようにする画像処理装置および方法に関する。 画像の動き予測において、動き予測の処理対象である前記画像の当該領域の動きベクトルの予測の際に参照される、当該領域の周辺領域の動きベクトルの情報量を低減させる低減部と、前記低減部により情報量が低減された前記動きベクトルを記憶する記憶部とを備える。本開示は画像処理装置に適用することができる。
Description
本開示は、画像処理装置および方法に関し、特に、動きベクトルを格納するのに必要な記憶容量の増大を抑制することができるようにした画像処理装置および方法に関する。
近年、画像情報をデジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮するMPEG(Moving Picture Experts Group)などの方式に準拠した装置が、放送局などの情報配信、及び一般家庭における情報受信の双方において普及しつつある。
特に、MPEG2(ISO(International Organization for Standardization)/IEC(International Electrotechnical Commission) 13818-2)は、汎用画像符号化方式として定義されており、飛び越し走査画像及び順次走査画像の双方、並びに標準解像度画像及び高精細画像を網羅する標準で、プロフェッショナル用途及びコンシューマ用途の広範なアプリケーションに現在広く用いられている。MPEG2圧縮方式を用いることにより、例えば720×480画素を持つ標準解像度の飛び越し走査画像であれば4~8Mbps、1920×1088画素を持つ高解像度の飛び越し走査画像であれば18~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と記す)という名の元に国際標準となった。
しかしながら、マクロブロックサイズを16画素×16画素とするのは、次世代符号化方式の対象となるような、UHD(Ultra High Definition;4000画素×2000画素)といった大きな画枠に対しては、最適ではない恐れがあった。
そこで、現在、AVCより更なる符号化効率の向上を目的として、ITU-Tと、ISO/IECの共同の標準化団体であるJCTVC(Joint Collaboration Team - Video Coding)により、HEVC(High Efficiency Video Coding)と呼ばれる符号化方式の標準化が進められている(例えば、非特許文献1参照)。
このHEVC符号化方式においては、AVCにおけるマクロブロックと同様の処理単位としてコーディングユニット(CU(Coding Unit))が定義されている。このCUは、AVCのマクロブロックのようにサイズが16×16画素に固定されず、それぞれのシーケンスにおいて、画像圧縮情報中において指定される。
ところで、AVCにおけるメディアン予測を用いた動きベクトルの符号化を改善するため、AVCにおいて定義されている、メディアン予測により求められる”Spatial Predictor”に加え、”Temporal Predictor”及び”Spatio-Temporal Predictor”のどれかを、予測動きベクトル情報として、適応的に用いること(以下、MVコンペティション(MVCompetition)とも称する)が提案されている(例えば、非特許文献2参照)。
画像情報符号化装置においては、それぞれのブロックに関して、それぞれの予測動きベクトル情報を用いた場合のコスト関数が算出され、最適な予測動きベクトル情報の選択が行われる。画像圧縮情報においては、それぞれのブロックに対し、どの予測動きベクトル情報が用いられたかに関する情報を示すフラグ情報が伝送される。
Thomas Wiegand, Woo-Jin Han, Benjamin Bross, Jens-Rainer Ohm, Gary J. Sullivan, "Working Draft 1 of High-Efficiency Video Coding ", JCTVC-C403, Joint Collaborative Team on Video Coding (JCT-VC)of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG113rd Meeting: Guangzhou, CN, 7-15 October, 2010
Joel Jung,Guillaume Laroche,"Competition-Based Scheme for Motion Vector Selection and Coding", VCEG-AC06,ITU - Telecommunications Standardization SectorSTUDY GROUP 16 Question 6Video Coding Experts Group (VCEG)29th Meeting: Klagenfurt, Austria, 17-18 July, 2006
上述したMVコンペティションにおいては、時間的な相関性を利用するTemporal PredictorやSpatio-Temporal Predictorのために、参照フレーム(参照ピクチャ)の動きベクトル情報を保持しなければならない。
すなわち、動き予測により得られた動きベクトル情報を、自身より後に処理されるフレームの、自身を参照する領域の処理が行われるまで、メモリ(記憶領域)に確保しなければならない。
しかしながら、近年、符号化対象の画像データのフレーム(ピクチャ)のサイズは増大する傾向にあり、それに伴い、保持する動きベクトルの数も増大している。したがって、動きベクトルを格納するために必要なメモリ(記憶領域)の容量が増大し、コストが増大する恐れがあった。
本開示は、このような状況に鑑みてなされたものであり、動きベクトルを格納するのに必要な記憶容量の増大を抑制することを目的とする。
本開示の一側面は、画像の動き予測において、処理対象である前記画像の当該領域の動きベクトルの予測の際に参照される、当該領域の周辺領域の動きベクトルの情報量を低減させる低減部と、前記低減部により情報量が低減された前記動きベクトルを記憶する記憶部とを備える画像処理装置である。
前記低減部は、前記動きベクトルを量子化することにより、前記動きベクトルの情報量を低減させ、前記記憶部は、量子化された前記動きベクトルを記憶することができる。
前記低減部は、前記動きベクトルの大きさに応じて、量子化ステップサイズを決定し、決定した前記量子化ステップサイズで前記動きベクトルを量子化することができる。
前記低減部は、前記動きベクトルがより大きいほど、前記量子化ステップサイズをより大きな値に決定することができる。
前記低減部は、閾値を設定し、前記動きベクトルの大きさを前記閾値を用いて判定し、その判定結果に応じて、前記量子化ステップサイズを決定し、決定した前記量子化ステップサイズで前記動きベクトルを量子化することができる。
前記低減部は、プロファイル・レベルに応じて前記閾値を設定することができる。
前記プロファイル・レベルは、前記画像のサイズ、若しくは、前記動きベクトルの少数精度であるようにすることができる。
前記低減部は、前記動きベクトルの各成分の大きさを前記閾値を用いて判定し、より大きな成分の判定結果に応じて前記量子化ステップサイズを決定し、決定した前記量子化ステップサイズで前記動きベクトルを量子化することができる。
前記閾値を符号化する符号化部をさらに備えることができる。
前記低減部は、上限値以上の値を全て前記上限値に変更するクリップ処理により、前記動きベクトルの情報量を低減させることができる。
前記低減部は、前記動きベクトルの情報量を、前記動きベクトルの成分毎に低減させることができる。
前記低減部は、前記動きベクトルの成分毎に閾値を設定し、前記動きベクトルの各成分の大きさを、その成分の閾値を用いて判定し、その判定結果に応じて、前記量子化ステップサイズを成分毎に決定し、決定した前記量子化ステップサイズで前記動きベクトルの各成分を量子化することができる。
前記記憶部に記憶されている、量子化された動きベクトルを読み出し、逆量子化する逆量子化部をさらに備えることができる。
前記低減部は、閾値を設定し、前記動きベクトルの大きさを前記閾値を用いて判定し、その判定結果に応じて前記量子化ステップサイズを決定し、決定した量子化ステップサイズで前記動きベクトルを量子化し、前記逆量子化部は、前記閾値を用いて、前記記憶部から読み出した、量子化された動きベクトルの大きさを判定し、その判定結果に応じて量子化ステップサイズを決定し、決定した量子化ステップサイズで、量子化された前記動きベクトルを逆量子化することができる。
前記逆量子化部により逆量子化された前記動きベクトルを時間周辺動きベクトルとして利用し、当該領域の予測動きベクトルを生成する予測動きベクトル生成部をさらに備えることができる。
前記逆量子化部により逆量子化された前記動きベクトルを時間周辺動きベクトルとして利用し、当該領域の予測動きベクトルを再構築する予測動きベクトル再構築部をさらに備えることができる。
閾値を取得する閾値取得部をさらに備え、前記低減部は、前記動きベクトルの大きさを、前記閾値取得部により取得された前記閾値を用いて判定し、その判定結果に応じて、前記量子化ステップサイズを決定し、決定した前記量子化ステップサイズで前記動きベクトルを量子化することができる。
前記閾値取得部により取得された前記閾値を用いて、前記記憶部から読み出した、量子化された前記動きベクトルの大きさを判定し、その判定結果に応じて量子化ステップサイズを決定し、決定した量子化ステップサイズで、量子化された前記動きベクトルを逆量子化する逆量子化部と、前記逆量子化部により逆量子化された前記動きベクトルを時間周辺動きベクトルとして利用し、当該領域の予測動きベクトルを再構築する予測動きベクトル再構築部とをさらに備えることができる。
前記閾値取得部は、シーケンスパラメータセットに格納されている前記閾値を取得することができる。
本開示の一側面は、また、画像処理装置の画像処理方法であって、低減部が、画像の動き予測において、処理対象である前記画像の当該領域の動きベクトルの予測の際に参照される、当該領域の周辺領域の動きベクトルの情報量を低減させ、記憶部が、情報量が低減された前記動きベクトルを記憶する画像処理方法である。
本開示の一側面においては、画像の動き予測において、処理対象である前記画像の当該領域の動きベクトルの予測の際に参照される、当該領域の周辺領域の動きベクトルの情報量が低減され、その情報量が低減された前記動きベクトルが記憶される。
本開示によれば、画像を処理することができる。特に、動きベクトルを格納するのに必要な記憶容量の増大を抑制することができる。
以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(画像符号化装置)
2.第2の実施の形態(画像復号装置)
3.第3の実施の形態(動きベクトル量子化の他の例)
4.第4の実施の形態(動きベクトル量子化の、さらに他の例)
5.第5の実施の形態(コンピュータ)
6.第6の実施の形態(テレビジョン受像機)
7.第7の実施の形態(携帯電話機)
8.第8の実施の形態(記録再生装置)
9.第9の実施の形態(撮像装置)
1.第1の実施の形態(画像符号化装置)
2.第2の実施の形態(画像復号装置)
3.第3の実施の形態(動きベクトル量子化の他の例)
4.第4の実施の形態(動きベクトル量子化の、さらに他の例)
5.第5の実施の形態(コンピュータ)
6.第6の実施の形態(テレビジョン受像機)
7.第7の実施の形態(携帯電話機)
8.第8の実施の形態(記録再生装置)
9.第9の実施の形態(撮像装置)
<1.第1の実施の形態>
[画像符号化装置]
図1は、画像符号化装置の主な構成例を示すブロック図である。
[画像符号化装置]
図1は、画像符号化装置の主な構成例を示すブロック図である。
図1に示される画像符号化装置100は、例えばH.264及びMPEG(Moving Picture Experts Group)4 Part10(AVC(Advanced Video Coding))符号化方式のように、予測処理を用いて画像データを符号化する。
図1に示されるように画像符号化装置100は、A/D変換部101、画面並べ替えバッファ102、演算部103、直交変換部104、量子化部105、可逆符号化部106、および蓄積バッファ107を有する。また、画像符号化装置100は、逆量子化部108、逆直交変換部109、演算部110、ループフィルタ111、フレームメモリ112、選択部113、イントラ予測部114、動き予測・補償部115、予測画像選択部116、およびレート制御部117を有する。
画像符号化装置100は、さらに、動きベクトル符号化部121、動きベクトル量子化部122、動きベクトルバッファ123、および、動きベクトル逆量子化部124を有する。
A/D変換部101は、入力された画像データをA/D変換し、変換後の画像データ(デジタルデータ)を、画面並べ替えバッファ102に供給し、記憶させる。画面並べ替えバッファ102は、記憶した表示の順番のフレームの画像を、GOP(Group Of Picture)に応じて、符号化のためのフレームの順番に並べ替え、フレームの順番を並び替えた画像を、演算部103に供給する。また、画面並べ替えバッファ102は、フレームの順番を並び替えた画像を、イントラ予測部114および動き予測・補償部115にも供給する。
演算部103は、画面並べ替えバッファ102から読み出された画像から、予測画像選択部116を介してイントラ予測部114若しくは動き予測・補償部115から供給される予測画像を減算し、その差分情報を直交変換部104に出力する。
例えば、イントラ符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、イントラ予測部114から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、動き予測・補償部115から供給される予測画像を減算する。
直交変換部104は、演算部103から供給される差分情報に対して、離散コサイン変換やカルーネン・レーベ変換等の直交変換を施す。なお、この直交変換の方法は任意である。直交変換部104は、その変換係数を量子化部105に供給する。
量子化部105は、直交変換部104から供給される変換係数を量子化する。量子化部105は、レート制御部117から供給される符号量の目標値に関する情報に基づいて量子化パラメータを設定し、その量子化を行う。なお、この量子化の方法は任意である。量子化部105は、量子化された変換係数を可逆符号化部106に供給する。
可逆符号化部106は、量子化部105において量子化された変換係数を、任意の符号化方式で符号化する。係数データは、レート制御部117の制御の下で量子化されているので、この符号量は、レート制御部117が設定した目標値となる(若しくは目標値に近似する)。
また、可逆符号化部106は、イントラ予測のモードを示す情報等を含むイントラ予測情報をイントラ予測部114から取得し、インター予測のモードを示す情報や動きベクトル情報などを含むインター予測情報を動き予測・補償部115から取得する。さらに、可逆符号化部106は、ループフィルタ111において使用されたフィルタ係数等を取得する。また、可逆符号化部106は、動きベクトル量子化部122から供給される閾値を取得する。
可逆符号化部106は、これらの各種情報を任意の符号化方式で符号化し、符号化データのヘッダ情報の一部とする(多重化する)。例えば、可逆符号化部106は、動きベクトル量子化部122から供給される閾値をシーケンスパラメータセット(SPS)に格納する。もちろん、この閾値が格納される位置は任意であり、シーケンスパラメータセット以外であってもよく、例えば、ピクチャパラメータセット(PPS)やスライスヘッダ等に格納されるようにしてもよい。可逆符号化部106は、符号化して得られた符号化データを蓄積バッファ107に供給して蓄積させる。
可逆符号化部106の符号化方式としては、例えば、可変長符号化または算術符号化等が挙げられる。可変長符号化としては、例えば、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などが挙げられる。算術符号化としては、例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)などが挙げられる。
蓄積バッファ107は、可逆符号化部106から供給された符号化データを、一時的に保持する。蓄積バッファ107は、所定のタイミングにおいて、保持している符号化データを、ビットストリームとして、例えば、後段の図示せぬ記録装置(記録媒体)や伝送路などに出力する。つまり、符号化された各種情報が復号側に供給される。
また、量子化部105において量子化された変換係数は、逆量子化部108にも供給される。逆量子化部108は、その量子化された変換係数を、量子化部105による量子化に対応する方法で逆量子化する。この逆量子化の方法は、量子化部105による量子化処理に対応する方法であればどのような方法であってもよい。逆量子化部108は、得られた変換係数を、逆直交変換部109に供給する。
逆直交変換部109は、逆量子化部108から供給された変換係数を、直交変換部104による直交変換処理に対応する方法で逆直交変換する。この逆直交変換の方法は、直交変換部104による直交変換処理に対応する方法であればどのようなものであってもよい。逆直交変換された出力(局所的に復元された差分情報)は、演算部110に供給される。
演算部110は、逆直交変換部109から供給された逆直交変換結果、すなわち、局所的に復元された差分情報に、予測画像選択部116を介してイントラ予測部114若しくは動き予測・補償部115から供給される予測画像を加算し、局所的に再構成された画像(以下、再構成画像と称する)を得る。その再構成画像は、ループフィルタ111またはフレームメモリ112に供給される。
ループフィルタ111は、デブロックフィルタや適応ループフィルタ等を含み、演算部110から供給される復号画像に対して適宜フィルタ処理を行う。例えば、ループフィルタ111は、復号画像に対してデブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。また、例えば、ループフィルタ111は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた復号画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ111が、復号画像に対して任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ111は、必要に応じて、フィルタ処理に用いたフィルタ係数等の情報を可逆符号化部106に供給し、それを符号化させるようにすることもできる。
ループフィルタ111は、フィルタ処理結果(以下、復号画像と称する)をフレームメモリ112に供給する。
フレームメモリ112は、演算部110から供給される再構成画像と、ループフィルタ111から供給される復号画像とをそれぞれ記憶する。フレームメモリ112は、所定のタイミングにおいて、若しくは、イントラ予測部114等の外部からの要求に基づいて、記憶している再構成画像を、選択部113を介して、イントラ予測部114に供給する。また、フレームメモリ112は、所定のタイミングにおいて、若しくは、動き予測・補償部115等の外部からの要求に基づいて、記憶している復号画像を、選択部113を介して、動き予測・補償部115に供給する。
選択部113は、フレームメモリ112から出力される画像の供給先を示す。例えば、イントラ予測の場合、選択部113は、フレームメモリ112からフィルタ処理されていない画像(再構成画像)を読み出し、周辺画素として、イントラ予測部114に供給する。
また、例えば、インター予測の場合、選択部113は、フレームメモリ112からフィルタ処理された画像(復号画像)を読み出し、参照画像として、それを動き予測・補償部115に供給する。
イントラ予測部114は、フレームメモリ112から、処理対象領域の周辺に位置する周辺領域の画像(周辺画像)を取得すると、その周辺画像の画素値を用いて、基本的にプレディクションユニット(PU)を処理単位として予測画像を生成するイントラ予測(画面内予測)を行う。イントラ予測部114は、予め用意された複数のモード(イントラ予測モード)でこのイントラ予測を行う。
イントラ予測部114は、候補となる全てのイントラ予測モードで予測画像を生成し、画面並べ替えバッファ102から供給される入力画像を用いて各予測画像のコスト関数値を評価し、最適なモードを選択する。イントラ予測部114は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部116に供給する。
また、イントラ予測部114は、最適なイントラ予測モード等、イントラ予測に関する情報を含むイントラ予測情報を、適宜可逆符号化部106に供給し、符号化させる。
動き予測・補償部115は、画面並べ替えバッファ102から供給される入力画像と、フレームメモリ112から供給される参照画像とを用いて、基本的にPUを処理単位として、動き予測(インター予測)を行い、検出された動きベクトルに応じて動き補償処理を行い、予測画像(インター予測画像情報)を生成する。動き予測・補償部115は、予め用意された複数のモード(インター予測モード)でこのようなインター予測を行う。
動き予測・補償部115は、候補となる全てのインター予測モードで予測画像を生成し、各予測画像のコスト関数値を評価し、最適なモードを選択する。動き予測・補償部115は、最適なインター予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部116に供給する。
また、動き予測・補償部115は、最適なインター予測モード等、インター予測に関する情報を含むインター予測情報を可逆符号化部106に供給し、符号化させる。
予測画像選択部116は、演算部103や演算部110に供給する予測画像の供給元を選択する。例えば、イントラ符号化の場合、予測画像選択部116は、予測画像の供給元としてイントラ予測部114を選択し、そのイントラ予測部114から供給される予測画像を演算部103や演算部110に供給する。また、例えば、インター符号化の場合、予測画像選択部116は、予測画像の供給元として動き予測・補償部115を選択し、その動き予測・補償部115から供給される予測画像を演算部103や演算部110に供給する。
レート制御部117は、蓄積バッファ107に蓄積された符号化データの符号量に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
動きベクトル符号化部121は、予測処理対象である当該領域の周辺の動きベクトルを用いて当該領域の動きベクトルを予測するとともに、その予測された動きベクトル(予測動き情報)と、動き予測により得られた当該領域の動きベクトル(動き情報)との差分(差分動き情報)を算出する。
この差分動き情報は、当該領域の動き情報の情報量を低減させたものであり、動き情報の代わりに復号側に伝送される。
動きベクトル量子化部122は、動きベクトルバッファ123に格納する動きベクトル(動き情報)を量子化する。動きベクトルバッファ123は、動きベクトル量子化部122により量子化された動きベクトル(動き情報)を格納する。動きベクトル逆量子化部124は、動きベクトル符号化部121が動きベクトルバッファ123から読み出した、量子化された動きベクトル(量子化された動き情報)を逆量子化する。
[1/4画素精度動き予測]
図2は、AVC符号化方式において規定されている、1/4画素精度の動き予測・補償処理の様子の例を説明する図である。図2において、各四角は、画素を示している。その内、Aはフレームメモリ112に格納されている整数精度画素の位置を示し、b,c,dは、1/2画素精度の位置を示し、e1,e2,e3は1/4画素精度の位置を示している。
図2は、AVC符号化方式において規定されている、1/4画素精度の動き予測・補償処理の様子の例を説明する図である。図2において、各四角は、画素を示している。その内、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画素、フィールド動き補償モードの場合には第一フィールド、第二フィールドのそれぞれに対し、16×8画素を単位として動き予測・補償処理が行なわれる。
また、MPEG2においては、動き予測・補償処理の単位は、フレーム動き補償モードの場合には16×16画素、フィールド動き補償モードの場合には第一フィールド、第二フィールドのそれぞれに対し、16×8画素を単位として動き予測・補償処理が行なわれる。
これに対し、AVCにおいては、図3に示されるように、16×16画素により構成される1つのマクロブロックを、16×16、16×8、8×16若しくは8×8のいずれかのパーティションに分割し、サブマクロブロック毎に、互いに独立した動きベクトル情報を持つことが可能である。更に、8×8パーティションに関しては、図3に示されるとおり、8×8、8×4、4×8、4×4のいずれかのサブマクロブロックに分割し、それぞれ独立した動きベクトル情報を持つことが可能である。
しかしながら、AVC画像符号化方式において、MPEG2の場合と同様に、かかるような動き予測・補償処理が行なわれるようにすると、膨大な動きベクトル情報が生成されてしまう恐れがあった。そして、その生成された動きベクトル情報をこのまま符号化することは、符号化効率の低下を招く恐れがあった。
[動きベクトルのメディアン予測]
かかる問題を解決する手法として、AVC画像符号化においては、以下のような手法により、動きベクトルの符号化情報の低減が実現されている。
かかる問題を解決する手法として、AVC画像符号化においては、以下のような手法により、動きベクトルの符号化情報の低減が実現されている。
図4に示される各直線は、動き補償ブロックの境界を示している。また、図4において、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等、従来の画像符号化方式では規定されていなかった方式が規定されている。
また、AVCにおいては、Multi-Reference Frame(マルチ(複数)参照フレーム)という、MPEG2やH.263等、従来の画像符号化方式では規定されていなかった方式が規定されている。
図5を用いて、AVCにおいて規定されている、マルチ参照フレーム(Multi-Reference Frame)を説明する。
すなわち、MPEG-2やH.263においては、Pピクチャの場合、フレームメモリに格納された参照フレーム1枚のみを参照することにより動き予測・補償処理が行われていたが、AVCにおいては、図5に示されるように、複数の参照フレームがメモリに格納され、マクロブロック毎に、異なるメモリを参照することが可能である。
[ダイレクトモード]
ところで、Bピクチャにおける動きベクトル情報における情報量は膨大であるが、AVCにおいては、Direct Mode(ダイレクトモード)と称されるモードが用意されている。
ところで、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(メディアン)予測により生成された動きベクトル情報が、当該ブロックに適用される。
以下においては、図6を用いて、時間ダイレクトモード(Temporal Direct Mode)を説明する。
図6において、L0参照ピクチャにおける、当該ブロックと同じ空間上のアドレスにあるブロックを、Co-Locatedブロックとし、Co-Locatedブロックにおける動きベクトル情報を、mvcolとする。また、当該ピクチャとL0参照ピクチャの時間軸上の距離をTDBとし、L0参照ピクチャとL1参照ピクチャの時間軸上の距離をTDDとする。
この時、当該ピクチャにおける、L0の動きベクトル情報mvL0及びL1の動きベクトル情報mvL1は、以下の式(13)および式(14)のように算出される。
なお、AVC画像圧縮情報においては、時間軸上の距離を表す情報TDが存在しないため、POC(Picture Order Count)を用いて、上述した式(12)および式(13)の演算が行われるものとする。
また、AVC画像圧縮情報においては、ダイレクトモード(Direct Mode)は、16×16画素マクロブロック単位、若しくは、8×8画素ブロック単位で定義することが可能である。
[予測モードの選択]
ところで、AVC符号化方式において、より高い符号化効率を達成するには、適切な予測モードの選択が重要である。
ところで、AVC符号化方式において、より高い符号化効率を達成するには、適切な予測モードの選択が重要である。
かかる選択方式の例として、JM(Joint Model)と呼ばれるH.264/MPEG-4 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より低い演算量での実現が可能である。
[動きベクトルのコンペティション]
ところで、図4を参照して説明したような、メディアン予測を用いた動きベクトルの符号化を改善するため、非特許文献1では、以下に述べるような方法が提案されている。
ところで、図4を参照して説明したような、メディアン予測を用いた動きベクトルの符号化を改善するため、非特許文献1では、以下に述べるような方法が提案されている。
すなわち、AVCにおいて定義されている、メディアン予測により求められる”Spatial Predictor(空間予測)”に加え、以下に述べる”Temporal Predictor(時間予測)”及び”Spatio-Temporal Predictor(時間と空間の予測)”のどれかを、予測動きベクトル情報として、適応的に用いることが可能にするものである。
すなわち、図7において、”mvcol”を、当該ブロックに対するCo-Locatedブロック(参照画像において、xy座標が、当該ブロックと同じであるブロック)に対する動きベクトル情報、mvtk(k=0乃至8)をその周辺ブロックの動きベクトル情報であるとして、それぞれの予測動きベクトル情報(Predictor)は、以下の式(17)乃至(19)により定義される。
画像符号化装置100においては、それぞれのブロックに関して、それぞれの予測動きベクトル情報を用いた場合のコスト関数が算出され、最適な予測動きベクトル情報の選択が行われる。画像圧縮情報においては、それぞれのブロックに対し、どの予測動きベクトル情報が用いられたかに関する情報を示すflagが伝送される。
[コーディングユニット]
ところで、マクロブロックサイズを16画素×16画素とするのは、次世代符号化方式の対象となるような、UHD(Ultra High Definition;4000画素×2000画素)といった大きな画枠に対しては、最適ではない。
ところで、マクロブロックサイズを16画素×16画素とするのは、次世代符号化方式の対象となるような、UHD(Ultra High Definition;4000画素×2000画素)といった大きな画枠に対しては、最適ではない。
そこで、AVCにおいては、図3に示されるように、マクロブロックとサブマクロブロックによる階層構造が規定されているが、例えば、HEVC(High Efficiency Video Coding)においては、図8に示されるように、コーディングユニット(CU(Coding Unit))が規定されている。
CUは、Coding Tree Block(CTB)とも呼ばれ、AVCにおけるマクロブロックと同様の役割を果たす、ピクチャ単位の画像の部分領域である。後者は、16×16画素の大きさに固定されているのに対し、前者の大きさは固定されておらず、それぞれのシーケンスにおいて、画像圧縮情報中において指定されることになる。
例えば、出力となる符号化データに含まれるシーケンスパラメータセット(SPS(Sequence Parameter Set))において、CUの最大サイズ(LCU(Largest Coding Unit))と最小サイズ((SCU(Smallest Coding Unit))が規定される。
それぞれのLCU内においては、SCUのサイズを下回らない範囲で、split-flag=1とすることにより、より小さなサイズのCUに分割することができる。図8の例では、LCUの大きさが128であり、最大階層深度が5となる。2N×2Nの大きさのCUは、split_flagの値が「1」である時、1つ下の階層となる、N×Nの大きさのCUに分割される。
更に、CUは、イントラ若しくはインター予測の処理単位となる領域(ピクチャ単位の画像の部分領域)であるプレディクションユニット(Prediction Unit(PU))に分割され、また、直交変換の処理単位となる領域(ピクチャ単位の画像の部分領域)である、トランスフォームユニット(Transform Unit(TU))に分割される。現在、HEVCにおいては、4×4及び8×8に加え、16×16及び32×32直交変換を用いることが可能である。
以上のHEVCのように、CUを定義し、そのCUを単位として各種処理を行うような符号化方式の場合、AVCにおけるマクロブロックはLCUに相当すると考えることができる。ただし、CUは図8に示されるように階層構造を有するので、その最上位階層のLCUのサイズは、例えば128×128画素のように、AVCのマクロブロックより大きく設定されることが一般的である。
なお、以下において、「領域」には、上述した各種領域(例えば、マクロブロック、サブマクロブロック、LCU、CU、SCU、PU、およびTU等)を全て含む(それらのいずれであってもよい)。もちろん、上述した以外の単位が含まれてもよいし、説明の内容に応じて不可能な単位は、適宜、除外するものとする。
[動きパーティションのマージ]
ところで、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(以下、非特許文献3と称する)には、動き情報の符号化方式の1つとして、図9に示されるような、Motion Partition Mergingと呼ばれる手法(マージモード)が提案されている。この手法においては、MergeFlagと、MergeLeftFlagという、2つのflagが、マージモードに関する情報であるマージ情報として伝送される。MergeFlag=1は、当該領域Xの動き情報が、当該領域の上に隣接する周辺領域T、若しくは、当該領域の左に隣接する周辺領域Lの動き情報と同一であることを示す。この時、マージ情報には、MergeLeftFlagが含められ、伝送される。MergeFlag=0は、当該領域Xの動き情報が、周辺領域Tおよび周辺領域Lのいずれの動き情報とも異なることを示す。この場合、当該領域Xの動き情報が伝送される。
ところで、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(以下、非特許文献3と称する)には、動き情報の符号化方式の1つとして、図9に示されるような、Motion Partition Mergingと呼ばれる手法(マージモード)が提案されている。この手法においては、MergeFlagと、MergeLeftFlagという、2つのflagが、マージモードに関する情報であるマージ情報として伝送される。MergeFlag=1は、当該領域Xの動き情報が、当該領域の上に隣接する周辺領域T、若しくは、当該領域の左に隣接する周辺領域Lの動き情報と同一であることを示す。この時、マージ情報には、MergeLeftFlagが含められ、伝送される。MergeFlag=0は、当該領域Xの動き情報が、周辺領域Tおよび周辺領域Lのいずれの動き情報とも異なることを示す。この場合、当該領域Xの動き情報が伝送される。
当該領域Xの動き情報が、周辺領域Lの動き情報と同一である場合、MergeFlag=1、かつ、MergeLeftFlag=1となる。当該領域Xの動き情報が、周辺領域Tの動き情報と同一である場合、MergeFlag=1、かつ、MergeLeftFlag=0となる。
このように、当該領域の動き情報が周辺の領域の動き情報と同一である場合、マージ情報のみが伝送され、復号の際には、その周辺の領域の動き情報を用いて当該領域の動き情報が再構築される。
このように、上述したMVコンペティションやこのマージモードにおいては、時間的な相関性を利用して、参照フレーム(参照ピクチャ)の動きベクトル情報が利用される。
換言するに、動き予測により得られた、処理対象の当該領域の動き情報は、処理対象の当該フレームより後に処理されるフレームの、当該領域を参照する領域の処理において利用される可能性がある。例えば、MVコンペティションの場合、当該領域を参照する領域の時間予測動き情報(Temporal PredictorやSpatio-Temporal Predictor)として利用される可能性がある。また、例えば、マージモードの場合、当該領域を参照する領域の動き情報と比較される可能性がある。したがって、動き予測により得られた当該領域の動き情報は、参照されなくなるまでメモリ(記憶領域)に確保しておく必要がある。
なお、動き予測により得られた当該領域の動き情報は、MVコンペティションにおける空間予測動き情報(spatial predictor)や、マージモードにおける空間周辺領域の動き情報として、同フレームの当該領域より後に処理される領域において利用される可能性もある。しかしながら、同じフレーム内の参照範囲は、基本的に当該領域に隣接若しくは近傍の領域のみであるので、このような利用の為には、動き情報は、おおよそ、処理対象である当該領域の1ライン上の領域まで保持すれば十分である。したがって、動き情報を格納するのに必要な記憶領域は、例えばレジスタ等の小容量のもので十分である。
しかしながら、時間予測動き情報や時間周辺領域の動き情報としての利用の為には、最も多い場合、4×4ブロック単位で、List0及びList1に関する、水平及び垂直成分の動きベクトル情報を、1/4画素精度で、1フレーム分以上格納しなければならないため、膨大な容量のバッファが必要であった。
動物体領域と、静止領域の境界において、空間方向の予測(spatial predictor)が適用されると、動物体領域の動きに、静止領域が引きずられる恐れがあり、そのことにより予測精度が低減し、符号化効率が低減する恐れがあった。そこで、時間方向の予測(temporal predictor)を適用することにより、特に、静止領域における符号化効率を改善することができる。したがって、時間方向の予測は、空間方向の予測とともに必要なものであるが、そのためには上述したように大容量の記憶領域が必要になり、コストが増大してしまう恐れがあった。
特に、近年、符号化対象の画像データのフレーム(ピクチャ)のサイズは増大する傾向にあり、それに伴い、保持する動きベクトルの数も増大している。したがって、動きベクトルを格納するために必要なメモリ(記憶領域)の容量がさらに増大し、コストがさらに増大する恐れがあった。
そこで、画像符号化装置100(図1)は、時間方向の予測のために動きベクトルを格納するのに必要な記憶容量の増大を抑制するために、動きベクトルを量子化してからバッファに記憶するようにする。
[動き予測・補償部等の構成]
図10は、動き予測・補償部115等の主な構成例を示すブロック図である。図10に示されるように、動き予測・補償部115は、動き探索部131、コスト関数値生成部132、モード判定部133、および動き補償部134を有する。
図10は、動き予測・補償部115等の主な構成例を示すブロック図である。図10に示されるように、動き予測・補償部115は、動き探索部131、コスト関数値生成部132、モード判定部133、および動き補償部134を有する。
また、動きベクトル符号化部121は、予測動きベクトル生成部141と差分動きベクトル生成部142を有する。
動き探索部131には、画面並べ替えバッファ102からの入力画像画素値と、フレームメモリ112からの参照画像画素値が入力される。動き探索部131は、全てのインター予測モードについて動き探索処理を行い、動きベクトルと参照インデックスを含む動き情報を生成する。動き探索部131は、その動き情報を動きベクトル符号化部121の予測動きベクトル生成部141に供給する。
また、動き探索部131は、探索した動きベクトルを用いて、参照画像に補償処理を行い、予測画像を生成する。さらに、動き探索部131は、その予測画像と入力画像の差分画像を算出し、その画素値である差分画像画素値をコスト関数値生成部132に供給する。
コスト関数値生成部132は、動き探索部131から供給された各インター予測モードの差分画像画素値を取得する。コスト関数値生成部132は、その差分画像画素値を用いて、各インター予測モードのコスト関数値を算出する。また、コスト関数値生成部132は、各インター予測モードの差分動き情報と、各インター予測モードの予測動きベクトル情報とを動きベクトル符号化部121の差分動きベクトル生成部142から取得する。
予測動きベクトル情報は、処理対象である当該領域の動きベクトルの予測値である予測動きベクトルと、その予測動きベクトルを生成する為に動きベクトルを参照される周辺領域を示す情報とを含む。差分動き情報は、処理対象である当該領域の動きベクトルと、予測動きベクトルとの差分である差分動きベクトルを含む。
コスト関数値生成部132は、各インター予測モードのコスト関数値、差分動き情報、および予測動きベクトル情報をモード判定部133に供給する。
モード判定部133は、コスト関数値生成部132から供給される各インター予測モードのコスト関数値、差分動き情報、および予測動きベクトル情報を取得する。モード判定部133は、その中で最も小さいコスト関数値のインター予測モードを、最適なモードとして選択する。モード判定部133は、その最適なモードに選択されたインター予測モードを示す情報である最適モード情報を、その最適なインター予測モードの差分動き情報および予測動きベクトル情報とともに、動き補償部134に供給する。
動き補償部134は、モード判定部133から供給された差分動き情報および予測動きベクトル情報を用いて、最適なインター予測モードの動きベクトルを生成する。動き補償部134は、その動きベクトルを用いてフレームメモリ112からの参照画像に補償処理を行うことで、最適なインター予測モードの予測画像を生成する。動き補償部134は、生成した予測画像の画素値(予測画像画素値)を予測画像選択部116に供給する。
予測画像選択部116によりインター予測が選択された場合、それを示す信号が予測画像選択部116から供給される。これに対応して、動き補償部134は、最適モード情報を、その最適なインター予測モードの差分動き情報および予測動き情報とともに、可逆符号化部106に供給し、符号化させ、復号側に伝送させる。予測動き情報は、予測動きベクトルを生成する為に動きベクトルを参照される周辺領域を示す情報を含む。
また、動き補償部134は、予測画像の生成に用いた最適なインター予測モードの動き情報を、動きベクトル量子化部122に供給する。なお、予測画像選択部116によりインター予測が選択されなかった場合(すなわち、イントラ予測画像が選択された場合)、動きベクトル情報として、0ベクトルが、動きベクトル量子化部122に供給される。
動きベクトル量子化部122は、動き補償部134から供給される動き情報を取得する。動きベクトル量子化部122は、取得した動き情報(動きベクトル)に対して量子化を行い、その情報量を低減させる。量子化の詳細については後述するが、動きベクトル量子化部122は、符号化効率の低減を抑制するために、閾値を設定し、その閾値に応じて非線形量子化を行う。動きベクトル量子化部122は、量子化後の動き情報を動きベクトルバッファ123に供給する。
また、動きベクトル量子化部122は、設定した閾値を動きベクトル逆量子化部124に供給する。さらに、動きベクトル量子化部122は、設定した閾値を可逆符号化部106に供給し、符号化させ、例えばビットストリームのシーケンスパラメータセットに格納される等して、復号側に伝送させる。
動きベクトルバッファ123は、動きベクトル量子化部122から供給される、量子化された動き情報を取得し、記憶する。つまり、動きベクトルバッファ123には、過去に処理された領域の最適予測モードの動き情報が格納されている。この動き情報は、その動き情報に対応する領域のフレームより時間的に後に処理されるフレームの、その領域を時間周辺領域として参照する他の領域に対する処理において、時間周辺動き情報として利用される。
時間周辺領域とは、処理対象である当該領域に対して時間的に周辺に位置する領域であり、当該領域のフレーム(当該フレーム)より時間的に前に処理され、当該領域の予測処理において参照される参照フレームの領域である。例えば、時間周辺領域は、参照フレームの、当該フレームにおける当該領域に相当する位置に存在するコロケーテッド(Co-Located)領域である。時間周辺動き情報は、その時間周辺領域の動き情報である。
動きベクトルバッファ123は、要求に応じて、記憶している動き情報を、時間周辺動き情報として動きベクトル逆量子化部124に供給する。なお、動きベクトルバッファ123は、供給される各動き情報を順次記憶し、時間周辺動き情報として利用されなくなるまで保持する。つまり、動きベクトルバッファ123の記憶容量は有限であるので、動きベクトルバッファ123は、処理対象の領域の時間周辺領域とならなくなった領域の動き情報(古い動き情報)を削除して空き領域を確保し、供給される新たな領域の動き情報を記憶する。
動きベクトル逆量子化部124は、予測動きベクトル生成部141により要求された動き情報を、動きベクトルバッファ123から取得する。また、動きベクトル逆量子化部124は、動きベクトル量子化部122から供給される閾値を取得する。動きベクトル逆量子化部124は、その閾値を用いて、動きベクトルバッファ123から読み出した動き情報(動きベクトル)を、動きベクトル量子化部122による量子化に対応する方法で、逆量子化(非線形逆量子化)する。動きベクトル逆量子化部124は、逆量子化された動き情報を、時間周辺動き情報として予測動きベクトル生成部141に供給する。
予測動きベクトル生成部141は、動き探索部131から供給される当該領域の動き情報を取得する。予測動きベクトル生成部141は、その動き情報を用いて各インター予測モードの空間予測動きベクトルを生成する。
空間予測動きベクトルとは、空間周辺領域の動きベクトルを用いて生成される予測動きベクトルである。空間周辺領域とは、処理対象である当該領域に対して空間的に周辺に位置する領域であり、当該フレームに存在する、当該領域より時間的に前に処理される領域である。例えば、空間周辺領域は、当該フレームの、当該領域の近傍の(例えば、左上、上、右上、または左等に隣接する)領域である。空間周辺動き情報は、その空間周辺領域の動き情報である。
予測動きベクトル生成部141は、予測動きベクトル生成後、動き探索部131から供給された動き情報を保持し、その当該領域より時間的に後に処理される他の領域の処理において、その保持している動き情報を空間周辺動き情報として利用し、空間予測動きベクトルを生成する。
また、予測動きベクトル生成部141は、当該領域の動き情報を用いて各インター予測モードの時間予測動きベクトルを生成する。時間予測動きベクトルとは、時間周辺領域の動きベクトルを用いて生成される予測動きベクトルである。予測動きベクトル生成部141は、動き探索部131から供給される動き情報に対応する時間周辺動き情報を、動きベクトル逆量子化部124を介して、動きベクトルバッファ123から取得する。予測動きベクトル生成部141は、その時間周辺動き情報を用いて、時間予測動きベクトルを生成する。
予測動きベクトル生成部141は、各インター予測モードについて、生成した空間予測動きベクトルと時間予測動きベクトルとを比較し、当該領域の動きベクトルに近い方を選択する。予測動きベクトル生成部141は、各インター予測モードについて、選択した予測動きベクトルを含む予測動きベクトル情報を生成し、当該領域の動き情報とともに差分動きベクトル生成部142に供給する。
差分動きベクトル生成部142は、予測動きベクトル生成部141から供給される当該領域の動き情報と予測動きベクトル情報を取得する。差分動きベクトル生成部142は、当該領域の動きベクトルと予測動きベクトルの差分である差分動きベクトルを生成し、その差分動きベクトルを含む差分動き情報を生成する。差分動きベクトル生成部142は、生成した差分動き情報と、その差分動き情報の生成に用いた予測動きベクトル情報とをコスト関数値生成部132に供給する。
[周辺動き情報のバッファ]
上述したように、予測動きベクトル生成部141は、当該領域の動き情報を記憶する。この動き情報は、空間周辺動き情報として利用されるものである。当該領域が動きベクトルを参照する空間周辺領域は、当該フレーム内に存在し、かつ、当該領域の近傍に位置するので、空間周辺領域となる範囲は比較的狭い。したがって、予測動きベクトル生成部141が動き情報を記憶するために必要な記憶容量は少なくてよい。
上述したように、予測動きベクトル生成部141は、当該領域の動き情報を記憶する。この動き情報は、空間周辺動き情報として利用されるものである。当該領域が動きベクトルを参照する空間周辺領域は、当該フレーム内に存在し、かつ、当該領域の近傍に位置するので、空間周辺領域となる範囲は比較的狭い。したがって、予測動きベクトル生成部141が動き情報を記憶するために必要な記憶容量は少なくてよい。
これに対して、時間周辺領域は、当該フレームと異なる参照フレームに存在するので、時間周辺動き情報として、少なくとも1フレーム分以上の膨大な動き情報を確保する必要がある。そのために大容量の記憶領域を確保する必要があるので、時間周辺動き情報は、大容量の記憶領域を有する動きベクトルバッファ123に格納される。
ただし、当該領域の動き情報をそのまま記憶すると、例えば、4×4ブロック単位で、List0及びList1に関する、水平及び垂直成分の動きベクトル情報を、1/4画素精度で格納しなければならないため、動きベクトルバッファ123として、膨大な容量の記憶領域が必要になり、コストが増大してしまう恐れがあった。また、近年においては、より高解像度の画像が符号化対象とされるようになっており、さらに大容量の記憶領域が必要になる恐れがあった。
そこで、上述したように、画像符号化装置100は、動き情報を動きベクトルバッファ123に格納する際に、その情報量を量子化により低減させてから格納し、格納された動き情報を読み出す際に逆量子化するようにする。
より具体的には、動きベクトル量子化部122が、動きベクトルバッファ123に格納される動き情報を量子化し、動きベクトル逆量子化部124が、動きベクトルバッファ123から読み出される動き情報を逆量子化する。
このようにすることにより、画像符号化装置100は、動きベクトルバッファ123の記憶容量の増大を抑制することができ、コストの増大を抑制することができる。
なお、以下においては、説明の便宜上、動きベクトルは、1/4画素精度であるとする。
[非線形量子化・逆量子化]
なお、時間予測動きベクトル(temporal predictor)は、特に、静止領域における符号化効率を改善する。すなわち、動物体領域と、静止領域の境界において、空間予測動きベクトル(spatial predictor)が適用されると、動物体領域の動きに、静止領域が引きずられることになる。空間予測動きベクトル(spatial predictor)の代わりに時間予測動きベクトル(temporal predictor)を用いることにより、このような不具合が改善される。
なお、時間予測動きベクトル(temporal predictor)は、特に、静止領域における符号化効率を改善する。すなわち、動物体領域と、静止領域の境界において、空間予測動きベクトル(spatial predictor)が適用されると、動物体領域の動きに、静止領域が引きずられることになる。空間予測動きベクトル(spatial predictor)の代わりに時間予測動きベクトル(temporal predictor)を用いることにより、このような不具合が改善される。
静止領域における動きベクトルは、その値が0に近いため、その値がより小さい動きベクトルが、より高く符号化効率に寄与すると考えられる。また、その値がより小さい動きベクトル程、その情報量がより少ないため、画素精度の増減による情報量への影響はより小さくなる。
また、大きな動きベクトル程、量子化前の情報量が大きいので、量子化による情報量の低減が容易である。さらに、動きベクトルバッファ123における情報管理は、一般的に固定長方式(Fixed length)であるが、その場合、その記憶容量は、動きベクトルの最大値の情報量(すなわち、動きベクトルのダイナミックレンジ)に依存する。
そこで、動きベクトル量子化部122および動きベクトル逆量子化部124は、動きベクトルの大きさに応じて量子化ステップの大きさを変え、より小さな動きベクトルが、より高画素精度で動きベクトルバッファ123に格納されるようにする。
例えば、動きベクトル量子化部122は、動きベクトルの大きさに対して閾値を設け、その閾値によって動きベクトルの大きさをレベル分けし、そのレベルに応じて量子化ステップの大きさを変える非線形量子化を行う。動きベクトル逆量子化部124は、その閾値を用いて、その非線形量子化に対応する非線形逆量子化を行う。
図11にその非線形量子化の例を示す。図11の例において、動きベクトル量子化部122は、時間予測動きベクトルとなる動きベクトルの大きさTmvに対して、2つの閾値θ1/4とθ1/2を設定する。すなわち、動きベクトルの大きさの範囲(Tmv≦MVmax)をこれらの閾値によって3つの領域(Area1乃至Area3)に分割する。
図11に示されるように、Area1は、Tmv<θ1/4の範囲であり、Area2は、θ1/4≦Tmv<θ1/2の範囲であり、Area3は、θ1/2≦Tmv<MVmaxの範囲である。
動きベクトル量子化部122は、動きベクトルバッファ123に格納する動きベクトルの大きさを閾値θ1/4とθ1/2を用いて判定し、その大きさがArea1の場合、1/4画素精度とし、その大きさがArea2の場合、1/2画素精度とし、その大きさがArea3の場合、整数画素精度とするように量子化ステップを決定し、量子化を行う。
このように非線形量子化することにより、Area1に属する動きベクトルの量子化後の最大値は、量子化前と変わらずθ1/4となり、Area2に属する動きベクトルの量子化後の最大値は、((1/2)×θ1/4+(1/2)×θ1/2)となり、Area3に属する動きベクトルの量子化後の最大値は、((1/2)×MVmax+(1/2)×θ1/4)となる。
したがって、図11に示される両矢印のように、MVmax-((1/2)×MVmax+(1/2)×θ1/4)の分だけ、動きベクトルのダイナミックレンジを低減することができる。つまり、その分、動きベクトルバッファ123の記憶容量を低減させることができる。
また、上述したようにArea1に属する動きベクトルについては、1/4画素精度を維持することができるので、時間予測動きベクトルが採用され易い静止領域の動きベクトルの画素精度の低減を抑制することができ、符号化効率の低減を抑制することができる。
つまり、動きベクトル量子化部122は、符号化効率の低減を抑制しながら、動きベクトルバッファ123の記憶容量を低減させることができる。
動きベクトル逆量子化部124は、動きベクトル量子化部122から閾値を取得することにより、動きベクトル量子化部122によるこのような非線形量子化に対応する非線形逆量子化を行うことができる。すなわち、動きベクトル逆量子化部124は、符号化効率の低減を抑制しながら、動きベクトルバッファ123の記憶容量を低減させることを実現することができる。
[符号化処理の流れ]
次に、以上のような画像符号化装置100により実行される各処理の流れについて説明する。最初に、図12のフローチャートを参照して、符号化処理の流れの例を説明する。
次に、以上のような画像符号化装置100により実行される各処理の流れについて説明する。最初に、図12のフローチャートを参照して、符号化処理の流れの例を説明する。
ステップS101において、A/D変換部101は入力された画像をA/D変換する。ステップS102において、画面並べ替えバッファ102は、A/D変換された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップS103において、イントラ予測部114は、イントラ予測処理を行う。ステップS104において、動き予測・補償部115は、インター動き予測処理を行う。ステップS105において、予測画像選択部116は、イントラ予測により生成された予測画像、および、インター予測により生成された予測画像の内、いずれか一方を選択する。
ステップS106において、演算部103は、ステップS102の処理により並び替えられた画像と、ステップS105の処理により選択された予測画像との差分を演算する(差分画像を生成する)。生成された差分画像は元の画像に較べてデータ量が低減される。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
ステップS107において、直交変換部104は、ステップS106の処理により生成された差分画像を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、直交変換係数が出力される。ステップS108において、量子化部105は、ステップS107の処理により得られた直交変換係数を量子化する。
ステップS108の処理により量子化された差分画像は、次のようにして局部的に復号される。すなわち、ステップS109において、逆量子化部108は、ステップS108の処理により生成された量子化された直交変換係数(量子化係数とも称する)を量子化部105の特性に対応する特性で逆量子化する。ステップS110において、逆直交変換部109は、ステップS109の処理により得られた直交変換係数を、直交変換部104の特性に対応する特性で逆直交変換する。これにより差分画像が復元される。
ステップS111において、演算部110は、ステップS105において選択された予測画像を、ステップS110において生成された差分画像に加算し、局部的に復号された復号画像(再構成画像)を生成する。ステップS112において、ループフィルタ111は、ステップS111の処理により得られた再構成画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜行い、復号画像を生成する。
ステップS113において、フレームメモリ112は、ステップS112の処理により生成された復号画像、若しくは、ステップS111の処理により生成された再構成画像を記憶する。
ステップS114において、可逆符号化部106は、ステップS108の処理により量子化された直交変換係数を符号化する。すなわち、差分画像に対して、可変長符号化や算術符号化等の可逆符号化が行われる。なお、可逆符号化部106は、予測に関する情報や、量子化に関する情報や、フィルタ処理に関する情報等を符号化し、ビットストリームに付加する。
ステップS115において、蓄積バッファ107は、ステップS114の処理により得られたビットストリームを蓄積する。蓄積バッファ107に蓄積された符号化データは、適宜読み出され、伝送路や記録媒体を介して復号側に伝送される。
ステップS116においてレート制御部117は、ステップS115の処理により蓄積バッファ107に蓄積された符号化データの符号量(発生符号量)に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
ステップS116の処理が終了すると、符号化処理が終了される。
[インター動き予測処理の流れ]
次に、図13のフローチャートを参照して、図12のステップS104において実行されるインター動き予測処理の流れの例を説明する。
次に、図13のフローチャートを参照して、図12のステップS104において実行されるインター動き予測処理の流れの例を説明する。
ステップS131において、動き探索部131は、各インター予測モードについて、動き探索を行い、処理対象である当該領域の動き情報を生成し、その動き情報を用いて補償処理を行って予測画像を生成し、さらに、その予測画像を用いて差分画像を生成する。
ステップS132において、予測動きベクトル生成部141は、ステップS131において生成された動き情報と、空間周辺動き情報を用いて、各インター予測モードについて空間予測動きベクトルを生成する。
また、予測動きベクトル生成部141は、各インター予測モードについて、時間予測動きベクトルの生成のために、処理対象である当該領域の動き情報に対応する時間周辺動き情報を要求する。ステップS133において、動きベクトル逆量子化部124は、要求された時間周辺動き情報を動きベクトルバッファ123から読み出し、その時間周辺動きベクトルを逆量子化する。
ステップS134において、予測動きベクトル生成部141は、各インター予測モードについて、ステップS133の処理により得られた時間周辺動き情報を用いて、時間予測動きベクトルを生成する。
ステップS135において、予測動きベクトル生成部141は、各インター予測モードについて、ステップS132において生成された空間予測動きベクトル、および、ステップS134の処理により生成された時間予測動きベクトルの内、いずれか一方を選択し、予測動き情報を生成する。
ステップS136において、差分動きベクトル生成部142は、各インター予測モードについて、ステップS135において生成された予測動き情報を用いて、差分動き情報を生成する。
ステップS137において、コスト関数値生成部132は、各インター予測モードについて、ステップS131において生成された差分画像の画素値を用いて、コスト関数値を算出する。
ステップS138において、モード判定部133は、ステップS137において算出された各インター予測モードのコスト関数値に基づいて、最適インター予測モードを決定する。
ステップS139において、動き補償部134は、ステップS138の処理により決定された最適インター予測モードで動き補償を行い、予測画像を生成する。
ステップS140において、動き補償部134は、ステップS139の処理により生成された予測画像を予測画像選択部116を介して演算部103および演算部110に供給し、差分画像情報や復号画像を生成させる。
ステップS141において、動き補償部134は、予測動き情報、差分動き情報、および最適モード情報を可逆符号化部106に供給し、最適インター予測モードに関する情報を符号化させる。なお、予測画像選択部116によりイントラ予測が選択される場合、この処理は省略される。
ステップS142において、動きベクトル量子化部122は、ステップS139の動き補償に用いられた当該領域の動きベクトルを量子化する。
ステップS143において、動きベクトルバッファ123は、ステップS142において量子化された動きベクトルを含む動き情報を記憶する。この動き情報は、当該領域より後に処理される他の領域において時間周辺動き情報として利用される。
ステップS143の処理が終了すると、動きベクトルバッファ123は、処理を図12に戻す。
[動きベクトル量子化処理の流れ]
次に、図14のフローチャートを参照して、図13のステップS142において実行される動きベクトル量子化処理の流れの例を説明する。
次に、図14のフローチャートを参照して、図13のステップS142において実行される動きベクトル量子化処理の流れの例を説明する。
ステップS161において、動きベクトル量子化部122は、閾値(例えば、θ1/4やθ1/2)を設定する。なお、この処理は、既に閾値が設定済みであり、かつ、更新の必要が無い場合、省略することもできる。
ステップS162において、動きベクトル量子化部122は、量子化する動きベクトルの大きさをステップS161において設定した閾値を用いて判定し、その大きさに応じて量子化ステップサイズを決定する。
ステップS163において、動きベクトル量子化部122は、ステップS162において決定された量子化ステップサイズで動きベクトルを量子化する。
ステップS164において、動きベクトル量子化部122は、ステップS161において設定された閾値を可逆符号化部106に供給し、符号化させる。なお、ステップS161の処理を省略する場合、この処理も省略される。
ステップS164の処理が終了すると、動きベクトル量子化部122は、処理を図13に戻す。
[時間周辺動きベクトル逆量子化処理の流れ]
次に、図15のフローチャートを参照して、図13のステップS133において実行される時間周辺動きベクトル逆量子化処理の流れの例を説明する。
次に、図15のフローチャートを参照して、図13のステップS133において実行される時間周辺動きベクトル逆量子化処理の流れの例を説明する。
ステップS181において、動きベクトル逆量子化部124は、図14のステップS161の処理により動きベクトル量子化部122において設定された量子化処理の閾値を取得し、逆量子化処理に用いる閾値として設定する。なお、この処理は、既に閾値が設定済みであり、かつ、更新の必要が無い場合、省略することもできる。
ステップS182において、動きベクトル逆量子化部124は、逆量子化する時間周辺動きベクトルの大きさをステップS181において設定した閾値を用いて判定し、その大きさに応じて量子化ステップサイズを決定する。なお、図11の例を用いて説明すると、この場合、閾値(θ1/4,θ1/2)は、図11の縦軸の値(θ1/4,((1/2)×θ1/4+(1/2)×θ1/2))に換算され、時間周辺動きベクトルの大きさと比較される。
ステップS183において、動きベクトル逆量子化部124は、ステップS182の処理により決定された量子化ステップサイズで時間周辺動きベクトルを逆量子化する。
ステップS183の処理が終了すると、動きベクトル逆量子化部124は、処理を図13に戻す。
以上のように各処理を実行することにより、画像符号化装置100は、動きベクトルの記憶に必要な記憶容量を低減させることができる。特に、画像符号化装置100は、時間周辺動き情報として利用される動きベクトルの記憶に必要な記憶容量を低減させることができる。また、上述したようにより大きな動きベクトルの情報量をより大きく低減させるので、画像符号化装置100は、符号化効率の低減を抑制しながら、時間周辺動き情報の記憶に必要な記憶容量を低減させることができる。
<2.第2の実施の形態>
[画像復号装置]
次に、以上のように符号化された符号化データの復号について説明する。図16は、図1の画像符号化装置100に対応する画像復号装置の主な構成例を示すブロック図である。
[画像復号装置]
次に、以上のように符号化された符号化データの復号について説明する。図16は、図1の画像符号化装置100に対応する画像復号装置の主な構成例を示すブロック図である。
図16に示される画像復号装置200は、画像符号化装置100が生成した符号化データを、その符号化方法に対応する復号方法で復号する。
図16に示されるように画像復号装置200は、蓄積バッファ201、可逆復号部202、逆量子化部203、逆直交変換部204、演算部205、ループフィルタ206、画面並べ替えバッファ207、およびD/A変換部208を有する。また、画像復号装置200は、フレームメモリ209、選択部210、イントラ予測部211、動き予測・補償部212、および選択部213を有する。
さらに、画像復号装置200は、動きベクトル復号部221、動きベクトル量子化部222、動きベクトルバッファ223、および動きベクトル逆量子化部224を有する。
蓄積バッファ201は、伝送されてきた符号化データを蓄積し、所定のタイミングにおいてその符号化データを可逆復号部202に供給する。可逆復号部202は、蓄積バッファ201より供給された、図1の可逆符号化部106により符号化された情報を、可逆符号化部106の符号化方式に対応する方式で復号する。可逆復号部202は、復号して得られた差分画像の量子化された係数データを、逆量子化部203に供給する。
また、可逆復号部202は、符号化データを復号して得られた最適な予測モードに関する情報を参照し、最適な予測モードにイントラ予測モードが選択されたかインター予測モードが選択されたかを判定する。可逆復号部202は、その判定結果に基づいて、その最適な予測モードに関する情報を、イントラ予測部211若しくは動き予測・補償部212に供給する。つまり、例えば、画像符号化装置100において最適な予測モードとしてイントラ予測モードが選択された場合、その最適な予測モードに関する情報であるイントラ予測情報がイントラ予測部211に供給される。また、例えば、画像符号化装置100において最適な予測モードとしてインター予測モードが選択された場合、その最適な予測モードに関する情報であるインター予測情報が動き予測・補償部212に供給される。
さらに、可逆復号部202は、符号化データを復号することにより、画像符号化装置100から伝送された、動きベクトル量子化用の閾値(例えばθ1/4,θ1/2)を、シーケンスパラメータセット(SPS)等から抽出する。可逆復号部202は、得られた閾値を動きベクトル量子化部222および動きベクトル逆量子化部224に供給する。
逆量子化部203は、可逆復号部202により復号されて得られた量子化された係数データを、図1の量子化部105の量子化方式に対応する方式で逆量子化し、得られた係数データを逆直交変換部204に供給する。逆直交変換部204は、図1の直交変換部104の直交変換方式に対応する方式で逆量子化部203から供給される係数データを逆直交変換する。逆直交変換部204は、この逆直交変換処理により、画像符号化装置100において直交変換される前の差分画像に対応する差分画像を得る。
逆直交変換されて得られた差分画像は、演算部205に供給される。また、演算部205には、選択部213を介して、イントラ予測部211若しくは動き予測・補償部212から予測画像が供給される。
演算部205は、差分画像と予測画像とを加算し、画像符号化装置100の演算部103により予測画像が減算される前の画像に対応する再構成画像を得る。演算部205は、その再構成画像をループフィルタ206に供給する。
ループフィルタ206は、供給された再構成画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜施して復号画像を生成する。例えば、ループフィルタ206は、再構成画像に対してデブロックフィルタ処理を行うことにより、ブロック歪を除去する。また、例えば、ループフィルタ206は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた再構成画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ206が行うフィルタ処理の種類は任意であり、上述した以外のフィルタ処理を行ってもよい。また、ループフィルタ206が、図1の画像符号化装置100から供給されたフィルタ係数を用いてフィルタ処理を行うようにしてもよい。
ループフィルタ206は、フィルタ処理結果である復号画像を画面並べ替えバッファ207およびフレームメモリ209に供給する。なお、このループフィルタ206によるフィルタ処理は省略することもできる。つまり、演算部205の出力が、フィルタ処理されずに、フレームメモリ209に格納されるようにすることもできる。例えば、イントラ予測部211は、この画像に含まれる画素の画素値を周辺画素の画素値として利用する。
画面並べ替えバッファ207は、供給された復号画像の並べ替えを行う。すなわち、図1の画面並べ替えバッファ102により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部208は、画面並べ替えバッファ207から供給された復号画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
フレームメモリ209は、供給される再構成画像や復号画像を記憶する。また、フレームメモリ209は、所定のタイミングにおいて、若しくは、イントラ予測部211や動き予測・補償部212等の外部の要求に基づいて、記憶している再構成画像や復号画像をイントラ予測部211や動き予測・補償部212に供給する。
イントラ予測部211は、図1のイントラ予測部114と基本的に同様の処理を行う。ただし、イントラ予測部211は、符号化の際にイントラ予測により予測画像が生成された領域に対してのみ、イントラ予測を行う。
動き予測・補償部212は、可逆復号部202から供給されるインター予測情報に基づいてインター動き予測処理を行い、予測画像を生成する。なお、動き予測・補償部212は、可逆復号部202から供給されるインター予測情報に基づいて、符号化の際にインター予測が行われた領域に対してのみ、インター動き予測処理を行う。
動き予測・補償部212は、予測処理単位の領域毎に、生成した予測画像を、選択部213を介して演算部205に供給する。
選択部213は、イントラ予測部211から供給される予測画像、若しくは、動き予測・補償部212から供給される予測画像を演算部205に供給する。
動きベクトル復号部221は、動き予測・補償部212から、画像符号化装置100から供給された予測動き情報を取得し、動き予測・補償部212において利用される予測動きベクトルを再構築する。動きベクトル復号部221は、必要に応じて、動きベクトルバッファ223に記憶されている動き情報を、動きベクトル逆量子化部224を介して、時間周辺動き情報として取得する。また、動きベクトル復号部221は、動き予測・補償部212において再構築された動き情報を取得し、空間周辺動き情報として使用するためにそれを記憶する。
動きベクトル量子化部222は、動き予測・補償部212から供給される、動きベクトルバッファ223に格納する動き情報を取得し、動きベクトル量子化部122(図1)と同様の方法で、その動きベクトルを量子化する。つまり、可逆復号部202から供給された閾値(画像符号化装置100から供給された閾値)を取得し、その閾値を用いて、動きベクトルの量子化を行う。動きベクトル量子化部222は、量子化した動き情報を動きベクトルバッファ223に供給する。
動きベクトルバッファ223は、動きベクトル量子化部222から供給される、量子化された動き情報を記憶する。動きベクトルバッファ223は、要求に従って、記憶している動き情報を時間周辺動き情報として動きベクトル逆量子化部224に供給する。すなわち、動きベクトルバッファ223は、動きベクトルバッファ123(図1)と同様の処理部であり、動きベクトルバッファ123と同様に、動き情報を記憶するための有限の記憶領域を有する。
動きベクトル逆量子化部224は、動きベクトル復号部221に要求された時間周辺動き情報を動きベクトルバッファ223から読み出し、動きベクトル逆量子化部124(図1)と同様の方法で、その動きベクトルを逆量子化する。つまり、可逆復号部202から供給された閾値(画像符号化装置100から供給された閾値)を取得し、その閾値を用いて、動きベクトルの逆量子化を行う。動きベクトル逆量子化部224は、逆量子化した時間周辺動き情報を動きベクトル復号部221に供給する。
[動き予測・補償部等の構成]
図17は、動き予測・補償部212等の主な構成例を示すブロック図である。図17に示されるように、動き予測・補償部212は、差分動き情報バッファ231、予測動き情報バッファ232、閾値バッファ233、動き情報再構築部234、および動き補償部235を有する。
図17は、動き予測・補償部212等の主な構成例を示すブロック図である。図17に示されるように、動き予測・補償部212は、差分動き情報バッファ231、予測動き情報バッファ232、閾値バッファ233、動き情報再構築部234、および動き補償部235を有する。
また、動きベクトル復号部221は、予測動きベクトル再構築部241を有する。
差分動き情報バッファ231は、可逆復号部202から供給される、ビットストリームから抽出された差分動き情報を取得し、記憶する。差分動き情報バッファ231は、所定のタイミングにおいて、若しくは、外部からの要求に基づいて、その記憶している差分動き情報を動き情報再構築部234に供給する。
予測動き情報バッファ232は、可逆復号部202から供給される、ビットストリームから抽出された予測動き情報を取得し、記憶する。予測動き情報は、予測動きベクトルを生成する為に動きベクトルを参照される周辺領域(時間周辺領域または空間周辺領域)を示す情報を含む。予測動き情報バッファ232は、所定のタイミングにおいて、若しくは、外部からの要求に基づいて、その記憶している予測動き情報を予測動きベクトル再構築部241に供給する。
閾値バッファ233は、可逆復号部202から供給される、ビットストリームのシーケンスパラメータセット等から抽出された閾値(例えばθ1/4,θ1/2)を取得し、記憶する。閾値バッファ233は、所定のタイミングにおいて、若しくは、外部からの要求に基づいて、その記憶している閾値を動きベクトル量子化部222および動きベクトル逆量子化部224に供給する。
動き情報再構築部234は、差分動き情報バッファ231から、処理対象である当該領域の差分動き情報を取得すると、予測動きベクトル再構築部241から、当該領域の予測動きベクトル情報を取得し、それらを用いて当該領域の動き情報を再構築する。より具体的には、動き情報再構築部234は、差分動き情報の差分動きベクトルに、予測動きベクトル情報の予測動きベクトルを加算することにより、当該領域の動きベクトルを再構築する。動き情報再構築部234は、その動きベクトルを含む動き情報を、動き補償部235、動きベクトル量子化部222、および予測動きベクトル再構築部241に供給する。
動き補償部235は、動き情報再構築部234から供給される当該領域の動き情報を取得する。また、動き補償部235は、フレームメモリ209から供給される参照画像画素値を取得する。動き補償部235は、それらを用いて動き補償を行い、予測画像を生成する。動き補償部235は、その予測画像画素値を選択部213を介して演算部205に供給する。
動きベクトル復号部221の予測動きベクトル再構築部241は、予測動き情報バッファ232から、処理対象である当該領域の予測動き情報を取得すると、その予測動き情報を用いて当該領域の予測動きベクトルを再構築する。
例えば、予測動き情報において指定される周辺領域が空間周辺領域の場合、予測動きベクトル再構築部241は、自身が保持している空間周辺動き情報(すなわち、予測動き情報において指定される空間周辺領域の動き情報)の動きベクトルを空間予測動きベクトルとする。
また、例えば、予測動き情報において指定される周辺領域が時間周辺領域の場合、予測動きベクトル再構築部241は、動きベクトルバッファ223に記憶されている時間周辺動き情報(すなわち、予測動き情報において指定される時間周辺領域の動き情報)を、動きベクトル逆量子化部224を介して取得し、その動きベクトルを時間予測動きベクトルとする。
予測動きベクトル再構築部241は、このように再構築した予測動きベクトル(空間予測動きベクトル若しくは時間予測動きベクトル)を含む予測動きベクトル情報を、動き情報再構築部234に供給する。
また、予測動きベクトル再構築部241は、動き情報再構築部234から供給される、動き情報再構築部234において再構築された当該領域の動き情報を取得し、保持する。この動き情報は、当該領域より時間的に後に処理される他の領域の処理において、空間周辺動き情報として利用される。
画像復号装置200も、画像符号化装置100の場合と同様に、動き情報を動きベクトルバッファ223に格納する際に、その情報量を量子化により低減させてから格納し、格納された動き情報を読み出す際に逆量子化するようにする。
つまり、動きベクトル量子化部222が、動きベクトル量子化部122の場合と同様に量子化処理を行って、動きベクトルバッファ223に格納される動き情報を量子化し、動きベクトル逆量子化部224が、動きベクトル逆量子化部124の場合と同様に逆量子化処理を行って、動きベクトルバッファ223から読み出される動き情報を逆量子化する。
このようにすることにより、画像復号装置200は、動きベクトルバッファ223の記憶容量の増大を抑制することができ、コストの増大を抑制することができる。
また、動きベクトル量子化部222は、画像符号化装置100から供給される閾値を用いて、動きベクトル量子化部122の場合と同様に非線形量子化を行うことにより、Area1に属する動きベクトルについては、1/4画素精度を維持することができるので、時間予測動きベクトルが採用され易い静止領域の動きベクトルの画素精度の低減を抑制することができ、符号化効率の低減を抑制することができる。
つまり、動きベクトル量子化部222は、符号化効率の低減を抑制しながら、動きベクトルバッファ223の記憶容量を低減させることができる。
また、動きベクトル逆量子化部224は、画像符号化装置100から供給される閾値を用いて、動きベクトル逆量子化部124の場合と同様に非線形逆量子化を行うことができる。すなわち、動きベクトル逆量子化部224は、符号化効率の低減を抑制しながら、動きベクトルバッファ223の記憶容量を低減させることを実現することができる。
[復号処理の流れ]
次に、以上のような画像復号装置200により実行される各処理の流れについて説明する。最初に、図18のフローチャートを参照して、復号処理の流れの例を説明する。
次に、以上のような画像復号装置200により実行される各処理の流れについて説明する。最初に、図18のフローチャートを参照して、復号処理の流れの例を説明する。
復号処理が開始されると、ステップS201において、蓄積バッファ201は、伝送されてきたビットストリームを蓄積する。ステップS202において、可逆復号部202は、蓄積バッファ201から供給されるビットストリーム(符号化された差分画像情報)を復号する。このとき、イントラ予測情報やインター予測情報等、ビットストリームに含められた差分画像情報以外の各種情報も復号される。
ステップS203において、逆量子化部203は、ステップS202の処理により得られた、量子化された直交変換係数を逆量子化する。ステップS204において逆直交変換部204は、ステップS203において逆量子化された直交変換係数を逆直交変換する。
ステップS205において、イントラ予測部211若しくは動き予測・補償部212は、供給された情報を用いて予測処理を行う。ステップS206において、演算部205は、ステップS204において逆直交変換されて得られた差分画像情報に、ステップS205において生成された予測画像を加算する。これにより再構成画像が生成される。
ステップS207において、ループフィルタ206は、ステップS206において得られた再構成画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜行う。
ステップS208において、画面並べ替えバッファ207は、ステップS207においてフィルタ処理されて生成された復号画像の並べ替えを行う。すなわち画像符号化装置100の画面並べ替えバッファ102により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS209において、D/A変換部208は、フレームの順序が並べ替えられた復号画像をD/A変換する。この復号画像が図示せぬディスプレイに出力され、表示される。
ステップS210において、フレームメモリ209は、ステップS207においてフィルタ処理されて得られた復号画像を記憶する。この復号画像は、インター予測処理において参照画像として利用される。
ステップS210の処理が終了すると、復号処理が終了される。
[予測処理の流れ]
次に、図19のフローチャートを参照して、図18のステップS205において実行される予測処理の流れの例を説明する。
次に、図19のフローチャートを参照して、図18のステップS205において実行される予測処理の流れの例を説明する。
予測処理が開始されると、可逆復号部202は、ステップS231において、処理対象の領域が符号化の際にイントラ予測が行われたか否かを判定する。イントラ予測が行われたと判定された場合、可逆復号部202は、処理をステップS232に進める。
この場合、イントラ予測部211は、ステップS232において、可逆復号部202からイントラ予測モード情報を取得し、ステップS233において、イントラ予測によって予測画像を生成する。予測画像が生成されると、イントラ予測部211は、予測処理を終了し、処理を図18に戻す。
また、ステップS231において、当該領域がインター予測の行われた領域であると判定した場合、可逆復号部202は、処理をステップS234に進める。ステップS234において、動き予測・補償部212は、インター動き予測処理を行う。インター動き予測処理が終了すると、動き予測・補償部212は、予測処理を終了し、処理を図18に戻す。
[インター動き予測処理の流れ]
次に、図20のフローチャートを参照して、図19のステップS234において実行されるインター動き予測処理の流れの例を説明する。
次に、図20のフローチャートを参照して、図19のステップS234において実行されるインター動き予測処理の流れの例を説明する。
インター動き予測処理が開始されると、ステップS251において、予測動き情報バッファ232は、可逆復号部202から予測動き情報を取得する。ステップS252において、予測動きベクトル再構築部241は、その予測動き情報から、当該領域の動きベクトルの予測が、時間周辺領域を参照する時間予測であるか、空間周辺領域を参照する空間予測であるかを判定する。時間予測であると判定された場合、予測動きベクトル再構築部241は、時間周辺動き情報を要求し、処理をステップS253に進める。
ステップS253において、動きベクトル逆量子化部224は、要求された時間周辺動き情報を動きベクトルバッファ223から読み出し、その動きベクトル(時間周辺動きベクトル)を逆量子化する。この逆量子化は、図15のフローチャートを参照して説明した、動きベクトル逆量子化部124による時間周辺動きベクトル逆量子化処理と同様であるので、その説明は省略する。
ステップS254において、予測動きベクトル再構築部241は、ステップS253の処理により得られた時間周辺動き情報を用いて予測動きベクトルを再構築し、処理をステップS256に進める。
また、ステップS252において、当該領域の動きベクトルの予測が、空間予測であると判定された場合、予測動きベクトル再構築部241は、処理をステップS255に進める。
ステップS255において、予測動きベクトル再構築部241は、保持している空間周辺動き情報を用いて予測動きベクトルを再構築し、処理をステップS256に進める。
ステップS256において、差分動き情報バッファ231は、可逆復号部202において得られた差分動き情報を取得する。ステップS257において、動き情報再構築部234は、ステップS254若しくはステップS255の処理により再構築された予測動きベクトル情報と、ステップS256の処理により取得された差分動き情報とを用いて、当該領域の動き情報を再構築する。
ステップS258において、動き補償部235は、フレームメモリ209から読み出した参照画像画素値を用いて、ステップS257の処理により再構築された動き情報の動き補償を行い、予測画像を生成する。
ステップS259において、動き補償部235は、ステップS258の処理により得られた予測画像画素値を、選択部213を介して演算部205に供給し、再構成画像を生成させる。
ステップS260において、動きベクトル量子化部222は、ステップS257の処理により再構築された当該領域の動き情報の動きベクトルを量子化する。この量子化は、図14のフローチャートを参照して説明した、動きベクトル量子化部122による動きベクトル量子化処理と同様であるので、その説明は省略する。
ステップS261において、動きベクトルバッファ223は、ステップS260の処理により量子化された動き情報を記憶する。
ステップS261の処理が終了すると、動きベクトルバッファ223は、インター動き予測処理を終了し、処理を図19に戻す。
以上のように、各処理を行うことにより、画像復号装置200は、動きベクトルの記憶に必要な記憶容量を低減させることができる。特に、画像復号装置200は、時間周辺動き情報として利用される動きベクトルの記憶に必要な記憶容量を低減させることができる。また、上述したように、より大きな動きベクトルの情報量をより大きく低減させるので、画像復号装置200は、符号化効率の低減を抑制しながら、時間周辺動き情報の記憶に必要な記憶容量を低減させることができる。
以上においては、量子化により、動きベクトルバッファ123および動きベクトルバッファ223に記憶する動き情報の情報量を低減させるように説明したが、これに限らず、動き情報の情報量を低減させる処理であればどのような処理を施すようにしてもよい。例えば、動きベクトルの上限値を設定し、その上限値以上の値は、全てその上限値に変更するクリップ処理(つまり、動きベクトルの長さを上限値以下に低減させる処理)が行われるようにしてもよい。
また、以上においては、閾値を用いた非線形量子化によって、より大きな動きベクトルの情報量をより大きく低減させるように説明したが、動きベクトルの大きさに応じて量子化ステップサイズを変化させるようにすればどのような方法であってもよい。例えば、動きベクトルの大きさと量子化ステップサイズを対応させるテーブル情報や関数等を予め用意し、その情報に従って、量子化ステップサイズが、動きベクトルのサイズに応じて決定されるようにしてもよい。
また、以上においては、閾値θの数を2つとして説明したが、閾値の数は任意である。例えば、1つであってもよいし、3つ以上であってもよい。また、閾値の値は任意である。さらに、閾値の値の決定方法も任意である。例えば、処理対象の画像データの動きベクトルの全て若しくは一部の標準偏差等を用いて閾値の値が決定されるようにしてもよい。
さらに、閾値の設定頻度は、任意である。例えば、シーケンス、ピクチャ、スライス、LCU、CU、またはPU等、任意のデータ単位毎に閾値が設定されるようにしてもよい。また、例えばユーザ指示等、所定のイベント発生時に閾値が設定されるようにしてもよい。さらに、閾値は、予め定められた固定値であってもよい。
以上においては、閾値が画像符号化装置100から画像復号装置200に伝送されるように説明したが、これに限らず、例えば、画像(画枠)サイズや動きベクトルの精度等のプロファイル・レベルのパラメータに応じて、画像符号化装置100と画像復号装置200のそれぞれにおいて閾値が設定されるようにしてもよい。
例えば、リアルタイム動作のための、メモリ容量の削減に対する要求は、より画枠、フレームレートの高い、つまり、単位時間時間当たりに処理すべき画素の量が多いほど、高い。また、単位画素当たりの持つ周波数情報は、画枠が小さいほど高く、動きベクトル情報の解像度を落とすことによる符号化効率の劣化は、より画枠の小さい時の方が大きい。そこで、例えば、画枠が小さい時ほど、相対的に、より大きなθの値を設定するようにしてもよい。
なお、以上においては、バッファに記憶する動きベクトルの情報量の低減方法が、画像符号化装置100と画像復号装置200とで、互いに同一であるように説明したが、これに限らず、画像符号化装置100と画像復号装置200とが互いに異なる方法で、それぞれのバッファに記憶する動きベクトルの情報量を低減させるようにしてもよい。例えば、一方がクリップ処理を行い、他方が量子化を行うようにしてもよい。また、例えば、一方が閾値を用いた非線形量子化を行い、他方が、テーブル情報や関数を用いて量子化ステップサイズを決定する量子化を行うようにしてもよい。さらに、例えば、閾値の数、値、設定方法、および設定頻度等が、互いに異なるようにしてもよい。
また、動きベクトルバッファ123や動きベクトルバッファ223の情報管理は、可変長方式(Variable length)であってもよい。その場合も、それらのバッファに記憶される動き情報の情報量の総量を、量子化処理により低減させることは可能である。したがって画像符号化装置100および画像復号装置200は、上述した固定長の場合と同様の効果を得ることができる。また、画像符号化装置100と画像復号装置200とで、この情報管理方法が互いに異なるようにしてもよい。
また、以上においては、動きベクトルの精度を1/4画素精度としたが、動きベクトルの精度は任意である。
<3.第3の実施の形態>
[動きベクトル量子化処理の流れ]
なお、動きベクトルをその成分毎に量子化するようにしてもよい。つまり、例えば、動きベクトル量子化部122が、動きベクトルの水平成分と垂直成分をそれぞれ互いに独立して量子化するようにしてもよい。
[動きベクトル量子化処理の流れ]
なお、動きベクトルをその成分毎に量子化するようにしてもよい。つまり、例えば、動きベクトル量子化部122が、動きベクトルの水平成分と垂直成分をそれぞれ互いに独立して量子化するようにしてもよい。
図21のフローチャートを参照して、その場合の動きベクトル量子化処理の流れの例を説明する。
ステップS301において、動きベクトル量子化部122は、閾値(例えば、θ1/4やθ1/2)を設定する。なお、この処理は、既に閾値が設定済みであり、かつ、更新の必要が無い場合、省略することもできる。
ステップS302において、動きベクトル量子化部122は、量子化する動きベクトルの水平成分の大きさをステップS301において設定した閾値を用いて判定し、その大きさに応じて量子化ステップサイズを決定する。
ステップS303において、動きベクトル量子化部122は、ステップS302において決定された量子化ステップサイズで動きベクトルの水平成分を量子化する。
ステップS304において、動きベクトル量子化部122は、量子化する動きベクトルの垂直成分の大きさをステップS301において設定した閾値を用いて判定し、その大きさに応じて量子化ステップサイズを決定する。
ステップS305において、動きベクトル量子化部122は、ステップS304において決定された量子化ステップサイズで動きベクトルの垂直成分を量子化する。
ステップS306において、動きベクトル量子化部122は、ステップS301において設定された閾値を可逆符号化部106に供給し、符号化させる。なお、ステップS301の処理を省略する場合、この処理も省略される。
ステップS306の処理が終了すると、動きベクトル量子化部122は、処理を図13に戻す。
[時間周辺動きベクトル逆量子化処理の流れ]
次に、図22のフローチャートを参照して、この場合の時間周辺動きベクトル逆量子化処理の流れの例を説明する。
次に、図22のフローチャートを参照して、この場合の時間周辺動きベクトル逆量子化処理の流れの例を説明する。
ステップS321において、動きベクトル逆量子化部124は、図21のステップS301の処理により動きベクトル量子化部122において設定された量子化処理の閾値を取得し、逆量子化処理に用いる閾値として設定する。なお、この処理は、既に閾値が設定済みであり、かつ、更新の必要が無い場合、省略することもできる。
ステップS322において、動きベクトル逆量子化部124は、逆量子化する時間周辺動きベクトルの水平成分の大きさをステップS321において設定した閾値を用いて判定し、その大きさに応じて量子化ステップサイズを決定する。なお、図11の例を用いて説明すると、この場合、閾値(θ1/4,θ1/2)は、図11の縦軸の値(θ1/4,((1/2)×θ1/4+(1/2)×θ1/2))に換算され、時間周辺動きベクトルの水平成分の大きさと比較される。
ステップS323において、動きベクトル逆量子化部124は、ステップS322の処理により決定された量子化ステップサイズで時間周辺動きベクトルの水平成分を逆量子化する。
ステップS324において、動きベクトル逆量子化部124は、逆量子化する時間周辺動きベクトルの垂直成分の大きさをステップS321において設定した閾値を用いて判定し、その大きさに応じて量子化ステップサイズを決定する。
ステップS325において、動きベクトル逆量子化部124は、ステップS324の処理により決定された量子化ステップサイズで時間周辺動きベクトルの垂直成分を逆量子化する。
ステップS325の処理が終了すると、動きベクトル逆量子化部124は、処理を図13に戻す。
以上のように、動きベクトルの水平成分と垂直成分とを互いに独立に量子化・逆量子化することにより、画像符号化装置100は、より容易に量子化・逆量子化を行うことができる。
これに対して、第1の実施の形態や第2の実施の形態において説明したように量子化・逆量子化を行う場合、画像符号化装置100は、動きベクトルバッファ123に記憶する動きベクトルの長さを求める必要があり、その分、演算量が増大する恐れがある。ただし、第1の実施の形態や第2の実施の形態の場合の方が、第3の実施の形態のように成分毎に量子化・逆量子化を行う場合よりも、情報量を低減させることができる。
なお、以上においては、画像符号化装置100において行われる量子化・逆量子化について説明したが、画像復号装置200において行われる量子化・逆量子化も、上述したのと同様に成分毎に互いに独立して行うことができる。
また、水平成分用の閾値と垂直成分用の閾値を設け、それぞれの値を、互いに独立して設定するようにしてもよい。
<4.第4の実施の形態>
[動きベクトル量子化処理の流れ]
また、動きベクトルの各成分の内、大きい方の成分に従って、量子化ステップサイズが決定されるようにしてもよい。
[動きベクトル量子化処理の流れ]
また、動きベクトルの各成分の内、大きい方の成分に従って、量子化ステップサイズが決定されるようにしてもよい。
図23のフローチャートを参照して、その場合の動きベクトル量子化処理の流れの例を説明する。
ステップS401において、動きベクトル量子化部122は、閾値(例えば、θ1/4やθ1/2)を設定する。なお、この処理は、既に閾値が設定済みであり、かつ、更新の必要が無い場合、省略することもできる。
ステップS402において、動きベクトル量子化部122は、量子化する動きベクトルの各成分の内、大きい方の成分の大きさをステップS401において設定した閾値を用いて判定し、その大きさに応じて量子化ステップサイズを決定する。
ステップS403において、動きベクトル量子化部122は、ステップS402において決定された量子化ステップサイズで動きベクトルを量子化する。
ステップS404において、動きベクトル量子化部122は、ステップS401において設定された閾値を可逆符号化部106に供給し、符号化させる。なお、ステップS401の処理を省略する場合、この処理も省略される。
ステップS404の処理が終了すると、動きベクトル量子化部122は、処理を図13に戻す。
[時間周辺動きベクトル逆量子化処理の流れ]
次に、図24のフローチャートを参照して、この場合の時間周辺動きベクトル逆量子化処理の流れの例を説明する。
次に、図24のフローチャートを参照して、この場合の時間周辺動きベクトル逆量子化処理の流れの例を説明する。
ステップS421において、動きベクトル逆量子化部124は、図23のステップS401の処理により動きベクトル量子化部122において設定された量子化処理の閾値を取得し、逆量子化処理に用いる閾値として設定する。なお、この処理は、既に閾値が設定済みであり、かつ、更新の必要が無い場合、省略することもできる。
ステップS422において、動きベクトル逆量子化部124は、逆量子化する時間周辺動きベクトルの各成分の内、大きい方の成分の大きさをステップS421において設定した閾値を用いて判定し、その大きさに応じて量子化ステップサイズを決定する。
ステップS423において、動きベクトル逆量子化部124は、ステップS422の処理により決定された量子化ステップサイズで時間周辺動きベクトルを逆量子化する。
ステップS423の処理が終了すると、動きベクトル逆量子化部124は、処理を図13に戻す。
以上のように、動きベクトルの各成分の内、大きい方に合わせて量子化・逆量子化することにより、画像符号化装置100は、より確実に、動きベクトルバッファ123に格納する動きベクトルの情報量を低減させることができる。
なお、以上においては、画像符号化装置100において行われる量子化・逆量子化について説明したが、画像復号装置200において行われる量子化・逆量子化も、上述したのと同様に成分毎に互いに独立して行うことができる。
また、以上においては、時間周辺動き情報として使用される動き情報の情報量を低減するように説明したが、これに限らず、空間周辺動き情報として使用される動き情報の情報量を低減させるようにしてもよい。
なお、本技術は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本技術は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本技術は、それらの画像符号化装置および画像復号装置などに含まれる動き予測補償装置にも適用することができる。
<5.第5の実施の形態>
[コンピュータ]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
[コンピュータ]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
図25において、パーソナルコンピュータ500のCPU(Central Processing Unit)501は、ROM(Read Only Memory)502に記憶されているプログラム、または記憶部513からRAM(Random Access Memory)503にロードされたプログラムに従って各種の処理を実行する。RAM503にはまた、CPU501が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU501、ROM502、およびRAM503は、バス504を介して相互に接続されている。このバス504にはまた、入出力インタフェース510も接続されている。
入出力インタフェース510には、キーボード、マウスなどよりなる入力部511、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部512、ハードディスクなどより構成される記憶部513、モデムなどより構成される通信部514が接続されている。通信部514は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース510にはまた、必要に応じてドライブ515が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア521が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部513にインストールされる。
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図25に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、若しくは半導体メモリなどよりなるリムーバブルメディア521により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM502や、記憶部513に含まれるハードディスクなどで構成される。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本技術は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
上述した実施形態に係る画像符号化装置及び画像復号装置は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
<6.第6の実施の形態>
[第1の応用例:テレビジョン受像機]
図26は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース909、制御部910、ユーザインタフェース911、及びバス912を備える。
[第1の応用例:テレビジョン受像機]
図26は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース909、制御部910、ユーザインタフェース911、及びバス912を備える。
チューナ902は、アンテナ901を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ902は、復調により得られた符号化ビットストリームをデマルチプレクサ903へ出力する。即ち、チューナ902は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送部としての役割を有する。
デマルチプレクサ903は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ904へ出力する。また、デマルチプレクサ903は、符号化ビットストリームからEPG(Electronic Program Guide)などの補助的なデータを抽出し、抽出したデータを制御部910に供給する。なお、デマルチプレクサ903は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
デコーダ904は、デマルチプレクサ903から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ904は、復号処理により生成される映像データを映像信号処理部905へ出力する。また、デコーダ904は、復号処理により生成される音声データを音声信号処理部907へ出力する。
映像信号処理部905は、デコーダ904から入力される映像データを再生し、表示部906に映像を表示させる。また、映像信号処理部905は、ネットワークを介して供給されるアプリケーション画面を表示部906に表示させてもよい。また、映像信号処理部905は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部905は、例えばメニュー、ボタン又はカーソルなどのGUI(Graphical User Interface)の画像を生成し、生成した画像を出力画像に重畳してもよい。
表示部906は、映像信号処理部905から供給される駆動信号により駆動され、表示デバイス(例えば、液晶ディスプレイ、プラズマディスプレイ又はOELD(Organic ElectroLuminescence Display)(有機ELディスプレイ)など)の映像面上に映像又は画像を表示する。
音声信号処理部907は、デコーダ904から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ908から音声を出力させる。また、音声信号処理部907は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
外部インタフェース909は、テレビジョン装置900と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース909を介して受信される映像ストリーム又は音声ストリームが、デコーダ904により復号されてもよい。即ち、外部インタフェース909もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送部としての役割を有する。
制御部910は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置900の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース911から入力される操作信号に応じて、テレビジョン装置900の動作を制御する。
ユーザインタフェース911は、制御部910と接続される。ユーザインタフェース911は、例えば、ユーザがテレビジョン装置900を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース911は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部910へ出力する。
バス912は、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、音声信号処理部907、外部インタフェース909及び制御部910を相互に接続する。
このように構成されたテレビジョン装置900において、デコーダ904は、上述した実施形態に係る画像復号装置の機能を有する。それにより、テレビジョン装置900での画像の復号に際して、動きベクトルを格納するのに必要な記憶容量の増大を抑制することができる。
<7.第7の実施の形態>
[第2の応用例:携帯電話機]
図27は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、及びバス933を備える。
[第2の応用例:携帯電話機]
図27は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、及びバス933を備える。
アンテナ921は、通信部922に接続される。スピーカ924及びマイクロホン925は、音声コーデック923に接続される。操作部932は、制御部931に接続される。バス933は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、及び制御部931を相互に接続する。
携帯電話機920は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
音声通話モードにおいて、マイクロホン925により生成されるアナログ音声信号は、音声コーデック923に供給される。音声コーデック923は、アナログ音声信号を音声データへ変換し、変換された音声データをA/D変換し圧縮する。そして、音声コーデック923は、圧縮後の音声データを通信部922へ出力する。通信部922は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック923へ出力する。音声コーデック923は、音声データを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
また、データ通信モードにおいて、例えば、制御部931は、操作部932を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部931は、文字を表示部930に表示させる。また、制御部931は、操作部932を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部922へ出力する。通信部922は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部931へ出力する。制御部931は、表示部930に電子メールの内容を表示させると共に、電子メールデータを記録再生部929の記憶媒体に記憶させる。
記録再生部929は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、RAM又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USB(Unallocated Space Bitmap)メモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
また、撮影モードにおいて、例えば、カメラ部926は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部927へ出力する。画像処理部927は、カメラ部926から入力される画像データを符号化し、符号化ストリームを記憶再生部929の記憶媒体に記憶させる。
また、テレビ電話モードにおいて、例えば、多重分離部928は、画像処理部927により符号化された映像ストリームと、音声コーデック923から入力される音声ストリームとを多重化し、多重化したストリームを通信部922へ出力する。通信部922は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部922は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部928へ出力する。多重分離部928は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部927、音声ストリームを音声コーデック923へ出力する。画像処理部927は、映像ストリームを復号し、映像データを生成する。映像データは、表示部930に供給され、表示部930により一連の画像が表示される。音声コーデック923は、音声ストリームを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
このように構成された携帯電話機920において、画像処理部927は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、携帯電話機920での画像の符号化及び復号に際して、動きベクトルを格納するのに必要な記憶容量の増大を抑制することができる。
<8.第8の実施の形態>
[第3の応用例:記録再生装置]
図28は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データ及び映像データを復号する。
[第3の応用例:記録再生装置]
図28は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データ及び映像データを復号する。
記録再生装置940は、チューナ941、外部インタフェース942、エンコーダ943、HDD(Hard Disk Drive)944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)948、制御部949、及びユーザインタフェース950を備える。
チューナ941は、アンテナ(図示せず)を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ941は、復調により得られた符号化ビットストリームをセレクタ946へ出力する。即ち、チューナ941は、記録再生装置940における伝送部としての役割を有する。
外部インタフェース942は、記録再生装置940と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース942は、例えば、IEEE1394インタフェース、ネットワークインタフェース、USBインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース942を介して受信される映像データ及び音声データは、エンコーダ943へ入力される。即ち、外部インタフェース942は、記録再生装置940における伝送部としての役割を有する。
エンコーダ943は、外部インタフェース942から入力される映像データ及び音声データが符号化されていない場合に、映像データ及び音声データを符号化する。そして、エンコーダ943は、符号化ビットストリームをセレクタ946へ出力する。
HDD944は、映像及び音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラム及びその他のデータを内部のハードディスクに記録する。また、HDD944は、映像及び音声の再生時に、これらデータをハードディスクから読み出す。
ディスクドライブ945は、装着されている記録媒体へのデータの記録及び読み出しを行う。ディスクドライブ945に装着される記録媒体は、例えばDVDディスク(DVD-Video、DVD-RAM、DVD-R、DVD-RW、DVD+R、DVD+RW等)又はBlu-ray(登録商標)ディスクなどであってよい。
セレクタ946は、映像及び音声の記録時には、チューナ941又はエンコーダ943から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD944又はディスクドライブ945へ出力する。また、セレクタ946は、映像及び音声の再生時には、HDD944又はディスクドライブ945から入力される符号化ビットストリームをデコーダ947へ出力する。
デコーダ947は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ947は、生成した映像データをOSD948へ出力する。また、デコーダ904は、生成した音声データを外部のスピーカへ出力する。
OSD948は、デコーダ947から入力される映像データを再生し、映像を表示する。また、OSD948は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
制御部949は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置940の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース950から入力される操作信号に応じて、記録再生装置940の動作を制御する。
ユーザインタフェース950は、制御部949と接続される。ユーザインタフェース950は、例えば、ユーザが記録再生装置940を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース950は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部949へ出力する。
このように構成された記録再生装置940において、エンコーダ943は、上述した実施形態に係る画像符号化装置の機能を有する。また、デコーダ947は、上述した実施形態に係る画像復号装置の機能を有する。それにより、記録再生装置940での画像の符号化及び復号に際して、動きベクトルを格納するのに必要な記憶容量の増大を抑制することができる。
<9.第9の実施の形態>
[第4の応用例:撮像装置]
図29は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
[第4の応用例:撮像装置]
図29は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
撮像装置960は、光学ブロック961、撮像部962、信号処理部963、画像処理部964、表示部965、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、制御部970、ユーザインタフェース971、及びバス972を備える。
光学ブロック961は、撮像部962に接続される。撮像部962は、信号処理部963に接続される。表示部965は、画像処理部964に接続される。ユーザインタフェース971は、制御部970に接続される。バス972は、画像処理部964、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、及び制御部970を相互に接続する。
光学ブロック961は、フォーカスレンズ及び絞り機構などを有する。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)などのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部962は、画像信号を信号処理部963へ出力する。
信号処理部963は、撮像部962から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部963は、カメラ信号処理後の画像データを画像処理部964へ出力する。
画像処理部964は、信号処理部963から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部964は、生成した符号化データを外部インタフェース966又はメディアドライブ968へ出力する。また、画像処理部964は、外部インタフェース966又はメディアドライブ968から入力される符号化データを復号し、画像データを生成する。そして、画像処理部964は、生成した画像データを表示部965へ出力する。また、画像処理部964は、信号処理部963から入力される画像データを表示部965へ出力して画像を表示させてもよい。また、画像処理部964は、OSD969から取得される表示用データを、表示部965へ出力する画像に重畳してもよい。
OSD969は、例えばメニュー、ボタン又はカーソルなどのGUIの画像を生成して、生成した画像を画像処理部964へ出力する。
外部インタフェース966は、例えばUSB入出力端子として構成される。外部インタフェース966は、例えば、画像の印刷時に、撮像装置960とプリンタとを接続する。また、外部インタフェース966には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置960にインストールされ得る。さらに、外部インタフェース966は、LAN又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース966は、撮像装置960における伝送部としての役割を有する。
メディアドライブ968に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ968に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はSSD(Solid State Drive)のような非可搬性の記憶部が構成されてもよい。
制御部970は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置960の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース971から入力される操作信号に応じて、撮像装置960の動作を制御する。
ユーザインタフェース971は、制御部970と接続される。ユーザインタフェース971は、例えば、ユーザが撮像装置960を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース971は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部970へ出力する。
このように構成された撮像装置960において、画像処理部964は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、撮像装置960での画像の符号化及び復号に際して、動きベクトルを格納するのに必要な記憶容量の増大を抑制することができる。
なお、本明細書では、閾値などの様々な情報が、符号化ストリームのヘッダに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、本技術は以下のような構成も取ることができる。
(1) 画像の動き予測において、処理対象である前記画像の当該領域の動きベクトルの予測の際に参照される、当該領域の周辺領域の動きベクトルの情報量を低減させる低減部と、
前記低減部により情報量が低減された前記動きベクトルを記憶する記憶部と
を備える画像処理装置。
(2) 前記低減部は、前記動きベクトルを量子化することにより、前記動きベクトルの情報量を低減させ、
前記記憶部は、量子化された前記動きベクトルを記憶する
前記(1)に記載の画像処理装置。
(3) 前記低減部は、前記動きベクトルの大きさに応じて、量子化ステップサイズを決定し、決定した前記量子化ステップサイズで前記動きベクトルを量子化する
前記(2)に記載の画像処理装置。
(4) 前記低減部は、前記動きベクトルがより大きいほど、前記量子化ステップサイズをより大きな値に決定する
前記(3)に記載の画像処理装置。
(5) 前記低減部は、閾値を設定し、前記動きベクトルの大きさを前記閾値を用いて判定し、その判定結果に応じて、前記量子化ステップサイズを決定し、決定した前記量子化ステップサイズで前記動きベクトルを量子化する
前記(3)または(4)に記載の画像処理装置。
(6) 前記低減部は、プロファイル・レベルに応じて前記閾値を設定する
前記(5)に記載の画像処理装置。
(7) 前記プロファイル・レベルは、前記画像のサイズ、若しくは、前記動きベクトルの少数精度である
前記(6)に記載の画像処理装置。
(8) 前記低減部は、前記動きベクトルの各成分の大きさを前記閾値を用いて判定し、より大きな成分の判定結果に応じて前記量子化ステップサイズを決定し、決定した前記量子化ステップサイズで前記動きベクトルを量子化する
前記(5)乃至(7)のいずれかに記載の画像処理装置。
(9) 前記閾値を符号化する符号化部をさらに備える
前記(5)乃至(8)のいずれかに記載の画像処理装置。
(10) 前記低減部は、上限値以上の値を全て前記上限値に変更するクリップ処理により、前記動きベクトルの情報量を低減させる
前記(1)に記載の画像処理装置。
(11) 前記低減部は、前記動きベクトルの情報量を、前記動きベクトルの成分毎に低減させる
前記(1)乃至(10)のいずれかに記載の画像処理装置。
(12) 前記低減部は、前記動きベクトルの成分毎に閾値を設定し、前記動きベクトルの各成分の大きさを、その成分の閾値を用いて判定し、その判定結果に応じて、前記量子化ステップサイズを成分毎に決定し、決定した前記量子化ステップサイズで前記動きベクトルの各成分を量子化する
前記(11)に記載の画像処理装置。
(13) 前記記憶部に記憶されている、量子化された動きベクトルを読み出し、逆量子化する逆量子化部をさらに備える
前記(2)乃至(12)のいずれかに記載の画像処理装置。
(14) 前記低減部は、閾値を設定し、前記動きベクトルの大きさを前記閾値を用いて判定し、その判定結果に応じて前記量子化ステップサイズを決定し、決定した量子化ステップサイズで前記動きベクトルを量子化し、
前記逆量子化部は、前記閾値を用いて、前記記憶部から読み出した、量子化された動きベクトルの大きさを判定し、その判定結果に応じて量子化ステップサイズを決定し、決定した量子化ステップサイズで、量子化された前記動きベクトルを逆量子化する
前記(13)に記載の画像処理装置。
(15) 前記逆量子化部により逆量子化された前記動きベクトルを時間周辺動きベクトルとして利用し、当該領域の予測動きベクトルを生成する予測動きベクトル生成部をさらに備える
前記(13)または(14)に記載の画像処理装置。
(16) 前記逆量子化部により逆量子化された前記動きベクトルを時間周辺動きベクトルとして利用し、当該領域の予測動きベクトルを再構築する予測動きベクトル再構築部をさらに備える
前記(13)または(14)に記載の画像処理装置。
(17) 閾値を取得する閾値取得部をさらに備え、
前記低減部は、前記動きベクトルの大きさを、前記閾値取得部により取得された前記閾値を用いて判定し、その判定結果に応じて、前記量子化ステップサイズを決定し、決定した前記量子化ステップサイズで前記動きベクトルを量子化する
前記(3)乃至(16)のいずれかに記載の画像処理装置。
(18) 前記閾値取得部により取得された前記閾値を用いて、前記記憶部から読み出した、量子化された前記動きベクトルの大きさを判定し、その判定結果に応じて量子化ステップサイズを決定し、決定した量子化ステップサイズで、量子化された前記動きベクトルを逆量子化する逆量子化部と、
前記逆量子化部により逆量子化された前記動きベクトルを時間周辺動きベクトルとして利用し、当該領域の予測動きベクトルを再構築する予測動きベクトル再構築部と
をさらに備える
前記(17)に記載の画像処理装置。
(19) 前記閾値取得部は、シーケンスパラメータセットに格納されている前記閾値を取得する
前記(17)または(18)に記載の画像処理装置。
(20) 画像処理装置の画像処理方法であって、
低減部が、画像の動き予測において、処理対象である前記画像の当該領域の動きベクトルの予測の際に参照される、当該領域の周辺領域の動きベクトルの情報量を低減させ、
記憶部が、情報量が低減された前記動きベクトルを記憶する
画像処理方法。
(1) 画像の動き予測において、処理対象である前記画像の当該領域の動きベクトルの予測の際に参照される、当該領域の周辺領域の動きベクトルの情報量を低減させる低減部と、
前記低減部により情報量が低減された前記動きベクトルを記憶する記憶部と
を備える画像処理装置。
(2) 前記低減部は、前記動きベクトルを量子化することにより、前記動きベクトルの情報量を低減させ、
前記記憶部は、量子化された前記動きベクトルを記憶する
前記(1)に記載の画像処理装置。
(3) 前記低減部は、前記動きベクトルの大きさに応じて、量子化ステップサイズを決定し、決定した前記量子化ステップサイズで前記動きベクトルを量子化する
前記(2)に記載の画像処理装置。
(4) 前記低減部は、前記動きベクトルがより大きいほど、前記量子化ステップサイズをより大きな値に決定する
前記(3)に記載の画像処理装置。
(5) 前記低減部は、閾値を設定し、前記動きベクトルの大きさを前記閾値を用いて判定し、その判定結果に応じて、前記量子化ステップサイズを決定し、決定した前記量子化ステップサイズで前記動きベクトルを量子化する
前記(3)または(4)に記載の画像処理装置。
(6) 前記低減部は、プロファイル・レベルに応じて前記閾値を設定する
前記(5)に記載の画像処理装置。
(7) 前記プロファイル・レベルは、前記画像のサイズ、若しくは、前記動きベクトルの少数精度である
前記(6)に記載の画像処理装置。
(8) 前記低減部は、前記動きベクトルの各成分の大きさを前記閾値を用いて判定し、より大きな成分の判定結果に応じて前記量子化ステップサイズを決定し、決定した前記量子化ステップサイズで前記動きベクトルを量子化する
前記(5)乃至(7)のいずれかに記載の画像処理装置。
(9) 前記閾値を符号化する符号化部をさらに備える
前記(5)乃至(8)のいずれかに記載の画像処理装置。
(10) 前記低減部は、上限値以上の値を全て前記上限値に変更するクリップ処理により、前記動きベクトルの情報量を低減させる
前記(1)に記載の画像処理装置。
(11) 前記低減部は、前記動きベクトルの情報量を、前記動きベクトルの成分毎に低減させる
前記(1)乃至(10)のいずれかに記載の画像処理装置。
(12) 前記低減部は、前記動きベクトルの成分毎に閾値を設定し、前記動きベクトルの各成分の大きさを、その成分の閾値を用いて判定し、その判定結果に応じて、前記量子化ステップサイズを成分毎に決定し、決定した前記量子化ステップサイズで前記動きベクトルの各成分を量子化する
前記(11)に記載の画像処理装置。
(13) 前記記憶部に記憶されている、量子化された動きベクトルを読み出し、逆量子化する逆量子化部をさらに備える
前記(2)乃至(12)のいずれかに記載の画像処理装置。
(14) 前記低減部は、閾値を設定し、前記動きベクトルの大きさを前記閾値を用いて判定し、その判定結果に応じて前記量子化ステップサイズを決定し、決定した量子化ステップサイズで前記動きベクトルを量子化し、
前記逆量子化部は、前記閾値を用いて、前記記憶部から読み出した、量子化された動きベクトルの大きさを判定し、その判定結果に応じて量子化ステップサイズを決定し、決定した量子化ステップサイズで、量子化された前記動きベクトルを逆量子化する
前記(13)に記載の画像処理装置。
(15) 前記逆量子化部により逆量子化された前記動きベクトルを時間周辺動きベクトルとして利用し、当該領域の予測動きベクトルを生成する予測動きベクトル生成部をさらに備える
前記(13)または(14)に記載の画像処理装置。
(16) 前記逆量子化部により逆量子化された前記動きベクトルを時間周辺動きベクトルとして利用し、当該領域の予測動きベクトルを再構築する予測動きベクトル再構築部をさらに備える
前記(13)または(14)に記載の画像処理装置。
(17) 閾値を取得する閾値取得部をさらに備え、
前記低減部は、前記動きベクトルの大きさを、前記閾値取得部により取得された前記閾値を用いて判定し、その判定結果に応じて、前記量子化ステップサイズを決定し、決定した前記量子化ステップサイズで前記動きベクトルを量子化する
前記(3)乃至(16)のいずれかに記載の画像処理装置。
(18) 前記閾値取得部により取得された前記閾値を用いて、前記記憶部から読み出した、量子化された前記動きベクトルの大きさを判定し、その判定結果に応じて量子化ステップサイズを決定し、決定した量子化ステップサイズで、量子化された前記動きベクトルを逆量子化する逆量子化部と、
前記逆量子化部により逆量子化された前記動きベクトルを時間周辺動きベクトルとして利用し、当該領域の予測動きベクトルを再構築する予測動きベクトル再構築部と
をさらに備える
前記(17)に記載の画像処理装置。
(19) 前記閾値取得部は、シーケンスパラメータセットに格納されている前記閾値を取得する
前記(17)または(18)に記載の画像処理装置。
(20) 画像処理装置の画像処理方法であって、
低減部が、画像の動き予測において、処理対象である前記画像の当該領域の動きベクトルの予測の際に参照される、当該領域の周辺領域の動きベクトルの情報量を低減させ、
記憶部が、情報量が低減された前記動きベクトルを記憶する
画像処理方法。
100 画像符号化装置, 115 動き予測・補償部, 121 動きベクトル符号化部, 122 動きベクトル量子化部, 123 動きベクトルバッファ, 124 動きベクトル逆量子化部, 141 予測動きベクトル生成部, 200 画像復号装置, 212 動き予測・補償部, 221 動きベクトル復号部, 222 動きベクトル量子化部, 223 動きベクトルバッファ, 224 動きベクトル逆量子化部, 231 差分動き情報バッファ, 232 予測動き情報バッファ, 233 閾値バッファ, 234 動き情報再構築部, 235 動き補償部, 241 予測動きベクトル再構築部
Claims (20)
- 画像の動き予測において、処理対象である前記画像の当該領域の動きベクトルの予測の際に参照される、当該領域の周辺領域の動きベクトルの情報量を低減させる低減部と、
前記低減部により情報量が低減された前記動きベクトルを記憶する記憶部と
を備える画像処理装置。 - 前記低減部は、前記動きベクトルを量子化することにより、前記動きベクトルの情報量を低減させ、
前記記憶部は、量子化された前記動きベクトルを記憶する
請求項1に記載の画像処理装置。 - 前記低減部は、前記動きベクトルの大きさに応じて、量子化ステップサイズを決定し、決定した前記量子化ステップサイズで前記動きベクトルを量子化する
請求項2に記載の画像処理装置。 - 前記低減部は、前記動きベクトルがより大きいほど、前記量子化ステップサイズをより大きな値に決定する
請求項3に記載の画像処理装置。 - 前記低減部は、閾値を設定し、前記動きベクトルの大きさを前記閾値を用いて判定し、その判定結果に応じて、前記量子化ステップサイズを決定し、決定した前記量子化ステップサイズで前記動きベクトルを量子化する
請求項3に記載の画像処理装置。 - 前記低減部は、プロファイル・レベルに応じて前記閾値を設定する
請求項5に記載の画像処理装置。 - 前記プロファイル・レベルは、前記画像のサイズ、若しくは、前記動きベクトルの少数精度である
請求項6に記載の画像処理装置。 - 前記低減部は、前記動きベクトルの各成分の大きさを前記閾値を用いて判定し、より大きな成分の判定結果に応じて前記量子化ステップサイズを決定し、決定した前記量子化ステップサイズで前記動きベクトルを量子化する
請求項5に記載の画像処理装置。 - 前記閾値を符号化する符号化部をさらに備える
請求項5に記載の画像処理装置。 - 前記低減部は、上限値以上の値を全て前記上限値に変更するクリップ処理により、前記動きベクトルの情報量を低減させる
請求項1に記載の画像処理装置。 - 前記低減部は、前記動きベクトルの情報量を、前記動きベクトルの成分毎に低減させる
請求項1に記載の画像処理装置。 - 前記低減部は、前記動きベクトルの成分毎に閾値を設定し、前記動きベクトルの各成分の大きさを、その成分の閾値を用いて判定し、その判定結果に応じて、前記量子化ステップサイズを成分毎に決定し、決定した前記量子化ステップサイズで前記動きベクトルの各成分を量子化する
請求項11に記載の画像処理装置。 - 前記記憶部に記憶されている、量子化された動きベクトルを読み出し、逆量子化する逆量子化部をさらに備える
請求項2に記載の画像処理装置。 - 前記低減部は、閾値を設定し、前記動きベクトルの大きさを前記閾値を用いて判定し、その判定結果に応じて前記量子化ステップサイズを決定し、決定した量子化ステップサイズで前記動きベクトルを量子化し、
前記逆量子化部は、前記閾値を用いて、前記記憶部から読み出した、量子化された動きベクトルの大きさを判定し、その判定結果に応じて量子化ステップサイズを決定し、決定した量子化ステップサイズで、量子化された前記動きベクトルを逆量子化する
請求項13に記載の画像処理装置。 - 前記逆量子化部により逆量子化された前記動きベクトルを時間周辺動きベクトルとして利用し、当該領域の予測動きベクトルを生成する予測動きベクトル生成部をさらに備える
請求項13に記載の画像処理装置。 - 前記逆量子化部により逆量子化された前記動きベクトルを時間周辺動きベクトルとして利用し、当該領域の予測動きベクトルを再構築する予測動きベクトル再構築部をさらに備える
請求項13に記載の画像処理装置。 - 閾値を取得する閾値取得部をさらに備え、
前記低減部は、前記動きベクトルの大きさを、前記閾値取得部により取得された前記閾値を用いて判定し、その判定結果に応じて、前記量子化ステップサイズを決定し、決定した前記量子化ステップサイズで前記動きベクトルを量子化する
請求項3に記載の画像処理装置。 - 前記閾値取得部により取得された前記閾値を用いて、前記記憶部から読み出した、量子化された前記動きベクトルの大きさを判定し、その判定結果に応じて量子化ステップサイズを決定し、決定した量子化ステップサイズで、量子化された前記動きベクトルを逆量子化する逆量子化部と、
前記逆量子化部により逆量子化された前記動きベクトルを時間周辺動きベクトルとして利用し、当該領域の予測動きベクトルを再構築する予測動きベクトル再構築部と
をさらに備える
請求項17に記載の画像処理装置。 - 前記閾値取得部は、シーケンスパラメータセットに格納されている前記閾値を取得する
請求項17に記載の画像処理装置。 - 画像処理装置の画像処理方法であって、
低減部が、画像の動き予測において、処理対象である前記画像の当該領域の動きベクトルの予測の際に参照される、当該領域の周辺領域の動きベクトルの情報量を低減させ、
記憶部が、情報量が低減された前記動きベクトルを記憶する
画像処理方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011-143574 | 2011-06-28 | ||
JP2011143574A JP2013012860A (ja) | 2011-06-28 | 2011-06-28 | 画像処理装置および方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2013002105A1 true WO2013002105A1 (ja) | 2013-01-03 |
Family
ID=47424002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2012/065814 WO2013002105A1 (ja) | 2011-06-28 | 2012-06-21 | 画像処理装置および方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2013012860A (ja) |
WO (1) | WO2013002105A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113498609A (zh) * | 2018-12-31 | 2021-10-12 | 北京达佳互联信息技术有限公司 | 用于视频编解码的依赖图片分辨率的配置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04189093A (ja) * | 1990-11-22 | 1992-07-07 | Victor Co Of Japan Ltd | 動き補償装置 |
JP2008311987A (ja) * | 2007-06-15 | 2008-12-25 | Sharp Corp | 動画像符号化装置及び動画像復号装置 |
-
2011
- 2011-06-28 JP JP2011143574A patent/JP2013012860A/ja not_active Withdrawn
-
2012
- 2012-06-21 WO PCT/JP2012/065814 patent/WO2013002105A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04189093A (ja) * | 1990-11-22 | 1992-07-07 | Victor Co Of Japan Ltd | 動き補償装置 |
JP2008311987A (ja) * | 2007-06-15 | 2008-12-25 | Sharp Corp | 動画像符号化装置及び動画像復号装置 |
Non-Patent Citations (11)
Title |
---|
BIN LI ET AL.: "On motion information compression", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 5TH MEETING, March 2011 (2011-03-01), GENEVA, CH * |
EDOUARD FRANCOIS ET AL.: "On memory compression for motion vector prediction", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 5TH MEETING, March 2011 (2011-03-01), GENEVA, CH * |
IL-KOO KIM ET AL.: "Improved motion vector decimation", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 5TH MEETING, March 2011 (2011-03-01), GENEVA, CH * |
SEUNGWOOK PARK ET AL.: "Modifications of temporal mv memory compression and temporal mv predictor", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 5TH MEETING, March 2011 (2011-03-01), GENEVA, CH * |
SHIGERU FUKUSHIMA ET AL.: "Partition size based selection for motion vector compression", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 5TH MEETING, March 2011 (2011-03-01), GENEVA, CH * |
SUNG-CHANG LIM ET AL.: "Dynamic range restriction of temporal motion vector", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 5TH MEETING, March 2011 (2011-03-01), GENEVA, CH * |
TAICHIRO SHIODERA ET AL.: "Modified motion vector memory compression", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 5TH MEETING, March 2011 (2011-03-01), GENEVA, CH * |
TOSHIYASU SUGIO ET AL.: "Modified motion vector compression method", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 5TH MEETING, March 2011 (2011-03-01), GENEVA, CH * |
XUN GUO ET AL.: "Motion Vector Decimation for Temporal Prediction", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 5TH MEETING, March 2011 (2011-03-01), GENEVA, CH * |
YEPING SU ET AL.: "CE9: Reduced resolution storage of motion vector data", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/ SC29/WG11 4TH MEETING, January 2011 (2011-01-01), DAEGU, KR * |
YEPING SU ET AL.: "On motion vector competition", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 3TH MEETING, October 2010 (2010-10-01), GUANGZHOU, CN * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113498609A (zh) * | 2018-12-31 | 2021-10-12 | 北京达佳互联信息技术有限公司 | 用于视频编解码的依赖图片分辨率的配置 |
CN113498609B (zh) * | 2018-12-31 | 2023-06-20 | 北京达佳互联信息技术有限公司 | 用于视频编解码的依赖图片分辨率的配置 |
Also Published As
Publication number | Publication date |
---|---|
JP2013012860A (ja) | 2013-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200252648A1 (en) | Image processing device and method | |
JP5979405B2 (ja) | 画像処理装置および方法 | |
US10110920B2 (en) | Image processing apparatus and method | |
WO2011125411A1 (ja) | 画像処理装置および方法 | |
WO2013058363A1 (ja) | 画像処理装置および方法 | |
JP5936081B2 (ja) | 画像処理装置および方法 | |
WO2012157538A1 (ja) | 画像処理装置および方法 | |
WO2013002109A1 (ja) | 画像処理装置および方法 | |
WO2013002108A1 (ja) | 画像処理装置および方法 | |
US20150304678A1 (en) | Image processing device and method | |
WO2012173022A1 (ja) | 画像処理装置および方法 | |
WO2013065568A1 (ja) | 画像処理装置および方法 | |
WO2013084775A1 (ja) | 画像処理装置および方法 | |
JP2012019447A (ja) | 画像処理装置および方法 | |
JP5768491B2 (ja) | 画像処理装置および方法、プログラム、並びに記録媒体 | |
WO2013054751A1 (ja) | 画像処理装置および方法 | |
WO2013002105A1 (ja) | 画像処理装置および方法 | |
JP2016201831A (ja) | 画像処理装置および方法 | |
JP2012147331A (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: 12804819 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: 12804819 Country of ref document: EP Kind code of ref document: A1 |