WO2015163146A1 - 符号化装置および符号化方法 - Google Patents
符号化装置および符号化方法 Download PDFInfo
- Publication number
- WO2015163146A1 WO2015163146A1 PCT/JP2015/060927 JP2015060927W WO2015163146A1 WO 2015163146 A1 WO2015163146 A1 WO 2015163146A1 JP 2015060927 W JP2015060927 W JP 2015060927W WO 2015163146 A1 WO2015163146 A1 WO 2015163146A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- prediction
- image
- unit
- encoding
- motion vector
- 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/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/109—Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- 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
-
- 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/53—Multi-resolution motion estimation; Hierarchical motion estimation
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/182—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
Definitions
- the present disclosure relates to an encoding device and an encoding method, and more particularly, to an encoding device and an encoding method capable of reducing a storage capacity required for bidirectional prediction.
- JCTVC Joint Collaboration Team-Video Coding
- HEVC High Efficiency Video Coding
- AVC Advanced Video Coding
- HEVC High Efficiency Video Coding
- motion vector with fractional pixel accuracy decimal pixel accuracy
- BiP bi-directional prediction
- Motion compensation is performed.
- the resulting 14-bit predicted image in each prediction direction is rounded to 8 bits and averaged to generate a final predicted image.
- the prediction image in each prediction direction of 14 bits is not rounded but is averaged as it is to generate a final prediction image. Accordingly, although the accuracy of the predicted image is improved as compared with the AVC method, the storage capacity required for the cache that holds the predicted image in each prediction direction before averaging is increased. This is the same when the prediction mode is the merge mode.
- bi-directional prediction it is necessary to hold a reference image in two directions in a cache in order to detect a motion vector and perform motion compensation. Therefore, the storage capacity required for the cache holding the reference image is larger than that in the one-way prediction.
- the present disclosure has been made in view of such a situation, and is intended to reduce the storage capacity necessary for bidirectional prediction.
- the encoding device when performing bi-directional prediction on an image, converts the motion vector with fractional pixel accuracy of the image into a motion vector with integer pixel accuracy for each prediction direction.
- a prediction image generation unit that generates a prediction image for bidirectional prediction of the image based on a motion vector with integer pixel accuracy for each prediction direction converted by the accuracy conversion unit, and the prediction image generation unit. It is an encoding apparatus provided with the encoding part which encodes the said image according to the block structure divided
- the encoding method according to the first aspect of the present disclosure corresponds to the encoding device according to the first aspect of the present disclosure.
- a fractional pixel-accuracy motion vector of the image is converted into an integer pixel-accuracy motion vector for each prediction direction.
- a block structure in which a prediction image of bidirectional prediction of the image is generated based on a motion vector of integer pixel accuracy for each prediction direction, and the image is recursively divided using the prediction image of bidirectional prediction Are encoded according to
- the encoding device When generating a predicted image for an image, the encoding device according to the second aspect of the present disclosure performs only forward prediction or backward prediction on the image in units of a plurality of LCUs (Largest Coding Unit).
- the encoding device includes a direction-limiting prediction unit that limits the image and a coding unit that codes the image according to a block structure that is recursively divided using the predicted image.
- the encoding method according to the second aspect of the present disclosure corresponds to the encoding device according to the second aspect of the present disclosure.
- the image when generating a prediction image for an image, only forward prediction or backward prediction is performed on the image in units of a plurality of LCUs (Largest Coding Unit). Using the predicted image, the image is encoded according to a block structure that is recursively divided.
- LCUs Large Coding Unit
- the encoding devices of the first and second aspects can be realized by causing a computer to execute a program.
- a program to be executed by a computer can be provided by being transmitted through a transmission medium or by being recorded on a recording medium.
- the encoding devices of the first and second aspects may be independent devices, or may be internal blocks constituting one device.
- an image can be encoded. Further, according to the first and second aspects of the present disclosure, it is possible to reduce the storage capacity required for bidirectional prediction.
- FIG. 3 is a block diagram illustrating a configuration example of a motion prediction / compensation unit in FIG. 2. It is a block diagram which shows the structural example of the bidirectional
- FIG. 12 is a block diagram illustrating a configuration example of a motion prediction / compensation unit in FIG. 11. It is a block diagram which shows the structural example of the bidirectional
- FIG. 1 is a block diagram illustrating a configuration example of a first embodiment of an encoding device to which the present disclosure is applied.
- the encoding device 10 encodes an image stored in the external memory 12 using the HEVC method.
- the encoding unit 11 of the encoding device 10 includes a processing unit 21 and a cache 22.
- the image to be encoded stored in the external memory 12 is input to the processing unit 21 via the cache 22.
- the processing unit 21 performs an encoding process on an input image (hereinafter referred to as an input image). At this time, the processing unit 21 supplies and stores the intermediate result and final result of the encoding process to the cache 22 as necessary.
- the processing unit 21 reads an encoded image stored as a reference image in the cache 22 and uses it for the encoding process.
- the cache 22 temporarily stores the intermediate result and final result of the encoding process supplied from the processing unit 21.
- the cache 22 supplies the encoded image, which is the final result of the stored encoding process, to the external memory 12 for storage.
- the cache 22 temporarily stores an encoded image and an input image supplied as a reference image from the external memory 12.
- External memory 12 is composed of DRAM (Dynamic Random Access Memory) or the like.
- the external memory 12 stores the input image and the encoded image supplied from the cache 22.
- the external memory 12 supplies the stored input image to the cache 22.
- the external memory 12 supplies the stored encoded image to the cache 22 as a reference image.
- FIG. 2 is a block diagram illustrating a configuration example of the encoding unit 11 of FIG.
- the encoding unit 11 includes a deblock filter 41, an adaptive offset filter 42, a frame memory 44, a switch 45, an intra prediction unit 46, a motion prediction / compensation unit 47, a predicted image selection unit 48, and a rate control unit 49. .
- the processing unit 21 includes a unit that performs processing included in blocks other than the screen rearranging buffer 32, the accumulation buffer 37, and the frame memory 44.
- the cache 22 includes a screen rearrangement buffer 32, an accumulation buffer 37, a frame memory 44, and a unit that temporarily stores intermediate results and final results of processes included in other blocks.
- the screen rearrangement buffer 32 of the encoding unit 11 stores an input image that is a digital signal supplied from the external memory 12 of FIG.
- the screen rearrangement buffer 32 rearranges the input images in frame units in the stored display order in the order for encoding according to the GOP structure.
- the screen rearrangement buffer 32 outputs the rearranged input image to the calculation unit 33, the intra prediction unit 46, and the motion prediction / compensation unit 47.
- the calculation unit 33 functions as an encoding unit, and uses the prediction image supplied from the prediction image selection unit 48, and the input image supplied from the screen rearrangement buffer 32 according to a block structure that is recursively divided. Encode. Specifically, the calculation unit 33 performs encoding by subtracting the predicted image from the input image according to the structure of CU (Coding / Unit). The computing unit 33 outputs the resulting image to the orthogonal transform unit 34 as residual information. When the predicted image is not supplied from the predicted image selection unit 48, the calculation unit 33 outputs the image read from the screen rearrangement buffer 32 as it is to the orthogonal transform unit 34 as residual information.
- the orthogonal transform unit 34 orthogonally transforms the residual information from the calculation unit 33 in units of TU (transform unit).
- the orthogonal transform unit 34 supplies an orthogonal transform coefficient obtained as a result of the orthogonal transform to the quantization unit 35.
- the quantization unit 35 performs quantization on the orthogonal transform coefficient supplied from the orthogonal transform unit 34.
- the quantization unit 35 supplies the quantized orthogonal transform coefficient to the lossless encoding unit 36.
- the lossless encoding unit 36 acquires the intra prediction mode information indicating the optimal intra prediction mode from the intra prediction unit 46. Further, the lossless encoding unit 36 acquires, from the motion prediction / compensation unit 47, inter prediction mode information indicating the optimal inter prediction mode, motion vector information indicating a motion vector, information specifying a reference image, and the like.
- the lossless encoding unit 36 acquires offset filter information related to the offset filter from the adaptive offset filter 42.
- the lossless encoding unit 36 performs variable-length coding (for example, CAVLC (Context-Adaptive Variable Length Coding)) and arithmetic coding (for example, for the quantized orthogonal transform coefficient supplied from the quantization unit 35. , CABAC (Context-Adaptive Binary Arithmetic Coding) etc.).
- variable-length coding for example, CAVLC (Context-Adaptive Variable Length Coding)
- arithmetic coding for example, for the quantized orthogonal transform coefficient supplied from the quantization unit 35.
- CABAC Context-Adaptive Binary Arithmetic Coding
- the lossless encoding unit 36 performs lossless encoding of intra prediction mode information, inter prediction mode information, motion vector information, information for specifying a reference image, and offset filter information as encoding information related to encoding. .
- the lossless encoding unit 36 supplies the encoding information and the orthogonal transform coefficient, which have been losslessly encoded, to the accumulation buffer 37 as encoded data and accumulates them.
- the losslessly encoded encoding information may be added to the encoded data as a header portion such as a slice header.
- the accumulation buffer 37 temporarily stores the encoded data supplied from the lossless encoding unit 36.
- the accumulation buffer 37 outputs the stored encoded data.
- the quantized orthogonal transform coefficient output from the quantization unit 35 is also input to the inverse quantization unit 38.
- the inverse quantization unit 38 performs inverse quantization on the orthogonal transform coefficient quantized by the quantization unit 35 by a method corresponding to the quantization method in the quantization unit 35.
- the inverse quantization unit 38 supplies the orthogonal transform coefficient obtained as a result of the inverse quantization to the inverse orthogonal transform unit 39.
- the inverse orthogonal transform unit 39 performs inverse orthogonal transform on the orthogonal transform coefficients supplied from the inverse quantization unit 38 by a method corresponding to the orthogonal transform method in the orthogonal transform unit 34 in units of TUs.
- the inverse orthogonal transform unit 39 supplies the residual information obtained as a result to the addition unit 40.
- the addition unit 40 adds the residual information supplied from the inverse orthogonal transform unit 39 and the prediction image supplied from the prediction image selection unit 48, and performs decoding locally.
- the adding unit 40 sets the residual information supplied from the inverse orthogonal transform unit 39 as a locally decoded image.
- the adder 40 supplies the locally decoded image to the deblock filter 41 and the frame memory 44.
- the deblocking filter 41 performs a deblocking filter process for removing block distortion on the locally decoded image supplied from the adding unit 40, and supplies the resulting image to the adaptive offset filter 42.
- the adaptive offset filter 42 performs an adaptive offset filter (SAO (Sample adaptive offset)) process that mainly removes ringing on the image after the deblock filter process by the deblock filter 41.
- SAO Sample adaptive offset
- the adaptive offset filter 42 determines the type of adaptive offset filter processing for each LCU (Largest Coding Unit) which is the maximum coding unit, and obtains an offset used in the adaptive offset filter processing.
- the adaptive offset filter 42 uses the determined offset to perform the determined type of adaptive offset filter processing on the image after the deblocking filter processing.
- the adaptive offset filter 42 supplies the image after the adaptive offset filter processing to the frame memory 44. Further, the adaptive offset filter 42 supplies information indicating the type and offset of the adaptive offset filter processing performed to the lossless encoding unit 36 as offset filter information.
- the frame memory 44 stores the image supplied from the adaptive offset filter 42 and the image supplied from the adder 40. Pixels adjacent to a PU (Prediction Unit) in an image that has not been subjected to filter processing accumulated in the frame memory 44 are supplied to the intra prediction unit 46 via the switch 45 as peripheral pixels.
- PU Prediction Unit
- the filtered image stored in the frame memory 44 is supplied to and stored in the external memory 12 of FIG. 1 as an encoded image.
- the frame memory 44 stores reference images supplied from the external memory 12.
- the reference image stored in the frame memory 44 is output to the motion prediction / compensation unit 47 via the switch 45.
- the intra prediction unit 46 performs intra prediction processing in all candidate intra prediction modes using peripheral pixels read from the frame memory 44 via the switch 45 in units of PUs.
- the intra prediction unit 46 calculates a cost function for all candidate intra prediction modes based on the input image read from the screen rearrangement buffer 32 and the prediction image generated as a result of the intra prediction process. A value (details will be described later) is calculated. Then, the intra prediction unit 46 determines the intra prediction mode that minimizes the cost function value as the optimal intra prediction mode.
- the intra prediction unit 46 supplies the predicted image generated in the optimal intra prediction mode and the corresponding cost function value to the predicted image selection unit 48.
- the intra prediction unit 46 supplies the intra prediction mode information to the lossless encoding unit 36 when the prediction image selection unit 48 is notified of selection of a prediction image generated in the optimal intra prediction mode.
- the cost function value is also called RD (Rate Distortion) cost. It is calculated based on a method of High Complexity mode or Low Complexity mode as defined by JM (Joint Model) which is reference software in the H.264 / AVC format. H. Reference software in the H.264 / AVC format is published at http://iphome.hhi.de/suehring/tml/index.htm.
- D is the difference (distortion) between the original image and the decoded image
- R is the generated code amount including even the coefficient of orthogonal transformation
- ⁇ is the Lagrange undetermined multiplier given as a function of the quantization parameter QP.
- D is the difference (distortion) between the original image and the predicted image
- Header_Bit is the code amount of the encoding information
- QPtoQuant is a function given as a function of the quantization parameter QP.
- the motion prediction / compensation unit 47 performs motion prediction / compensation processing for all candidate inter prediction modes in units of PUs. Specifically, the motion prediction / compensation unit 47 selects all candidate images based on the input image supplied from the screen rearrangement buffer 32 and the reference image supplied from the frame memory 44 via the switch 45. Detect motion vectors in inter prediction mode with 1/4 pixel accuracy. Note that the inter prediction mode is a mode that indicates the size of the PU, the prediction direction, whether or not it is a merge mode, and the like.
- the motion prediction / compensation unit 47 converts a motion vector with 1/4 pixel accuracy into a motion vector with integer pixel accuracy when the candidate inter prediction mode represents bidirectional as the prediction direction. Then, the motion prediction / compensation unit 47 performs compensation processing on the reference image based on the converted motion vector with integer pixel precision, and generates a predicted image. On the other hand, when the candidate inter prediction mode represents the forward direction or the backward direction as the prediction direction, the motion prediction / compensation unit 47 uses linear interpolation for the reference image based on the motion vector with 1/4 pixel accuracy. Compensation processing is performed to generate a predicted image.
- forward prediction (L0 prediction) is prediction performed using the previous image in the display order as a reference image from the input image to be encoded
- backward prediction (L1 prediction) is the input image to be encoded. The prediction is performed by using a later image in the display order as a reference image.
- the motion prediction / compensation unit 47 calculates cost function values for all candidate inter prediction modes based on the input image and the prediction image, and selects the inter prediction mode that minimizes the cost function value as the optimal inter prediction mode. Determine the prediction mode. Then, the motion prediction / compensation unit 47 supplies the cost function value of the optimal inter prediction mode and the corresponding prediction image to the prediction image selection unit 48.
- the motion prediction / compensation unit 47 specifies the inter prediction mode information, the corresponding motion vector information, and the reference image. Information or the like is output to the lossless encoding unit 36.
- the predicted image selection unit 48 Based on the cost function values supplied from the intra prediction unit 46 and the motion prediction / compensation unit 47, the predicted image selection unit 48 has a smaller corresponding cost function value of the optimal intra prediction mode and the optimal inter prediction mode. Are determined as the optimum prediction mode. Then, the predicted image selection unit 48 supplies the predicted image in the optimal prediction mode to the calculation unit 33 and the addition unit 40. Further, the predicted image selection unit 48 notifies the intra prediction unit 46 or the motion prediction / compensation unit 47 of selection of the predicted image in the optimal prediction mode.
- the rate control unit 49 controls the quantization operation rate of the quantization unit 35 based on the encoded data stored in the storage buffer 37 so that overflow or underflow does not occur.
- FIG. 3 is a block diagram illustrating a configuration example of the motion prediction / compensation unit 47 of FIG.
- L 3 includes an L0 prediction unit 61, an L1 prediction unit 62, a bidirectional prediction unit 63, and a selection unit 64.
- the L0 prediction unit 61 of the motion prediction / compensation unit 47 performs motion prediction / compensation processing in an inter prediction mode (hereinafter referred to as L0 prediction mode) representing candidate L0 prediction in units of PUs. Specifically, for each L0 prediction mode, the L0 prediction unit 61 sets the motion vector to 1 based on the input image from the screen rearrangement buffer 32 and the reference image before the input image in the display order from the switch 45. Detect with / 4 pixel accuracy. Then, for each L0 prediction mode, the L0 prediction unit 61 performs a compensation process using linear interpolation on the reference image based on the motion vector with 1/4 pixel accuracy, and generates a predicted image.
- L0 prediction mode an inter prediction mode
- the L0 prediction unit 61 calculates a cost function value based on the input image and the predicted image for each L0 prediction mode.
- the L0 prediction unit 61 supplies the prediction image and the cost function value of each L0 prediction mode to the selection unit 64.
- the processing of the L1 prediction unit 62 is the same as the processing of the L0 prediction unit 61 except that the prediction direction is the backward direction. That is, the L1 prediction unit 62 performs motion prediction / compensation processing in an inter prediction mode (hereinafter referred to as L1 prediction mode) representing candidate L1 prediction in units of PUs. Further, the L1 prediction unit 62 calculates a cost function value based on the input image and the predicted image for each L1 prediction mode. The L1 prediction unit 62 supplies the prediction image and cost function value of each L1 prediction mode to the selection unit 64.
- L1 prediction mode an inter prediction mode representing candidate L1 prediction in units of PUs.
- the bidirectional prediction unit 63 performs motion prediction / compensation processing in an inter prediction mode (hereinafter referred to as a bidirectional prediction mode) that represents a candidate bidirectional prediction for each PU. Specifically, the bidirectional prediction unit 63 detects the forward motion vector with 1/4 pixel accuracy based on the input image and the reference image before the input image in the display order for each bidirectional prediction mode. To do. In addition, the bidirectional prediction unit 63 detects a backward motion vector with 1/4 pixel accuracy based on the input image and the reference image after the input image in the display order for each bidirectional prediction mode.
- a bidirectional prediction mode an inter prediction mode
- the bidirectional prediction unit 63 converts the detected forward and backward 1/4 pixel precision motion vectors into integer pixel precision motion vectors for each bidirectional prediction mode.
- the bidirectional prediction unit 63 performs compensation processing on the reference image based on the forward and backward motion vectors with integer pixel accuracy for each bidirectional prediction mode, and generates prediction images for L0 prediction and L1 prediction.
- the bidirectional prediction unit 63 averages the L0 prediction image and the L1 prediction image for each bidirectional prediction mode, and generates a bidirectional prediction image.
- the bidirectional prediction unit 63 calculates a cost function value based on the input image and the prediction image of the bidirectional prediction for each bidirectional prediction mode.
- the bidirectional prediction unit 63 supplies the prediction image and cost function value of each bidirectional prediction mode to the selection unit 64.
- the selection unit 64 determines the inter prediction mode corresponding to the minimum cost function value among the cost function values supplied from the L0 prediction unit 61, the L1 prediction unit 62, and the bidirectional prediction unit 63 as the optimal inter prediction mode. To do. Then, the selection unit 64 supplies the cost function value in the optimal inter prediction mode and the corresponding prediction image to the prediction image selection unit 48 in FIG. In addition, when the prediction image selection unit 48 is notified of selection of a prediction image generated in the optimal inter prediction mode, the selection unit 64 receives inter prediction mode information, corresponding motion vector information, information for specifying a reference image, and the like. It outputs to the lossless encoding part 36.
- FIG. 4 is a block diagram illustrating a configuration example of the bidirectional prediction unit 63 in FIG.
- the unit 4 includes a detection unit 81, an accuracy conversion unit 82, an intermediate prediction image generation unit 83, a memory 84, a detection unit 85, an accuracy conversion unit 86, an intermediate prediction image generation unit 87, a memory 88, and an averaging.
- the unit 89 and the calculation unit 90 are configured.
- the detection unit 81 of the bidirectional prediction unit 63 has a two-dimensional linear interpolation adaptive filter. When performing bidirectional prediction of the input image, the detection unit 81 performs forward 1/4 pixel accuracy motion vector detection processing for each candidate bidirectional prediction mode.
- the detection unit 81 performs an interpolation filter process on the input image supplied from the screen rearrangement buffer 32 in FIG. 2 using a two-dimensional linear interpolation adaptive filter, thereby increasing the input image. Make resolution.
- the detection unit 81 performs an interpolation filter process on the reference image before the display image in the display order from the input image supplied from the switch 45 in FIG. 2 using a two-dimensional linear interpolation adaptive filter. Increase the resolution.
- the detection unit 81 detects the motion vector of the input image with 1/4 pixel accuracy based on the input image and the reference image that have been increased in resolution.
- the detection unit 81 supplies the detected motion vector with 1/4 pixel accuracy to the accuracy conversion unit 82.
- the accuracy conversion unit 82 converts the motion vector with 1/4 pixel accuracy supplied from the detection unit 81 into a motion vector with integer pixel accuracy, and supplies the motion vector to the intermediate predicted image generation unit 83.
- the intermediate prediction image generation unit 83 performs L0 prediction by performing motion compensation on the reference image preceding in the display order from the input image based on the motion vector with integer pixel accuracy supplied from the accuracy conversion unit 82. .
- the intermediate predicted image generation unit 83 supplies the L0 predicted image generated as a result to the memory 84 as an intermediate predicted image.
- the memory 84 constitutes a part of the cache 22.
- the memory 84 stores a prediction image of L0 prediction supplied as an intermediate prediction image from the intermediate prediction image generation unit 83.
- the processes of the detection unit 85, the accuracy conversion unit 86, the intermediate predicted image generation unit 87, and the memory 88 are the detection unit 81, the accuracy conversion unit 82, and the intermediate predicted image generation, except that the prediction direction is the backward direction. This is the same as the processing of the unit 83 and the memory 84.
- the detection unit 85 has a two-dimensional linear interpolation adaptive filter, and when performing bidirectional prediction of an input image, a backward 1 / 4-pixel precision motion vector for each candidate bidirectional prediction mode. Perform detection processing. Then, the detection unit 85 supplies the detected motion vector with 1/4 pixel accuracy to the accuracy conversion unit 82.
- the accuracy conversion unit 86 converts the 1/4 pixel accuracy motion vector supplied from the detection unit 85 into an integer pixel accuracy motion vector, and supplies the motion vector to the intermediate predicted image generation unit 87.
- the intermediate predicted image generation unit 87 performs L1 prediction by performing motion compensation on the reference image that is later in display order than the input image, based on the motion vector with integer pixel accuracy supplied from the accuracy conversion unit 86. .
- the intermediate predicted image generation unit 87 supplies the L1 predicted image generated as a result to the memory 88 as an intermediate predicted image.
- the memory 88 constitutes a part of the cache 22.
- the memory 88 stores a prediction image of L1 prediction supplied as an intermediate prediction image from the intermediate prediction image generation unit 87.
- the averaging unit 89 reads and averages the intermediate predicted images from the memory 84 and the memory 88 for each bidirectional prediction mode.
- the averaging unit 89 supplies the averaged intermediate prediction image to the calculation unit 90 as a prediction image for bidirectional prediction.
- the intermediate predicted image generation unit 83, the memory 84, the intermediate predicted image generation unit 87, the memory 88, and the averaging unit 89 perform bidirectional input image processing based on the motion vector with integer pixel accuracy in each prediction direction. It functions as a predicted image generation unit that generates a predicted image of prediction.
- the calculation unit 90 calculates a cost function value based on the prediction image and the input image supplied from the averaging unit 89 for each bidirectional prediction mode.
- the calculation unit 90 supplies the prediction image and the cost function value of each bidirectional prediction mode to the selection unit 64 in FIG.
- FIG. 5 is a diagram for explaining the effect of the encoding device 10.
- the encoding apparatus 10 performs motion compensation using a motion vector with integer pixel accuracy during bidirectional prediction. Therefore, as shown in FIG. 5B, it is not necessary to perform linear interpolation at the time of motion compensation, and an 8-bit L0 prediction prediction image and an L1 prediction prediction image are generated from an 8-bit input image. Therefore, the storage capacity required for the memory 84 and the memory 88 constituting the cache 22 is reduced. That is, the encoding device 10 can reduce the cache storage capacity required for bidirectional prediction, compared to the case where a fractional pixel precision motion vector is used for bidirectional prediction.
- the processing amount at the time of bi-directional prediction is reduced as compared with the case where a motion vector with fractional pixel accuracy is used at the time of bi-directional prediction. Can do.
- the screen rearrangement buffer 32 of the encoding unit 11 stores the input image supplied from the external memory 12 of FIG. 1.
- step S32 the screen rearrangement buffer 32 rearranges the stored frame images in the display order in the order for encoding according to the GOP structure.
- the screen rearrangement buffer 32 supplies the rearranged frame-unit images to the calculation unit 33, the intra prediction unit 46, and the motion prediction / compensation unit 47.
- step S33 the intra prediction unit 46 performs intra prediction processing in all intra prediction modes that are candidates in PU units. Further, the intra prediction unit 46 calculates cost function values for all candidate intra prediction modes based on the image read from the screen rearrangement buffer 32 and the predicted image generated as a result of the intra prediction process. Is calculated. Then, the intra prediction unit 46 determines the intra prediction mode that minimizes the cost function value as the optimal intra prediction mode. The intra prediction unit 46 supplies the predicted image generated in the optimal intra prediction mode and the corresponding cost function value to the predicted image selection unit 48.
- the motion prediction / compensation unit 47 performs motion prediction / compensation processing for all candidate inter prediction modes in PU units.
- the motion prediction / compensation unit 47 calculates cost function values for all candidate inter prediction modes based on the images supplied from the screen rearrangement buffer 32 and the predicted images, and the cost function values are calculated.
- the minimum inter prediction mode is determined as the optimal inter prediction mode.
- the motion prediction / compensation unit 47 supplies the cost function value of the optimal inter prediction mode and the corresponding prediction image to the prediction image selection unit 48.
- step S ⁇ b> 34 the predicted image selection unit 48 has a minimum cost function value of the optimal intra prediction mode and the optimal inter prediction mode based on the cost function values supplied from the intra prediction unit 46 and the motion prediction / compensation unit 47. Is determined as the optimum prediction mode. Then, the predicted image selection unit 48 supplies the predicted image in the optimal prediction mode to the calculation unit 33 and the addition unit 40.
- step S35 the predicted image selection unit 48 determines whether or not the optimal prediction mode is the optimal inter prediction mode.
- the predicted image selection unit 48 notifies the motion prediction / compensation unit 47 of the selection of the predicted image generated in the optimal inter prediction mode.
- step S36 the motion prediction / compensation unit 47 supplies the inter prediction mode information, motion vector information, and information for specifying the reference image to the lossless encoding unit 36, and the process proceeds to step S38.
- step S35 when it is determined in step S35 that the optimal prediction mode is not the optimal inter prediction mode, that is, when the optimal prediction mode is the optimal intra prediction mode, the predicted image selection unit 48 performs the prediction generated in the optimal intra prediction mode.
- the intra prediction unit 46 is notified of the image selection.
- step S37 the intra prediction unit 46 supplies the intra prediction mode information to the lossless encoding unit 36, and the process proceeds to step S38.
- step S38 the calculation unit 33 performs encoding by subtracting the prediction image supplied from the prediction image selection unit 48 from the input image supplied from the screen rearrangement buffer 32.
- the computing unit 33 outputs the resulting image to the orthogonal transform unit 34 as residual information.
- step S39 the orthogonal transform unit 34 performs orthogonal transform on the residual information from the operation unit 33 in units of TUs, and supplies the resulting orthogonal transform coefficient to the quantization unit 35.
- step S40 the quantization unit 35 quantizes the orthogonal transform coefficient supplied from the orthogonal transform unit 34, and supplies the quantized orthogonal transform coefficient to the lossless encoding unit 36 and the inverse quantization unit 38.
- the inverse quantization unit 38 inversely quantizes the quantized coefficient supplied from the quantization unit 35, and supplies the orthogonal transform coefficient obtained as a result to the inverse orthogonal transform unit 39.
- step S42 the inverse orthogonal transform unit 39 performs inverse orthogonal transform on the orthogonal transform coefficient supplied from the inverse quantization unit 38 in units of TU, and supplies the residual information obtained as a result to the adder 40.
- step S43 the addition unit 40 adds the residual information supplied from the inverse orthogonal transform unit 39 and the prediction image supplied from the prediction image selection unit 48, and performs decoding locally.
- the adder 40 supplies the locally decoded image to the deblock filter 41 and the frame memory 44.
- step S44 the deblock filter 41 performs a deblock filter process on the locally decoded image supplied from the adder 40.
- the deblocking filter 41 supplies the resulting image to the adaptive offset filter 42.
- step S45 the adaptive offset filter 42 performs an adaptive offset filter process on the image supplied from the deblocking filter 41 for each LCU.
- the adaptive offset filter 42 supplies the resulting image to the frame memory 44. Further, the adaptive offset filter 42 supplies the offset filter information to the lossless encoding unit 36 for each LCU.
- step S46 the frame memory 44 stores the image supplied from the adaptive offset filter 42 and the image supplied from the adder 40. Pixels adjacent to the PU in the image that has not been subjected to the filter processing accumulated in the frame memory 44 are supplied as peripheral pixels to the intra prediction unit 46 via the switch 45. On the other hand, the filtered image accumulated in the frame memory 44 is supplied to and stored in the external memory 12. The frame memory 44 stores a reference image supplied from the external memory 12 as an encoded image. This reference image is output to the motion prediction / compensation unit 47 via the switch 45.
- step S47 the lossless encoding unit 36 losslessly encodes the intra prediction mode information, the inter prediction mode information, the motion vector information, the information specifying the reference image, and the offset filter information as the encoding information.
- step S48 the lossless encoding unit 36 performs lossless encoding on the quantized orthogonal transform coefficient supplied from the quantization unit 35. Then, the lossless encoding unit 36 generates encoded data from the encoding information that has been losslessly encoded in the process of step S47 and the orthogonal transform coefficient that has been losslessly encoded, and supplies the encoded data to the accumulation buffer 37.
- step S49 the accumulation buffer 37 temporarily accumulates the encoded data supplied from the lossless encoding unit 36.
- step S50 the rate control unit 49 controls the quantization operation rate of the quantization unit 35 based on the encoded data stored in the storage buffer 37 so that overflow or underflow does not occur.
- step S51 the accumulation buffer 37 outputs the stored encoded data and ends the process.
- FIG. 8 is a flowchart for explaining the details of the motion prediction / compensation process in step S33 of FIG. This motion prediction / compensation process is performed in units of PUs.
- step S61 of FIG. 8 the L0 prediction unit 61 (FIG. 3) of the motion prediction / compensation unit 47 performs motion prediction / compensation processing in a candidate L0 prediction mode, and performs L0 prediction processing for calculating a cost function value. .
- the L0 prediction unit 61 supplies the prediction image and the cost function value of each L0 prediction mode to the selection unit 64.
- step S62 the L1 prediction unit 62 performs motion prediction / compensation processing in a candidate L1 prediction mode, and performs L1 prediction processing for calculating a cost function value.
- the L1 prediction unit 62 supplies the prediction image and cost function value of each L1 prediction mode to the selection unit 64.
- step S63 the bidirectional prediction unit 63 performs motion prediction / compensation processing in a candidate bidirectional prediction mode, and performs bidirectional prediction processing for calculating a cost function value. Details of this bidirectional prediction processing will be described with reference to FIG.
- the bidirectional prediction unit 63 supplies the prediction image and cost function value of each bidirectional prediction mode to the selection unit 64.
- step S ⁇ b> 64 the selection unit 64 selects an inter prediction mode corresponding to the minimum cost function value among the cost function values supplied from the L0 prediction unit 61, the L1 prediction unit 62, and the bidirectional prediction unit 63. Determine the prediction mode.
- step S65 the selection unit 64 outputs the prediction image and cost function value in the optimal inter prediction mode to the prediction image selection unit 48 in FIG. 2, and ends the process.
- FIG. 9 is a flowchart for explaining details of the bidirectional prediction processing in step S63 of FIG. This bidirectional prediction process is performed for each candidate bidirectional prediction mode.
- step S71 of FIG. 9 the detection unit 81 (FIG. 4) of the bidirectional prediction unit 63 performs the forward 1 / 4-pixel accuracy motion vector detection process, and the detected 1 / 4-pixel accuracy motion vector. This is supplied to the accuracy conversion unit 82.
- step S72 the detection unit 85 performs backward 1/4 pixel accuracy motion vector detection processing and supplies the detected 1/4 pixel accuracy motion vector to the accuracy conversion unit 86.
- step S73 the accuracy conversion unit 82 converts the forward 1/4 pixel accuracy motion vector supplied from the detection unit 81 into an integer pixel accuracy motion vector, and supplies the motion vector to the intermediate predicted image generation unit 83.
- step S74 the accuracy conversion unit 86 converts the backward 1/4 pixel accuracy motion vector supplied from the detection unit 85 into an integer pixel accuracy motion vector, and supplies the motion vector to the intermediate predicted image generation unit 87.
- step S ⁇ b> 75 the intermediate predicted image generation unit 83 performs motion compensation on the reference image preceding in the display order from the input image based on the forward integer pixel precision motion vector supplied from the accuracy conversion unit 82. Thus, L0 prediction is performed.
- the intermediate predicted image generation unit 83 supplies the L0 predicted image generated as a result to the memory 84.
- step S ⁇ b> 76 the intermediate predicted image generation unit 87 performs motion compensation on the reference image that is subsequent to the input image in the display order based on the backward integer pixel accuracy motion vector supplied from the accuracy conversion unit 86. Thus, L1 prediction is performed.
- the intermediate predicted image generation unit 87 supplies the L1 predicted image generated as a result to the memory 88.
- step S77 the memory 84 stores the L0 prediction predicted image supplied from the intermediate predicted image generation unit 83.
- step S ⁇ b> 78 the memory 88 stores the L1 predicted image supplied from the intermediate predicted image generation unit 87.
- step S79 the averaging unit 89 averages the L0 predicted image stored in the memory 84 and the L1 predicted image stored in the memory 88.
- the averaging unit 89 supplies the averaged prediction image to the calculation unit 90 as a prediction image for bidirectional prediction.
- step S80 the calculation unit 90 calculates a cost function value based on the predicted image and the input image supplied from the averaging unit 89.
- the calculation unit 90 supplies the predicted image and the cost function value to the selection unit 64 in FIG. And a process returns to step S63 of FIG. 8, and progresses to step S64.
- the encoding device 10 converts a fractional pixel precision motion vector of an input image into an integer pixel precision motion vector, and performs bidirectional prediction based on the integer pixel precision motion vector. To generate a predicted image. Accordingly, it is possible to reduce the number of bits of the L0 prediction prediction image and the L1 prediction prediction image used for generating the bidirectional prediction prediction image. As a result, the storage capacity required for the memory 84 and the memory 88 can be reduced. Moreover, the processing amount at the time of bidirectional
- FIG. 10 is a block diagram illustrating a configuration example of the second embodiment of the encoding device to which the present disclosure is applied.
- the encoding apparatus 100 includes an encoding unit 101, an external memory 102, and a down converter 103.
- the encoding apparatus 100 performs only L0 prediction or L1 prediction during bidirectional prediction.
- the encoding unit 101 of the encoding device 100 includes a processing unit 111 and a cache 112.
- the processing unit 111 receives an encoding target image stored in the external memory 102 as an input image via the cache 112.
- the processing unit 111 performs an encoding process on the input image.
- the processing unit 111 supplies the intermediate result and final result of the encoding process to the cache 112 and stores them as necessary. Further, the processing unit 111 reduces the reference image (hereinafter referred to as a reduced reference image) stored in the cache 112 to 1/4 times that of the input image, which has been reduced to 1/4 times before and after the display order. Based on the input image (hereinafter referred to as a reduced input image), L0 prediction or L1 prediction is selected as prediction performed in the bidirectional prediction mode. Then, the processing unit 111 performs prediction in the bidirectional prediction mode by performing the selected L0 prediction or L1 prediction using the encoded image stored as the reference image in the cache 112.
- a reduced reference image Based on the input image (hereinafter referred to as a reduced input image), L0 prediction or L1 prediction is selected as prediction performed in the bidirectional prediction mode.
- the cache 112 temporarily stores the intermediate result of the encoding process supplied from the processing unit 111 and the encoded image.
- the cache 112 supplies the stored encoded image to the external memory 102 for storage.
- the cache 112 temporarily stores an encoded image supplied as a reference image from the external memory 102.
- the cache 112 temporarily stores a reduced reference image, an input image, and a reduced input image supplied from the external memory 102.
- External memory 102 is composed of DRAM or the like.
- the external memory 102 stores the input image and the encoded image supplied from the cache 112.
- the external memory 102 stores the reduced input image and the reduced reference image supplied from the down converter 103.
- the external memory 102 supplies the stored input image and the reduced input image corresponding to the input image to the cache 112. Further, the external memory 102 supplies an encoded image before or after the stored input image in display order to the cache 112 as a reference image. Further, the external memory 102 supplies the reduced reference image to the cache 112.
- the down converter 103 reads the input image from the external memory 102, and reduces the input image to 1/4 times.
- the down converter 103 supplies the reduced input image obtained as a result to the external memory 102.
- the down converter 103 reads out the encoded images before and after the input image from the external memory 102 in the display order as a reference image, and reduces the reference image by a factor of 1/4.
- the down converter 103 supplies the reduced reference image obtained as a result to the external memory 102.
- the reduction ratio of the reference image and the input image is 1/4, but the reduction ratio of the reference image and the reduction ratio of the input image are not limited to 1/4 as long as they are the same.
- FIG. 11 is a block diagram illustrating a configuration example of the encoding unit 101 in FIG.
- the configuration of the encoding unit 101 in FIG. 11 is that the frame memory 131 and the motion prediction / compensation unit 132 are provided in place of the frame memory 44 and the motion prediction / compensation unit 47. And different.
- the frame memory 131 stores the image supplied from the adaptive offset filter 42 and the image supplied from the adder 40. Pixels adjacent to the PU in the image that has not been subjected to the filter processing accumulated in the frame memory 131 are supplied as peripheral pixels to the intra prediction unit 46 via the switch 45.
- the filtered image accumulated in the frame memory 131 is supplied to and stored in the external memory 102 of FIG. 10 as an encoded image.
- the frame memory 131 stores the reference image, the reduced reference image, and the reduced input image supplied from the external memory 102.
- the reference image, the reduced reference image, and the reduced input image stored in the frame memory 131 are output to the motion prediction / compensation unit 132 via the switch 45.
- the motion prediction / compensation unit 132 performs motion prediction / compensation processing for all candidate inter prediction modes in units of PUs. Specifically, the motion prediction / compensation unit 132, when the candidate inter prediction mode is the bidirectional prediction mode, based on the reduced reference image and the reduced input image supplied from the frame memory 131 via the switch 45.
- the prediction direction is determined in units of LCU groups including five consecutive LCUs.
- the motion prediction / compensation unit 132 / 4 Motion vector detection with pixel accuracy Based on the input image supplied from the screen rearrangement buffer 32 and the reference image in the determined prediction direction supplied from the frame memory 131 via the switch 45, the motion prediction / compensation unit 132 / 4 Motion vector detection with pixel accuracy.
- the motion prediction / compensation unit 132 based on the reference image before and after the input image in the display order and the input image, 1 / Detects 4-pixel precision motion vectors.
- the motion prediction / compensation unit 132 performs a compensation process using linear interpolation on the reference image based on the detected motion vector with 1/4 pixel accuracy for each inter prediction mode, and generates a predicted image. Then, the motion prediction / compensation unit 132 calculates a cost function value based on the input image and the predicted image for each inter prediction mode, and determines the inter prediction mode that minimizes the cost function value as the optimal inter prediction mode. The motion prediction / compensation unit 132 supplies the cost function value of the optimal inter prediction mode and the corresponding predicted image to the predicted image selection unit 48.
- the motion prediction / compensation unit 132 specifies the inter prediction mode information, the corresponding motion vector information, and the reference image. Information or the like is output to the lossless encoding unit 36.
- the determination unit of the prediction direction at the time of bidirectional prediction is an LCU group including five consecutive LCUs.
- the number of LCUs other than five consecutive LCUs may be used. It can also be.
- FIG. 12 is a block diagram illustrating a configuration example of the motion prediction / compensation unit 132 of FIG.
- the bidirectional prediction unit 151 When the bidirectional prediction of the input image is not performed, the bidirectional prediction unit 151 performs both the motion prediction / compensation processing in the bidirectional prediction mode in which the prediction direction represented by the bidirectional prediction mode is limited only to the forward direction or the backward direction. This is performed as motion prediction / compensation processing in the direction prediction mode. Specifically, the bidirectional prediction unit 151 sets the prediction direction forward or backward for each LCU group based on the reduced reference image and the reduced input image supplied from the frame memory 131 of FIG. To decide. Thereby, the bidirectional
- the bidirectional prediction unit 151 is based on the input image supplied from the screen rearrangement buffer 32 and the reference image of the determined prediction direction supplied from the frame memory 131 via the switch 45. Detect motion vectors with 4-pixel accuracy. The bidirectional prediction unit 151 performs compensation processing using linear interpolation on the reference image in the determined prediction direction based on the detected motion vector with 1/4 pixel accuracy for each bidirectional prediction mode.
- the bidirectional prediction unit 151 calculates a cost function value based on the predicted image and the input image generated as a result.
- the bidirectional prediction unit 151 supplies the prediction image and cost function value of each bidirectional prediction mode to the selection unit 64.
- FIG. 13 is a block diagram illustrating a configuration example of the bidirectional prediction unit 151 in FIG.
- 13 includes a reduced prediction compensation unit 171, a feature amount calculation unit 172, a feature amount holding unit 173, a determination unit 174, and a prediction unit 175.
- the reduced prediction compensation unit 171 of the bidirectional prediction unit 151 is supplied with the reduced reference image and the reduced input image before and after the input image in display order in units of LUC groups via the switch 45 of FIG. .
- the reduced prediction compensation unit 171 performs bidirectional motion prediction / compensation processing of each LCU group using the reduced reference image and the reduced input image.
- the reduced prediction compensation unit 171 has a two-dimensional linear interpolation adaptive filter.
- the reduced prediction compensation unit 171 performs motion vector detection processing with 1/4 pixel accuracy in each prediction direction using the reduced input image and the reduced reference image for each LCU group.
- the reduced prediction compensation unit 171 performs bi-directional prediction of the reduced input image by performing motion compensation on the reduced reference image based on the motion vector with 1/4 pixel accuracy in each prediction direction obtained as a result.
- the reduced prediction compensation unit 171 calculates the cost function value of the reduced predicted image in each prediction direction based on the reduced predicted image and the reduced input image obtained as a result of bidirectional prediction.
- the reduced prediction compensation unit 171 supplies the motion vector of the reduced input image in each prediction direction and the cost function value of the reduced predicted image to the feature amount calculation unit 172.
- the feature amount calculation unit 172 calculates the feature amount by the following equation (3) based on the motion vector of the reduced input image and the cost function value of the reduced predicted image supplied from the reduced prediction compensation unit 171 for each prediction direction. calculate.
- Costm is a feature amount
- SAD is a cost function value of the reduced input image
- ⁇ is a predetermined coefficient
- MV is a motion vector of the reduced input image.
- Equation (3) the smaller the cost function value, that is, the higher the prediction accuracy, the smaller the feature amount. Further, the smaller the motion vector, that is, the smaller the amount of motion vector information included in the encoded data, the smaller the feature amount. Therefore, the smaller the feature amount, the higher the encoding efficiency.
- the feature amount calculation unit 172 supplies the calculated forward and backward feature amounts of each LCU group to the feature amount holding unit 173, and supplies the forward and backward motion vectors to the prediction unit 175.
- the feature quantity holding unit 173 holds the forward and backward feature quantities of each LCU group supplied from the feature quantity calculation unit 172.
- the determination unit 174 reads the forward and backward feature amounts from the feature amount holding unit 173 for each LCU group.
- the determination unit 174 determines a prediction direction of prediction to be performed instead of bidirectional prediction based on the read forward and backward feature quantities.
- the determination unit 174 determines a prediction direction corresponding to a smaller one of the forward feature amount and the backward feature amount as a prediction direction of prediction performed instead of bidirectional prediction. That is, the determination unit 174 determines the prediction with the higher encoding efficiency of the L0 prediction and the L1 prediction as the prediction to be performed instead of the bidirectional prediction. The determination unit 174 supplies the prediction direction of each LCU group to the prediction unit 175.
- the prediction unit 175 performs motion prediction / compensation processing for each candidate bidirectional prediction mode, replacing the prediction direction represented by the bidirectional prediction mode with the prediction direction supplied from the prediction unit 175.
- the prediction unit 175 has a two-dimensional linear interpolation adaptive filter.
- the prediction unit 175 performs a motion vector detection process with 1/4 pixel accuracy using the input image supplied via the switch 45 in FIG. 11 and the reference image in the prediction direction supplied from the determination unit 174. At this time, the prediction unit 175 uses the motion vector in the prediction direction supplied from the prediction unit 175 among the forward and backward motion vectors supplied from the feature amount calculation unit 172.
- the prediction unit 175 is supplied from the determination unit 174 by performing motion compensation on the reference image based on the 1/4 pixel accuracy motion vector detected by the 1/4 pixel accuracy motion vector detection process. Predict the prediction direction.
- the prediction unit 175 calculates a cost function value based on a prediction image and an input image obtained as a result of prediction for each bidirectional prediction mode.
- the prediction unit 175 supplies the prediction image and the cost function value of each bidirectional prediction mode to the selection unit 64 in FIG.
- the feature amount calculation unit 172 is provided in the preceding stage of the feature amount holding unit 173, but may be provided in the subsequent stage.
- the feature quantity holding unit 173 holds the motion vector and cost function value of each LCU group, and the feature quantity calculation unit 172 calculates the feature quantity of each LCU group based on the motion vector and cost function value. , And supplied to the determination unit 174.
- FIG. 14 is a diagram for explaining prediction in the bidirectional prediction mode in the encoding device 100 in FIG. 10.
- a forward reference image L0 reference image
- a backward reference image L1 reference image
- the input image is read out and stored in the frame memory constituting the cache.
- bi-directional prediction is performed using the forward reference image, the backward reference image, and the input image stored in the frame memory, and a bi-predictive prediction image is generated.
- the reference image (L0 / L1 reference image) in the prediction direction determined by the determination unit 174 and the input image are read from the external memory 102. And stored in the frame memory 131. Then, L0 prediction or L1 prediction is performed using the reference image and the input image stored in the frame memory 131, and a prediction image of L0 prediction or L1 prediction is generated.
- the bandwidth for reading the reference image between the external memory 102 and the cache 112 at the time of bi-directional prediction mode prediction can be reduced by half.
- FIG. 15 is a diagram for explaining the prediction direction determined by the determination unit 174 in FIG. 13.
- the square represents the LCU.
- “L0” and “L1” described in the square indicate that the prediction in the bidirectional prediction mode of the LCU represented by the square is the L0 prediction and the L1 prediction, respectively.
- the prediction direction of the bidirectional prediction mode is determined in units of LCUs
- the prediction direction of the bidirectional prediction mode is different for each LCU as shown in A of FIG. Therefore, for example, as illustrated in FIG. 15A, when the prediction directions of the bidirectional prediction modes of adjacent LCUs are different, the encoding unit 101 obtains a reference image in the prediction direction from the external memory 102 in units of LCUs. Need to read.
- the determination unit 174 determines the prediction direction of the bidirectional prediction mode for each LCU group, the prediction direction of the bidirectional prediction mode of each LCU is different for each LCU group.
- the prediction directions of the bidirectional prediction mode of the LCU group 191 and the LCU group 192 adjacent to the LCU group 191 are different.
- the encoding unit 101 can read a reference image in the prediction direction of the bidirectional prediction mode of the LCU group from the external memory 102 in units of LCU groups.
- the encoding unit 101 can reduce the number of accesses to the external memory 102 as compared with the case where the prediction direction of the bidirectional prediction mode is determined in units of LCUs.
- the encoding process of the encoding device 100 in FIG. 10 is the same as that in FIG. 6 and FIG. Except for the bidirectional prediction process in step S63 in FIG. 8 and the point that the reduced reference image and the reduced input image are stored in the frame memory 44. This is the same as the encoding process of FIG. Accordingly, only the bidirectional prediction process will be described below.
- FIG. 16 is a flowchart for explaining bidirectional prediction processing of the encoding device 100. This bidirectional prediction process is performed for each candidate bidirectional prediction mode.
- step S111 the reduced prediction compensation unit 171 (FIG. 13) of the bidirectional prediction unit 151 uses the reduced reference image and the reduced input image supplied via the switch 45 in FIG. Perform pixel-precision motion vector detection processing.
- step S112 the reduced prediction compensation unit 171 performs motion compensation on the reduced reference image based on the 1 / 4-pixel precision motion vector in each prediction direction obtained by the process in step S111, thereby reducing the reduced input image. Perform bi-directional prediction.
- step S113 the reduced prediction compensation unit 171 calculates the cost function value of the reduced predicted image in each prediction direction based on the reduced predicted image and the reduced input image obtained as a result of bidirectional prediction.
- the reduced prediction compensation unit 171 supplies the motion vector of the reduced input image in each prediction direction and the cost function value of the reduced predicted image to the feature amount calculation unit 172.
- step S114 the feature amount calculation unit 172 calculates the feature amount by the above-described equation (3) based on the motion vector and the cost function value supplied from the reduced prediction compensation unit 171 for each prediction direction.
- the feature amount calculation unit 172 supplies the calculated forward and backward feature amounts to the feature amount holding unit 173, and supplies the forward and backward motion vectors to the prediction unit 175.
- step S115 the feature quantity holding unit 173 holds the forward and backward feature quantities supplied from the feature quantity calculation unit 172.
- step S116 the determination unit 174 determines whether the forward feature amount stored in the feature amount holding unit 173 is smaller than the backward feature amount.
- the determination unit 174 determines the prediction direction of the bidirectional prediction mode as the forward direction and supplies the prediction direction to the prediction unit 175.
- the determination unit 174 determines the prediction direction of the bidirectional prediction mode in the backward direction and supplies the prediction direction to the prediction unit 175. To do.
- step S117 or S118 the process proceeds to step S119.
- the processes in steps S119 to S121 are performed on a PU basis.
- step S ⁇ b> 119 the prediction unit 175 uses the reference image in the prediction direction corresponding to the processing target PU supplied from the determination unit 174 and the input image supplied via the switch 45 to obtain a 1/4 pixel accuracy.
- the motion vector detection process is performed.
- step S120 the prediction unit 175 performs motion compensation on the reference image based on the 1 / 4-pixel precision motion vector obtained by the process of step S119, and thereby performs the prediction direction supplied from the determination unit 174. Make a prediction.
- step S121 the prediction unit 175 calculates a cost function value based on the predicted image and the input image obtained as a result of the prediction.
- the prediction unit 175 supplies the predicted image and the cost function value to the selection unit 64 in FIG. 12, and the process ends.
- the encoding apparatus 100 performs L0 prediction or L1 prediction instead of bidirectional prediction. Therefore, it is possible to reduce the bandwidth for reading the reference image between the encoding unit 101 and the external memory 102. In addition, the storage capacity of the frame memory 131 necessary for storing the reference image in the bidirectional prediction mode can be reduced. Furthermore, since only one of L0 prediction and L1 prediction needs to be performed in the bidirectional prediction mode, the processing amount in the bidirectional prediction mode can be reduced.
- the encoding apparatus 100 determines the prediction direction of prediction performed instead of bidirectional prediction in units of a plurality of LCUs, the number of accesses from the encoding unit 101 to the external memory 102 can be reduced.
- the feature amount may be determined using only one of the cost function and the motion vector.
- FIG. 17 is a block diagram illustrating a configuration example of the encoding unit according to the third embodiment of the encoding device to which the present disclosure is applied.
- the 17 includes a rate control unit 201 and a motion prediction / compensation unit 204 instead of the rate control unit 49 and the motion prediction / compensation unit 132, and a table storage unit 202, setting.
- the point that the unit 203 is newly provided is different from the configuration of the encoding unit 101 of FIG.
- the encoding unit 200 limits the accuracy of the motion vector and the prediction direction according to the quantization parameter (QP).
- the rate control unit 201 of the encoding unit 200 determines the rate of the quantization operation of the quantization unit 35 so that overflow or underflow does not occur based on the encoded data stored in the storage buffer 37. To control. Further, the rate control unit 201 supplies a quantization parameter used for controlling the rate of the quantization operation to the setting unit 203.
- the table storage unit 202 stores a constraint table in which motion vector restriction information and prediction direction restriction information are registered in association with quantization parameters.
- the motion vector restriction information is information indicating whether or not the precision of the motion vector during bidirectional prediction is limited to integer precision.
- the prediction direction restriction information is forward or backward of the prediction direction in the bidirectional prediction mode. This is information indicating whether or not there is a restriction on the direction. When the prediction direction restriction information indicates that there is a restriction, the motion vector restriction information is not registered because there is no bidirectional prediction.
- the setting unit 203 averages the quantization parameter supplied from the rate control unit 201 on a screen basis, and calculates an average value of the quantization parameter. Based on the average value of the quantization parameter, the setting unit 203 requests the table storage unit 202 to read out the motion vector restriction information and the prediction direction restriction information registered in the restriction table in association with the average value.
- the setting unit 203 Based on the motion vector restriction information read from the table storage unit 202 in response to the request, the setting unit 203 sets the accuracy of the motion vector used for generating the prediction image for bidirectional prediction to integer pixel accuracy or fractional pixel accuracy. Set. Further, the setting unit 203 (determination unit) determines whether or not to perform bidirectional prediction based on the prediction direction restriction information read from the table storage unit 202 in response to a request.
- the setting unit 203 supplies the accuracy of the set motion vector and bidirectional prediction information indicating whether or not to perform bidirectional prediction to the motion prediction / compensation unit 204.
- the motion prediction / compensation unit 204 performs the same motion prediction / compensation processing (hereinafter referred to as direction restriction processing) as the motion prediction / compensation unit 132 in FIG. .
- the motion prediction / compensation unit 204 is the same as the motion prediction / compensation unit 47 of FIG. Motion prediction / compensation processing (hereinafter referred to as accuracy limitation processing).
- the motion prediction / compensation unit 204 performs normal motion prediction / compensation processing (hereinafter, normal Process).
- normal Process as the motion prediction / compensation processing in the bidirectional prediction mode, a motion vector with fractional pixel accuracy is detected as in the motion prediction / compensation unit 132, and bidirectional prediction is performed in the same manner as the motion prediction / compensation unit 47. .
- the motion prediction / compensation unit 204 calculates cost function values for all candidate inter prediction modes based on the input image and the prediction image generated by the direction restriction process, the precision restriction process, or the normal process. To do. Then, the motion prediction / compensation unit 204 determines the inter prediction mode that minimizes the cost function value as the optimal inter prediction mode. The motion prediction / compensation unit 204 supplies the cost function value of the optimal inter prediction mode and the corresponding predicted image to the predicted image selection unit 48.
- the motion prediction / compensation unit 204 specifies inter prediction mode information, corresponding motion vector information, and a reference image. Information or the like is output to the lossless encoding unit 36.
- FIG. 18 is a diagram illustrating an example of a constraint table stored in the table storage unit 202 in FIG.
- the quantization parameter (QP) is divided into three stages of 0 to 29, 30 to 39, and 40 to 51, and is associated with the lowest quantization parameter (0 to 29).
- prediction direction restriction information indicating presence of restriction is registered.
- prediction direction restriction information indicating no restriction and motion vector restriction information representing restriction are registered in association with the second lowest quantization parameter (30 to 39).
- prediction direction restriction information and motion vector restriction information representing no restriction are registered in association with the section (40 to 51) having the highest quantization parameter.
- quantization parameter categories in FIG. 18 are set based on the quantization parameters assumed for each application so that the categories differ for each application.
- the bit rate required for the encoded data of the HD (High Definition) image that is the captured image is: High bit rate such as 50Mbps.
- the quantization parameter is often 30 or less. Therefore, the lowest division of the quantization parameter is 0 to 29.
- the bit rate required for the encoded data of the HD image that is the captured image is a low bit rate such as 5 Mbps.
- the quantization parameter is often 30 to 39. Therefore, the second lowest category of quantization parameters is 30-39.
- the bit rate required for the encoded data of the HD image exceeds 2 Mbps or the like. Low bit rate.
- the quantization parameter is often 40 or more. Therefore, the highest division of the quantization parameter is 40 to 51.
- the division of the quantization parameter is not limited to the example of FIG.
- the encoding process according to the third embodiment of the encoding apparatus to which the present disclosure is applied includes the motion prediction / compensation process in step S33 in FIG. 6 and, if necessary, the reduced reference image and the reduced input image in the frame memory 131. Except for the accumulated point, the encoding process is the same as that of FIGS. 6 and 7. Accordingly, only the motion prediction / compensation process will be described below.
- FIG. 19 is a flowchart illustrating the motion prediction / compensation process of the encoding unit 200 in FIG.
- step S141 of FIG. 19 the setting unit 203 averages the quantization parameter supplied from the rate control unit 201 on a screen basis, and calculates an average value of the quantization parameter.
- step S142 the setting unit 203 reads out motion vector restriction information and prediction direction restriction information corresponding to the average value of the quantization parameter from the restriction table stored in the table storage unit 202.
- step S143 the setting unit 203 sets the accuracy of the motion vector and bidirectional prediction information during bidirectional prediction based on the read motion vector restriction information and prediction direction restriction information.
- the setting unit 203 supplies the set motion vector accuracy and bidirectional prediction information to the motion prediction / compensation unit 204.
- step S144 the motion prediction / compensation unit 204 determines whether or not the bidirectional prediction information indicates that bidirectional prediction is not performed. If it is determined in step S144 that the bidirectional prediction information indicates that bidirectional prediction is not performed, the process proceeds to step S146. In step S146, the motion prediction / compensation unit 204 performs a direction restriction process, and the process proceeds to step S149.
- step S144 determines whether the bidirectional prediction information represents performing bidirectional prediction. If it is determined in step S144 that the bidirectional prediction information represents performing bidirectional prediction, the process proceeds to step S145.
- step S145 the motion prediction / compensation unit 204 determines whether the accuracy of the set motion vector is integer pixel accuracy.
- step S145 When it is determined that the accuracy of the motion vector set in step S145 is integer pixel accuracy, the motion prediction / compensation unit 204 performs an accuracy limiting process, and the process proceeds to step S149.
- step S145 If it is determined that the accuracy of the motion vector set in step S145 is not integer pixel accuracy, that is, if the accuracy of the set motion vector is fractional pixel accuracy, the process proceeds to step S148.
- step S148 the motion prediction / compensation unit 204 performs normal processing, and advances the processing to step S149.
- step S149 the motion prediction / compensation unit 204 calculates the cost for all candidate inter prediction modes based on the input image and the predicted image generated by the direction limiting process, the accuracy limiting process, or the normal process. Calculate the function value. Then, the motion prediction / compensation unit 204 determines the inter prediction mode that minimizes the cost function value as the optimal inter prediction mode.
- step S150 the motion prediction / compensation unit 204 outputs the predicted image in the optimal inter prediction mode and the cost function value to the predicted image selection unit 48. Then, the process ends.
- the encoding unit 200 selectively performs the direction limiting process, the accuracy limiting process, and the normal process based on the quantization parameter. Therefore, for example, when the quantization parameter is high, that is, when a difference in encoding performance is easily visible and a decrease in encoding efficiency becomes a problem, the encoding unit 200 performs image quality and encoding efficiency by performing normal processing. Can be secured. On the other hand, when the quantization parameter is low, that is, when it is difficult to see the difference in encoding performance and the reduction of the encoding efficiency is allowed, the encoding unit 200 performs the direction limiting process and the accuracy limiting process to perform the cache 112. Storage capacity can be reduced.
- the quantization parameter is averaged in units of screens, but may be averaged in units of slices or LCUs.
- the prediction direction in the bidirectional prediction mode when the bidirectional prediction information indicates that bidirectional prediction is not performed is determined in units of LCUs, not in units of LCU groups.
- the encoding unit 200 selectively performs the direction limiting process, the accuracy limiting process, and the normal process based on the quantization parameter, but the direction limiting process is performed based on information other than the quantization parameter.
- the accuracy limiting process and the normal process may be selectively performed.
- FIG. 20 is a diagram illustrating an example of a constraint table when the direction restriction process, the precision restriction process, and the normal process are selectively performed based on the frame rate.
- the frame rate is divided into three stages of 1p to 9p, 10p to 29p, and 30p or more, and the restriction is associated with the highest frame rate (30p or more).
- Predicted direction restriction information is registered.
- prediction direction restriction information representing no restriction and motion vector restriction information representing restriction are registered in association with the second highest frame rate (10p to 29p).
- prediction direction restriction information and motion vector restriction information indicating no restriction are registered in association with the lowest frame rate (1p to 9p).
- the frame rate of the captured image to be encoded is a high frame rate such as 30p or 60p. Therefore, the segment with the highest frame rate is 30p or more.
- the frame rate of the captured image to be encoded is a low frame rate such as 15p. Therefore, the second highest segment of the frame rate is 10p to 29p.
- the frame rate of the captured image to be encoded is an extremely low frame rate such as 5p. It is. Therefore, the lowest frame rate is 1p-9p.
- the division of the frame rate is not limited to the example of FIG.
- the quantization bit rate is not supplied from the rate control unit 201 to the setting unit 203.
- the setting unit 203 reads motion vector restriction information and prediction direction restriction information corresponding to the frame rate from the restriction table based on the frame rate input by the user or the like.
- the setting unit 203 sets the accuracy of the motion vector and bidirectional prediction information during bidirectional prediction based on the read motion vector restriction information and prediction direction restriction information.
- FIG. 21 is a diagram illustrating an example of a restriction table when the direction restriction process, the precision restriction process, and the normal process are selectively performed based on the resolution.
- the resolution is divided into three stages of VGA (Video Graphics Array) resolution, HD resolution, and 4K resolution, and the restriction is associated with the lowest resolution (VGA resolution).
- VGA resolution Video Graphics Array
- Predicted direction restriction information is registered. Further, prediction direction restriction information indicating no restriction and motion vector restriction information indicating restriction are registered in association with the second lowest resolution (HD resolution). Further, prediction direction restriction information and motion vector restriction information representing no restriction are registered in association with the highest resolution category (4K resolution).
- the resolution categories in FIG. 21 are set based on the resolution of the encoding target assumed for each application so that the categories differ for each application (application).
- the resolution of the captured image to be encoded is, for example, 4K (QFHD (Quad Full Full High Definition)) resolution And so on. Therefore, the category with the highest resolution is 4K resolution.
- the resolution of the captured image to be encoded is a medium resolution such as HD resolution. Therefore, the second highest resolution section is HD resolution.
- the encoding unit 200 when the encoding unit 200 is provided in a monitoring camera or the like and the captured image to be encoded is an image captured by the monitoring camera, the captured image to be encoded has a low resolution such as VGA resolution. Therefore, the lowest resolution category is VGA resolution.
- the resolution classification is not limited to the example of FIG.
- the quantization bit rate is not supplied from the rate control unit 201 to the setting unit 203.
- the setting unit 203 reads motion vector restriction information and prediction direction restriction information corresponding to the resolution from the restriction table based on the resolution input by the user or the like.
- the setting unit 203 sets the accuracy of the motion vector and bidirectional prediction information during bidirectional prediction based on the read motion vector restriction information and prediction direction restriction information.
- the direction restriction process, the precision restriction process, and the normal process are selectively performed based on the quantization parameter, the frame rate, or the resolution.
- the direction restriction is performed according to the application (application). Processing, accuracy limiting processing, and normal processing may be selectively performed.
- FIG. 22 is a block diagram illustrating a configuration example of a decoding device 220 that decodes encoded data generated by the first to third embodiments of the encoding device.
- the decoding apparatus 220 includes a D / A conversion unit 230, a frame memory 231, a switch 232, an intra prediction processing unit 233, a motion compensation unit 234, and a switch 235.
- the accumulation buffer 221 of the decoding device 220 receives and accumulates encoded data from the encoding device 10 or the encoding device 100.
- the accumulation buffer 221 supplies the accumulated encoded data to the lossless decoding unit 222.
- the lossless decoding unit 222 performs lossless decoding such as variable length decoding and arithmetic decoding corresponding to the lossless encoding of the lossless encoding unit 36 of FIG. 2 on the encoded data from the accumulation buffer 221. A quantized orthogonal transform coefficient and encoding information are obtained. The lossless decoding unit 222 supplies the quantized orthogonal transform coefficient to the inverse quantization unit 223. Further, the lossless decoding unit 222 supplies intra prediction mode information as encoded information to the intra prediction processing unit 233. The lossless decoding unit 222 supplies motion vector information, inter prediction mode information, information specifying a reference image, and the like to the motion compensation unit 234.
- the lossless decoding unit 222 supplies intra prediction mode information or inter prediction mode information as encoded information to the switch 235.
- the lossless decoding unit 222 supplies offset filter information as encoded information to the adaptive offset filter 227.
- the inverse quantization unit 223, the inverse orthogonal transform unit 224, the addition unit 225, the deblock filter 226, the adaptive offset filter 227, the frame memory 231, the switch 232, the intra prediction processing unit 233, and the motion compensation unit 234 are the inverse of FIG. Quantization unit 38, inverse orthogonal transform unit 39, addition unit 40, deblock filter 41, adaptive offset filter 42, frame memory 44 (131), switch 45, intra prediction unit 46, and motion prediction / compensation unit 47 (132) The same processing is performed for each, and the image is thus decoded.
- the inverse quantization unit 223 dequantizes the quantized orthogonal transform coefficient from the lossless decoding unit 222 and supplies the resulting orthogonal transform coefficient to the inverse orthogonal transform unit 224.
- the inverse orthogonal transform unit 224 performs inverse orthogonal transform on the orthogonal transform coefficient from the inverse quantization unit 223 in units of TUs.
- the inverse orthogonal transform unit 224 supplies residual information obtained as a result of the inverse orthogonal transform to the addition unit 225.
- the addition unit 225 performs decoding by adding the residual information supplied from the inverse orthogonal transform unit 224 and the prediction image supplied from the switch 235.
- the adder 225 supplies the image obtained as a result of decoding to the deblock filter 226 and the frame memory 231.
- the addition unit 225 sets the image that is the residual information supplied from the inverse orthogonal transform unit 224 as an image obtained as a result of decoding in the deblock filter 226 and the frame memory 231. Supply.
- the deblocking filter 226 performs deblocking filter processing on the image supplied from the adding unit 225 and supplies the image obtained as a result to the adaptive offset filter 227.
- the adaptive offset filter 227 performs the type of adaptive offset filter processing represented by the offset filter information on the image after the deblocking filter processing using the offset represented by the offset filter information from the lossless decoding unit 222 for each LCU. .
- the adaptive offset filter 227 supplies the image after the adaptive offset filter processing to the screen rearrangement buffer 229 and the frame memory 231.
- the screen rearrangement buffer 229 stores the image supplied from the adaptive offset filter 227 in units of frames.
- the screen rearrangement buffer 229 rearranges the stored frame-by-frame images for encoding in the original display order and supplies them to the D / A conversion unit 230.
- the D / A conversion unit 230 performs D / A conversion on the frame-based image supplied from the screen rearrangement buffer 229 and outputs the converted image.
- the frame memory 231 stores the image supplied from the adaptive offset filter 227 and the image supplied from the adder 225. Pixels adjacent to the PU in the image that has not been subjected to filter processing accumulated in the frame memory 231 are supplied as peripheral pixels to the intra prediction processing unit 233 via the switch 232. On the other hand, the filtered image stored in the frame memory 231 is supplied to the motion compensation unit 234 via the switch 232 as a reference image.
- the intra prediction processing unit 233 uses the peripheral pixels read from the frame memory 231 via the switch 232 in units of PUs, and uses the intra prediction mode information indicated by the intra prediction mode information supplied from the lossless decoding unit 222. Perform prediction processing.
- the intra prediction processing unit 233 supplies the prediction image generated as a result to the switch 235.
- the motion compensation unit 234 reads the reference image specified by the information specifying the reference image supplied from the lossless decoding unit 222 from the frame memory 231 via the switch 232.
- the motion compensation unit 234 uses the read reference image and the motion vector supplied from the lossless decoding unit 222 to perform the optimal inter prediction mode indicated by the inter prediction mode information supplied from the lossless decoding unit 222 in units of PUs.
- the motion compensation process is performed.
- the motion compensation unit 234 supplies the predicted image generated as a result to the switch 235.
- the switch 235 supplies the prediction image supplied from the intra prediction processing unit 233 to the adding unit 225.
- the switch 235 supplies the prediction image supplied from the motion compensation unit 234 to the addition unit 225.
- ⁇ Fourth embodiment> (Description of computer to which the present disclosure is applied)
- 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, for example, a general-purpose personal computer capable of executing various functions by installing various programs by installing a computer incorporated in dedicated hardware.
- FIG. 23 is a block diagram showing an example of the hardware configuration of a computer that executes the above-described series of processing by a program.
- a CPU Central Processing Unit
- ROM Read Only Memory
- RAM Random Access Memory
- an input / output interface 805 is connected to the bus 804.
- An input unit 806, an output unit 807, a storage unit 808, a communication unit 809, and a drive 810 are connected to the input / output interface 805.
- the input unit 806 includes a keyboard, a mouse, a microphone, and the like.
- the output unit 807 includes a display, a speaker, and the like.
- the storage unit 808 includes a hard disk, a nonvolatile memory, and the like.
- the communication unit 809 includes a network interface or the like.
- the drive 810 drives a removable medium 811 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
- the CPU 801 loads the program stored in the storage unit 808 into the RAM 803 via the input / output interface 805 and the bus 804 and executes the program, for example. A series of processing is performed.
- the program executed by the computer 800 can be provided by being recorded in, for example, a removable medium 811 as a package medium or the like.
- the program can be provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting.
- the program can be installed in the storage unit 808 via the input / output interface 805 by installing the removable medium 811 in the drive 810.
- the program can be received by the communication unit 809 via a wired or wireless transmission medium and installed in the storage unit 808.
- the program can be installed in the ROM 802 or the storage unit 808 in advance.
- the program executed by the computer 800 may be a program that is processed in time series in the order described in this specification, or a necessary timing such as in parallel or when a call is made. It may be a program in which processing is performed.
- FIG. 24 illustrates a schematic configuration of a television apparatus that acquires an encoded bitstream including encoded data generated by an encoding apparatus to which the present disclosure 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, and an external interface unit 909. Furthermore, the television apparatus 900 includes a control unit 910, a user interface unit 911, and the like.
- the tuner 902 selects a desired channel from the broadcast wave signal received by the antenna 901, demodulates it, and outputs the obtained encoded bit stream to the demultiplexer 903.
- the demultiplexer 903 extracts video and audio packets of the program to be viewed from the encoded bit stream, and outputs the extracted packet data to the decoder 904. Further, the demultiplexer 903 supplies a packet of data such as EPG (Electronic Program Guide) to the control unit 910. If scrambling is being performed, descrambling is performed by a demultiplexer or the like.
- EPG Electronic Program Guide
- the decoder 904 performs packet decoding processing, and outputs video data generated by the decoding processing to the video signal processing unit 905 and audio data to the audio signal processing unit 907.
- the video signal processing unit 905 performs noise removal, video processing according to user settings, and the like on the video data.
- the video signal processing unit 905 generates video data of a program to be displayed on the display unit 906, image data by processing based on an application supplied via a network, and the like.
- the video signal processing unit 905 generates video data for displaying a menu screen for selecting an item and the like, and superimposes the video data on the video data of the program.
- the video signal processing unit 905 generates a drive signal based on the video data generated in this way, and drives the display unit 906.
- the display unit 906 drives a display device (for example, a liquid crystal display element or the like) based on a drive signal from the video signal processing unit 905 to display a program video or the like.
- a display device for example, a liquid crystal display element or the like
- the audio signal processing unit 907 performs predetermined processing such as noise removal on the audio data, performs D / A conversion processing and amplification processing on the processed audio data, and outputs the audio data to the speaker 908.
- the external interface unit 909 is an interface for connecting to an external device or a network, and transmits and receives data such as video data and audio data.
- a user interface unit 911 is connected to the control unit 910.
- the user interface unit 911 includes an operation switch, a remote control signal receiving unit, and the like, and supplies an operation signal corresponding to a user operation to the control unit 910.
- the control unit 910 is configured using a CPU (Central Processing Unit), a memory, and the like.
- the memory stores a program executed by the CPU, various data necessary for the CPU to perform processing, EPG data, data acquired via a network, and the like.
- the program stored in the memory is read and executed by the CPU at a predetermined timing such as when the television device 900 is activated.
- the CPU executes each program to control each unit so that the television device 900 operates in accordance with the user operation.
- the television device 900 includes a bus 912 for connecting the tuner 902, the demultiplexer 903, the video signal processing unit 905, the audio signal processing unit 907, the external interface unit 909, and the control unit 910.
- FIG. 25 illustrates a schematic configuration of a mobile phone to which the present disclosure is applied.
- the cellular phone 920 includes a communication unit 922, an audio codec 923, a camera unit 926, an image processing unit 927, a demultiplexing unit 928, a recording / reproducing unit 929, a display unit 930, and a control unit 931. These are connected to each other via a bus 933.
- an antenna 921 is connected to the communication unit 922, and a speaker 924 and a microphone 925 are connected to the audio codec 923. Further, an operation unit 932 is connected to the control unit 931.
- the mobile phone 920 performs various operations such as transmission / reception of voice signals, transmission / reception of e-mail and image data, image shooting, and data recording in various modes such as a voice call mode and a data communication mode.
- the voice signal generated by the microphone 925 is converted into voice data and compressed by the voice codec 923 and supplied to the communication unit 922.
- the communication unit 922 performs audio data modulation processing, frequency conversion processing, and the like to generate a transmission signal.
- the communication unit 922 supplies a transmission signal to the antenna 921 and transmits it to a base station (not shown).
- the communication unit 922 performs amplification, frequency conversion processing, demodulation processing, and the like of the reception signal received by the antenna 921, and supplies the obtained audio data to the audio codec 923.
- the audio codec 923 performs data expansion of the audio data and conversion into an analog audio signal and outputs the result to the speaker 924.
- the control unit 931 receives character data input by operating the operation unit 932 and displays the input characters on the display unit 930.
- the control unit 931 generates mail data based on a user instruction or the like in the operation unit 932 and supplies the mail data to the communication unit 922.
- the communication unit 922 performs mail data modulation processing, frequency conversion processing, and the like, and transmits the obtained transmission signal from the antenna 921.
- the communication unit 922 performs amplification, frequency conversion processing, demodulation processing, and the like of the reception signal received by the antenna 921, and restores mail data. This mail data is supplied to the display unit 930 to display the mail contents.
- the mobile phone 920 can also store the received mail data in a storage medium by the recording / playback unit 929.
- the storage medium is any rewritable storage medium.
- the storage medium is a removable memory such as a RAM, a semiconductor memory such as a built-in flash memory, a hard disk, a magnetic disk, a magneto-optical disk, an optical disk, a USB (Universal Serial Bus) memory, or a memory card.
- the image data generated by the camera unit 926 is supplied to the image processing unit 927.
- the image processing unit 927 performs encoding processing of image data and generates encoded data.
- the demultiplexing unit 928 multiplexes the encoded data generated by the image processing unit 927 and the audio data supplied from the audio codec 923 by a predetermined method, and supplies the multiplexed data to the communication unit 922.
- the communication unit 922 performs modulation processing and frequency conversion processing of multiplexed data, and transmits the obtained transmission signal from the antenna 921.
- the communication unit 922 performs amplification, frequency conversion processing, demodulation processing, and the like of the reception signal received by the antenna 921, and restores multiplexed data. This multiplexed data is supplied to the demultiplexing unit 928.
- the demultiplexing unit 928 performs demultiplexing of the multiplexed data, and supplies the encoded data to the image processing unit 927 and the audio data to the audio codec 923.
- the image processing unit 927 performs a decoding process on the encoded data to generate image data.
- the image data is supplied to the display unit 930 and the received image is displayed.
- the audio codec 923 converts the audio data into an analog audio signal, supplies the analog audio signal to the speaker 924, and outputs the received audio.
- the image processing unit 927 is provided with the function of the encoding device (encoding method) of the present application. For this reason, it is possible to reduce the storage capacity required for bidirectional prediction.
- FIG. 26 illustrates a schematic configuration of a recording / reproducing apparatus to which the present disclosure is applied.
- the recording / reproducing apparatus 940 records, for example, audio data and video data of a received broadcast program on a recording medium, and provides the recorded data to the user at a timing according to a user instruction.
- the recording / reproducing device 940 can also acquire audio data and video data from another device, for example, and record them on a recording medium. Further, the recording / reproducing apparatus 940 decodes and outputs the audio data and video data recorded on the recording medium, thereby enabling image display and audio output on the monitor apparatus or the like.
- the recording / reproducing apparatus 940 includes a tuner 941, an external interface unit 942, an encoder 943, an HDD (Hard Disk Drive) unit 944, a disk drive 945, a selector 946, a decoder 947, an OSD (On-Screen Display) unit 948, a control unit 949, A user interface unit 950 is included.
- Tuner 941 selects a desired channel from a broadcast signal received by an antenna (not shown).
- the tuner 941 outputs an encoded bit stream obtained by demodulating the received signal of a desired channel to the selector 946.
- the external interface unit 942 includes at least one of an IEEE 1394 interface, a network interface unit, a USB interface, a flash memory interface, and the like.
- the external interface unit 942 is an interface for connecting to an external device, a network, a memory card, and the like, and receives data such as video data and audio data to be recorded.
- the encoder 943 performs encoding by a predetermined method when the video data and audio data supplied from the external interface unit 942 are not encoded, and outputs an encoded bit stream to the selector 946.
- the HDD unit 944 records content data such as video and audio, various programs, and other data on a built-in hard disk, and reads them from the hard disk during playback.
- the disk drive 945 records and reproduces signals with respect to the mounted optical disk.
- An optical disk such as a DVD disk (DVD-Video, DVD-RAM, DVD-R, DVD-RW, DVD + R, DVD + RW, etc.), a Blu-ray (registered trademark) disk, or the like.
- the selector 946 selects one of the encoded bit streams from the tuner 941 or the encoder 943 and supplies it to either the HDD unit 944 or the disk drive 945 when recording video or audio. Further, the selector 946 supplies the encoded bit stream output from the HDD unit 944 or the disk drive 945 to the decoder 947 at the time of reproduction of video and audio.
- the decoder 947 performs a decoding process on the encoded bit stream.
- the decoder 947 supplies the video data generated by performing the decoding process to the OSD unit 948.
- the decoder 947 outputs audio data generated by performing the decoding process.
- the OSD unit 948 generates video data for displaying a menu screen for selecting an item and the like, and superimposes it on the video data output from the decoder 947 and outputs the video data.
- a user interface unit 950 is connected to the control unit 949.
- the user interface unit 950 includes an operation switch, a remote control signal receiving unit, and the like, and supplies an operation signal corresponding to a user operation to the control unit 949.
- the control unit 949 is configured using a CPU, a memory, and the like.
- the memory stores programs executed by the CPU and various data necessary for the CPU to perform processing.
- the program stored in the memory is read and executed by the CPU at a predetermined timing such as when the recording / reproducing apparatus 940 is activated.
- the CPU executes the program to control each unit so that the recording / reproducing device 940 operates according to the user operation.
- the encoder 943 is provided with the function of the encoding apparatus (encoding method) of the present application. For this reason, it is possible to reduce the storage capacity required for bidirectional prediction.
- FIG. 27 illustrates a schematic configuration of an imaging apparatus to which the present disclosure is applied.
- the imaging device 960 images a subject, displays an image of the subject on a display unit, and records it on a recording medium as image data.
- the imaging device 960 includes an optical block 961, an imaging unit 962, a camera signal processing unit 963, an image data processing unit 964, a display unit 965, an external interface unit 966, a memory unit 967, a media drive 968, an OSD unit 969, and a control unit 970. Have. In addition, a user interface unit 971 is connected to the control unit 970. Furthermore, the image data processing unit 964, the external interface unit 966, the memory unit 967, the media drive 968, the OSD unit 969, the control unit 970, and the like are connected via a bus 972.
- the optical block 961 is configured using a focus lens, a diaphragm mechanism, and the like.
- the optical block 961 forms an optical image of the subject on the imaging surface of the imaging unit 962.
- the imaging unit 962 is configured using a CCD or CMOS image sensor, generates an electrical signal corresponding to the optical image by photoelectric conversion, and supplies the electrical signal to the camera signal processing unit 963.
- the camera signal processing unit 963 performs various camera signal processing such as knee correction, gamma correction, and color correction on the electrical signal supplied from the imaging unit 962.
- the camera signal processing unit 963 supplies the image data after the camera signal processing to the image data processing unit 964.
- the image data processing unit 964 performs an encoding process on the image data supplied from the camera signal processing unit 963.
- the image data processing unit 964 supplies the encoded data generated by performing the encoding process to the external interface unit 966 and the media drive 968. Further, the image data processing unit 964 performs a decoding process on the encoded data supplied from the external interface unit 966 and the media drive 968.
- the image data processing unit 964 supplies the image data generated by performing the decoding process to the display unit 965. Further, the image data processing unit 964 superimposes the processing for supplying the image data supplied from the camera signal processing unit 963 to the display unit 965 and the display data acquired from the OSD unit 969 on the image data. To supply.
- the OSD unit 969 generates display data such as a menu screen and icons made up of symbols, characters, or figures and outputs them to the image data processing unit 964.
- the external interface unit 966 includes, for example, a USB input / output terminal, and is connected to a printer when printing an image.
- a drive is connected to the external interface unit 966 as necessary, a removable medium such as a magnetic disk or an optical disk is appropriately mounted, and a computer program read from them is installed as necessary.
- the external interface unit 966 has a network interface connected to a predetermined network such as a LAN or the Internet.
- the control unit 970 reads encoded data from the media drive 968 in accordance with an instruction from the user interface unit 971, and supplies the encoded data to the other device connected via the network from the external interface unit 966. it can.
- the control unit 970 may acquire encoded data and image data supplied from another device via the network via the external interface unit 966 and supply the acquired data to the image data processing unit 964. it can.
- any readable / writable removable medium such as a magnetic disk, a magneto-optical disk, an optical disk, or a semiconductor memory is used.
- the recording medium may be any type of removable medium, and may be a tape device, a disk, or a memory card. Of course, a non-contact IC (Integrated Circuit) card may be used.
- media drive 968 and the recording medium may be integrated and configured by a non-portable storage medium such as a built-in hard disk drive or an SSD (Solid State Drive).
- a non-portable storage medium such as a built-in hard disk drive or an SSD (Solid State Drive).
- the control unit 970 is configured using a CPU.
- the memory unit 967 stores a program executed by the control unit 970, various data necessary for the control unit 970 to perform processing, and the like.
- the program stored in the memory unit 967 is read and executed by the control unit 970 at a predetermined timing such as when the imaging device 960 is activated.
- the control unit 970 controls each unit so that the imaging device 960 performs an operation according to a user operation by executing a program.
- the image data processing unit 964 is provided with the function of the encoding apparatus (encoding method) of the present application. For this reason, it is possible to reduce the storage capacity required for bidirectional prediction.
- ⁇ Eighth embodiment> (Other examples of implementation) Although an example of an apparatus to which the present disclosure is applied has been described above, the present disclosure is not limited thereto, and any configuration mounted in such an apparatus, for example, a processor as a system LSI (Large Scale Integration) or the like, a plurality of It can also be implemented as a module using a processor or the like, a unit using a plurality of modules, etc., or a set in which other functions are added to the unit (that is, a part of the apparatus configuration).
- LSI Large Scale Integration
- FIG. 28 illustrates an example of a schematic configuration of a video set to which the present disclosure is applied.
- the video set 1300 shown in FIG. 28 has such a multi-functional configuration, and a device having a function relating to image encoding and decoding (either or both of them) can be used for the function. It is a combination of devices having other related functions.
- the video set 1300 includes a module group such as a video module 1311, an external memory 1312, a power management module 1313, and a front-end module 1314, and an associated module 1321, a camera 1322, a sensor 1323, and the like. And a device having a function.
- a cocoon module is a component that has several functions that are related to each other and that have a coherent function.
- the specific physical configuration is arbitrary. For example, a plurality of processors each having a function, electronic circuit elements such as resistors and capacitors, and other devices arranged on a wiring board or the like can be considered. . It is also possible to combine the module with another module, a processor, or the like to form a new module.
- the video module 1311 is a combination of configurations having functions related to image processing, and includes an application processor, a video processor, a broadband modem 1333, and an RF module 1334.
- the processor is a configuration in which a configuration having a predetermined function is integrated on a semiconductor chip by an SoC (System On Chip), and for example, there is also a system LSI (Large Scale Integration) or the like.
- the configuration having the predetermined function may be a logic circuit (hardware configuration), a CPU, a ROM, a RAM, and the like, and a program (software configuration) executed using them. , Or a combination of both.
- a processor has a logic circuit and a CPU, ROM, RAM, etc., a part of the function is realized by a logic circuit (hardware configuration), and other functions are executed by the CPU (software configuration) It may be realized by.
- the application processor 1331 in FIG. 28 is a processor that executes an application related to image processing.
- the application executed in the application processor 1331 not only performs arithmetic processing to realize a predetermined function, but also can control the internal and external configurations of the video module 1311 such as the video processor 1332 as necessary. .
- the video processor 1332 is a processor having a function related to image encoding / decoding (one or both of them).
- the broadband modem 1333 is a processor (or module) that performs processing related to wired or wireless (or both) broadband communication performed via a broadband line such as the Internet or a public telephone line network.
- the broadband modem 1333 digitally modulates data to be transmitted (digital signal) to convert it into an analog signal, or demodulates the received analog signal to convert it into data (digital signal).
- the broadband modem 1333 can digitally modulate and demodulate arbitrary information such as image data processed by the video processor 1332, a stream obtained by encoding the image data, an application program, setting data, and the like.
- the RF module 1334 is a module that performs frequency conversion, modulation / demodulation, amplification, filter processing, and the like on an RF (Radio RF Frequency) signal transmitted and received via an antenna. For example, the RF module 1334 generates an RF signal by performing frequency conversion or the like on the baseband signal generated by the broadband modem 1333. Further, for example, the RF module 1334 generates a baseband signal by performing frequency conversion or the like on the RF signal received via the front end module 1314.
- RF Radio RF Frequency
- the application processor 1331 and the video processor 1332 may be integrated into a single processor.
- the external memory 1312 is a module having a storage device that is provided outside the video module 1311 and is used by the video module 1311.
- the storage device of the external memory 1312 may be realized by any physical configuration, but is generally used for storing a large amount of data such as image data in units of frames. For example, it is desirable to realize it with a relatively inexpensive and large-capacity semiconductor memory such as DRAM (Dynamic Random Access Memory).
- the power management module 1313 manages and controls power supply to the video module 1311 (each component in the video module 1311).
- the front end module 1314 is a module that provides the RF module 1334 with a front end function (a circuit on a transmitting / receiving end on the antenna side). As illustrated in FIG. 28, the front end module 1314 includes, for example, an antenna unit 1351, a filter 1352, and an amplification unit 1353.
- Antenna unit 1351 has an antenna for transmitting and receiving a radio signal and its peripheral configuration.
- the antenna unit 1351 transmits the signal supplied from the amplification unit 1353 as a radio signal, and supplies the received radio signal to the filter 1352 as an electric signal (RF signal).
- the filter 1352 performs a filtering process on the RF signal received via the antenna unit 1351 and supplies the processed RF signal to the RF module 1334.
- the amplifying unit 1353 amplifies the RF signal supplied from the RF module 1334 and supplies the amplified RF signal to the antenna unit 1351.
- Connectivity 1321 is a module having a function related to connection with the outside.
- the physical configuration of the connectivity 1321 is arbitrary.
- the connectivity 1321 has a configuration having a communication function other than the communication standard supported by the broadband modem 1333, an external input / output terminal, and the like.
- the communication 1321 is compliant with wireless communication standards such as Bluetooth (registered trademark), IEEE 802.11 (for example, Wi-Fi (Wireless Fidelity, registered trademark)), NFC (Near Field Communication), IrDA (InfraRed Data Association), etc. You may make it have a module which has a function, an antenna etc. which transmit / receive the signal based on the standard.
- the connectivity 1321 has a module having a communication function compliant with a wired communication standard such as USB (Universal Serial Bus), HDMI (registered trademark) (High-Definition Multimedia Interface), or a terminal compliant with the standard. You may do it.
- the connectivity 1321 may have other data (signal) transmission functions such as analog input / output terminals.
- the connectivity 1321 may include a data (signal) transmission destination device.
- the drive 1321 reads and writes data to and from a recording medium such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory (not only a removable medium drive, but also a hard disk, SSD (Solid State Drive) NAS (including Network Attached Storage) and the like.
- the connectivity 1321 may include an image or audio output device (a monitor, a speaker, or the like).
- the eyelid camera 1322 is a module having a function of capturing an image of a subject and obtaining image data of the subject.
- Image data obtained by imaging by the camera 1322 is supplied to, for example, a video processor 1332 and encoded.
- the sensor 1323 includes, for example, a voice sensor, an ultrasonic sensor, an optical sensor, an illuminance sensor, an infrared sensor, an image sensor, a rotation sensor, an angle sensor, an angular velocity sensor, a velocity sensor, an acceleration sensor, an inclination sensor, a magnetic identification sensor, an impact sensor, It is a module having an arbitrary sensor function such as a temperature sensor.
- the data detected by the sensor 1323 is supplied to the application processor 1331 and used by an application or the like.
- the configuration described above as a module may be realized as a processor, or conversely, the configuration described as a processor may be realized as a module.
- the present disclosure can be applied to the video processor 1332 as described later. Accordingly, the video set 1300 can be implemented as a set to which the present disclosure is applied.
- FIG. 29 illustrates an example of a schematic configuration of a video processor 1332 (FIG. 28) to which the present disclosure is applied.
- the video processor 1332 receives the video signal and the audio signal, encodes them in a predetermined method, decodes the encoded video data and audio data, A function of reproducing and outputting an audio signal.
- the video processor 1332 includes a video input processing unit 1401, a first image enlargement / reduction unit 1402, a second image enlargement / reduction unit 1403, a video output processing unit 1404, a frame memory 1405, and a memory control unit 1406.
- the video processor 1332 includes an encoding / decoding engine 1407, video ES (ElementaryElementStream) buffers 1408A and 1408B, and audio ES buffers 1409A and 1409B.
- the video processor 1332 includes an audio encoder 1410, an audio decoder 1411, a multiplexing unit (MUX (Multiplexer)) 1412, a demultiplexing unit (DMUX (Demultiplexer)) 1413, and a stream buffer 1414.
- MUX Multiplexing unit
- DMUX demultiplexing unit
- the video input processing unit 1401 acquires a video signal input from, for example, the connectivity 1321 (FIG. 28) and converts it into digital image data.
- the first image enlargement / reduction unit 1402 performs format conversion, image enlargement / reduction processing, and the like on the image data.
- the second image enlargement / reduction unit 1403 performs image enlargement / reduction processing on the image data in accordance with the format of the output destination via the video output processing unit 1404, or is the same as the first image enlargement / reduction unit 1402. Format conversion and image enlargement / reduction processing.
- the video output processing unit 1404 performs format conversion, conversion to an analog signal, and the like on the image data, and outputs the reproduced video signal to, for example, the connectivity 1321 (FIG. 28).
- the frame memory 1405 is a memory for image data shared by the video input processing unit 1401, the first image scaling unit 1402, the second image scaling unit 1403, the video output processing unit 1404, and the encoding / decoding engine 1407. .
- the frame memory 1405 is realized as a semiconductor memory such as a DRAM, for example.
- the memory control unit 1406 receives the synchronization signal from the encoding / decoding engine 1407, and controls the writing / reading access to the frame memory 1405 according to the access schedule to the frame memory 1405 written in the access management table 1406A.
- the access management table 1406A is updated by the memory control unit 1406 in accordance with processing executed by the encoding / decoding engine 1407, the first image enlargement / reduction unit 1402, the second image enlargement / reduction unit 1403, and the like.
- the encoding / decoding engine 1407 performs encoding processing of image data and decoding processing of a video stream that is data obtained by encoding the image data. For example, the encoding / decoding engine 1407 encodes the image data read from the frame memory 1405 and sequentially writes the data as a video stream in the video ES buffer 1408A. Further, for example, the video stream is sequentially read from the video ES buffer 1408B, decoded, and sequentially written in the frame memory 1405 as image data.
- the encoding / decoding engine 1407 uses the frame memory 1405 as a work area in the encoding and decoding. Also, the encoding / decoding engine 1407 outputs a synchronization signal to the memory control unit 1406, for example, at a timing at which processing for each macroblock is started.
- the video ES buffer 1408A buffers the video stream generated by the encoding / decoding engine 1407 and supplies the buffered video stream to the multiplexing unit (MUX) 1412.
- the video ES buffer 1408B buffers the video stream supplied from the demultiplexer (DMUX) 1413 and supplies the buffered video stream to the encoding / decoding engine 1407.
- the audio ES buffer 1409A buffers the audio stream generated by the audio encoder 1410 and supplies the buffered audio stream to the multiplexing unit (MUX) 1412.
- the audio ES buffer 1409B buffers the audio stream supplied from the demultiplexer (DMUX) 1413 and supplies the buffered audio stream to the audio decoder 1411.
- the audio encoder 1410 converts, for example, an audio signal input from the connectivity 1321 (FIG. 28), for example, into a digital format, and encodes the audio signal using a predetermined method such as an MPEG audio method or an AC3 (Audio Code number 3) method.
- the audio encoder 1410 sequentially writes an audio stream, which is data obtained by encoding an audio signal, in the audio ES buffer 1409A.
- the audio decoder 1411 decodes the audio stream supplied from the audio ES buffer 1409B, converts it into an analog signal, for example, and supplies it as a reproduced audio signal to, for example, the connectivity 1321 (FIG. 28).
- Multiplexer (MUX) 1412 multiplexes the video stream and the audio stream.
- the multiplexing method (that is, the format of the bit stream generated by multiplexing) is arbitrary.
- the multiplexing unit (MUX) 1412 can also add predetermined header information or the like to the bit stream. That is, the multiplexing unit (MUX) 1412 can convert the stream format by multiplexing. For example, the multiplexing unit (MUX) 1412 multiplexes the video stream and the audio stream to convert it into a transport stream that is a bit stream in a transfer format. Further, for example, the multiplexing unit (MUX) 1412 multiplexes the video stream and the audio stream, thereby converting the data into file format data (file data) for recording.
- the demultiplexing unit (DMUX) 1413 demultiplexes the bit stream in which the video stream and the audio stream are multiplexed by a method corresponding to the multiplexing by the multiplexing unit (MUX) 1412. That is, the demultiplexer (DMUX) 1413 extracts the video stream and the audio stream from the bit stream read from the stream buffer 1414 (separates the video stream and the audio stream). That is, the demultiplexer (DMUX) 1413 can convert the stream format by demultiplexing (inverse conversion of the conversion by the multiplexer (MUX) 1412). For example, the demultiplexing unit (DMUX) 1413 obtains the transport stream supplied from, for example, the connectivity 1321 and the broadband modem 1333 (both in FIG.
- the demultiplexer (DMUX) 1413 obtains file data read from various recording media by, for example, the connectivity 1321 (FIG. 28) via the stream buffer 1414, and demultiplexes it. It can be converted into a video stream and an audio stream.
- DMUX demultiplexer
- the stream buffer 1414 buffers the bit stream.
- the stream buffer 1414 buffers the transport stream supplied from the multiplexing unit (MUX) 1412 and, for example, at the predetermined timing or based on a request from the outside, for example, the connectivity 1321 or the broadband modem 1333 (whichever Are also supplied to FIG.
- MUX multiplexing unit
- the stream buffer 1414 buffers the file data supplied from the multiplexing unit (MUX) 1412, and at a predetermined timing or based on an external request, for example, the connectivity 1321 (FIG. 28) or the like. To be recorded on various recording media.
- MUX multiplexing unit
- the stream buffer 1414 buffers the transport stream acquired through, for example, the connectivity 1321 and the broadband modem 1333 (both of which are shown in FIG. 28), and performs reverse processing at a predetermined timing or based on an external request or the like.
- the data is supplied to a multiplexing unit (DMUX) 1413.
- DMUX multiplexing unit
- the stream buffer 1414 buffers file data read from various recording media, for example, in the connectivity 1321 (FIG. 28), and the demultiplexing unit at a predetermined timing or based on an external request or the like. (DMUX) 1413.
- a video signal input from the connectivity 1321 (FIG. 28) or the like to the video processor 1332 is converted into digital image data of a predetermined format such as 4: 2: 2Y / Cb / Cr format by the video input processing unit 1401.
- the data is sequentially written into the frame memory 1405.
- This digital image data is read by the first image enlargement / reduction unit 1402 or the second image enlargement / reduction unit 1403, and format conversion to a predetermined method such as 4: 2: 0Y / Cb / Cr method and enlargement / reduction processing are performed. Is written again in the frame memory 1405.
- This image data is encoded by the encoding / decoding engine 1407 and written as a video stream in the video ES buffer 1408A.
- an audio signal input to the video processor 1332 from the connectivity 1321 (FIG. 28) or the like is encoded by the audio encoder 1410 and written as an audio stream in the audio ES buffer 1409A.
- the video stream of the video ES buffer 1408A and the audio stream of the audio ES buffer 1409A are read and multiplexed by the multiplexing unit (MUX) 1412 and converted into a transport stream or file data.
- the transport stream generated by the multiplexing unit (MUX) 1412 is buffered in the stream buffer 1414 and then output to the external network via, for example, the connectivity 1321 or the broadband modem 1333 (both of which are shown in FIG. 28).
- the file data generated by the multiplexing unit (MUX) 1412 is buffered in the stream buffer 1414, and then output to, for example, the connectivity 1321 (FIG. 28) or the like and recorded on various recording media.
- a transport stream input from an external network to the video processor 1332 via the connectivity 1321 or the broadband modem 1333 (both in FIG. 28) is buffered in the stream buffer 1414 and then demultiplexed (DMUX) 1413 is demultiplexed.
- DMUX demultiplexed
- file data read from various recording media in the connectivity 1321 (FIG. 28) and input to the video processor 1332 is buffered in the stream buffer 1414 and then demultiplexed by the demultiplexer (DMUX) 1413. It becomes. That is, the transport stream or file data input to the video processor 1332 is separated into a video stream and an audio stream by the demultiplexer (DMUX) 1413.
- the audio stream is supplied to the audio decoder 1411 via the audio ES buffer 1409B and decoded to reproduce the audio signal.
- the video stream is written to the video ES buffer 1408B, and then sequentially read and decoded by the encoding / decoding engine 1407, and written to the frame memory 1405.
- the decoded image data is enlarged / reduced by the second image enlargement / reduction unit 1403 and written to the frame memory 1405.
- the decoded image data is read out to the video output processing unit 1404, format-converted to a predetermined system such as 4: 2: 2Y / Cb / Cr system, and further converted into an analog signal to be converted into a video signal. Is played out.
- the present disclosure when the present disclosure is applied to the video processor 1332 configured as described above, the present disclosure according to each of the above-described embodiments may be applied to the encoding / decoding engine 1407. That is, for example, the encoding / decoding engine 1407 may have the functions of the encoding devices according to the first and second embodiments. In this way, the video processor 1332 can obtain the same effects as those described above with reference to FIGS.
- the present disclosure (that is, the function of the decoding device according to each embodiment described above) may be realized by hardware such as a logic circuit or software such as an embedded program. Or may be realized by both of them.
- FIG. 30 illustrates another example of a schematic configuration of the video processor 1332 (FIG. 28) to which the present disclosure is applied.
- the video processor 1332 has a function of encoding and decoding video data by a predetermined method.
- the video processor 1332 includes a control unit 1511, a display interface 1512, a display engine 1513, an image processing engine 1514, and an internal memory 1515.
- the video processor 1332 includes a codec engine 1516, a memory interface 1517, a multiplexing / demultiplexing unit (MUX DMUX) 1518, a network interface 1519, and a video interface 1520.
- MUX DMUX multiplexing / demultiplexing unit
- the eyelid control unit 1511 controls the operation of each processing unit in the video processor 1332 such as the display interface 1512, the display engine 1513, the image processing engine 1514, and the codec engine 1516.
- the control unit 1511 includes, for example, a main CPU 1531, a sub CPU 1532, and a system controller 1533.
- the main CPU 1531 executes a program and the like for controlling the operation of each processing unit in the video processor 1332.
- the main CPU 1531 generates a control signal according to the program and supplies it to each processing unit (that is, controls the operation of each processing unit).
- the sub CPU 1532 plays an auxiliary role of the main CPU 1531.
- the sub CPU 1532 executes a child process such as a program executed by the main CPU 1531, a subroutine, or the like.
- the system controller 1533 controls operations of the main CPU 1531 and the sub CPU 1532 such as designating a program to be executed by the main CPU 1531 and the sub CPU 1532.
- the display interface 1512 outputs image data to, for example, the connectivity 1321 (FIG. 28) or the like under the control of the control unit 1511.
- the display interface 1512 converts image data of digital data into an analog signal, and outputs it to a monitor device of the connectivity 1321 (FIG. 28) or the like as a reproduced video signal or as image data of the digital data.
- the display engine 1513 Under the control of the control unit 1511, the display engine 1513 performs various conversion processes such as format conversion, size conversion, color gamut conversion, and the like so as to match the image data with hardware specifications such as a monitor device that displays the image. I do.
- the eyelid image processing engine 1514 performs predetermined image processing such as filter processing for improving image quality on the image data under the control of the control unit 1511.
- the internal memory 1515 is a memory provided inside the video processor 1332 that is shared by the display engine 1513, the image processing engine 1514, and the codec engine 1516.
- the internal memory 1515 is used, for example, for data exchange performed between the display engine 1513, the image processing engine 1514, and the codec engine 1516.
- the internal memory 1515 stores data supplied from the display engine 1513, the image processing engine 1514, or the codec engine 1516, and stores the data as needed (eg, upon request). This is supplied to the image processing engine 1514 or the codec engine 1516.
- the internal memory 1515 may be realized by any storage device, but is generally used for storing a small amount of data such as image data or parameters in units of blocks. It is desirable to realize a semiconductor memory having a relatively small capacity but a high response speed (for example, as compared with the external memory 1312) such as “Static Random Access Memory”.
- the codec engine 1516 performs processing related to encoding and decoding of image data.
- the encoding / decoding scheme supported by the codec engine 1516 is arbitrary, and the number thereof may be one or plural.
- the codec engine 1516 may be provided with codec functions of a plurality of encoding / decoding schemes, and may be configured to perform encoding of image data or decoding of encoded data using one selected from them.
- the codec engine 1516 includes, for example, MPEG-2 video 1541, AVC / H.2641542, HEVC / H.2651543, HEVC / H.265 (Scalable) 1544, as function blocks for processing related to the codec.
- HEVC / H.265 (Multi-view) 1545 and MPEG-DASH 1551 are included.
- “MPEG-2” Video 1541 is a functional block that encodes and decodes image data in the MPEG-2 format.
- AVC / H.2641542 is a functional block that encodes and decodes image data using the AVC method.
- HEVC / H.2651543 is a functional block that encodes and decodes image data using the HEVC method.
- HEVC / H.265 (Scalable) 1544 is a functional block that performs scalable encoding and scalable decoding of image data using the HEVC method.
- HEVC / H.265 (Multi-view) 1545 is a functional block that multi-view encodes or multi-view decodes image data using the HEVC method.
- MPEG-DASH 1551 is a functional block that transmits and receives image data in the MPEG-DASH (MPEG-Dynamic Adaptive Streaming over HTTP) method.
- MPEG-DASH is a technology for streaming video using HTTP (HyperText Transfer Protocol), and selects and transmits appropriate data from multiple encoded data with different resolutions prepared in advance in segments. This is one of the features.
- MPEG-DASH 1551 generates a stream compliant with the standard, controls transmission of the stream, and the like.
- MPEG-2 Video 1541 to HEVC / H.265 (Multi-view) 1545 described above are used. Is used.
- the memory interface 1517 is an interface for the external memory 1312. Data supplied from the image processing engine 1514 or the codec engine 1516 is supplied to the external memory 1312 via the memory interface 1517. The data read from the external memory 1312 is supplied to the video processor 1332 (the image processing engine 1514 or the codec engine 1516) via the memory interface 1517.
- a multiplexing / demultiplexing unit (MUX DMUX) 1518 multiplexes and demultiplexes various data related to images such as a bit stream of encoded data, image data, and a video signal.
- This multiplexing / demultiplexing method is arbitrary.
- the multiplexing / demultiplexing unit (MUX DMUX) 1518 can not only combine a plurality of data into one but also add predetermined header information or the like to the data.
- the multiplexing / demultiplexing unit (MUX DMUX) 1518 not only divides one data into a plurality of data but also adds predetermined header information or the like to each divided data. it can.
- the multiplexing / demultiplexing unit (MUX DMUX) 1518 can convert the data format by multiplexing / demultiplexing.
- the multiplexing / demultiplexing unit (MUX DMUX) 1518 multiplexes the bitstream, thereby transporting the transport stream, which is a bit stream in a transfer format, or data in a file format for recording (file data).
- the transport stream which is a bit stream in a transfer format, or data in a file format for recording (file data).
- file data file format for recording
- the network interface 1519 is an interface for a broadband modem 1333, connectivity 1321 (both in FIG. 28) and the like, for example.
- the video interface 1520 is an interface for connectivity 1321, a camera 1322 (both are FIG. 28), and the like.
- the transport stream is transmitted to the multiplexing / demultiplexing unit (MUX DMUX via the network interface 1519).
- MUX DMUX multiplexing / demultiplexing unit
- the codec engine 1516 For example, the image data obtained by decoding by the codec engine 1516 is subjected to predetermined image processing by the image processing engine 1514, subjected to predetermined conversion by the display engine 1513, and connected to, for example, the connectivity 1321 (see FIG. 28) and the image is displayed on the monitor.
- image data obtained by decoding by the codec engine 1516 is re-encoded by the codec engine 1516, multiplexed by a multiplexing / demultiplexing unit (MUX DMUX) 1518, converted into file data, and video
- MUX DMUX multiplexing / demultiplexing unit
- the data is output to, for example, the connectivity 1321 (FIG. 28) via the interface 1520 and recorded on various recording media.
- encoded data file data obtained by encoding image data read from a recording medium (not shown) by the connectivity 1321 (FIG. 28) or the like is multiplexed / demultiplexed via the video interface 1520. Is supplied to a unit (MUX DMUX) 1518, demultiplexed, and decoded by the codec engine 1516. Image data obtained by decoding by the codec engine 1516 is subjected to predetermined image processing by the image processing engine 1514, subjected to predetermined conversion by the display engine 1513, and, for example, connectivity 1321 via the display interface 1512 (FIG. 28). And the image is displayed on the monitor.
- MUX DMUX unit
- image data obtained by decoding by the codec engine 1516 is re-encoded by the codec engine 1516, multiplexed by the multiplexing / demultiplexing unit (MUX DMUX) 1518, and converted into a transport stream,
- MUX DMUX multiplexing / demultiplexing unit
- the connectivity 1321 and the broadband modem 1333 are supplied via the network interface 1519 and transmitted to other devices (not shown).
- image data and other data are exchanged between the processing units in the video processor 1332 using, for example, the internal memory 1515 and the external memory 1312.
- the power management module 1313 controls power supply to the control unit 1511, for example.
- the present disclosure when the present disclosure is applied to the video processor 1332 configured as described above, the present disclosure according to each embodiment described above may be applied to the codec engine 1516. That is, for example, the codec engine 1516 may have a functional block that realizes the encoding devices according to the first and second embodiments. With the codec engine 1516 doing in this way, the video processor 1332 can obtain the same effects as those described above with reference to FIGS.
- the present disclosure (that is, the function of the decoding device according to each embodiment described above) may be realized by hardware such as a logic circuit or software such as an embedded program. You may make it carry out, and you may make it implement
- the configuration of the video processor 1332 is arbitrary and may be other than the two examples described above.
- the video processor 1332 may be configured as one semiconductor chip, but may be configured as a plurality of semiconductor chips. For example, a three-dimensional stacked LSI in which a plurality of semiconductors are stacked may be used. Further, it may be realized by a plurality of LSIs.
- Video set 1300 can be incorporated into various devices that process image data.
- the video set 1300 can be incorporated in the television device 900 (FIG. 24), the mobile phone 920 (FIG. 25), the recording / reproducing device 940 (FIG. 26), the imaging device 960 (FIG. 27), or the like.
- the apparatus can obtain the same effects as those described above with reference to FIGS.
- each configuration of the video set 1300 described above can be implemented as a configuration to which the present disclosure is applied as long as it includes the video processor 1332.
- the video processor 1332 can be implemented as a video processor to which the present disclosure is applied.
- the processor, the video module 1311, and the like indicated by the dotted line 1341 can be implemented as a processor, a module, or the like to which the present disclosure is applied.
- the video module 1311, the external memory 1312, the power management module 1313, and the front end module 1314 can be combined and implemented as a video unit 1361 to which the present disclosure is applied. In any case, the same effects as those described above with reference to FIGS. 1 to 23 can be obtained.
- any configuration including the video processor 1332 can be incorporated into various devices that process image data, as in the case of the video set 1300.
- a video processor 1332 a processor indicated by a dotted line 1341, a video module 1311, or a video unit 1361, a television device 900 (FIG. 24), a mobile phone 920 (FIG. 25), a recording / playback device 940 (FIG. 26), The imaging device 960 (FIG. 27) can be incorporated.
- the apparatus can obtain the same effects as those described above with reference to FIGS. 1 to 23 as in the case of the video set 1300. .
- This disclosure receives bitstreams compressed by orthogonal transform such as discrete cosine transform and motion compensation, such as MPEG, H.26x, etc., via network media such as satellite broadcasting, cable TV, the Internet, and mobile phones.
- orthogonal transform such as discrete cosine transform and motion compensation
- the present invention can be applied to an encoding device used when processing on a storage medium such as an optical, magnetic disk, or flash memory.
- the first embodiment and the second embodiment may be combined.
- bi-directional prediction when bi-directional prediction is performed, bi-directional prediction is performed using an integer-precision motion vector.
- L0 prediction or L1 prediction is performed instead of bi-directional prediction. Is called.
- the present disclosure can take a configuration of cloud computing in which one function is shared by a plurality of devices via a network and is jointly processed.
- each step described in the above flowchart can be executed by one device or can be shared by a plurality of devices.
- the plurality of processes included in the one step can be executed by being shared by a plurality of apparatuses in addition to being executed by one apparatus.
- This disclosure can have the following configurations.
- an accuracy conversion unit that converts a fractional pixel precision motion vector of the image into an integer pixel precision motion vector
- a prediction image generation unit that generates a prediction image of bidirectional prediction of the image based on a motion vector with integer pixel accuracy for each prediction direction converted by the accuracy conversion unit
- An encoding device comprising: an encoding unit that encodes the image according to a block structure that is recursively divided using the bidirectional prediction image generated by the prediction image generation unit.
- the predicted image generation unit An averaging unit that averages an intermediate prediction image that is a prediction image of the image generated based on the motion vector with integer pixel accuracy for each prediction direction and generates a prediction image of the bidirectional prediction (1) ).
- the predicted image generation unit A storage unit for storing the intermediate predicted image; The encoding device according to (2), wherein the averaging unit is configured to average the intermediate predicted image stored in the storage unit.
- the predicted image generation unit The encoding apparatus according to (2) or (3), further including: an intermediate predicted image generation unit that generates the intermediate predicted image based on the motion vector with integer pixel accuracy for each prediction direction.
- the setting unit further sets the accuracy of the motion vector used for generating the prediction image of the bidirectional prediction to integer pixel accuracy or fractional pixel accuracy.
- the encoding device according to any one of 1) to (4).
- the encoding device according to any one of (1) to (6), further including: a direction restriction prediction unit that restricts only forward prediction or backward prediction when the bidirectional prediction is not performed.
- the direction limit prediction unit When the bi-directional prediction is not performed, the prediction direction is determined to be forward or backward using a reduced image obtained by reducing the image and a reduced reference image obtained by reducing the forward and backward reference images of the image.
- the determination unit is configured to determine the prediction direction based on a cost function value of a reduced predicted image that is a predicted image of the reduced image generated from the reduced reference image.
- the encoding device according to any one of the above (12) The encoding device according to any one of (7) to (11), further including: a determination unit that determines not to perform the bidirectional prediction according to an application. (13) The encoding device according to any one of (7) to (11), further including: a determination unit that determines not to perform the bidirectional prediction based on a quantization parameter, a frame rate, or a resolution of the image.
- the encoding device When performing bidirectional prediction on an image, for each prediction direction, an accuracy conversion step of converting a motion vector with fractional pixel accuracy of the image into a motion vector with integer pixel accuracy; Based on a motion vector with integer pixel accuracy for each prediction direction converted by the processing of the accuracy conversion step, a prediction image generation step of generating a prediction image of bidirectional prediction of the image, and a processing of the prediction image generation step
- An encoding method comprising: encoding the image according to a block structure that is recursively divided using the generated prediction image of the bi-directional prediction.
- a direction limit prediction unit that restricts the image to perform only forward prediction or backward prediction
- An encoding device comprising: an encoding unit that encodes the image according to a recursively divided block structure using the predicted image.
- the direction limit prediction unit Using a reduced image obtained by reducing the image and a reduced reference image obtained by reducing the forward and backward reference images of the image in a plurality of LCU (Largest Coding Unit) units, the prediction direction is set forward or backward.
- a prediction unit that performs the forward or backward prediction determined by the determination unit using the image and a forward or backward reference image of the image. apparatus.
- the direction restriction prediction unit is configured to perform restriction according to an application.
- the direction restriction prediction unit is configured to perform restriction based on a quantization parameter, a frame rate, or a resolution of the image.
- the encoding device When generating a predicted image for an image, in a plurality of LCUs (Largest Coding Units), a direction limit prediction step for limiting the image to perform only forward prediction or backward prediction,
- An encoding method comprising: encoding the image according to a recursively divided block structure using the predicted image.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本開示は、双方向予測時に必要な記憶容量を削減することができるようにする符号化装置および符号化方法に関する。 精度変換部は、入力画像に対して双方向予測を行う場合、予測方向ごとに、入力画像の分数画素精度の動きベクトルを整数画素精度の動きベクトルに変換する。平均化部は、精度変換部により変換された予測方向ごとの整数画素精度の動きベクトルに基づいて、入力画像の双方向予測の予測画像を生成する。本開示は、例えば、HEVC(High Efficiency Video Coding)方式の符号化装置等に適用することができる。
Description
本開示は、符号化装置および符号化方法に関し、特に、双方向予測時に必要な記憶容量を削減することができるようにした符号化装置および符号化方法に関する。
ITU-Tと、ISO/IECの共同の標準化団体であるJCTVC(Joint Collaboration Team - Video Coding)により、HEVC(High Efficiency Video Coding)と呼ばれる符号化方式の標準化が行われた(例えば、非特許文献1参照)。
AVC(Advanced Video Coding)方式やHEVC方式では、8ビットの画像の双方向予測(BiP)時、各予測方向について、分数画素精度(小数画素精度)の動きベクトルが検出され、その動きベクトルを用いて動き補償が行われる。そして、AVC方式では、その結果得られる14ビットの各予測方向の予測画像が8ビットに丸められて平均化され、最終的な予測画像が生成される。
しかしながら、HEVC方式では、14ビットの各予測方向の予測画像が丸められず、そのまま平均化されて、最終的な予測画像生成される。従って、AVC方式に比べて予測画像の精度は向上するが、平均化前の各予測方向の予測画像を保持するキャッシュに必要な記憶容量が大きくなる。このことは、予測モードがマージモードである場合においても同様である。
また、双方向予測では、動きベクトルの検出および動き補償を行うために、2方向の参照画像をキャッシュに保持する必要がある。従って、一方向予測に比べて参照画像を保持するキャッシュに必要な記憶容量が大きくなる。
Benjamin Bross,Gary J.Sullivan,Ye-Kui Wang,"Editors’ proposed corrections to HEVC version 1",JCTVC-M0432_v3,2013.4.18-4.26
従って、双方向予測時に必要な記憶容量を削減することが望まれている。
本開示は、このような状況に鑑みてなされたものであり、双方向予測時に必要な記憶容量を削減することができるようにするものである。
本開示の第1の側面の符号化装置は、画像に対して双方向予測を行う場合、予測方向ごとに、前記画像の分数画素精度の動きベクトルを整数画素精度の動きベクトルに変換する精度変換部と、前記精度変換部により変換された前記予測方向ごとの整数画素精度の動きベクトルに基づいて、前記画像の双方向予測の予測画像を生成する予測画像生成部と、前記予測画像生成部により生成された前記双方向予測の予測画像を用いて、前記画像を、再帰的に分割されるブロック構造にしたがって符号化する符号化部とを備える符号化装置である。
本開示の第1の側面の符号化方法は、本開示の第1の側面の符号化装置に対応する。
本開示の第1の側面においては、画像に対して双方向予測を行う場合、予測方向ごとに、前記画像の分数画素精度の動きベクトルが整数画素精度の動きベクトルに変換され、変換された前記予測方向ごとの整数画素精度の動きベクトルに基づいて、前記画像の双方向予測の予測画像が生成され、前記双方向予測の予測画像を用いて、前記画像が、再帰的に分割されるブロック構造にしたがって符号化される。
本開示の第2の側面の符号化装置は、画像に対する予測画像を生成する場合に、複数のLCU(Largest Coding Unit)単位で、前記画像に対して、前方向予測または後方向予測のみを行うように制限する方向制限予測部と、前記予測画像を用いて、前記画像を、再帰的に分割されるブロック構造にしたがって符号化する符号化部とを備える符号化装置である。
本開示の第2の側面の符号化方法は、本開示の第2の側面の符号化装置に対応する。
本開示の第2の側面においては、画像に対する予測画像を生成する場合に、複数のLCU(Largest Coding Unit)単位で、前記画像に対して、前方向予測または後方向予測のみが行われるように制限され、前記予測画像を用いて、前記画像が、再帰的に分割されるブロック構造にしたがって符号化される。
なお、第1および第2の側面の符号化装置は、コンピュータにプログラムを実行させることにより実現することができる。
また、第1および第2の側面の符号化装置を実現するために、コンピュータに実行させるプログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して、提供することができる。
第1および第2の側面の符号化装置は、独立した装置であっても良いし、1つの装置を構成している内部ブロックであっても良い。
本開示の第1および第2の側面によれば、画像を符号化することができる。また、本開示の第1および第2の側面によれば、双方向予測時に必要な記憶容量を削減することができる。
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
以下、本開示の前提および本開示を実施するための形態(以下、実施の形態という)について説明する。なお、説明は以下の順序で行う。
1.第1実施の形態:符号化装置(図1乃至図9)
2.第2実施の形態:符号化装置(図10乃至図16)
3.第3実施の形態:符号化装置(図17乃至図21)
4.復号装置(図22)
5.第4実施の形態:コンピュータ(図23)
6.テレビジョン装置(図24)
7.第5実施の形態:携帯電話機(図25)
8.第6実施の形態:記録再生装置(図26)
9.第7実施の形態:撮像装置(図27)
10.第8実施の形態:ビデオセット(図28乃至図30)
1.第1実施の形態:符号化装置(図1乃至図9)
2.第2実施の形態:符号化装置(図10乃至図16)
3.第3実施の形態:符号化装置(図17乃至図21)
4.復号装置(図22)
5.第4実施の形態:コンピュータ(図23)
6.テレビジョン装置(図24)
7.第5実施の形態:携帯電話機(図25)
8.第6実施の形態:記録再生装置(図26)
9.第7実施の形態:撮像装置(図27)
10.第8実施の形態:ビデオセット(図28乃至図30)
<第1実施の形態>
(符号化装置の第1実施の形態の構成例)
図1は、本開示を適用した符号化装置の第1実施の形態の構成例を示すブロック図である。
(符号化装置の第1実施の形態の構成例)
図1は、本開示を適用した符号化装置の第1実施の形態の構成例を示すブロック図である。
図1の符号化装置10は、符号化部11と外部メモリ12により構成される。符号化装置10は、外部メモリ12に記憶されている画像をHEVC方式で符号化する。
具体的には、符号化装置10の符号化部11は、処理部21とキャッシュ22により構成される。処理部21には、外部メモリ12に記憶されている符号化対象の画像が、キャッシュ22を介して入力される。処理部21は、入力された画像(以下、入力画像という)に対して符号化処理を行う。このとき、処理部21は、符号化処理の途中結果および最終結果を必要に応じてキャッシュ22に供給し、記憶させる。また、処理部21は、キャッシュ22に参照画像として記憶されている符号化済みの画像を読み出し、符号化処理に用いる。
キャッシュ22は、処理部21から供給される符号化処理の途中結果および最終結果を一時的に記憶する。キャッシュ22は、記憶している符号化処理の最終結果である符号化済みの画像を外部メモリ12に供給し、記憶させる。また、キャッシュ22は、外部メモリ12から参照画像として供給される符号化済みの画像および入力画像を一時的に記憶する。
外部メモリ12は、DRAM(Dynamic Random Access Memory)などにより構成される。外部メモリ12は、入力画像とキャッシュ22から供給される符号化済みの画像を記憶する。外部メモリ12は、記憶している入力画像をキャッシュ22に供給する。また、外部メモリ12は、記憶している符号化済みの画像を参照画像としてキャッシュ22に供給する。
(符号化部の構成例)
図2は、図1の符号化部11の構成例を示すブロック図である。
図2は、図1の符号化部11の構成例を示すブロック図である。
図2の符号化部11は、画面並べ替えバッファ32、演算部33、直交変換部34、量子化部35、可逆符号化部36、蓄積バッファ37、逆量子化部38、逆直交変換部39、および加算部40を有する。また、符号化部11は、デブロックフィルタ41、適応オフセットフィルタ42、フレームメモリ44、スイッチ45、イントラ予測部46、動き予測・補償部47、予測画像選択部48、およびレート制御部49を有する。
処理部21は、画面並べ替えバッファ32、蓄積バッファ37、およびフレームメモリ44以外のブロックに含まれる処理を行う部により構成される。キャッシュ22は、画面並べ替えバッファ32、蓄積バッファ37、およびフレームメモリ44、並びに、これら以外のブロックに含まれる処理の途中結果や最終結果を一時的に記憶する部により構成される。
符号化部11の画面並べ替えバッファ32は、図1の外部メモリ12から供給されるデジタル信号である入力画像を記憶する。画面並べ替えバッファ32は、記憶した表示の順番のフレーム単位の入力画像を、GOP構造に応じて、符号化のための順番に並べ替える。画面並べ替えバッファ32は、並べ替え後の入力画像を、演算部33、イントラ予測部46、および動き予測・補償部47に出力する。
演算部33は、符号化部として機能し、予測画像選択部48から供給される予測画像を用いて、画面並べ替えバッファ32から供給される入力画像を、再帰的に分割されるブロック構造にしたがって符号化する。具体的には、演算部33は、CU(Coding Unit)の構造にしたがって、入力画像から予測画像を減算することにより符号化を行う。演算部33は、その結果得られる画像を、残差情報として直交変換部34に出力する。なお、予測画像選択部48から予測画像が供給されない場合、演算部33は、画面並べ替えバッファ32から読み出された画像をそのまま残差情報として直交変換部34に出力する。
直交変換部34は、演算部33からの残差情報をTU(transform unit)単位で直交変換する。直交変換部34は、直交変換の結果得られる直交変換係数を量子化部35に供給する。
量子化部35は、直交変換部34から供給される直交変換係数に対して量子化を行う。量子化部35は、量子化された直交変換係数を可逆符号化部36に供給する。
可逆符号化部36は、最適イントラ予測モードを示すイントラ予測モード情報をイントラ予測部46から取得する。また、可逆符号化部36は、最適インター予測モードを示すインター予測モード情報、動きベクトルを表す動きベクトル情報、参照画像を特定する情報などを動き予測・補償部47から取得する。
また、可逆符号化部36は、適応オフセットフィルタ42からオフセットフィルタに関するオフセットフィルタ情報を取得する。
可逆符号化部36は、量子化部35から供給される量子化された直交変換係数に対して、可変長符号化(例えば、CAVLC(Context-Adaptive Variable Length Coding)など)、算術符号化(例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)など)などの可逆符号化を行う。
また、可逆符号化部36は、イントラ予測モード情報、または、インター予測モード情報、動きベクトル情報、および参照画像を特定する情報、並びにオフセットフィルタ情報を、符号化に関する符号化情報として可逆符号化する。可逆符号化部36は、可逆符号化された符号化情報と直交変換係数を、符号化データとして蓄積バッファ37に供給し、蓄積させる。なお、可逆符号化された符号化情報は、スライスヘッダ等のヘッダ部として符号化データに付加されるようにしてもよい。
蓄積バッファ37は、可逆符号化部36から供給される符号化データを、一時的に記憶する。また、蓄積バッファ37は、記憶している符号化データを出力する。
また、量子化部35より出力された、量子化された直交変換係数は、逆量子化部38にも入力される。逆量子化部38は、量子化部35により量子化された直交変換係数に対して、量子化部35における量子化方法に対応する方法で逆量子化を行う。逆量子化部38は、逆量子化の結果得られる直交変換係数を逆直交変換部39に供給する。
逆直交変換部39は、TU単位で、逆量子化部38から供給される直交変換係数に対して、直交変換部34における直交変換方法に対応する方法で逆直交変換を行う。逆直交変換部39は、その結果得られる残差情報を加算部40に供給する。
加算部40は、逆直交変換部39から供給される残差情報と、予測画像選択部48から供給される予測画像を加算し、局部的に復号を行う。なお、予測画像選択部48から予測画像が供給されない場合、加算部40は、逆直交変換部39から供給される残差情報を局部的に復号された画像とする。加算部40は、局部的に復号された画像をデブロックフィルタ41とフレームメモリ44に供給する。
デブロックフィルタ41は、加算部40から供給される局部的に復号された画像に対して、ブロック歪を除去するデブロックフィルタ処理を行い、その結果得られる画像を適応オフセットフィルタ42に供給する。
適応オフセットフィルタ42は、デブロックフィルタ41によるデブロックフィルタ処理後の画像に対して、主にリンギングを除去する適応オフセットフィルタ(SAO(Sample adaptive offset))処理を行う。
具体的には、適応オフセットフィルタ42は、最大の符号化単位であるLCU(Largest Coding Unit)ごとに適応オフセットフィルタ処理の種類を決定し、その適応オフセットフィルタ処理で用いられるオフセットを求める。適応オフセットフィルタ42は、求められたオフセットを用いて、デブロックフィルタ処理後の画像に対して、決定された種類の適応オフセットフィルタ処理を行う。
適応オフセットフィルタ42は、適応オフセットフィルタ処理後の画像をフレームメモリ44に供給する。また、適応オフセットフィルタ42は、行われた適応オフセットフィルタ処理の種類とオフセットを示す情報を、オフセットフィルタ情報として可逆符号化部36に供給する。
フレームメモリ44は、適応オフセットフィルタ42から供給される画像と、加算部40から供給される画像を蓄積する。フレームメモリ44に蓄積されたフィルタ処理が行われていない画像のうちのPU(Prediction Unit)に隣接する画素は、周辺画素としてスイッチ45を介してイントラ予測部46に供給される。
一方、フレームメモリ44に蓄積されたフィルタ処理が行われた画像は、符号化済みの画像として図1の外部メモリ12に供給され、記憶される。また、フレームメモリ44は、外部メモリ12から供給される参照画像を蓄積する。フレームメモリ44に蓄積された参照画像はスイッチ45を介して動き予測・補償部47に出力される。
イントラ予測部46は、PU単位で、フレームメモリ44からスイッチ45を介して読み出された周辺画素を用いて、候補となる全てのイントラ予測モードのイントラ予測処理を行う。
また、イントラ予測部46は、画面並べ替えバッファ32から読み出された入力画像と、イントラ予測処理の結果生成される予測画像とに基づいて、候補となる全てのイントラ予測モードに対してコスト関数値(詳細は後述する)を算出する。そして、イントラ予測部46は、コスト関数値が最小となるイントラ予測モードを、最適イントラ予測モードに決定する。
イントラ予測部46は、最適イントラ予測モードで生成された予測画像、および、対応するコスト関数値を、予測画像選択部48に供給する。イントラ予測部46は、予測画像選択部48から最適イントラ予測モードで生成された予測画像の選択が通知された場合、イントラ予測モード情報を可逆符号化部36に供給する。
なお、コスト関数値は、RD(Rate Distortion)コストともいい、例えば、H.264/AVC方式における参照ソフトウエアであるJM(Joint Model)で定められているような、High Complexity モードまたはLow Complexity モードの手法に基づいて算出される。なお、H.264/AVC方式における参照ソフトウエアは、http://iphome.hhi.de/suehring/tml/index.htmにおいて公開されている。
具体的には、コスト関数値の算出手法としてHigh Complexity モードが採用される場合、候補となる全ての予測モードに対して、仮に復号までが行われ、次の式(1)で表わされるコスト関数値が各予測モードに対して算出される。
Dは、原画像と復号画像の差分(歪)、Rは、直交変換の係数まで含んだ発生符号量、λは、量子化パラメータQPの関数として与えられるラグランジュ未定乗数である。
一方、コスト関数値の算出手法としてLow Complexity モードが採用される場合、候補となる全ての予測モードに対して、予測画像の生成、および、符号化情報の符号量の算出が行われ、次の式(2)で表わされるコスト関数Cost(Mode)が各予測モードに対して算出される。
Dは、原画像と予測画像の差分(歪)、Header_Bitは、符号化情報の符号量、QPtoQuantは、量子化パラメータQPの関数として与えられる関数である。
Low Complexity モードにおいては、全ての予測モードに対して、予測画像を生成するだけでよく、復号画像を生成する必要がないため、演算量が少なくて済む。
動き予測・補償部47は、PU単位で、候補となる全てのインター予測モードの動き予測・補償処理を行う。具体的には、動き予測・補償部47は、画面並べ替えバッファ32から供給される入力画像と、フレームメモリ44からスイッチ45を介して供給される参照画像とに基づいて、候補となる全てのインター予測モードの動きベクトルを1/4画素精度で検出する。なお、インター予測モードとは、PUのサイズ、予測方向、マージモードであるかどうか等を表すモードである。
動き予測・補償部47は、候補となるインター予測モードが予測方向として双方向を表す場合、1/4画素精度の動きベクトルを整数画素精度の動きベクトルに変換する。そして、動き予測・補償部47は、変換後の整数画素精度の動きベクトルに基づいて参照画像に補償処理を施し、予測画像を生成する。一方、動き予測・補償部47は、候補となるインター予測モードが予測方向として前方向または後方向を表す場合、1/4画素精度の動きベクトルに基づいて参照画像に対して線形補間を用いた補償処理を施し、予測画像を生成する。
なお、前方向の予測(L0予測)とは、符号化する入力画像より表示順で前の画像を参照画像として行う予測であり、後方向の予測(L1予測)とは、符号化する入力画像より表示順で後の画像を参照画像として行う予測である。
また、動き予測・補償部47は、入力画像と予測画像に基づいて、候補となる全てのインター予測モードに対してコスト関数値を算出し、コスト関数値が最小となるインター予測モードを最適インター予測モードに決定する。そして、動き予測・補償部47は、最適インター予測モードのコスト関数値と、対応する予測画像を予測画像選択部48に供給する。
また、動き予測・補償部47は、予測画像選択部48から最適インター予測モードで生成された予測画像の選択が通知された場合、インター予測モード情報、対応する動きベクトル情報、参照画像を特定する情報などを可逆符号化部36に出力する。
予測画像選択部48は、イントラ予測部46および動き予測・補償部47から供給されるコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちの、対応するコスト関数値が小さい方を、最適予測モードに決定する。そして、予測画像選択部48は、最適予測モードの予測画像を、演算部33および加算部40に供給する。また、予測画像選択部48は、最適予測モードの予測画像の選択をイントラ予測部46または動き予測・補償部47に通知する。
レート制御部49は、蓄積バッファ37に蓄積された符号化データに基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部35の量子化動作のレートを制御する。
(動き予測・補償部の構成例)
図3は、図2の動き予測・補償部47の構成例を示すブロック図である。
図3は、図2の動き予測・補償部47の構成例を示すブロック図である。
図3の動き予測・補償部47は、L0予測部61、L1予測部62、双方向予測部63、および選択部64により構成される。
動き予測・補償部47のL0予測部61は、PU単位で、候補となるL0予測を表すインター予測モード(以下、L0予測モードという)の動き予測・補償処理を行う。具体的には、L0予測部61は、L0予測モードごとに、画面並べ替えバッファ32からの入力画像とスイッチ45からの表示順で入力画像より前の参照画像とに基づいて、動きベクトルを1/4画素精度で検出する。そして、L0予測部61は、L0予測モードごとに、1/4画素精度の動きベクトルに基づいて、参照画像に対して線形補間を用いた補償処理を施し、予測画像を生成する。
さらに、L0予測部61は、L0予測モードごとに、入力画像と予測画像に基づいてコスト関数値を算出する。L0予測部61は、各L0予測モードの予測画像とコスト関数値を選択部64に供給する。
L1予測部62の処理は、予測方向が後方向である点を除いて、L0予測部61の処理と同様である。即ち、L1予測部62は、PU単位で、候補となるL1予測を表すインター予測モード(以下、L1予測モードという)の動き予測・補償処理を行う。また、L1予測部62は、L1予測モードごとに、入力画像と予測画像に基づいてコスト関数値を算出する。L1予測部62は、各L1予測モードの予測画像とコスト関数値を選択部64に供給する。
双方向予測部63は、PU単位で、候補となる双方向予測を表すインター予測モード(以下、双方向予測モードという)の動き予測・補償処理を行う。具体的には、双方向予測部63は、双方向予測モードごとに、入力画像と表示順で入力画像より前の参照画像とに基づいて、前方向の動きベクトルを1/4画素精度で検出する。また、双方向予測部63は、双方向予測モードごとに、入力画像と表示順で入力画像より後の参照画像とに基づいて、後方向の動きベクトルを1/4画素精度で検出する。
そして、双方向予測部63は、双方向予測モードごとに、検出された前方向および後方向の1/4画素精度の動きベクトルを、整数画素精度の動きベクトルに変換する。双方向予測部63は、双方向予測モードごとに、整数画素精度の前方向および後方向の動きベクトルに基づいて参照画像に対して補償処理を施し、L0予測およびL1予測の予測画像を生成する。また、双方向予測部63は、双方向予測モードごとに、L0予測の予測画像とL1予測の予測画像を平均化し、双方向予測の予測画像を生成する。
双方向予測部63は、双方向予測モードごとに、入力画像と双方向予測の予測画像とに基づいてコスト関数値を算出する。双方向予測部63は、各双方向予測モードの予測画像とコスト関数値を選択部64に供給する。
選択部64は、L0予測部61、L1予測部62、および双方向予測部63から供給されるコスト関数値のうちの最小のコスト関数値に対応するインター予測モードを、最適インター予測モードに決定する。そして、選択部64は、最適インター予測モードのコスト関数値と、対応する予測画像を図2の予測画像選択部48に供給する。また、選択部64は、予測画像選択部48から最適インター予測モードで生成された予測画像の選択が通知された場合、インター予測モード情報、対応する動きベクトル情報、参照画像を特定する情報などを可逆符号化部36に出力する。
(双方向予測部の構成例)
図4は、図3の双方向予測部63の構成例を示すブロック図である。
図4は、図3の双方向予測部63の構成例を示すブロック図である。
図4の双方向予測部63は、検出部81、精度変換部82、中間予測画像生成部83、メモリ84、検出部85、精度変換部86、中間予測画像生成部87、メモリ88、平均化部89、および算出部90により構成される。
双方向予測部63の検出部81は、2次元の線形内挿適応フィルタを有する。検出部81は、入力画像の双方向予測を行う場合、候補となる双方向予測モードごとに、前方向の1/4画素精度の動きベクトル検出処理を行う。
具体的には、検出部81は、2次元の線形内挿適応フィルタを用いて、図2の画面並べ替えバッファ32から供給される入力画像に対して内挿フィルタ処理を行い、入力画像を高解像度化する。また、検出部81は、2次元の線形内挿適応フィルタを用いて、図2のスイッチ45から供給される入力画像より表示順で前の参照画像に対して内挿フィルタ処理を行い、参照画像を高解像度化する。検出部81は、高解像度化された入力画像と参照画像に基づいて、入力画像の動きベクトルを1/4画素精度で検出する。検出部81は、検出された1/4画素精度の動きベクトルを精度変換部82に供給する。
精度変換部82は、検出部81から供給される1/4画素精度の動きベクトルを整数画素精度の動きベクトルに変換し、中間予測画像生成部83に供給する。
中間予測画像生成部83は、精度変換部82から供給される整数画素精度の動きベクトルに基づいて、入力画像より表示順で前の参照画像に対して動き補償を行うことにより、L0予測を行う。中間予測画像生成部83は、その結果生成されるL0予測の予測画像を中間予測画像としてメモリ84に供給する。
メモリ84は、キャッシュ22の一部を構成する。メモリ84は、中間予測画像生成部83から中間予測画像として供給されるL0予測の予測画像を記憶する。
検出部85、精度変換部86、中間予測画像生成部87、およびメモリ88の処理は、それぞれ、予測方向が後方向である点を除いて、検出部81、精度変換部82、中間予測画像生成部83、メモリ84の処理と同様である。
即ち、検出部85は、2次元の線形内挿適応フィルタを有し、入力画像の双方向予測を行う場合、候補となる双方向予測モードごとに、後方向の1/4画素精度の動きベクトル検出処理を行う。そして、検出部85は、検出された1/4画素精度の動きベクトルを精度変換部82に供給する。
精度変換部86は、検出部85から供給される1/4画素精度の動きベクトルを整数画素精度の動きベクトルに変換し、中間予測画像生成部87に供給する。
中間予測画像生成部87は、精度変換部86から供給される整数画素精度の動きベクトルに基づいて、入力画像より表示順で後の参照画像に対して動き補償を行うことにより、L1予測を行う。中間予測画像生成部87は、その結果生成されるL1予測の予測画像を中間予測画像としてメモリ88に供給する。
メモリ88は、キャッシュ22の一部を構成する。メモリ88は、中間予測画像生成部87から中間予測画像として供給されるL1予測の予測画像を記憶する。
平均化部89は、双方向予測モードごとに、メモリ84とメモリ88から中間予測画像を読み出し、平均化する。平均化部89は、平均化された中間予測画像を双方向予測の予測画像として算出部90に供給する。
以上のように、中間予測画像生成部83、メモリ84、中間予測画像生成部87、メモリ88、および平均化部89は、各予測方向の整数画素精度の動きベクトルに基づいて入力画像の双方向予測の予測画像を生成する予測画像生成部として機能する。
算出部90は、双方向予測モードごとに、平均化部89から供給される予測画像と入力画像とに基づいて、コスト関数値を算出する。算出部90は、各双方向予測モードの予測画像とコスト関数値を図3の選択部64に供給する。
(効果の説明)
図5は、符号化装置10による効果を説明する図である。
図5は、符号化装置10による効果を説明する図である。
図5のAに示すように、双方向予測時に、分数画素精度の動きベクトルを用いて動き補償が行われる場合、線形補間を用いて動き補償を行う必要がある。従って、例えば、入力画像のビット数が8ビットである場合、動き補償の結果生成されるL0予測の予測画像およびL1予測の予測画像のビット数は14ビットになる。よって、双方向予測の予測画像を生成するためにL0予測の予測画像およびL1予測の予測画像を記憶するキャッシュに必要な記憶容量は大きくなる。
これに対して、符号化装置10では、双方向予測時に整数画素精度の動きベクトルを用いて動き補償を行う。従って、図5のBに示すように、動き補償時に線形補間を行う必要がなくなり、8ビットの入力画像から、8ビットのL0予測の予測画像とL1予測の予測画像が生成される。よって、キャッシュ22を構成するメモリ84およびメモリ88に必要な記憶容量は小さくなる。即ち、符号化装置10では、双方向予測時に分数画素精度の動きベクトルが用いられる場合に比べて、双方向予測時に必要なキャッシュの記憶容量を削減することができる。
また、符号化装置10では、双方向予測時に線形補間を行う必要がないため、双方向予測時に分数画素精度の動きベクトルが用いられる場合に比べて、双方向予測時の処理量を削減することができる。
(符号化装置の処理の説明)
図6および図7は、図1の符号化装置10の符号化処理を説明するフローチャートである。
図6および図7は、図1の符号化装置10の符号化処理を説明するフローチャートである。
図7のステップS31において、符号化部11の画面並べ替えバッファ32は、図1の外部メモリ12から供給される入力画像を記憶する。
ステップS32において、画面並べ替えバッファ32は、記憶した表示の順番のフレームの画像を、GOP構造に応じて、符号化のための順番に並べ替える。画面並べ替えバッファ32は、並べ替え後のフレーム単位の画像を、演算部33、イントラ予測部46、および動き予測・補償部47に供給する。
ステップS33において、イントラ予測部46は、PU単位で候補となる全てのイントラ予測モードのイントラ予測処理を行う。また、イントラ予測部46は、画面並べ替えバッファ32から読み出された画像と、イントラ予測処理の結果生成される予測画像とに基づいて、候補となる全てのイントラ予測モードに対してコスト関数値を算出する。そして、イントラ予測部46は、コスト関数値が最小となるイントラ予測モードを、最適イントラ予測モードに決定する。イントラ予測部46は、最適イントラ予測モードで生成された予測画像、および、対応するコスト関数値を、予測画像選択部48に供給する。
また、動き予測・補償部47は、PU単位で候補となる全てのインター予測モードの動き予測・補償処理を行う。また、動き予測・補償部47は、画面並べ替えバッファ32から供給される画像と予測画像とに基づいて、候補となる全てのインター予測モードに対してコスト関数値を算出し、コスト関数値が最小となるインター予測モードを最適インター予測モードに決定する。そして、動き予測・補償部47は、最適インター予測モードのコスト関数値と、対応する予測画像を予測画像選択部48に供給する。
ステップS34において、予測画像選択部48は、イントラ予測部46および動き予測・補償部47から供給されるコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちのコスト関数値が最小となる方を、最適予測モードに決定する。そして、予測画像選択部48は、最適予測モードの予測画像を、演算部33および加算部40に供給する。
ステップS35において、予測画像選択部48は、最適予測モードが最適インター予測モードであるかどうかを判定する。ステップS35で最適予測モードが最適インター予測モードであると判定された場合、予測画像選択部48は、最適インター予測モードで生成された予測画像の選択を動き予測・補償部47に通知する。
そして、ステップS36において、動き予測・補償部47は、インター予測モード情報、動きベクトル情報、および参照画像を特定する情報を可逆符号化部36に供給し、処理をステップS38に進める。
一方、ステップS35で最適予測モードが最適インター予測モードではないと判定された場合、即ち最適予測モードが最適イントラ予測モードである場合、予測画像選択部48は、最適イントラ予測モードで生成された予測画像の選択をイントラ予測部46に通知する。そして、ステップS37において、イントラ予測部46は、イントラ予測モード情報を可逆符号化部36に供給し、処理をステップS38に進める。
ステップS38において、演算部33は、画面並べ替えバッファ32から供給される入力画像から、予測画像選択部48から供給される予測画像を減算することにより符号化を行う。演算部33は、その結果得られる画像を、残差情報として直交変換部34に出力する。
ステップS39において、直交変換部34は、演算部33からの残差情報に対してTU単位で直交変換を施し、その結果得られる直交変換係数を量子化部35に供給する。
ステップS40において、量子化部35は、直交変換部34から供給される直交変換係数を量子化し、量子化された直交変換係数を可逆符号化部36と逆量子化部38に供給する。
図7のステップS41において、逆量子化部38は、量子化部35から供給される量子化された係数を逆量子化し、その結果得られる直交変換係数を逆直交変換部39に供給する。
ステップS42において、逆直交変換部39は、逆量子化部38から供給される直交変換係数に対してTU単位で逆直交変換を施し、その結果得られる残差情報を加算部40に供給する。
ステップS43において、加算部40は、逆直交変換部39から供給される残差情報と、予測画像選択部48から供給される予測画像を加算し、局部的に復号を行う。加算部40は、局部的に復号された画像をデブロックフィルタ41とフレームメモリ44に供給する。
ステップS44において、デブロックフィルタ41は、加算部40から供給される局部的に復号された画像に対して、デブロックフィルタ処理を行う。デブロックフィルタ41は、その結果得られる画像を適応オフセットフィルタ42に供給する。
ステップS45において、適応オフセットフィルタ42は、デブロックフィルタ41から供給される画像に対して、LCUごとに適応オフセットフィルタ処理を行う。適応オフセットフィルタ42は、その結果得られる画像をフレームメモリ44に供給する。また、適応オフセットフィルタ42は、LCUごとに、オフセットフィルタ情報を可逆符号化部36に供給する。
ステップS46において、フレームメモリ44は、適応オフセットフィルタ42から供給される画像と加算部40から供給される画像を蓄積する。フレームメモリ44に蓄積されたフィルタ処理が行われていない画像のうちのPUに隣接する画素は、周辺画素としてスイッチ45を介してイントラ予測部46に供給される。一方、フレームメモリ44に蓄積されたフィルタ処理が行われた画像は、外部メモリ12に供給され、記憶される。また、フレームメモリ44は、符号化済みの画像として外部メモリ12から供給される参照画像を蓄積する。この参照画像は、スイッチ45を介して動き予測・補償部47に出力される。
ステップS47において、可逆符号化部36は、イントラ予測モード情報、または、インター予測モード情報、動きベクトル情報、および参照画像を特定する情報、並びにオフセットフィルタ情報を、符号化情報として可逆符号化する。
ステップS48において、可逆符号化部36は、量子化部35から供給される量子化された直交変換係数を可逆符号化する。そして、可逆符号化部36は、ステップS47の処理で可逆符号化された符号化情報と可逆符号化された直交変換係数から、符号化データを生成し、蓄積バッファ37に供給する。
ステップS49において、蓄積バッファ37は、可逆符号化部36から供給される符号化データを、一時的に蓄積する。
ステップS50において、レート制御部49は、蓄積バッファ37に蓄積された符号化データに基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部35の量子化動作のレートを制御する。
ステップS51において、蓄積バッファ37は、記憶している符号化データを出力し、処理を終了する。
なお、図6および図7の符号化処理では、説明を簡単化するため、常に、イントラ予測処理と動き予測・補償処理が行われるようにしたが、実際には、ピクチャタイプ等によっていずれか一方のみが行われる場合もある。
図8は、図7のステップS33の動き予測・補償処理の詳細を説明するフローチャートである。この動き予測・補償処理は、PU単位で行われる。
図8のステップS61において、動き予測・補償部47のL0予測部61(図3)は、候補となるL0予測モードの動き予測・補償処理を行い、コスト関数値を算出するL0予測処理を行う。L0予測部61は、各L0予測モードの予測画像とコスト関数値を選択部64に供給する。
ステップS62において、L1予測部62は、候補となるL1予測モードの動き予測・補償処理を行い、コスト関数値を算出するL1予測処理を行う。L1予測部62は、各L1予測モードの予測画像とコスト関数値を選択部64に供給する。
ステップS63において、双方向予測部63は、候補となる双方向予測モードの動き予測・補償処理を行い、コスト関数値を算出する双方向予測処理を行う。この双方向予測処理の詳細は、後述する図9を参照して説明する。双方向予測部63は、各双方向予測モードの予測画像とコスト関数値を選択部64に供給する。
ステップS64において、選択部64は、L0予測部61、L1予測部62、および双方向予測部63から供給されるコスト関数値のうちの最小のコスト関数値に対応するインター予測モードを、最適インター予測モードに決定する。
ステップS65において、選択部64は、最適インター予測モードの予測画像とコスト関数値を図2の予測画像選択部48に出力し、処理を終了する。
図9は、図8のステップS63の双方向予測処理の詳細を説明するフローチャートである。この双方向予測処理は、候補となる双方向予測モードごとに行われる。
図9のステップS71において、双方向予測部63の検出部81(図4)は、前方向の1/4画素精度の動きベクトル検出処理を行い、検出された1/4画素精度の動きベクトルを精度変換部82に供給する。
ステップS72において、検出部85は、後方向の1/4画素精度の動きベクトル検出処理を行い、検出された1/4画素精度の動きベクトルを精度変換部86に供給する。
ステップS73において、精度変換部82は、検出部81から供給される前方向の1/4画素精度の動きベクトルを整数画素精度の動きベクトルに変換し、中間予測画像生成部83に供給する。
ステップS74において、精度変換部86は、検出部85から供給される後方向の1/4画素精度の動きベクトルを整数画素精度の動きベクトルに変換し、中間予測画像生成部87に供給する。
ステップS75において、中間予測画像生成部83は、精度変換部82から供給される前方向の整数画素精度の動きベクトルに基づいて、入力画像より表示順で前の参照画像に対して動き補償を行うことにより、L0予測を行う。中間予測画像生成部83は、その結果生成されるL0予測の予測画像をメモリ84に供給する。
ステップS76において、中間予測画像生成部87は、精度変換部86から供給される後方向の整数画素精度の動きベクトルに基づいて、入力画像より表示順で後の参照画像に対して動き補償を行うことにより、L1予測を行う。中間予測画像生成部87は、その結果生成されるL1予測の予測画像をメモリ88に供給する。
ステップS77において、メモリ84は、中間予測画像生成部83から供給されるL0予測の予測画像を記憶する。ステップS78において、メモリ88は、中間予測画像生成部87から供給されるL1予測の予測画像を記憶する。
ステップS79において、平均化部89は、メモリ84に記憶されているL0予測の予測画像と、メモリ88に記憶されているL1予測の予測画像を平均化する。平均化部89は、平均化された予測画像を双方向予測の予測画像として算出部90に供給する。
ステップS80において、算出部90は、平均化部89から供給される予測画像と入力画像とに基づいて、コスト関数値を算出する。算出部90は、予測画像とコスト関数値を図3の選択部64に供給する。そして、処理は、図8のステップS63に戻り、ステップS64に進む。
以上のように、符号化装置10は、双方向予測を行う場合、入力画像の分数画素精度の動きベクトルを整数画素精度の動きベクトルに変換し、整数画素精度の動きベクトルに基づいて双方向予測を行い、予測画像を生成する。従って、双方向予測の予測画像の生成に用いられるL0予測の予測画像とL1予測の予測画像のビット数を削減することができる。その結果、メモリ84およびメモリ88に必要な記憶容量を削減することができる。また、双方向予測時の処理量を削減することができる。
<第2実施の形態>
(符号化装置の第2実施の形態の構成例)
図10は、本開示を適用した符号化装置の第2実施の形態の構成例を示すブロック図である。
(符号化装置の第2実施の形態の構成例)
図10は、本開示を適用した符号化装置の第2実施の形態の構成例を示すブロック図である。
図10の符号化装置100は、符号化部101、外部メモリ102、およびダウンコンバータ103により構成される。符号化装置100は、外部メモリ102に記憶されている画像をHEVC方式で符号化する際、双方向予測時にL0予測またはL1予測のいずれかのみを行う。
具体的には、符号化装置100の符号化部101は、処理部111とキャッシュ112により構成される。処理部111には、外部メモリ102に記憶されている符号化対象の画像が、入力画像としてキャッシュ112を介して入力される。処理部111は、入力画像に対して符号化処理を行う。
このとき、処理部111は、符号化処理の途中結果および最終結果を必要に応じてキャッシュ112に供給し、記憶させる。また、処理部111は、キャッシュ112に記憶されている、入力画像より表示順で前および後の1/4倍に縮小された参照画像(以下、縮小参照画像という)と1/4倍に縮小された入力画像(以下、縮小入力画像という)とに基づいて、双方向予測モード時に行う予測として、L0予測またはL1予測を選択する。そして、処理部111は、キャッシュ112に参照画像として記憶されている符号化済み画像を用いて、選択されたL0予測またはL1予測を行うことにより、双方向予測モードの予測を行う。
キャッシュ112は、処理部111から供給される符号化処理の途中結果と符号化済みの画像を一時的に記憶する。キャッシュ112は、記憶している符号化済みの画像を外部メモリ102に供給し、記憶させる。また、キャッシュ112は、外部メモリ102から参照画像として供給される符号化済みの画像を一時的に記憶する。キャッシュ112は、外部メモリ102から供給される縮小参照画像、入力画像、および縮小入力画像を一時的に記憶する。
外部メモリ102は、DRAMなどにより構成される。外部メモリ102は、入力画像とキャッシュ112から供給される符号化済みの画像を記憶する。また、外部メモリ102は、ダウンコンバータ103から供給される縮小入力画像と縮小参照画像を記憶する。
外部メモリ102は、記憶している入力画像と、その入力画像に対応する縮小入力画像をキャッシュ112に供給する。また、外部メモリ102は、記憶している入力画像より表示順で前または後の符号化済みの画像を、参照画像としてキャッシュ112に供給する。さらに、外部メモリ102は、縮小参照画像をキャッシュ112に供給する。
ダウンコンバータ103は、外部メモリ102から入力画像を読み出し、その入力画像を1/4倍に縮小する。そして、ダウンコンバータ103は、その結果得られる縮小入力画像を外部メモリ102に供給する。
また、ダウンコンバータ103は、外部メモリ102から入力画像より表示順で前および後の符号化済みの画像を参照画像として読み出し、その参照画像を1/4倍に縮小する。そして、ダウンコンバータ103は、その結果得られる縮小参照画像を外部メモリ102に供給する。
なお、ここでは、参照画像と入力画像の縮小率は1/4であるものとするが、参照画像の縮小率と入力画像の縮小率は、同一であれば、1/4に限定されない。
(符号化部の構成例)
図11は、図10の符号化部101の構成例を示すブロック図である。
図11は、図10の符号化部101の構成例を示すブロック図である。
図11に示す構成のうち、図2の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
図11の符号化部101の構成は、フレームメモリ44、動き予測・補償部47の代わりに、フレームメモリ131、動き予測・補償部132が設けられる点が、図1の符号化部11の構成と異なる。
フレームメモリ131は、適応オフセットフィルタ42から供給される画像と、加算部40から供給される画像を蓄積する。フレームメモリ131に蓄積されたフィルタ処理が行われていない画像のうちのPUに隣接する画素は、周辺画素としてスイッチ45を介してイントラ予測部46に供給される。
一方、フレームメモリ131に蓄積されたフィルタ処理が行われた画像は、符号化済みの画像として図10の外部メモリ102に供給され、記憶される。また、フレームメモリ131は、外部メモリ102から供給される参照画像、縮小参照画像、および縮小入力画像を蓄積する。フレームメモリ131に蓄積された参照画像、縮小参照画像、および縮小入力画像は、スイッチ45を介して動き予測・補償部132に出力される。
動き予測・補償部132は、PU単位で、候補となる全てのインター予測モードの動き予測・補償処理を行う。具体的には、動き予測・補償部132は、候補となるインター予測モードが双方向予測モードである場合、フレームメモリ131からスイッチ45を介して供給される縮小参照画像と縮小入力画像に基づいて、連続する5個のLCUからなるLCU群単位で予測方向を決定する。
そして、動き予測・補償部132は、画面並べ替えバッファ32から供給される入力画像と、フレームメモリ131からスイッチ45を介して供給される、決定された予測方向の参照画像とに基づいて、1/4画素精度の動きベクトル検出する。
一方、動き予測・補償部132は、候補となるインター予測モードがL0予測モードまたはL1予測モードである場合、入力画像より表示順で前または後の参照画像と入力画像とに基づいて、1/4画素精度の動きベクトルを検出する。
動き予測・補償部132は、インター予測モードごとに、検出された1/4画素精度の動きベクトルに基づいて、参照画像に対して線形補間を用いた補償処理を施し、予測画像を生成する。そして、動き予測・補償部132は、インター予測モードごとに、入力画像と予測画像に基づいてコスト関数値を算出し、コスト関数値が最小となるインター予測モードを最適インター予測モードに決定する。動き予測・補償部132は、最適インター予測モードのコスト関数値と、対応する予測画像を予測画像選択部48に供給する。
また、動き予測・補償部132は、予測画像選択部48から最適インター予測モードで生成された予測画像の選択が通知された場合、インター予測モード情報、対応する動きベクトル情報、参照画像を特定する情報などを可逆符号化部36に出力する。
なお、第2実施の形態では、双方向予測時の予測方向の決定単位が、連続する5個のLCUからなるLCU群であるようにするが、連続する5個以外の数のLCUであるようにすることもできる。
(動き予測・補償部の構成例)
図12は、図11の動き予測・補償部132の構成例を示すブロック図である。
図12は、図11の動き予測・補償部132の構成例を示すブロック図である。
図12に示す構成のうち、図3の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
図12の動き予測・補償部132の構成は、双方向予測部63の代わりに双方向予測部151が設けられる点が、図3の動き予測・補償部47の構成と異なる。
双方向予測部151は、入力画像の双方向予測を行わない場合、双方向予測モードが表す予測方向を前方向または後方向のみに制限した双方向予測モードの動き予測・補償処理を、その双方向予測モードの動き予測・補償処理として行う。具体的には、双方向予測部151は、図11のフレームメモリ131からスイッチ45を介して供給される縮小参照画像と縮小入力画像に基づいて、LCU群単位で予測方向を前方向または後方向に決定する。これにより、双方向予測部151(方向制限予測部)は、前方向予測または後方向予測のみを行うように制限する。
そして、双方向予測部151は、画面並べ替えバッファ32から供給される入力画像と、フレームメモリ131からスイッチ45を介して供給される、決定された予測方向の参照画像とに基づいて、1/4画素精度の動きベクトル検出する。双方向予測部151は、双方向予測モードごとに、検出された1/4画素精度の動きベクトルに基づいて、決定された予測方向の参照画像に対して線形補間を用いた補償処理を施す。
双方向予測部151は、その結果生成される予測画像と入力画像に基づいてコスト関数値を算出する。双方向予測部151は、各双方向予測モードの予測画像とコスト関数値を選択部64に供給する。
(双方向予測部の構成例)
図13は、図12の双方向予測部151の構成例を示すブロック図である。
図13は、図12の双方向予測部151の構成例を示すブロック図である。
図13の双方向予測部151は、縮小予測補償部171、特徴量算出部172、特徴量保持部173、決定部174、および予測部175により構成される。
双方向予測部151の縮小予測補償部171には、図11のスイッチ45を介して、LUC群単位で、入力画像より表示順で前および後の縮小参照画像と縮小入力画像とが供給される。縮小予測補償部171は、縮小参照画像と縮小入力画像を用いて、各LCU群の双方向の動き予測・補償処理を行う。
具体的には、縮小予測補償部171は、2次元の線形内挿適応フィルタを有する。縮小予測補償部171は、LCU群ごとに、縮小入力画像と縮小参照画像を用いて、各予測方向の1/4画素精度の動きベクトル検出処理を行う。縮小予測補償部171は、その結果得られる各予測方向の1/4画素精度の動きベクトルに基づいて、縮小参照画像に対して動き補償を行うことにより、縮小入力画像の双方向予測を行う。
縮小予測補償部171は、双方向予測の結果得られる縮小予測画像と縮小入力画像に基づいて、各予測方向の縮小予測画像のコスト関数値を算出する。縮小予測補償部171は、各予測方向の縮小入力画像の動きベクトルと縮小予測画像のコスト関数値を、特徴量算出部172に供給する。
特徴量算出部172は、予測方向ごとに、縮小予測補償部171から供給される縮小入力画像の動きベクトルと縮小予測画像のコスト関数値に基づいて、以下の式(3)により、特徴量を算出する。
式(3)において、Costmは、特徴量であり、SADは縮小入力画像のコスト関数値である。また、λは予め決められた係数であり、MVは縮小入力画像の動きベクトルである。
式(3)によれば、コスト関数値が小さいほど、即ち予測精度が高いほど、特徴量が小さくなる。また、動きベクトルが小さいほど、即ち符号化データに含まれる動きベクトル情報の情報量が少ないほど、特徴量が小さくなる。従って、特徴量が小さいほど、符号化効率は高い。
特徴量算出部172は、算出された各LCU群の前方向および後方向の特徴量を特徴量保持部173に供給し、前方向と後方向の動きベクトルを予測部175に供給する。特徴量保持部173は、特徴量算出部172から供給される各LCU群の前方向および後方向の特徴量を保持する。
決定部174は、LCU群ごとに、特徴量保持部173から前方向および後方向の特徴量を読み出す。決定部174は、読み出された前方向および後方向の特徴量に基づいて、双方向予測の代わりに行う予測の予測方向を決定する。
具体的には、決定部174は、前方向の特徴量と後方向の特徴量のうちの小さい方に対応する予測方向を、双方向予測の代わりに行う予測の予測方向に決定する。即ち、決定部174は、L0予測とL1予測のうちの符号化効率が高い方を、双方向予測の代わりに行う予測に決定する。決定部174は、各LCU群の予測方向を予測部175に供給する。
予測部175は、候補となる双方向予測モードごとに、双方向予測モードが表す予測方向を、予測部175から供給される予測方向に代えて、動き予測・補償処理を行う。具体的には、予測部175は、2次元の線形内挿適応フィルタを有する。予測部175は、図11のスイッチ45を介して供給される入力画像と、決定部174から供給される予測方向の参照画像とを用いて、1/4画素精度の動きベクトル検出処理を行う。このとき、予測部175は、特徴量算出部172から供給される前方向と後方向の動きベクトルのうちの、予測部175から供給される予測方向の動きベクトルを用いる。
予測部175は、1/4画素精度の動きベクトル検出処理により検出された1/4画素精度の動きベクトルに基づいて、参照画像に対して動き補償を行うことにより、決定部174から供給される予測方向の予測を行う。
予測部175は、双方向予測モードごとに、予測の結果得られる予測画像と入力画像に基づいて、コスト関数値を算出する。予測部175は、各双方向予測モードの予測画像とコスト関数値を図12の選択部64に供給する。
なお、図13では、特徴量算出部172が特徴量保持部173の前段に設けられたが、後段に設けられるようにしてもよい。この場合、特徴量保持部173は、各LCU群の動きベクトルとコスト関数値を保持し、特徴量算出部172は、その動きベクトルとコスト関数値に基づいて各LCU群の特徴量を算出し、決定部174に供給する。
(双方向予測モードの予測の説明)
図14は、図10の符号化装置100における双方向予測モードの予測を説明する図である。
図14は、図10の符号化装置100における双方向予測モードの予測を説明する図である。
図14のAに示すように、双方向予測モードの予測として双方向予測が行われる場合、外部メモリから、前方向の参照画像(L0参照画像)、後方向の参照画像(L1参照画像)、および入力画像が読み出され、キャッシュを構成するフレームメモリに記憶される。そして、フレームメモリに記憶されている前方向の参照画像、後方向の参照画像、および入力画像を用いて双方向予測が行われ、双方向予測の予測画像が生成される。
これに対して、符号化装置100では、図14のBに示すように、外部メモリ102から、決定部174で決定された予測方向の参照画像(L0/L1参照画像)と入力画像が読み出され、フレームメモリ131に記憶される。そして、フレームメモリ131に記憶されている参照画像と入力画像を用いてL0予測またはL1予測が行われ、L0予測またはL1予測の予測画像が生成される。
このように、符号化装置100では、外部メモリ102から前方向と後方向のいずれか一方の参照画像のみが読み出され、フレームメモリ131に記憶される。従って、双方向予測モードの予測として双方向予測が行われる場合に比べて、双方向予測モードの予測時の外部メモリ102とキャッシュ112間の参照画像の読み出しにおける帯域を半分に削減することができる。
(双方向予測モードの予測方向の説明)
図15は、図13の決定部174で決定される予測方向を説明する図である。
図15は、図13の決定部174で決定される予測方向を説明する図である。
なお、図15において、正方形はLCUを表す。また、正方形内に記載されている「L0」および「L1」は、その正方形が表すLCUの双方向予測モードの予測が、それぞれ、L0予測、L1予測であることを表す。
双方向予測モードの予測方向がLCU単位で決定される場合、図15のAに示すように、LCUごとに、双方向予測モードの予測方向は異なる。従って、例えば、図15のAに示すように、隣接するLCUの双方向予測モードの予測方向が異なる場合、符号化部101は、外部メモリ102から、LCU単位で、その予測方向の参照画像を読み出す必要がある。
これに対して、決定部174は、LCU群ごとに双方向予測モードの予測方向を決定するので、各LCUの双方向予測モードの予測方向は、LCU群ごとに異なる。図15のBの例では、LCU群191と、そのLCU群191に隣接するLCU群192の双方向予測モードの予測方向が異なっている。この場合、符号化部101は、外部メモリ102から、LCU群単位で、そのLCU群の双方向予測モードの予測方向の参照画像を読み出すことができる。
従って、符号化部101は、双方向予測モードの予測方向がLCU単位で決定される場合に比べて、外部メモリ102へのアクセス回数を削減することができる。
(符号化装置の処理の説明)
図10の符号化装置100の符号化処理は、図8のステップS63の双方向予測処理、および、フレームメモリ44に縮小参照画像と縮小入力画像が蓄積される点を除いて、図6および図7の符号化処理と同様である。従って、以下では、双方向予測処理についてのみ説明する。
図10の符号化装置100の符号化処理は、図8のステップS63の双方向予測処理、および、フレームメモリ44に縮小参照画像と縮小入力画像が蓄積される点を除いて、図6および図7の符号化処理と同様である。従って、以下では、双方向予測処理についてのみ説明する。
図16は、符号化装置100の双方向予測処理を説明するフローチャートである。この双方向予測処理は、候補となる双方向予測モードごとに行われる。
図16のステップS111乃至S118の処理は、LCU群単位で行われる。ステップS111において、双方向予測部151の縮小予測補償部171(図13)は、図11のスイッチ45を介して供給される縮小参照画像と縮小入力画像を用いて、各予測方向の1/4画素精度の動きベクトル検出処理を行う。
ステップS112において、縮小予測補償部171は、ステップS111の処理により得られる各予測方向の1/4画素精度の動きベクトルに基づいて、縮小参照画像に対して動き補償を行うことにより、縮小入力画像の双方向予測を行う。
ステップS113において、縮小予測補償部171は、双方向予測の結果得られる縮小予測画像と縮小入力画像に基づいて、各予測方向の縮小予測画像のコスト関数値を算出する。縮小予測補償部171は、各予測方向の縮小入力画像の動きベクトルと縮小予測画像のコスト関数値を、特徴量算出部172に供給する。
ステップS114において、特徴量算出部172は、予測方向ごとに、縮小予測補償部171から供給される動きベクトルとコスト関数値に基づいて、上述した式(3)により、特徴量を算出する。特徴量算出部172は、算出された前方向および後方向の特徴量を特徴量保持部173に供給し、前方向と後方向の動きベクトルを予測部175に供給する。
ステップS115において、特徴量保持部173は、特徴量算出部172から供給される前方向および後方向の特徴量を保持する。
ステップS116において、決定部174は、特徴量保持部173に記憶されている前方向の特徴量が、後方向の特徴量より小さいかどうかを判定する。ステップS116で前方向の特徴量が後方向の特徴量より小さいと判定された場合、決定部174は、双方向予測モードの予測方向を前方向に決定し、予測部175に供給する。
一方、ステップS116で前方向の特徴量が後方向の特徴量より小さくはないと判定された場合、決定部174は、双方向予測モードの予測方向を後方向に決定し、予測部175に供給する。
ステップS117またはS118の処理後、処理はステップS119に進む。ステップS119乃至S121の処理は、PU単位で行われる。
ステップS119において、予測部175は、決定部174から供給される処理対象のPUに対応する予測方向の参照画像と、スイッチ45を介して供給される入力画像とを用いて、1/4画素精度の動きベクトル検出処理を行う。
ステップS120において、予測部175は、ステップS119の処理により得られる1/4画素精度の動きベクトルに基づいて、参照画像に対して動き補償を行うことにより、決定部174から供給される予測方向の予測を行う。
ステップS121において、予測部175は、予測の結果得られる予測画像と入力画像に基づいて、コスト関数値を算出する。予測部175は、予測画像とコスト関数値を図12の選択部64に供給し、処理は終了する。
以上のように、符号化装置100は、双方向予測の代わりに、L0予測またはL1予測を行う。従って、符号化部101と外部メモリ102の間の参照画像の読み出しにおける帯域を削減することができる。また、双方向予測モード時の参照画像の記憶に必要なフレームメモリ131の記憶容量を削減することができる。さらに、双方向予測モード時にL0予測およびL1予測のうちの一方のみを行えばよいので、双方向予測モード時の処理量を削減することができる。
また、符号化装置100は、双方向予測の代わりに行う予測の予測方向を複数のLCU単位で決定するので、符号化部101から外部メモリ102へのアクセスの回数を削減することができる。
なお、特徴量は、コスト関数と動きベクトルのいずれか一方だけを用いて決定されてもよい。
<第3実施の形態>
(符号化装置の第3実施の形態の符号化部の構成例)
本開示を適用した符号化装置の第3実施の形態の構成は、符号化部を除いて、図10の符号化装置100の構成と同一である。従って、以下では、符号化部についてのみ説明する。
(符号化装置の第3実施の形態の符号化部の構成例)
本開示を適用した符号化装置の第3実施の形態の構成は、符号化部を除いて、図10の符号化装置100の構成と同一である。従って、以下では、符号化部についてのみ説明する。
図17は、本開示を適用した符号化装置の第3実施の形態の符号化部の構成例を示すブロック図である。
図17に示す構成のうち、図11の構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
図17の符号化部200の構成は、レート制御部49、動き予測・補償部132の代わりに、レート制御部201、動き予測・補償部204が設けられる点、および、テーブル記憶部202、設定部203が新たに設けられる点が、図11の符号化部101の構成と異なる。符号化部200は、量子化パラメータ(QP)に応じて、動きベクトルの精度と予測方向を制限する。
具体的には、符号化部200のレート制御部201は、蓄積バッファ37に蓄積された符号化データに基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部35の量子化動作のレートを制御する。また、レート制御部201は、量子化動作のレートの制御に用いられる量子化パラメータを設定部203に供給する。
テーブル記憶部202は、量子化パラメータに対応付けて動きベクトル制限情報と予測方向制限情報とが登録された制約テーブルを記憶する。動きベクトル制限情報とは、双方向予測時の動きベクトルの精度の整数精度への制限の有無を表す情報であり、予測方向制限情報とは、双方向予測モード時の予測方向の前方向または後方向への制限の有無を表す情報である。なお、予測方向制限情報が制限の有りを表す場合、双方向予測時は存在しないため、動きベクトル制限情報は登録されない。
設定部203は、レート制御部201から供給される量子化パラメータを画面単位で平均化し、量子化パラメータの平均値を計算する。設定部203は、量子化パラメータの平均値に基づいて、その平均値に対応付けて制約テーブルに登録されている動きベクトル制限情報と予測方向制限情報の読み出しを、テーブル記憶部202に要求する。
設定部203は、その要求に応じてテーブル記憶部202から読み出された動きベクトル制限情報に基づいて、双方向予測の予測画像の生成に用いる動きベクトルの精度を整数画素精度または分数画素精度に設定する。また、設定部203(決定部)は、要求に応じてテーブル記憶部202から読み出された予測方向制限情報に基づいて、双方向予測を行うかどうかを決定する。
設定部203は、設定された動きベクトルの精度と、双方向予測を行うかどうかを表す双方向予測情報とを、動き予測・補償部204に供給する。
動き予測・補償部204は、双方向予測情報が双方向予測を行わないこと表す場合、図11の動き予測・補償部132と同様の動き予測・補償処理(以下、方向制限処理という)を行う。
また、双方向予測情報が双方向予測を行うことを表し、設定された動きベクトルの精度が整数画素精度である場合、動き予測・補償部204は、図2の動き予測・補償部47と同様の動き予測・補償処理(以下、精度制限処理という)を行う。
さらに、双方向予測情報が双方向予測を行うことを表し、設定された動きベクトルの精度が分数画素精度である場合、動き予測・補償部204は、通常の動き予測・補償処理(以下、通常処理という)を行う。通常処理では、双方向予測モードの動き予測・補償処理として、動き予測・補償部132と同様に分数画素精度の動きベクトルが検出され、動き予測・補償部47と同様に双方向予測が行われる。
動き予測・補償部204は、入力画像と、方向制限処理、精度制限処理、または通常処理により生成された予測画像とに基づいて、候補となる全てのインター予測モードに対してコスト関数値を算出する。そして、動き予測・補償部204は、コスト関数値が最小となるインター予測モードを最適インター予測モードに決定する。動き予測・補償部204は、最適インター予測モードのコスト関数値と、対応する予測画像を予測画像選択部48に供給する。
また、動き予測・補償部204は、予測画像選択部48から最適インター予測モードで生成された予測画像の選択が通知された場合、インター予測モード情報、対応する動きベクトル情報、参照画像を特定する情報などを可逆符号化部36に出力する。
(制約テーブルの例)
図18は、図17のテーブル記憶部202に記憶される制約テーブルの例を示す図である。
図18は、図17のテーブル記憶部202に記憶される制約テーブルの例を示す図である。
量子化パラメータが低い場合、即ち符号化データのビットレートが高い場合、符号化性能の差が見えにくい。また、双方向予測モード時の予測方向の制限や、双方向予測時の動きベクトルの精度の制限によって生じる符号化効率の低下が、問題にならない。従って、双方向予測モード時の予測方向と双方向予測時の動きベクトルの精度を制限することにより、キャッシュ112の記憶容量を削減することが望ましい。
一方、量子化パラメータが高い場合、即ち符号化データのビットレートが低い場合、符号化性能の差が見えやすく、符号化効率の低下が問題になる。従って、双方向予測モード時の予測方向と双方向予測時の動きベクトルの精度を制限せずに、符号化性能や符号化効率を向上させることが望ましい。
従って、図18の制限テーブルでは、量子化パラメータ(QP)が、0~29、30~39、40~51の3段階に区分され、量子化パラメータが最も低い区分(0~29)に対応付けて、制限の有りを表す予測方向制限情報が登録されている。また、量子化パラメータが2番目に低い区分(30~39)に対応付けて、制限の無しを表す予測方向制限情報と制限の有りを表す動きベクトル制限情報とが登録されている。さらに、量子化パラメータが最も高い区分(40~51)に対応付けて、制限の無しを表す予測方向制限情報と動きベクトル制限情報とが登録されている。
なお、図18の量子化パラメータの区分は、用途(アプリケーション)ごとに区分が異なるように、各用途に対して想定される量子化パラメータに基づいて設定されている。
即ち、符号化部200がビデオカメラなどに設けられ、撮影画像の符号化データがストレージに記憶される場合、撮影画像であるHD(High Definition)画像の符号化データに要求されるビットレートは、50Mbpsなどの高ビットレートである。そして、この場合、量子化パラメータは、30以下になることが多い。従って、量子化パラメータの最も低い区分は、0~29になっている。
また、撮影画像の符号化データがネットワーク伝送される場合、撮影画像であるHD画像の符号化データに要求されるビットレートは、5Mbpsなどの低ビットレートである。そして、この場合、量子化パラメータは、30~39になることが多い。従って、量子化パラメータの2番目に低い区分は、30~39になっている。
さらに、符号化部200が監視カメラなどに設けられ、符号化対象の撮影画像が監視カメラにより撮影された画像である場合、HD画像の符号化データに要求されるビットレートは、2Mbpsなどの超低ビットレートである。そして、この場合、量子化パラメータは、40以上になることが多い。従って、量子化パラメータの最も高い区分は、40~51になっている。量子化パラメータの区分は、図18の例に限定されない。
(符号化装置の処理の説明)
本開示を適用した符号化装置の第3実施の形態の符号化処理は、図6のステップS33の動き予測・補償処理、および、必要に応じてフレームメモリ131に縮小参照画像と縮小入力画像が蓄積される点を除いて、図6および図7の符号化処理と同様である。従って、以下では、動き予測・補償処理についてのみ説明する。
本開示を適用した符号化装置の第3実施の形態の符号化処理は、図6のステップS33の動き予測・補償処理、および、必要に応じてフレームメモリ131に縮小参照画像と縮小入力画像が蓄積される点を除いて、図6および図7の符号化処理と同様である。従って、以下では、動き予測・補償処理についてのみ説明する。
図19は、図17の符号化部200の動き予測・補償処理を説明するフローチャートである。
図19のステップS141において、設定部203は、レート制御部201から供給される量子化パラメータを画面単位で平均化し、量子化パラメータの平均値を計算する。ステップS142において、設定部203は、テーブル記憶部202に記憶されている制約テーブルから、量子化パラメータの平均値に対応する動きベクトル制限情報と予測方向制限情報を読み出す。
ステップS143において、設定部203は、読み出された動きベクトル制限情報と予測方向制限情報に基づいて、双方向予測時の動きベクトルの精度と双方向予測情報を設定する。設定部203は、設定された動きベクトルの精度と双方向予測情報を動き予測・補償部204に供給する。
ステップS144において、動き予測・補償部204は、双方向予測情報が、双方向予測を行わないこと表しているかどうかを判定する。ステップS144で、双方向予測情報が双方向予測を行わないことを表していると判定された場合、処理はステップS146に進む。ステップS146において、動き予測・補償部204は、方向制限処理を行い、処理をステップS149に進める。
一方、ステップS144で、双方向予測情報が双方向予測を行うことを表していると判定された場合、処理はステップS145に進む。ステップS145において、動き予測・補償部204は、設定された動きベクトルの精度が整数画素精度であるかどうかを判定する。
ステップS145で設定された動きベクトルの精度が整数画素精度であると判定された場合、動き予測・補償部204は、精度制限処理を行い、処理をステップS149に進める。
また、ステップS145で設定された動きベクトルの精度が整数画素精度ではないと判定された場合、即ち設定された動きベクトルの精度が分数画素精度である場合、処理はステップS148に進む。
ステップS148において、動き予測・補償部204は、通常処理を行い、処理をステップS149に進める。
ステップS149において、動き予測・補償部204は、入力画像と、方向制限処理、精度制限処理、または通常処理により生成された予測画像とに基づいて、候補となる全てのインター予測モードに対してコスト関数値を算出する。そして、動き予測・補償部204は、コスト関数値が最小となるインター予測モードを最適インター予測モードに決定する。
ステップS150において、動き予測・補償部204は、最適インター予測モードの予測画像とコスト関数値を予測画像選択部48に出力する。そして、処理は終了する。
以上のように、符号化部200は、量子化パラメータに基づいて、方向制限処理、精度制限処理、および通常処理を選択的に行う。従って、例えば、量子化パラメータが高い場合、即ち符号化性能の差が見えやすく、符号化効率の低下が問題になる場合、符号化部200は、通常処理を行うことにより、画質および符号化効率を確保することができる。一方、量子化パラメータが低い場合、即ち符号化性能の差が見えにくく、符号化効率の低下が許容される場合、符号化部200は、方向制限処理や精度制限処理を行うことにより、キャッシュ112の記憶容量を削減することができる。
なお、第3実施の形態では、量子化パラメータを画面単位で平均化するものとしたが、スライス単位やLCU単位で平均化するようにしてもよい。平均化がLCU単位で行われる場合、双方向予測情報が双方向予測を行わないことを表すときの双方向予測モード時の予測方向は、LCU群単位ではなく、LCU単位で決定される。
(制約テーブルの他の例)
上述した説明では、符号化部200は、量子化パラメータに基づいて、方向制限処理、精度制限処理、および通常処理を選択的に行ったが、量子化パラメータ以外の情報に基づいて、方向制限処理、精度制限処理、および通常処理を選択的に行うようにしてもよい。
上述した説明では、符号化部200は、量子化パラメータに基づいて、方向制限処理、精度制限処理、および通常処理を選択的に行ったが、量子化パラメータ以外の情報に基づいて、方向制限処理、精度制限処理、および通常処理を選択的に行うようにしてもよい。
図20は、フレームレートに基づいて方向制限処理、精度制限処理、および通常処理を選択的に行う場合の制約テーブルの例を示す図である。
フレームレートが高い場合、入力画像と参照画像の時間的距離が短いため、予測精度の低下による予測画像への影響が小さい。従って、双方向予測モード時の予測方向と双方向予測時の動きベクトルの精度を制限することにより、キャッシュ112の記憶容量を削減することが望ましい。
一方、フレームレートが低い場合、入力画像と参照画像の時間的距離が長いため、予測精度の低下による予測画像への影響が大きい。従って、双方向予測モード時の予測方向と双方向予測時の動きベクトルの精度を制限せずに、予測画像の精度を向上させることが望ましい。
従って、図20の制限テーブルでは、フレームレートが、1p~9p、10p~29p、30p以上の3段階に区分され、フレームレートが最も高い区分(30p以上)に対応付けて、制限の有りを表す予測方向制限情報が登録されている。また、フレームレートが2番目に高い区分(10p~29p)に対応付けて、制限の無しを表す予測方向制限情報と制限の有りを表す動きベクトル制限情報とが登録されている。さらに、フレームレートが最も低い区分(1p~9p)に対応付けて、制限の無しを表す予測方向制限情報と動きベクトル制限情報とが登録されている。
なお、図20のフレームレートの区分は、用途(アプリケーション)ごとに区分が異なるように、各用途に対して想定される符号化対象のフレームレートに基づいて設定されている。
即ち、符号化部200がビデオカメラなどに設けられ、撮影画像の符号化データがストレージに記憶される場合、符号化対象の撮影画像のフレームレートは、30pや60pなどの高フレームレートである。従って、フレームレートの最も高い区分は、30p以上になっている。
また、撮影画像の符号化データがネットワーク伝送される場合、符号化対象の撮影画像のフレームレートは、15pなどの低フレームレートである。従って、フレームレートの2番目に高い区分は、10p~29pになっている。
さらに、符号化部200が監視カメラなどに設けられ、符号化対象の撮影画像が監視カメラにより撮影された画像である場合、符号化対象の撮影画像のフレームレートは、5pなどの超低フレームレートである。従って、フレームレートの最も低い区分は、1p~9pになっている。フレームレートの区分は、図20の例に限定されない。
テーブル記憶部202に図20の制約テーブルが記憶される場合、設定部203にはレート制御部201から量子化ビットレートが供給されない。そして、設定部203は、ユーザ等により入力されたフレームレートに基づいて、そのフレームレートに対応する動きベクトル制限情報と予測方向制限情報を制約テーブルから読み出す。設定部203は、読み出された動きベクトル制限情報と予測方向制限情報に基づいて、双方向予測時の動きベクトルの精度と双方向予測情報を設定する。
以上により、フレームレートが低い場合、即ち予測精度の低下による予測画像への影響が大きい場合、通常処理が行われるので、予測精度を確保することができる。一方、フレームレートが高い場合、即ち予測精度の低下による予測画像への影響が小さい場合、方向制限処理や精度制限処理が行われるので、キャッシュ112の記憶容量を削減することができる。
図21は、解像度に基づいて方向制限処理、精度制限処理、および通常処理を選択的に行う場合の制約テーブルの例を示す図である。
解像度が低い場合、画像の密度が低くなる(絵柄が粗くなる)ため、予測ベクトルの精度の予測画像への影響が小さい。従って、双方向予測モード時の予測方向と双方向予測時の動きベクトルの精度を制限することにより、キャッシュ112の記憶容量を削減することが望ましい。
一方、解像度が高い場合、画像の密度が高くなる(絵柄が細かくなる)場合が多いため、予測ベクトルの精度の予測画像への影響が大きい。従って、双方向予測モード時の予測方向と双方向予測時の動きベクトルの精度を制限せずに、予測画像の精度を向上させることが望ましい。
従って、図21の制限テーブルでは、解像度が、VGA(Video Graphics Array)解像度、HD解像度、4K解像度の3段階に区分され、解像度が最も低い区分(VGA解像度)に対応付けて、制限の有りを表す予測方向制限情報が登録されている。また、解像度が2番目に低い区分(HD解像度)に対応付けて、制限の無しを表す予測方向制限情報と制限の有りを表す動きベクトル制限情報とが登録されている。さらに、解像度が最も高い区分(4K解像度)に対応付けて、制限の無しを表す予測方向制限情報と動きベクトル制限情報とが登録されている。
なお、図21の解像度の区分は、用途(アプリケーション)ごとに区分が異なるように、各用途に対して想定される符号化対象の解像度に基づいて設定されている。
即ち、符号化部200がビデオカメラなどに設けられ、撮影画像の符号化データがストレージに記憶される場合、符号化対象の撮影画像の解像度は、例えば4K(QFHD(Quad Full High Definition))解像度などの高解像度である。従って、解像度の最も高い区分は、4K解像度になっている。
また、撮影画像の符号化データがネットワーク伝送される場合、符号化対象の撮影画像の解像度は、HD解像度などの中解像度である。従って、解像度の2番目に高い区分は、HD解像度になっている。
さらに、符号化部200が監視カメラなどに設けられ、符号化対象の撮影画像が監視カメラにより撮影された画像である場合、符号化対象の撮影画像は、VGA解像度などの低解像度である。従って、解像度の最も低い区分は、VGA解像度になっている。解像度の区分は、図21の例に限定されない。
テーブル記憶部202に図21に示した制約テーブルが記憶される場合、設定部203にはレート制御部201から量子化ビットレートが供給されない。そして、設定部203は、ユーザ等により入力された解像度に基づいて、その解像度に対応する動きベクトル制限情報と予測方向制限情報を制約テーブルから読み出す。設定部203は、読み出された動きベクトル制限情報と予測方向制限情報に基づいて、双方向予測時の動きベクトルの精度と双方向予測情報を設定する。
以上により、解像度が高い場合、即ち予測ベクトルの精度の予測画像への影響が大きい場合、通常処理が行われるので、予測ベクトルの精度を確保することができる。一方、解像度が低い場合、即ち予測ベクトルの精度の予測画像への影響が小さい場合、方向制限処理や精度制限処理が行われるので、キャッシュ112の記憶容量を削減することができる。
なお、第3実施の形態では、量子化パラメータ、フレームレート、または解像度に基づいて方向制限処理、精度制限処理、および通常処理が選択的に行われたが、用途(アプリケーション)に応じて方向制限処理、精度制限処理、および通常処理が選択的に行われるようにしてもよい。
<復号装置>
(復号装置の構成例)
図22は、符号化装置の第1乃至第3実施の形態により生成された符号化データを復号する復号装置220の構成例を示すブロック図である。
(復号装置の構成例)
図22は、符号化装置の第1乃至第3実施の形態により生成された符号化データを復号する復号装置220の構成例を示すブロック図である。
図22の復号装置220は、蓄積バッファ221、可逆復号部222、逆量子化部223、逆直交変換部224、加算部225、デブロックフィルタ226、適応オフセットフィルタ227、および画面並べ替えバッファ229を有する。また、復号装置220は、D/A変換部230、フレームメモリ231、スイッチ232、イントラ予測処理部233、動き補償部234、およびスイッチ235を有する。
復号装置220の蓄積バッファ221は、符号化装置10または符号化装置100から符号化データを受け取り、蓄積する。蓄積バッファ221は、蓄積されている符号化データを可逆復号部222に供給する。
可逆復号部222は、蓄積バッファ221からの符号化データに対して、図2の可逆符号化部36の可逆符号化に対応する、可変長復号や、算術復号等の可逆復号を施すことで、量子化された直交変換係数と符号化情報を得る。可逆復号部222は、量子化された直交変換係数を逆量子化部223に供給する。また、可逆復号部222は、符号化情報としてのイントラ予測モード情報などをイントラ予測処理部233に供給する。可逆復号部222は、動きベクトル情報、インター予測モード情報、参照画像を特定する情報などを動き補償部234に供給する。
さらに、可逆復号部222は、符号化情報としてのイントラ予測モード情報またはインター予測モード情報をスイッチ235に供給する。可逆復号部222は、符号化情報としてのオフセットフィルタ情報を適応オフセットフィルタ227に供給する。
逆量子化部223、逆直交変換部224、加算部225、デブロックフィルタ226、適応オフセットフィルタ227、フレームメモリ231、スイッチ232、イントラ予測処理部233、および動き補償部234は、図2の逆量子化部38、逆直交変換部39、加算部40、デブロックフィルタ41、適応オフセットフィルタ42、フレームメモリ44(131)、スイッチ45、イントラ予測部46、および動き予測・補償部47(132)とそれぞれ同様の処理を行い、これにより、画像が復号される。
具体的には、逆量子化部223は、可逆復号部222からの量子化された直交変換係数を逆量子化し、その結果得られる直交変換係数を逆直交変換部224に供給する。
逆直交変換部224は、逆量子化部223からの直交変換係数に対してTU単位で逆直交変換を行う。逆直交変換部224は、逆直交変換の結果得られる残差情報を加算部225に供給する。
加算部225は、逆直交変換部224から供給される残差情報と、スイッチ235から供給される予測画像を加算することにより、復号を行う。加算部225は、復号の結果得られる画像をデブロックフィルタ226とフレームメモリ231に供給する。
なお、スイッチ235から予測画像が供給されない場合、加算部225は、逆直交変換部224から供給される残差情報である画像を復号の結果得られる画像として、デブロックフィルタ226とフレームメモリ231に供給する。
デブロックフィルタ226は、加算部225から供給される画像に対してデブロックフィルタ処理を行い、その結果得られる画像を適応オフセットフィルタ227に供給する。
適応オフセットフィルタ227は、LCUごとに、可逆復号部222からのオフセットフィルタ情報が表すオフセットを用いて、デブロックフィルタ処理後の画像に対して、オフセットフィルタ情報が表す種類の適応オフセットフィルタ処理を行う。適応オフセットフィルタ227は、適応オフセットフィルタ処理後の画像を画面並べ替えバッファ229とフレームメモリ231に供給する。
画面並べ替えバッファ229は、適応オフセットフィルタ227から供給される画像をフレーム単位で記憶する。画面並べ替えバッファ229は、記憶した符号化のための順番のフレーム単位の画像を、元の表示の順番に並び替え、D/A変換部230に供給する。
D/A変換部230は、画面並べ替えバッファ229から供給されるフレーム単位の画像をD/A変換し、出力する。
フレームメモリ231は、適応オフセットフィルタ227から供給される画像と加算部225から供給される画像を蓄積する。フレームメモリ231に蓄積されたフィルタ処理が行われていない画像のうちのPUに隣接する画素は、周辺画素としてスイッチ232を介してイントラ予測処理部233に供給される。一方、フレームメモリ231に蓄積されたフィルタ処理が行われた画像は、参照画像として、スイッチ232を介して動き補償部234に供給される。
イントラ予測処理部233は、PU単位で、フレームメモリ231からスイッチ232を介して読み出された周辺画素を用いて、可逆復号部222から供給されるイントラ予測モード情報が示す最適イントラ予測モードのイントラ予測処理を行う。イントラ予測処理部233は、その結果生成される予測画像をスイッチ235に供給する。
動き補償部234は、フレームメモリ231からスイッチ232を介して、可逆復号部222から供給される参照画像を特定する情報により特定される参照画像を読み出す。動き補償部234は、読み出された参照画像と可逆復号部222から供給される動きベクトルとを用いて、PU単位で、可逆復号部222から供給されるインター予測モード情報が示す最適インター予測モードの動き補償処理を行う。動き補償部234は、その結果生成される予測画像をスイッチ235に供給する。
スイッチ235は、可逆復号部222からイントラ予測モード情報が供給された場合、イントラ予測処理部233から供給される予測画像を加算部225に供給する。一方、可逆復号部222からインター予測モード情報が供給された場合、スイッチ235は、動き補償部234から供給される予測画像を加算部225に供給する。
<第4実施の形態>
(本開示を適用したコンピュータの説明)
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
(本開示を適用したコンピュータの説明)
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
図23は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータ800において、CPU(Central Processing Unit)801,ROM(Read Only Memory)802,RAM(Random Access Memory)803は、バス804により相互に接続されている。
バス804には、さらに、入出力インタフェース805が接続されている。入出力インタフェース805には、入力部806、出力部807、記憶部808、通信部809、及びドライブ810が接続されている。
入力部806は、キーボード、マウス、マイクロホンなどよりなる。出力部807は、ディスプレイ、スピーカなどよりなる。記憶部808は、ハードディスクや不揮発性のメモリなどよりなる。通信部809は、ネットワークインタフェースなどよりなる。ドライブ810は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア811を駆動する。
以上のように構成されるコンピュータ800では、CPU801が、例えば、記憶部808に記憶されているプログラムを、入出力インタフェース805及びバス804を介して、RAM803にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ800(CPU801)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア811に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータ800では、プログラムは、リムーバブルメディア811をドライブ810に装着することにより、入出力インタフェース805を介して、記憶部808にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部809で受信し、記憶部808にインストールすることができる。その他、プログラムは、ROM802や記憶部808に、あらかじめインストールしておくことができる。
なお、コンピュータ800が実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
<テレビジョン装置>
図24は、本開示を適用した符号化装置により生成された符号化データを含む符号化ビットストリームを取得するテレビジョン装置の概略構成を例示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース部909を有している。さらに、テレビジョン装置900は、制御部910、ユーザインタフェース部911等を有している。
図24は、本開示を適用した符号化装置により生成された符号化データを含む符号化ビットストリームを取得するテレビジョン装置の概略構成を例示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース部909を有している。さらに、テレビジョン装置900は、制御部910、ユーザインタフェース部911等を有している。
チューナ902は、アンテナ901で受信された放送波信号から所望のチャンネルを選局して復調を行い、得られた符号化ビットストリームをデマルチプレクサ903に出力する。
デマルチプレクサ903は、符号化ビットストリームから視聴対象である番組の映像や音声のパケットを抽出して、抽出したパケットのデータをデコーダ904に出力する。また、デマルチプレクサ903は、EPG(Electronic Program Guide)等のデータのパケットを制御部910に供給する。なお、スクランブルが行われている場合、デマルチプレクサ等でスクランブルの解除を行う。
デコーダ904は、パケットの復号化処理を行い、復号処理化によって生成された映像データを映像信号処理部905、音声データを音声信号処理部907に出力する。
映像信号処理部905は、映像データに対して、ノイズ除去やユーザ設定に応じた映像処理等を行う。映像信号処理部905は、表示部906に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成する。また、映像信号処理部905は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それを番組の映像データに重畳する。映像信号処理部905は、このようにして生成した映像データに基づいて駆動信号を生成して表示部906を駆動する。
表示部906は、映像信号処理部905からの駆動信号に基づき表示デバイス(例えば液晶表示素子等)を駆動して、番組の映像などを表示させる。
音声信号処理部907は、音声データに対してノイズ除去などの所定の処理を施し、処理後の音声データのD/A変換処理や増幅処理を行いスピーカ908に供給することで音声出力を行う。
外部インタフェース部909は、外部機器やネットワークと接続するためのインタフェースであり、映像データや音声データ等のデータ送受信を行う。
制御部910にはユーザインタフェース部911が接続されている。ユーザインタフェース部911は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部910に供給する。
制御部910は、CPU(Central Processing Unit)やメモリ等を用いて構成されている。メモリは、CPUにより実行されるプログラムやCPUが処理を行う上で必要な各種のデータ、EPGデータ、ネットワークを介して取得されたデータ等を記憶する。メモリに記憶されているプログラムは、テレビジョン装置900の起動時などの所定タイミングでCPUにより読み出されて実行される。CPUは、プログラムを実行することで、テレビジョン装置900がユーザ操作に応じた動作となるように各部を制御する。
なお、テレビジョン装置900では、チューナ902、デマルチプレクサ903、映像信号処理部905、音声信号処理部907、外部インタフェース部909等と制御部910を接続するためバス912が設けられている。
<第5実施の形態>
(携帯電話機の構成例)
図25は、本開示を適用した携帯電話機の概略構成を例示している。携帯電話機920は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931を有している。これらは、バス933を介して互いに接続されている。
(携帯電話機の構成例)
図25は、本開示を適用した携帯電話機の概略構成を例示している。携帯電話機920は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931を有している。これらは、バス933を介して互いに接続されている。
また、通信部922にはアンテナ921が接続されており、音声コーデック923には、スピーカ924とマイクロホン925が接続されている。さらに制御部931には、操作部932が接続されている。
携帯電話機920は、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
音声通話モードにおいて、マイクロホン925で生成された音声信号は、音声コーデック923で音声データへの変換やデータ圧縮が行われて通信部922に供給される。通信部922は、音声データの変調処理や周波数変換処理等を行い、送信信号を生成する。また、通信部922は、送信信号をアンテナ921に供給して図示しない基地局へ送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、得られた音声データを音声コーデック923に供給する。音声コーデック923は、音声データのデータ伸張やアナログ音声信号への変換を行いスピーカ924に出力する。
また、データ通信モードにおいて、メール送信を行う場合、制御部931は、操作部932の操作によって入力された文字データを受け付けて、入力された文字を表示部930に表示する。また、制御部931は、操作部932におけるユーザ指示等に基づいてメールデータを生成して通信部922に供給する。通信部922は、メールデータの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ921から送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、メールデータを復元する。このメールデータを、表示部930に供給して、メール内容の表示を行う。
なお、携帯電話機920は、受信したメールデータを、記録再生部929で記憶媒体に記憶させることも可能である。記憶媒体は、書き換え可能な任意の記憶媒体である。例えば、記憶媒体は、RAMや内蔵型フラッシュメモリ等の半導体メモリ、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USB(Universal Serial Bus)メモリ、またはメモリカード等のリムーバブルメディアである。
データ通信モードにおいて画像データを送信する場合、カメラ部926で生成された画像データを、画像処理部927に供給する。画像処理部927は、画像データの符号化処理を行い、符号化データを生成する。
多重分離部928は、画像処理部927で生成された符号化データと、音声コーデック923から供給された音声データを所定の方式で多重化して通信部922に供給する。通信部922は、多重化データの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ921から送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、多重化データを復元する。この多重化データを多重分離部928に供給する。多重分離部928は、多重化データの分離を行い、符号化データを画像処理部927、音声データを音声コーデック923に供給する。画像処理部927は、符号化データの復号化処理を行い、画像データを生成する。この画像データを表示部930に供給して、受信した画像の表示を行う。音声コーデック923は、音声データをアナログ音声信号に変換してスピーカ924に供給して、受信した音声を出力する。
このように構成された携帯電話装置では、画像処理部927に本願の符号化装置(符号化方法)の機能が設けられる。このため、双方向予測時に必要な記憶容量を削減することができる。
<第6実施の形態>
(記録再生装置の構成例)
図26は、本開示を適用した記録再生装置の概略構成を例示している。記録再生装置940は、例えば受信した放送番組のオーディオデータとビデオデータを、記録媒体に記録して、その記録されたデータをユーザの指示に応じたタイミングでユーザに提供する。また、記録再生装置940は、例えば他の装置からオーディオデータやビデオデータを取得し、それらを記録媒体に記録させることもできる。さらに、記録再生装置940は、記録媒体に記録されているオーディオデータやビデオデータを復号して出力することで、モニタ装置等において画像表示や音声出力を行うことができるようにする。
(記録再生装置の構成例)
図26は、本開示を適用した記録再生装置の概略構成を例示している。記録再生装置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に出力する。
外部インタフェース部942は、IEEE1394インタフェース、ネットワークインタフェース部、USBインタフェース、フラッシュメモリインタフェース等の少なくともいずれかで構成されている。外部インタフェース部942は、外部機器やネットワーク、メモリカード等と接続するためのインタフェースであり、記録する映像データや音声データ等のデータ受信を行う。
エンコーダ943は、外部インタフェース部942から供給された映像データや音声データが符号化されていないとき所定の方式で符号化を行い、符号化ビットストリームをセレクタ946に出力する。
HDD部944は、映像や音声等のコンテンツデータ、各種プログラムやその他のデータ等を内蔵のハードディスクに記録し、また再生時等にそれらを当該ハードディスクから読み出す。
ディスクドライブ945は、装着されている光ディスクに対する信号の記録および再生を行う。光ディスク、例えばDVDディスク(DVD-Video、DVD-RAM、DVD-R、DVD-RW、DVD+R、DVD+RW等)やBlu-ray(登録商標)ディスク等である。
セレクタ946は、映像や音声の記録時には、チューナ941またはエンコーダ943からのいずれかの符号化ビットストリームを選択して、HDD部944やディスクドライブ945のいずれかに供給する。また、セレクタ946は、映像や音声の再生時に、HDD部944またはディスクドライブ945から出力された符号化ビットストリームをデコーダ947に供給する。
デコーダ947は、符号化ビットストリームの復号化処理を行う。デコーダ947は、復号処理化を行うことにより生成された映像データをOSD部948に供給する。また、デコーダ947は、復号処理化を行うことにより生成された音声データを出力する。
OSD部948は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それをデコーダ947から出力された映像データに重畳して出力する。
制御部949には、ユーザインタフェース部950が接続されている。ユーザインタフェース部950は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部949に供給する。
制御部949は、CPUやメモリ等を用いて構成されている。メモリは、CPUにより実行されるプログラムやCPUが処理を行う上で必要な各種のデータを記憶する。メモリに記憶されているプログラムは、記録再生装置940の起動時などの所定タイミングでCPUにより読み出されて実行される。CPUは、プログラムを実行することで、記録再生装置940がユーザ操作に応じた動作となるように各部を制御する。
このように構成された記録再生装置では、エンコーダ943に本願の符号化装置(符号化方法)の機能が設けられる。このため、双方向予測時に必要な記憶容量を削減することができる。
<第7実施の形態>
(撮像装置の構成例)
図27は、本開示を適用した撮像装置の概略構成を例示している。撮像装置960は、被写体を撮像し、被写体の画像を表示部に表示させたり、それを画像データとして、記録媒体に記録する。
(撮像装置の構成例)
図27は、本開示を適用した撮像装置の概略構成を例示している。撮像装置960は、被写体を撮像し、被写体の画像を表示部に表示させたり、それを画像データとして、記録媒体に記録する。
撮像装置960は、光学ブロック961、撮像部962、カメラ信号処理部963、画像データ処理部964、表示部965、外部インタフェース部966、メモリ部967、メディアドライブ968、OSD部969、制御部970を有している。また、制御部970には、ユーザインタフェース部971が接続されている。さらに、画像データ処理部964や外部インタフェース部966、メモリ部967、メディアドライブ968、OSD部969、制御部970等は、バス972を介して接続されている。
光学ブロック961は、フォーカスレンズや絞り機構等を用いて構成されている。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCDまたはCMOSイメージセンサを用いて構成されており、光電変換によって光学像に応じた電気信号を生成してカメラ信号処理部963に供給する。
カメラ信号処理部963は、撮像部962から供給された電気信号に対してニー補正やガンマ補正、色補正等の種々のカメラ信号処理を行う。カメラ信号処理部963は、カメラ信号処理後の画像データを画像データ処理部964に供給する。
画像データ処理部964は、カメラ信号処理部963から供給された画像データの符号化処理を行う。画像データ処理部964は、符号化処理を行うことにより生成された符号化データを外部インタフェース部966やメディアドライブ968に供給する。また、画像データ処理部964は、外部インタフェース部966やメディアドライブ968から供給された符号化データの復号化処理を行う。画像データ処理部964は、復号化処理を行うことにより生成された画像データを表示部965に供給する。また、画像データ処理部964は、カメラ信号処理部963から供給された画像データを表示部965に供給する処理や、OSD部969から取得した表示用データを、画像データに重畳させて表示部965に供給する。
OSD部969は、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを生成して画像データ処理部964に出力する。
外部インタフェース部966は、例えば、USB入出力端子などで構成され、画像の印刷を行う場合に、プリンタと接続される。また、外部インタフェース部966には、必要に応じてドライブが接続され、磁気ディスク、光ディスク等のリムーバブルメディアが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて、インストールされる。さらに、外部インタフェース部966は、LANやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。制御部970は、例えば、ユーザインタフェース部971からの指示にしたがって、メディアドライブ968から符号化データを読み出し、それを外部インタフェース部966から、ネットワークを介して接続される他の装置に供給させることができる。また、制御部970は、ネットワークを介して他の装置から供給される符号化データや画像データを、外部インタフェース部966を介して取得し、それを画像データ処理部964に供給したりすることができる。
メディアドライブ968で駆動される記録メディアとしては、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアが用いられる。また、記録メディアは、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触IC(Integrated Circuit)カード等であってもよい。
また、メディアドライブ968と記録メディアを一体化し、例えば、内蔵型ハードディスクドライブやSSD(Solid State Drive)等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
制御部970は、CPUを用いて構成されている。メモリ部967は、制御部970により実行されるプログラムや制御部970が処理を行う上で必要な各種のデータ等を記憶する。メモリ部967に記憶されているプログラムは、撮像装置960の起動時などの所定タイミングで制御部970により読み出されて実行される。制御部970は、プログラムを実行することで、撮像装置960がユーザ操作に応じた動作となるように各部を制御する。
このように構成された撮像装置では、画像データ処理部964に本願の符号化装置(符号化方法)の機能が設けられる。このため、双方向予測時に必要な記憶容量を削減することができる。
<第8実施の形態>
(実施のその他の例)
以上において本開示を適用する装置の例を説明したが、本開示は、これに限らず、このような装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。
(実施のその他の例)
以上において本開示を適用する装置の例を説明したが、本開示は、これに限らず、このような装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。
(ビデオセットの構成例)
本開示をセットとして実施する場合の例について、図28を参照して説明する。図28は、本開示を適用したビデオセットの概略的な構成の一例を示している。
本開示をセットとして実施する場合の例について、図28を参照して説明する。図28は、本開示を適用したビデオセットの概略的な構成の一例を示している。
近年、電子機器の多機能化が進んでおり、その開発や製造において、その一部の構成を販売や提供等として実施する場合、1機能を有する構成として実施を行う場合だけでなく、関連する機能を有する複数の構成を組み合わせ、複数の機能を有する1セットとして実施を行う場合も多く見られるようになってきた。
図28に示されるビデオセット1300は、このような多機能化された構成であり、画像の符号化や復号(いずれか一方でもよいし、両方でも良い)に関する機能を有するデバイスに、その機能に関連するその他の機能を有するデバイスを組み合わせたものである。
図28に示されるように、ビデオセット1300は、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314等のモジュール群と、コネクティビティ1321、カメラ1322、およびセンサ1323等の関連する機能を有するデバイスとを有する。
モジュールは、互いに関連するいくつかの部品的機能をまとめ、まとまりのある機能を持った部品としたものである。具体的な物理的構成は任意であるが、例えば、それぞれ機能を有する複数のプロセッサ、抵抗やコンデンサ等の電子回路素子、その他のデバイス等を配線基板等に配置して一体化したものが考えられる。また、モジュールに他のモジュールやプロセッサ等を組み合わせて新たなモジュールとすることも考えられる。
図28の例の場合、ビデオモジュール1311は、画像処理に関する機能を有する構成を組み合わせたものであり、アプリケーションプロセッサ、ビデオプロセッサ、ブロードバンドモデム1333、およびRFモジュール1334を有する。
プロセッサは、所定の機能を有する構成をSoC(System On a Chip)により半導体チップに集積したものであり、例えばシステムLSI(Large Scale Integration)等と称されるものもある。この所定の機能を有する構成は、論理回路(ハードウエア構成)であってもよいし、CPU、ROM、RAM等と、それらを用いて実行されるプログラム(ソフトウエア構成)であってもよいし、その両方を組み合わせたものであってもよい。例えば、プロセッサが、論理回路とCPU、ROM、RAM等とを有し、機能の一部を論理回路(ハードウエア構成)により実現し、その他の機能をCPUにおいて実行されるプログラム(ソフトウエア構成)により実現するようにしてもよい。
図28のアプリケーションプロセッサ1331は、画像処理に関するアプリケーションを実行するプロセッサである。このアプリケーションプロセッサ1331において実行されるアプリケーションは、所定の機能を実現するために、演算処理を行うだけでなく、例えばビデオプロセッサ1332等、ビデオモジュール1311内外の構成を必要に応じて制御することもできる。
ビデオプロセッサ1332は、画像の符号化・復号(その一方若しくは両方)に関する機能を有するプロセッサである。
ブロードバンドモデム1333は、インターネットや公衆電話回線網等の広帯域の回線を介して行われる有線若しくは無線(またはその両方)の広帯域通信に関する処理を行うプロセッサ(若しくはモジュール)である。例えば、ブロードバンドモデム1333は、送信するデータ(デジタル信号)をデジタル変調する等してアナログ信号に変換したり、受信したアナログ信号を復調してデータ(デジタル信号)に変換したりする。例えば、ブロードバンドモデム1333は、ビデオプロセッサ1332が処理する画像データや画像データが符号化されたストリーム、アプリケーションプログラム、設定データ等、任意の情報をデジタル変調・復調することができる。
RFモジュール1334は、アンテナを介して送受信されるRF(Radio Frequency)信号に対して、周波数変換、変復調、増幅、フィルタ処理等を行うモジュールである。例えば、RFモジュール1334は、ブロードバンドモデム1333により生成されたベースバンド信号に対して周波数変換等を行ってRF信号を生成する。また、例えば、RFモジュール1334は、フロントエンドモジュール1314を介して受信されたRF信号に対して周波数変換等を行ってベースバンド信号を生成する。
なお、図28において点線1341に示されるように、アプリケーションプロセッサ1331とビデオプロセッサ1332を、一体化し、1つのプロセッサとして構成されるようにしてもよい。
外部メモリ1312は、ビデオモジュール1311の外部に設けられた、ビデオモジュール1311により利用される記憶デバイスを有するモジュールである。この外部メモリ1312の記憶デバイスは、どのような物理構成により実現するようにしてもよいが、一般的にフレーム単位の画像データのような大容量のデータの格納に利用されることが多いので、例えばDRAM(Dynamic Random Access Memory)のような比較的安価で大容量の半導体メモリにより実現するのが望ましい。
パワーマネージメントモジュール1313は、ビデオモジュール1311(ビデオモジュール1311内の各構成)への電力供給を管理し、制御する。
フロントエンドモジュール1314は、RFモジュール1334に対してフロントエンド機能(アンテナ側の送受信端の回路)を提供するモジュールである。図28に示されるように、フロントエンドモジュール1314は、例えば、アンテナ部1351、フィルタ1352、および増幅部1353を有する。
アンテナ部1351は、無線信号を送受信するアンテナおよびその周辺の構成を有する。アンテナ部1351は、増幅部1353から供給される信号を無線信号として送信し、受信した無線信号を電気信号(RF信号)としてフィルタ1352に供給する。フィルタ1352は、アンテナ部1351を介して受信されたRF信号に対してフィルタ処理等を行い、処理後のRF信号をRFモジュール1334に供給する。増幅部1353は、RFモジュール1334から供給されるRF信号を増幅し、アンテナ部1351に供給する。
コネクティビティ1321は、外部との接続に関する機能を有するモジュールである。コネクティビティ1321の物理構成は、任意である。例えば、コネクティビティ1321は、ブロードバンドモデム1333が対応する通信規格以外の通信機能を有する構成や、外部入出力端子等を有する。
例えば、コネクティビティ1321が、Bluetooth(登録商標)、IEEE 802.11(例えばWi-Fi(Wireless Fidelity、登録商標))、NFC(Near Field Communication)、IrDA(InfraRed Data Association)等の無線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した信号を送受信するアンテナ等を有するようにしてもよい。また、例えば、コネクティビティ1321が、USB(Universal Serial Bus)、HDMI(登録商標)(High-Definition Multimedia Interface)等の有線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した端子を有するようにしてもよい。さらに、例えば、コネクティビティ1321が、アナログ入出力端子等のその他のデータ(信号)伝送機能等を有するようにしてもよい。
なお、コネクティビティ1321が、データ(信号)の伝送先のデバイスを含むようにしてもよい。例えば、コネクティビティ1321が、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等の記録媒体に対してデータの読み出しや書き込みを行うドライブ(リムーバブルメディアのドライブだけでなく、ハードディスク、SSD(Solid State Drive)、NAS(Network Attached Storage)等も含む)を有するようにしてもよい。また、コネクティビティ1321が、画像や音声の出力デバイス(モニタやスピーカ等)を有するようにしてもよい。
カメラ1322は、被写体を撮像し、被写体の画像データを得る機能を有するモジュールである。カメラ1322の撮像により得られた画像データは、例えば、ビデオプロセッサ1332に供給されて符号化される。
センサ1323は、例えば、音声センサ、超音波センサ、光センサ、照度センサ、赤外線センサ、イメージセンサ、回転センサ、角度センサ、角速度センサ、速度センサ、加速度センサ、傾斜センサ、磁気識別センサ、衝撃センサ、温度センサ等、任意のセンサ機能を有するモジュールである。センサ1323により検出されたデータは、例えば、アプリケーションプロセッサ1331に供給されてアプリケーション等により利用される。
以上においてモジュールとして説明した構成をプロセッサとして実現するようにしてもよいし、逆にプロセッサとして説明した構成をモジュールとして実現するようにしてもよい。
以上のような構成のビデオセット1300において、後述するようにビデオプロセッサ1332に本開示を適用することができる。したがって、ビデオセット1300は、本開示を適用したセットとして実施することができる。
(ビデオプロセッサの構成例)
図29は、本開示を適用したビデオプロセッサ1332(図28)の概略的な構成の一例を示している。
図29は、本開示を適用したビデオプロセッサ1332(図28)の概略的な構成の一例を示している。
図29の例の場合、ビデオプロセッサ1332は、ビデオ信号およびオーディオ信号の入力を受けてこれらを所定の方式で符号化する機能と、符号化されたビデオデータおよびオーディオデータを復号し、ビデオ信号およびオーディオ信号を再生出力する機能とを有する。
図29に示されるように、ビデオプロセッサ1332は、ビデオ入力処理部1401、第1画像拡大縮小部1402、第2画像拡大縮小部1403、ビデオ出力処理部1404、フレームメモリ1405、およびメモリ制御部1406を有する。また、ビデオプロセッサ1332は、エンコード・デコードエンジン1407、ビデオES(Elementary Stream)バッファ1408Aおよび1408B、並びに、オーディオESバッファ1409Aおよび1409Bを有する。さらに、ビデオプロセッサ1332は、オーディオエンコーダ1410、オーディオデコーダ1411、多重化部(MUX(Multiplexer))1412、逆多重化部(DMUX(Demultiplexer))1413、およびストリームバッファ1414を有する。
ビデオ入力処理部1401は、例えばコネクティビティ1321(図28)等から入力されたビデオ信号を取得し、デジタル画像データに変換する。第1画像拡大縮小部1402は、画像データに対してフォーマット変換や画像の拡大縮小処理等を行う。第2画像拡大縮小部1403は、画像データに対して、ビデオ出力処理部1404を介して出力する先でのフォーマットに応じて画像の拡大縮小処理を行ったり、第1画像拡大縮小部1402と同様のフォーマット変換や画像の拡大縮小処理等を行ったりする。ビデオ出力処理部1404は、画像データに対して、フォーマット変換やアナログ信号への変換等を行って、再生されたビデオ信号として例えばコネクティビティ1321(図28)等に出力する。
フレームメモリ1405は、ビデオ入力処理部1401、第1画像拡大縮小部1402、第2画像拡大縮小部1403、ビデオ出力処理部1404、およびエンコード・デコードエンジン1407によって共用される画像データ用のメモリである。フレームメモリ1405は、例えばDRAM等の半導体メモリとして実現される。
メモリ制御部1406は、エンコード・デコードエンジン1407からの同期信号を受けて、アクセス管理テーブル1406Aに書き込まれたフレームメモリ1405へのアクセススケジュールに従ってフレームメモリ1405に対する書き込み・読み出しのアクセスを制御する。アクセス管理テーブル1406Aは、エンコード・デコードエンジン1407、第1画像拡大縮小部1402、第2画像拡大縮小部1403等で実行される処理に応じて、メモリ制御部1406により更新される。
エンコード・デコードエンジン1407は、画像データのエンコード処理、並びに、画像データが符号化されたデータであるビデオストリームのデコード処理を行う。例えば、エンコード・デコードエンジン1407は、フレームメモリ1405から読み出した画像データを符号化し、ビデオストリームとしてビデオESバッファ1408Aに順次書き込む。また、例えば、ビデオESバッファ1408Bからビデオストリームを順次読み出して復号し、画像データとしてフレームメモリ1405に順次書き込む。エンコード・デコードエンジン1407は、これらの符号化や復号において、フレームメモリ1405を作業領域として使用する。また、エンコード・デコードエンジン1407は、例えばマクロブロック毎の処理を開始するタイミングで、メモリ制御部1406に対して同期信号を出力する。
ビデオESバッファ1408Aは、エンコード・デコードエンジン1407によって生成されたビデオストリームをバッファリングして、多重化部(MUX)1412に供給する。ビデオESバッファ1408Bは、逆多重化部(DMUX)1413から供給されたビデオストリームをバッファリングして、エンコード・デコードエンジン1407に供給する。
オーディオESバッファ1409Aは、オーディオエンコーダ1410によって生成されたオーディオストリームをバッファリングして、多重化部(MUX)1412に供給する。オーディオESバッファ1409Bは、逆多重化部(DMUX)1413から供給されたオーディオストリームをバッファリングして、オーディオデコーダ1411に供給する。
オーディオエンコーダ1410は、例えばコネクティビティ1321(図28)等から入力されたオーディオ信号を例えばデジタル変換し、例えばMPEGオーディオ方式やAC3(AudioCode number 3)方式等の所定の方式で符号化する。オーディオエンコーダ1410は、オーディオ信号が符号化されたデータであるオーディオストリームをオーディオESバッファ1409Aに順次書き込む。オーディオデコーダ1411は、オーディオESバッファ1409Bから供給されたオーディオストリームを復号し、例えばアナログ信号への変換等を行って、再生されたオーディオ信号として例えばコネクティビティ1321(図28)等に供給する。
多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化する。この多重化の方法(すなわち、多重化により生成されるビットストリームのフォーマット)は任意である。また、この多重化の際に、多重化部(MUX)1412は、所定のヘッダ情報等をビットストリームに付加することもできる。つまり、多重化部(MUX)1412は、多重化によりストリームのフォーマットを変換することができる。例えば、多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームに変換する。また、例えば、多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化することにより、記録用のファイルフォーマットのデータ(ファイルデータ)に変換する。
逆多重化部(DMUX)1413は、多重化部(MUX)1412による多重化に対応する方法で、ビデオストリームとオーディオストリームとが多重化されたビットストリームを逆多重化する。つまり、逆多重化部(DMUX)1413は、ストリームバッファ1414から読み出されたビットストリームからビデオストリームとオーディオストリームとを抽出する(ビデオストリームとオーディオストリームとを分離する)。つまり、逆多重化部(DMUX)1413は、逆多重化によりストリームのフォーマットを変換(多重化部(MUX)1412による変換の逆変換)することができる。例えば、逆多重化部(DMUX)1413は、例えばコネクティビティ1321やブロードバンドモデム1333等(いずれも図28)から供給されたトランスポートストリームを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。また、例えば、逆多重化部(DMUX)1413は、例えばコネクティビティ1321により(図28)各種記録媒体から読み出されたファイルデータを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。
ストリームバッファ1414は、ビットストリームをバッファリングする。例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたトランスポートストリームをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図28)等に供給する。
また、例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたファイルデータをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、例えばコネクティビティ1321(図28)等に供給し、各種記録媒体に記録させる。
さらに、ストリームバッファ1414は、例えばコネクティビティ1321やブロードバンドモデム1333等(いずれも図28)を介して取得したトランスポートストリームをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
また、ストリームバッファ1414は、例えばコネクティビティ1321(図28)等において各種記録媒体から読み出されたファイルデータをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
次に、このような構成のビデオプロセッサ1332の動作の例について説明する。例えば、コネクティビティ1321(図28)等からビデオプロセッサ1332に入力されたビデオ信号は、ビデオ入力処理部1401において4:2:2Y/Cb/Cr方式等の所定の方式のデジタル画像データに変換され、フレームメモリ1405に順次書き込まれる。このデジタル画像データは、第1画像拡大縮小部1402または第2画像拡大縮小部1403に読み出されて、4:2:0Y/Cb/Cr方式等の所定の方式へのフォーマット変換および拡大縮小処理が行われ、再びフレームメモリ1405に書き込まれる。この画像データは、エンコード・デコードエンジン1407によって符号化され、ビデオストリームとしてビデオESバッファ1408Aに書き込まれる。
また、コネクティビティ1321(図28)等からビデオプロセッサ1332に入力されたオーディオ信号は、オーディオエンコーダ1410によって符号化され、オーディオストリームとして、オーディオESバッファ1409Aに書き込まれる。
ビデオESバッファ1408Aのビデオストリームと、オーディオESバッファ1409Aのオーディオストリームは、多重化部(MUX)1412に読み出されて多重化され、トランスポートストリーム若しくはファイルデータ等に変換される。多重化部(MUX)1412により生成されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図28)等を介して外部ネットワークに出力される。また、多重化部(MUX)1412により生成されたファイルデータは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321(図28)等に出力され、各種記録媒体に記録される。
また、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図28)等を介して外部ネットワークからビデオプロセッサ1332に入力されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、逆多重化部(DMUX)1413により逆多重化される。また、例えばコネクティビティ1321(図28)等において各種記録媒体から読み出され、ビデオプロセッサ1332に入力されたファイルデータは、ストリームバッファ1414にバッファされた後、逆多重化部(DMUX)1413により逆多重化される。つまり、ビデオプロセッサ1332に入力されたトランスポートストリームまたはファイルデータは、逆多重化部(DMUX)1413によりビデオストリームとオーディオストリームとに分離される。
オーディオストリームは、オーディオESバッファ1409Bを介してオーディオデコーダ1411に供給され、復号されてオーディオ信号が再生される。また、ビデオストリームは、ビデオESバッファ1408Bに書き込まれた後、エンコード・デコードエンジン1407により順次読み出されて復号されてフレームメモリ1405に書き込まれる。復号された画像データは、第2画像拡大縮小部1403によって拡大縮小処理されて、フレームメモリ1405に書き込まれる。そして、復号された画像データは、ビデオ出力処理部1404に読み出されて、4:2:2Y/Cb/Cr方式等の所定の方式にフォーマット変換され、さらにアナログ信号に変換されて、ビデオ信号が再生出力される。
このように構成されるビデオプロセッサ1332に本開示を適用する場合、エンコード・デコードエンジン1407に、上述した各実施形態に係る本開示を適用すればよい。つまり、例えば、エンコード・デコードエンジン1407が、第1および第2実施の形態に係る符号化装置の機能を有するようにすればよい。このようにすることにより、ビデオプロセッサ1332は、図1乃至図23を参照して上述した効果と同様の効果を得ることができる。
なお、エンコード・デコードエンジン1407において、本開示(すなわち、上述した各実施形態に係る復号装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
(ビデオプロセッサの他の構成例)
図30は、本開示を適用したビデオプロセッサ1332(図28)の概略的な構成の他の例を示している。図30の例の場合、ビデオプロセッサ1332は、ビデオデータを所定の方式で符号化・復号する機能を有する。
図30は、本開示を適用したビデオプロセッサ1332(図28)の概略的な構成の他の例を示している。図30の例の場合、ビデオプロセッサ1332は、ビデオデータを所定の方式で符号化・復号する機能を有する。
より具体的には、図30に示されるように、ビデオプロセッサ1332は、制御部1511、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、および内部メモリ1515を有する。また、ビデオプロセッサ1332は、コーデックエンジン1516、メモリインタフェース1517、多重化・逆多重化部(MUX DMUX)1518、ネットワークインタフェース1519、およびビデオインタフェース1520を有する。
制御部1511は、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516等、ビデオプロセッサ1332内の各処理部の動作を制御する。
図30に示されるように、制御部1511は、例えば、メインCPU1531、サブCPU1532、およびシステムコントローラ1533を有する。メインCPU1531は、ビデオプロセッサ1332内の各処理部の動作を制御するためのプログラム等を実行する。メインCPU1531は、そのプログラム等に従って制御信号を生成し、各処理部に供給する(つまり、各処理部の動作を制御する)。サブCPU1532は、メインCPU1531の補助的な役割を果たす。例えば、サブCPU1532は、メインCPU1531が実行するプログラム等の子プロセスやサブルーチン等を実行する。システムコントローラ1533は、メインCPU1531およびサブCPU1532が実行するプログラムを指定する等、メインCPU1531およびサブCPU1532の動作を制御する。
ディスプレイインタフェース1512は、制御部1511の制御の下、画像データを例えばコネクティビティ1321(図28)等に出力する。例えば、ディスプレイインタフェース1512は、デジタルデータの画像データをアナログ信号に変換し、再生されたビデオ信号として、またはデジタルデータの画像データのまま、コネクティビティ1321(図28)のモニタ装置等に出力する。
ディスプレイエンジン1513は、制御部1511の制御の下、画像データに対して、その画像を表示させるモニタ装置等のハードウエアスペックに合わせるように、フォーマット変換、サイズ変換、色域変換等の各種変換処理を行う。
画像処理エンジン1514は、制御部1511の制御の下、画像データに対して、例えば画質改善のためのフィルタ処理等、所定の画像処理を施す。
内部メモリ1515は、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516により共用される、ビデオプロセッサ1332の内部に設けられたメモリである。内部メモリ1515は、例えば、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516の間で行われるデータの授受に利用される。例えば、内部メモリ1515は、ディスプレイエンジン1513、画像処理エンジン1514、またはコーデックエンジン1516から供給されるデータを格納し、必要に応じて(例えば、要求に応じて)、そのデータを、ディスプレイエンジン1513、画像処理エンジン1514、またはコーデックエンジン1516に供給する。この内部メモリ1515は、どのような記憶デバイスにより実現するようにしてもよいが、一般的にブロック単位の画像データやパラメータ等といった小容量のデータの格納に利用することが多いので、例えばSRAM(Static Random Access Memory)のような比較的(例えば外部メモリ1312と比較して)小容量だが応答速度が高速な半導体メモリにより実現するのが望ましい。
コーデックエンジン1516は、画像データの符号化や復号に関する処理を行う。このコーデックエンジン1516が対応する符号化・復号の方式は任意であり、その数は1つであってもよいし、複数であってもよい。例えば、コーデックエンジン1516は、複数の符号化・復号方式のコーデック機能を備え、その中から選択されたもので画像データの符号化若しくは符号化データの復号を行うようにしてもよい。
図30に示される例において、コーデックエンジン1516は、コーデックに関する処理の機能ブロックとして、例えば、MPEG-2 Video1541、AVC/H.2641542、HEVC/H.2651543、HEVC/H.265(Scalable)1544、HEVC/H.265(Multi-view)1545、およびMPEG-DASH1551を有する。
MPEG-2 Video1541は、画像データをMPEG-2方式で符号化したり復号したりする機能ブロックである。AVC/H.2641542は、画像データをAVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.2651543は、画像データをHEVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.265(Scalable)1544は、画像データをHEVC方式でスケーラブル符号化したりスケーラブル復号したりする機能ブロックである。HEVC/H.265(Multi-view)1545は、画像データをHEVC方式で多視点符号化したり多視点復号したりする機能ブロックである。
MPEG-DASH1551は、画像データをMPEG-DASH(MPEG-Dynamic Adaptive Streaming over HTTP)方式で送受信する機能ブロックである。MPEG-DASHは、HTTP(HyperText Transfer Protocol)を使ってビデオのストリーミングを行う技術であり、予め用意された解像度等が互いに異なる複数の符号化データの中から適切なものをセグメント単位で選択し伝送することを特徴の1つとする。MPEG-DASH1551は、規格に準拠するストリームの生成やそのストリームの伝送制御等を行い、画像データの符号化・復号については、上述したMPEG-2 Video1541乃至HEVC/H.265(Multi-view)1545を利用する。
メモリインタフェース1517は、外部メモリ1312用のインタフェースである。画像処理エンジン1514やコーデックエンジン1516から供給されるデータは、メモリインタフェース1517を介して外部メモリ1312に供給される。また、外部メモリ1312から読み出されたデータは、メモリインタフェース1517を介してビデオプロセッサ1332(画像処理エンジン1514若しくはコーデックエンジン1516)に供給される。
多重化・逆多重化部(MUX DMUX)1518は、符号化データのビットストリーム、画像データ、ビデオ信号等、画像に関する各種データの多重化や逆多重化を行う。この多重化・逆多重化の方法は任意である。例えば、多重化の際に、多重化・逆多重化部(MUX DMUX)1518は、複数のデータを1つにまとめるだけでなく、所定のヘッダ情報等をそのデータに付加することもできる。また、逆多重化の際に、多重化・逆多重化部(MUX DMUX)1518は、1つのデータを複数に分割するだけでなく、分割した各データに所定のヘッダ情報等を付加することもできる。つまり、多重化・逆多重化部(MUX DMUX)1518は、多重化・逆多重化によりデータのフォーマットを変換することができる。例えば、多重化・逆多重化部(MUX DMUX)1518は、ビットストリームを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームや、記録用のファイルフォーマットのデータ(ファイルデータ)に変換することができる。もちろん、逆多重化によりその逆変換も可能である。
ネットワークインタフェース1519は、例えばブロードバンドモデム1333やコネクティビティ1321(いずれも図28)等向けのインタフェースである。ビデオインタフェース1520は、例えばコネクティビティ1321やカメラ1322(いずれも図28)等向けのインタフェースである。
次に、このようなビデオプロセッサ1332の動作の例について説明する。例えば、コネクティビティ1321やブロードバンドモデム1333(いずれも図28)等を介して外部ネットワークからトランスポートストリームを受信すると、そのトランスポートストリームは、ネットワークインタフェース1519を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、例えば、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321(図28)等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてファイルデータに変換され、ビデオインタフェース1520を介して例えばコネクティビティ1321(図28)等に出力され、各種記録媒体に記録される。
さらに、例えば、コネクティビティ1321(図28)等により図示せぬ記録媒体から読み出された、画像データが符号化された符号化データのファイルデータは、ビデオインタフェース1520を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321(図28)等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてトランスポートストリームに変換され、ネットワークインタフェース1519を介して例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図28)等に供給され図示せぬ他の装置に伝送される。
なお、ビデオプロセッサ1332内の各処理部の間での画像データやその他のデータの授受は、例えば、内部メモリ1515や外部メモリ1312を利用して行われる。また、パワーマネージメントモジュール1313は、例えば制御部1511への電力供給を制御する。
このように構成されるビデオプロセッサ1332に本開示を適用する場合、コーデックエンジン1516に、上述した各実施形態に係る本開示を適用すればよい。つまり、例えば、コーデックエンジン1516が、第1および第2実施の形態に係る符号化装置を実現する機能ブロックを有するようにすればよい。コーデックエンジン1516が、このようにすることにより、ビデオプロセッサ1332は、図1乃至図23を参照して上述した効果と同様の効果を得ることができる。
なお、コーデックエンジン1516において、本開示(すなわち、上述した各実施形態に係る復号装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
以上にビデオプロセッサ1332の構成を2例示したが、ビデオプロセッサ1332の構成は任意であり、上述した2例以外のものであってもよい。また、このビデオプロセッサ1332は、1つの半導体チップとして構成されるようにしてもよいが、複数の半導体チップとして構成されるようにしてもよい。例えば、複数の半導体を積層する3次元積層LSIとしてもよい。また、複数のLSIにより実現されるようにしてもよい。
(装置への適用例)
ビデオセット1300は、画像データを処理する各種装置に組み込むことができる。例えば、ビデオセット1300は、テレビジョン装置900(図24)、携帯電話機920(図25)、記録再生装置940(図26)、撮像装置960(図27)等に組み込むことができる。ビデオセット1300を組み込むことにより、その装置は、図1乃至図23を参照して上述した効果と同様の効果を得ることができる。
ビデオセット1300は、画像データを処理する各種装置に組み込むことができる。例えば、ビデオセット1300は、テレビジョン装置900(図24)、携帯電話機920(図25)、記録再生装置940(図26)、撮像装置960(図27)等に組み込むことができる。ビデオセット1300を組み込むことにより、その装置は、図1乃至図23を参照して上述した効果と同様の効果を得ることができる。
なお、上述したビデオセット1300の各構成の一部であっても、ビデオプロセッサ1332を含むものであれば、本開示を適用した構成として実施することができる。例えば、ビデオプロセッサ1332のみを本開示を適用したビデオプロセッサとして実施することができる。また、例えば、上述したように点線1341により示されるプロセッサやビデオモジュール1311等を本開示を適用したプロセッサやモジュール等として実施することができる。さらに、例えば、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314を組み合わせ、本開示を適用したビデオユニット1361として実施することもできる。いずれの構成の場合であっても、図1乃至図23を参照して上述した効果と同様の効果を得ることができる。
つまり、ビデオプロセッサ1332を含むものであればどのような構成であっても、ビデオセット1300の場合と同様に、画像データを処理する各種装置に組み込むことができる。例えば、ビデオプロセッサ1332、点線1341により示されるプロセッサ、ビデオモジュール1311、または、ビデオユニット1361を、テレビジョン装置900(図24)、携帯電話機920(図25)、記録再生装置940(図26)、撮像装置960(図27)等に組み込むことができる。そして、本開示を適用したいずれかの構成を組み込むことにより、その装置は、ビデオセット1300の場合と同様に、図1乃至図23を参照して上述した効果と同様の効果を得ることができる。
本開示は、MPEG,H.26x等のように、離散コサイン変換等の直交変換と動き補償によって圧縮されたビットストリームを、衛星放送、ケーブルTV、インターネット、携帯電話などのネットワークメディアを介して受信する際、または光、磁気ディスク、フラッシュメモリのような記憶メディア上で処理する際に用いられる符号化装置に適用することができる。
また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
さらに、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、第1実施の形態と第2実施の形態を組み合わせてもよい。この場合、双方向予測を行う場合には、整数精度の動きベクトルを用いて双方向予測が行われ、双方向予測を行わない場合には、双方向予測の代わりにL0予測またはL1予測が行われる。
また、例えば、本開示は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
本開示は、以下のような構成もとることができる。
(1)
画像に対して双方向予測を行う場合、予測方向ごとに、前記画像の分数画素精度の動きベクトルを整数画素精度の動きベクトルに変換する精度変換部と、
前記精度変換部により変換された前記予測方向ごとの整数画素精度の動きベクトルに基づいて、前記画像の双方向予測の予測画像を生成する予測画像生成部と、
前記予測画像生成部により生成された前記双方向予測の予測画像を用いて、前記画像を、再帰的に分割されるブロック構造にしたがって符号化する符号化部と
を備える符号化装置。
(2)
前記予測画像生成部は、
前記予測方向ごとに前記整数画素精度の動きベクトルに基づいて生成された前記画像の予測画像である中間予測画像を平均化し、前記双方向予測の予測画像を生成する平均化部
を備える
前記(1)に記載の符号化装置。
(3)
前記予測画像生成部は、
前記中間予測画像を記憶する記憶部
をさらに備え、
前記平均化部は、前記記憶部に記憶された前記中間予測画像を平均化する
ように構成された
前記(2)に記載の符号化装置。
(4)
前記予測画像生成部は、
前記予測方向ごとに、前記整数画素精度の動きベクトルに基づいて前記中間予測画像を生成する中間予測画像生成部
をさらに備える
前記(2)または(3)に記載の符号化装置。
(5)
アプリケーションに応じて、前記双方向予測の予測画像の生成に用いる前記動きベクトルの精度を整数画素精度または分数画素精度に設定する設定部
をさらに備える
前記(1)乃至(4)のいずれかに記載の符号化装置。
(6)
前記画像の量子化パラメータ、フレームレート、または解像度に基づいて、前記双方向予測の予測画像の生成に用いる前記動きベクトルの精度を整数画素精度または分数画素精度に設定する設定部
をさらに備える
前記(1)乃至(4)のいずれかに記載の符号化装置。
(7)
前記双方向予測を行わない場合、前方向予測または後方向予測のみを行うように制限する方向制限予測部
をさらに備える
前記(1)乃至(6)のいずれかに記載の符号化装置。
(8)
前記方向制限予測部は、
前記双方向予測を行わない場合、前記画像を縮小した縮小画像と前記画像の前方向および後方向の参照画像を縮小した縮小参照画像とを用いて、予測方向を前方向または後方向に決定する決定部と、
前記決定部により決定された前記前方向または後方向の予測を、前記画像と前記画像の前方向または後方向の参照画像とを用いて行う予測部と
を備える
前記(7)に記載の符号化装置。
(9)
前記決定部は、複数のLCU(Largest Coding Unit)単位で前記予測方向を決定する
ように構成された
前記(8)に記載の符号化装置。
(10)
前記決定部は、前記縮小画像の前方向および後方向の動きベクトルに基づいて、前記予測方向を決定する
ように構成された
前記(8)または(9)に記載の符号化装置。
(11)
前記決定部は、前記縮小参照画像から生成された前記縮小画像の予測画像である縮小予測画像のコスト関数値に基づいて、前記予測方向を決定する
ように構成された
前記(8)乃至(10)のいずれかに記載の符号化装置。
(12)
アプリケーションに応じて前記双方向予測を行わないことを決定する決定部
をさらに備える
前記(7)乃至(11)のいずれかに記載の符号化装置。
(13)
前記画像の量子化パラメータ、フレームレート、または解像度に基づいて、前記双方向予測を行わないことを決定する決定部
をさらに備える
前記(7)乃至(11)のいずれかに記載の符号化装置。
(14)
符号化装置が、
画像に対して双方向予測を行う場合、予測方向ごとに、前記画像の分数画素精度の動きベクトルを整数画素精度の動きベクトルに変換する精度変換ステップと、
前記精度変換ステップの処理により変換された前記予測方向ごとの整数画素精度の動きベクトルに基づいて、前記画像の双方向予測の予測画像を生成する予測画像生成ステップと
前記予測画像生成ステップの処理により生成された前記双方向予測の予測画像を用いて、前記画像を、再帰的に分割されるブロック構造にしたがって符号化する符号化ステップと
を含む符号化方法。
(15)
画像に対する予測画像を生成する場合に、複数のLCU(Largest Coding Unit)単位で、前記画像に対して、前方向予測または後方向予測のみを行うように制限する方向制限予測部と、
前記予測画像を用いて、前記画像を、再帰的に分割されるブロック構造にしたがって符号化する符号化部と
を備える符号化装置。
(16)
前記方向制限予測部は、
複数のLCU(Largest Coding Unit)単位で、前記画像を縮小した縮小画像と前記画像の前方向および後方向の参照画像を縮小した縮小参照画像とを用いて、予測方向を前方向または後方向に決定する決定部と、
前記決定部により決定された前記前方向または後方向の予測を、前記画像と前記画像の前方向または後方向の参照画像とを用いて行う予測部と
を備える
前記(15)に記載の符号化装置。
(17)
前記方向制限予測部は、アプリケーションに応じて制限を行う
ように構成された
前記(15)または(16)に記載の符号化装置。
(18)
前記方向制限予測部は、前記画像の量子化パラメータ、フレームレート、または解像度に基づいて、制限を行う
ように構成された
前記(15)または(16)に記載の符号化装置。
(19)
符号化装置が、
画像に対する予測画像を生成する場合に、複数のLCU(Largest Coding Unit)単位で、前記画像に対して、前方向予測または後方向予測のみを行うように制限する方向制限予測ステップと、
前記予測画像を用いて、前記画像を、再帰的に分割されるブロック構造にしたがって符号化する符号化ステップと
を含む符号化方法。
画像に対して双方向予測を行う場合、予測方向ごとに、前記画像の分数画素精度の動きベクトルを整数画素精度の動きベクトルに変換する精度変換部と、
前記精度変換部により変換された前記予測方向ごとの整数画素精度の動きベクトルに基づいて、前記画像の双方向予測の予測画像を生成する予測画像生成部と、
前記予測画像生成部により生成された前記双方向予測の予測画像を用いて、前記画像を、再帰的に分割されるブロック構造にしたがって符号化する符号化部と
を備える符号化装置。
(2)
前記予測画像生成部は、
前記予測方向ごとに前記整数画素精度の動きベクトルに基づいて生成された前記画像の予測画像である中間予測画像を平均化し、前記双方向予測の予測画像を生成する平均化部
を備える
前記(1)に記載の符号化装置。
(3)
前記予測画像生成部は、
前記中間予測画像を記憶する記憶部
をさらに備え、
前記平均化部は、前記記憶部に記憶された前記中間予測画像を平均化する
ように構成された
前記(2)に記載の符号化装置。
(4)
前記予測画像生成部は、
前記予測方向ごとに、前記整数画素精度の動きベクトルに基づいて前記中間予測画像を生成する中間予測画像生成部
をさらに備える
前記(2)または(3)に記載の符号化装置。
(5)
アプリケーションに応じて、前記双方向予測の予測画像の生成に用いる前記動きベクトルの精度を整数画素精度または分数画素精度に設定する設定部
をさらに備える
前記(1)乃至(4)のいずれかに記載の符号化装置。
(6)
前記画像の量子化パラメータ、フレームレート、または解像度に基づいて、前記双方向予測の予測画像の生成に用いる前記動きベクトルの精度を整数画素精度または分数画素精度に設定する設定部
をさらに備える
前記(1)乃至(4)のいずれかに記載の符号化装置。
(7)
前記双方向予測を行わない場合、前方向予測または後方向予測のみを行うように制限する方向制限予測部
をさらに備える
前記(1)乃至(6)のいずれかに記載の符号化装置。
(8)
前記方向制限予測部は、
前記双方向予測を行わない場合、前記画像を縮小した縮小画像と前記画像の前方向および後方向の参照画像を縮小した縮小参照画像とを用いて、予測方向を前方向または後方向に決定する決定部と、
前記決定部により決定された前記前方向または後方向の予測を、前記画像と前記画像の前方向または後方向の参照画像とを用いて行う予測部と
を備える
前記(7)に記載の符号化装置。
(9)
前記決定部は、複数のLCU(Largest Coding Unit)単位で前記予測方向を決定する
ように構成された
前記(8)に記載の符号化装置。
(10)
前記決定部は、前記縮小画像の前方向および後方向の動きベクトルに基づいて、前記予測方向を決定する
ように構成された
前記(8)または(9)に記載の符号化装置。
(11)
前記決定部は、前記縮小参照画像から生成された前記縮小画像の予測画像である縮小予測画像のコスト関数値に基づいて、前記予測方向を決定する
ように構成された
前記(8)乃至(10)のいずれかに記載の符号化装置。
(12)
アプリケーションに応じて前記双方向予測を行わないことを決定する決定部
をさらに備える
前記(7)乃至(11)のいずれかに記載の符号化装置。
(13)
前記画像の量子化パラメータ、フレームレート、または解像度に基づいて、前記双方向予測を行わないことを決定する決定部
をさらに備える
前記(7)乃至(11)のいずれかに記載の符号化装置。
(14)
符号化装置が、
画像に対して双方向予測を行う場合、予測方向ごとに、前記画像の分数画素精度の動きベクトルを整数画素精度の動きベクトルに変換する精度変換ステップと、
前記精度変換ステップの処理により変換された前記予測方向ごとの整数画素精度の動きベクトルに基づいて、前記画像の双方向予測の予測画像を生成する予測画像生成ステップと
前記予測画像生成ステップの処理により生成された前記双方向予測の予測画像を用いて、前記画像を、再帰的に分割されるブロック構造にしたがって符号化する符号化ステップと
を含む符号化方法。
(15)
画像に対する予測画像を生成する場合に、複数のLCU(Largest Coding Unit)単位で、前記画像に対して、前方向予測または後方向予測のみを行うように制限する方向制限予測部と、
前記予測画像を用いて、前記画像を、再帰的に分割されるブロック構造にしたがって符号化する符号化部と
を備える符号化装置。
(16)
前記方向制限予測部は、
複数のLCU(Largest Coding Unit)単位で、前記画像を縮小した縮小画像と前記画像の前方向および後方向の参照画像を縮小した縮小参照画像とを用いて、予測方向を前方向または後方向に決定する決定部と、
前記決定部により決定された前記前方向または後方向の予測を、前記画像と前記画像の前方向または後方向の参照画像とを用いて行う予測部と
を備える
前記(15)に記載の符号化装置。
(17)
前記方向制限予測部は、アプリケーションに応じて制限を行う
ように構成された
前記(15)または(16)に記載の符号化装置。
(18)
前記方向制限予測部は、前記画像の量子化パラメータ、フレームレート、または解像度に基づいて、制限を行う
ように構成された
前記(15)または(16)に記載の符号化装置。
(19)
符号化装置が、
画像に対する予測画像を生成する場合に、複数のLCU(Largest Coding Unit)単位で、前記画像に対して、前方向予測または後方向予測のみを行うように制限する方向制限予測ステップと、
前記予測画像を用いて、前記画像を、再帰的に分割されるブロック構造にしたがって符号化する符号化ステップと
を含む符号化方法。
10 符号化装置, 33 演算部, 82 精度変換部, 83 中間予測画像生成部, 84 メモリ, 86 精度変換部, 87 中間予測画像生成部, 88 メモリ, 89 平均化部, 100 符号化装置, 151 双方向予測部, 174 決定部, 175 予測部
Claims (19)
- 画像に対して双方向予測を行う場合、予測方向ごとに、前記画像の分数画素精度の動きベクトルを整数画素精度の動きベクトルに変換する精度変換部と、
前記精度変換部により変換された前記予測方向ごとの整数画素精度の動きベクトルに基づいて、前記画像の双方向予測の予測画像を生成する予測画像生成部と、
前記予測画像生成部により生成された前記双方向予測の予測画像を用いて、前記画像を、再帰的に分割されるブロック構造にしたがって符号化する符号化部と
を備える符号化装置。 - 前記予測画像生成部は、
前記予測方向ごとに前記整数画素精度の動きベクトルに基づいて生成された前記画像の予測画像である中間予測画像を平均化し、前記双方向予測の予測画像を生成する平均化部
を備える
請求項1に記載の符号化装置。 - 前記予測画像生成部は、
前記中間予測画像を記憶する記憶部
をさらに備え、
前記平均化部は、前記記憶部に記憶された前記中間予測画像を平均化する
ように構成された
請求項2に記載の符号化装置。 - 前記予測画像生成部は、
前記予測方向ごとに、前記整数画素精度の動きベクトルに基づいて前記中間予測画像を生成する中間予測画像生成部
をさらに備える
請求項2に記載の符号化装置。 - アプリケーションに応じて、前記双方向予測の予測画像の生成に用いる前記動きベクトルの精度を整数画素精度または分数画素精度に設定する設定部
をさらに備える
請求項1に記載の符号化装置。 - 前記画像の量子化パラメータ、フレームレート、または解像度に基づいて、前記双方向予測の予測画像の生成に用いる前記動きベクトルの精度を整数画素精度または分数画素精度に設定する設定部
をさらに備える
請求項1に記載の符号化装置。 - 前記双方向予測を行わない場合、前方向予測または後方向予測のみを行うように制限する方向制限予測部
をさらに備える
請求項1に記載の符号化装置。 - 前記方向制限予測部は、
前記双方向予測を行わない場合、前記画像を縮小した縮小画像と前記画像の前方向および後方向の参照画像を縮小した縮小参照画像とを用いて、予測方向を前方向または後方向に決定する決定部と、
前記決定部により決定された前記前方向または後方向の予測を、前記画像と前記画像の前方向または後方向の参照画像とを用いて行う予測部と
を備える
請求項7に記載の符号化装置。 - 前記決定部は、複数のLCU(Largest Coding Unit)単位で前記予測方向を決定する
ように構成された
請求項8に記載の符号化装置。 - 前記決定部は、前記縮小画像の前方向および後方向の動きベクトルに基づいて、前記予測方向を決定する
ように構成された
請求項8に記載の符号化装置。 - 前記決定部は、前記縮小参照画像から生成された前記縮小画像の予測画像である縮小予測画像のコスト関数値に基づいて、前記予測方向を決定する
ように構成された
請求項8に記載の符号化装置。 - アプリケーションに応じて前記双方向予測を行わないことを決定する決定部
をさらに備える
請求項7に記載の符号化装置。 - 前記画像の量子化パラメータ、フレームレート、または解像度に基づいて、前記双方向予測を行わないことを決定する決定部
をさらに備える
請求項7に記載の符号化装置。 - 符号化装置が、
画像に対して双方向予測を行う場合、予測方向ごとに、前記画像の分数画素精度の動きベクトルを整数画素精度の動きベクトルに変換する精度変換ステップと、
前記精度変換ステップの処理により変換された前記予測方向ごとの整数画素精度の動きベクトルに基づいて、前記画像の双方向予測の予測画像を生成する予測画像生成ステップと
前記予測画像生成ステップの処理により生成された前記双方向予測の予測画像を用いて、前記画像を、再帰的に分割されるブロック構造にしたがって符号化する符号化ステップと
を含む符号化方法。 - 画像に対する予測画像を生成する場合に、複数のLCU(Largest Coding Unit)単位で、前記画像に対して、前方向予測または後方向予測のみを行うように制限する方向制限予測部と、
前記予測画像を用いて、前記画像を、再帰的に分割されるブロック構造にしたがって符号化する符号化部と
を備える符号化装置。 - 前記方向制限予測部は、
複数のLCU(Largest Coding Unit)単位で、前記画像を縮小した縮小画像と前記画像の前方向および後方向の参照画像を縮小した縮小参照画像とを用いて、予測方向を前方向または後方向に決定する決定部と、
前記決定部により決定された前記前方向または後方向の予測を、前記画像と前記画像の前方向または後方向の参照画像とを用いて行う予測部と
を備える
請求項15に記載の符号化装置。 - 前記方向制限予測部は、アプリケーションに応じて制限を行う
ように構成された
請求項15に記載の符号化装置。 - 前記方向制限予測部は、前記画像の量子化パラメータ、フレームレート、または解像度に基づいて、制限を行う
ように構成された
請求項15に記載の符号化装置。 - 符号化装置が、
画像に対する予測画像を生成する場合に、複数のLCU(Largest Coding Unit)単位で、前記画像に対して、前方向予測または後方向予測のみを行うように制限する方向制限予測ステップと、
前記予測画像を用いて、前記画像を、再帰的に分割されるブロック構造にしたがって符号化する符号化ステップと
を含む符号化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/126,797 US10110916B2 (en) | 2014-04-22 | 2015-04-08 | Encoding device and encoding method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014-087911 | 2014-04-22 | ||
JP2014087911 | 2014-04-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015163146A1 true WO2015163146A1 (ja) | 2015-10-29 |
Family
ID=54332313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2015/060927 WO2015163146A1 (ja) | 2014-04-22 | 2015-04-08 | 符号化装置および符号化方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10110916B2 (ja) |
JP (1) | JP2015216632A (ja) |
WO (1) | WO2015163146A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108347602A (zh) * | 2017-01-22 | 2018-07-31 | 上海澜至半导体有限公司 | 用于无损压缩视频数据的方法和装置 |
CN109729352A (zh) * | 2017-10-27 | 2019-05-07 | 华为技术有限公司 | 确定仿射编码块的运动矢量的方法和装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116527934A (zh) | 2017-08-22 | 2023-08-01 | 松下电器(美国)知识产权公司 | 图像编码器、图像解码器及非暂态计算机可读介质 |
WO2019082268A1 (ja) * | 2017-10-24 | 2019-05-02 | 三菱電機株式会社 | 画像処理装置及び画像処理方法 |
AU2019381454B2 (en) * | 2018-11-16 | 2024-05-23 | FG Innovation Company Limited | Systems and methods for deriving a motion vector prediction in video coding |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011205212A (ja) * | 2010-03-24 | 2011-10-13 | Fujitsu Ltd | 動画像符号化装置及び動きベクトル検出方法 |
WO2012042810A1 (ja) * | 2010-09-29 | 2012-04-05 | パナソニック株式会社 | 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置および画像処理システム |
WO2013069095A1 (ja) * | 2011-11-08 | 2013-05-16 | 株式会社東芝 | 画像符号化方法、画像復号方法、画像符号化装置および画像復号装置 |
WO2013119937A1 (en) * | 2012-02-08 | 2013-08-15 | Qualcomm Incorporated | Restriction of prediction units in b slices to uni-directional inter prediction |
US20130272410A1 (en) * | 2012-04-11 | 2013-10-17 | Qualcomm Incorporated | Motion vector rounding |
WO2013157791A1 (ko) * | 2012-04-15 | 2013-10-24 | 삼성전자 주식회사 | 인터 예측의 참조영상을 결정하는 방법과 그 장치 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140301463A1 (en) * | 2013-04-05 | 2014-10-09 | Nokia Corporation | Method and apparatus for video coding and decoding |
US9380305B2 (en) * | 2013-04-05 | 2016-06-28 | Qualcomm Incorporated | Generalized residual prediction in high-level syntax only SHVC and signaling and management thereof |
US9930363B2 (en) * | 2013-04-12 | 2018-03-27 | Nokia Technologies Oy | Harmonized inter-view and view synthesis prediction for 3D video coding |
KR101967398B1 (ko) * | 2013-07-09 | 2019-04-09 | 노키아 테크놀로지스 오와이 | 모션 정보를 시그널링하기 위한 구문을 수반하는 비디오 코딩을 위한 방법 및 장치 |
US9628795B2 (en) * | 2013-07-17 | 2017-04-18 | Qualcomm Incorporated | Block identification using disparity vector in video coding |
US9451254B2 (en) * | 2013-07-19 | 2016-09-20 | Qualcomm Incorporated | Disabling intra prediction filtering |
US10070125B2 (en) * | 2013-07-31 | 2018-09-04 | Nokia Technologies Oy | Method and apparatus for video coding and decoding |
WO2015056182A2 (en) * | 2013-10-15 | 2015-04-23 | Nokia Technologies Oy | Video encoding and decoding |
US9544601B2 (en) * | 2013-10-15 | 2017-01-10 | Qualcomm Incorporated | Wedgelet pattern extension for depth intra coding |
CN106416250B (zh) * | 2013-12-02 | 2020-12-04 | 诺基亚技术有限公司 | 视频编码和解码 |
US9756359B2 (en) * | 2013-12-16 | 2017-09-05 | Qualcomm Incorporated | Large blocks and depth modeling modes (DMM'S) in 3D video coding |
-
2015
- 2015-04-08 JP JP2015078932A patent/JP2015216632A/ja active Pending
- 2015-04-08 US US15/126,797 patent/US10110916B2/en active Active
- 2015-04-08 WO PCT/JP2015/060927 patent/WO2015163146A1/ja active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011205212A (ja) * | 2010-03-24 | 2011-10-13 | Fujitsu Ltd | 動画像符号化装置及び動きベクトル検出方法 |
WO2012042810A1 (ja) * | 2010-09-29 | 2012-04-05 | パナソニック株式会社 | 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置および画像処理システム |
WO2013069095A1 (ja) * | 2011-11-08 | 2013-05-16 | 株式会社東芝 | 画像符号化方法、画像復号方法、画像符号化装置および画像復号装置 |
WO2013119937A1 (en) * | 2012-02-08 | 2013-08-15 | Qualcomm Incorporated | Restriction of prediction units in b slices to uni-directional inter prediction |
US20130272410A1 (en) * | 2012-04-11 | 2013-10-17 | Qualcomm Incorporated | Motion vector rounding |
WO2013157791A1 (ko) * | 2012-04-15 | 2013-10-24 | 삼성전자 주식회사 | 인터 예측의 참조영상을 결정하는 방법과 그 장치 |
Non-Patent Citations (4)
Title |
---|
GARY J. SULLIVAN ET AL.: "Overview of the High Efficiency Video Coding(HEVC) Standard", TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, vol. 22, no. 12, December 2012 (2012-12-01), pages 1649 - 1668, XP011487803, DOI: doi:10.1109/TCSVT.2012.2221191 * |
GUILLAUME LAROCHE ET AL.: "Non-RCE1: On MV resolution and motion vector predictor number", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT- VC) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, JCTVC-Q0067R1, 17TH MEETING, March 2014 (2014-03-01), Valencia, ES, pages 1 - 6 * |
KENJI KONDO ET AL.: "AHG7: Level definition to limit memory bandwidth of MC", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG 16 WP3 AND ISO/IEC JTC1/SC29/WG11, JCTVC-H0600, 8TH MEETING, February 2012 (2012-02-01), San Jose, CA , USA, pages 1 - 8 * |
SHIGERU FUKUSHIMA ET AL.: "AHG7: Bi-pred restriction for small PUs", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, JCTVC-I0297, 9TH MEETING, May 2012 (2012-05-01), Geneva, CH, pages 1 - 10 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108347602A (zh) * | 2017-01-22 | 2018-07-31 | 上海澜至半导体有限公司 | 用于无损压缩视频数据的方法和装置 |
CN109729352A (zh) * | 2017-10-27 | 2019-05-07 | 华为技术有限公司 | 确定仿射编码块的运动矢量的方法和装置 |
CN109729352B (zh) * | 2017-10-27 | 2020-07-21 | 华为技术有限公司 | 确定仿射编码块的运动矢量的方法和装置 |
US11310524B2 (en) | 2017-10-27 | 2022-04-19 | Huawei Technologies Co., Ltd. | Method and apparatus for determining motion vector of affine code block |
Also Published As
Publication number | Publication date |
---|---|
US20170094312A1 (en) | 2017-03-30 |
JP2015216632A (ja) | 2015-12-03 |
US10110916B2 (en) | 2018-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230224459A1 (en) | Image encoding device and method, and image decoding device and method | |
JP6711353B2 (ja) | 画像処理装置および画像処理方法 | |
WO2014002899A1 (ja) | 符号化装置および符号化方法 | |
JP6287035B2 (ja) | 復号装置および復号方法 | |
JP6256341B2 (ja) | 画像処理装置および方法、並びにプログラム | |
US10148959B2 (en) | Image coding device and method, and image decoding device and method | |
WO2015053116A1 (ja) | 復号装置および復号方法、並びに、符号化装置および符号化方法 | |
WO2015098561A1 (ja) | 復号装置および復号方法、並びに、符号化装置および符号化方法 | |
US20160373740A1 (en) | Image encoding device and method | |
WO2015163146A1 (ja) | 符号化装置および符号化方法 | |
JP2015005899A (ja) | 復号装置および復号方法、並びに、符号化装置および符号化方法 | |
WO2015098559A1 (ja) | 復号装置および復号方法、並びに、符号化装置および符号化方法 | |
KR102338669B1 (ko) | 화상 처리 장치 및 방법, 및 기록 매체 | |
JP6477930B2 (ja) | 符号化装置および符号化方法 | |
US20160286218A1 (en) | Image encoding device and method, and image decoding device and method | |
WO2016199574A1 (ja) | 画像処理装置および画像処理方法 | |
US20240372985A1 (en) | Image encoding device and method, and image decoding device and method | |
JP6402802B2 (ja) | 画像処理装置および方法、プログラム、並びに記録媒体 | |
JP2015050738A (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: 15783652 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15126797 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 15783652 Country of ref document: EP Kind code of ref document: A1 |