IMAGE ENCODING DEVICE AND IMAGE ENCODING METHOD
There are provided an encoding device, a decoding device, an encoding method, and a decoding method that enhance optimality in a case of encoding moving image signals having no sample ratio distinction between color components such as a 4:4:4 format. In a case of conducting compression encoding by inputting digital moving image signals of the 4:4:4 format, there are prepared a first encoding process of encoding three color component signals of the input moving image signals in a common encoding mode, and a second encoding process of encoding the three color component signals of the input moving image signals in respective independent encoding modes. The encoding process is executed by selecting any one of the first encoding process and the second encoding process, and the compression data contains an identification signal for specifying which process is selected.
Latest MITSUBISHI ELECTRIC CORPORATION Patents:
- HIGH FREQUENCY AMPLIFIER AND MATCHING CIRCUIT
- COMMUNICATION SATELLITE SYSTEM, EDGE COMPUTING SYSTEM, AND MAIN SATELLITE
- INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING METHOD, AND SERVER
- ERROR CORRECTION ENCODING DEVICE, ERROR CORRECTION DECODING DEVICE, ERROR CORRECTION ENCODING METHOD, ERROR CORRECTION DECODING METHOD, CONTROL CIRCUIT, AND STORAGE MEDIUM
- INFORMATION PROCESSING DEVICE, AND PROCESSING METHOD
1. Field of the Invention
The present invention relates to a digital image signal encoding device, a digital image signal decoding device, a digital image signal encoding method, and a digital image signal decoding method used for an image compression encoding technology or a compressed image data transmission technology.
2. Description of the Related Art
An international standard video encoding system such as MPEG or ITU-TH. 26× (e.g., “Information Technology Coding of Audio-Visual Objects Part 10: Advanced Video Coding,” ISO/IEC 14496-10, 2003 (hereinafter, referred to as Non-Patent Document 1)) has conventionally been premised on use of a standardized input signal format called a 4:2:0 format. The 4:2:0 format is a format where a color moving image signal of RGB or the like is converted into a luminance component (Y) and two chrominance components (Cb, Cr), and the number of chrominance component samples is reduced to half of luminance components both in horizontal and vertical directions. The chrominance component is inferior to the luminance component in visibility. Accordingly, the conventional international standard video encoding system has been based on the premise that the amount of original information to be encoded is reduced by downsampling chrominance components before encoding is executed as mentioned above. On the other hand, recent increases in resolution and gradation of a video display have been accompanied by studies on a system for performing encoding by maintaining the number of samples equal to that of luminance components without downsampling chrominance components. A format where the numbers of luminance and chrominance component samples are completely equal is called a 4:4:4 format. The conventional 4:2:0 format has been limited to Y, Cb, and Cr color space definitions because of the premise of downsampling of chrominance components. In the case of the 4:4:4 format, however, because there is no sample ratio distinction between color components, R, G, and B can be directly used in addition to Y, Cb, and Cr, and a plurality of color space definitions can be used. An example of a video encoding system targeting the 4:4:4 format is, Woo-Shik Kim, Dae-Sung Cho, and Hyun Mun Kim, “INTER-PLANE PREDICTION FOR RGB VIDEO CODING,” ICIP 2004, October 2004 (hereinafter, referred to as Non-Patent Document 2). Non-Patent Document 2 proposes an approach of reducing a size of data which is to be encoded by performing prediction between different color components by employing a correlation remaining between the color components. However, a degree of the correlation between the color components varies depending on types of video contents and color spaces, and the prediction might adversely affects in terms of encoding efficiency. Further, the signal processing is required over a plurality of color components so such a problem arises in that parallel processing efficiency deteriorates in, for example, executing a real time processing of video signals having an extremely high resolution as a digital cinema picture (having 4000×2000 pixels).
SUMMARY OF THE INVENTIONIn a high 4:2:0 profile encoding the 4:2:0 format of MPEG-4 advanced video coding (hereinafter, referred to as AVC) of the Non-Patent Document 1, in a macroblock area composed of luminance components of 16×16 pixels, corresponding chrominance components are 8×8 pixel blocks for both Cb and Cr. In motion compensation prediction of the high 4:2:0 profile, block size information which becomes a unit of motion compensation prediction only for the luminance components, reference image information used for prediction, and motion vector information of each block are multiplexed, and motion compensation prediction is carried out for chrominance components by the same information as that of the luminance components. The 4:2:0 format has characteristics in color space definition that almost all pieces of structure information (texture information) of an image is integrated into a luminance component, distortion visibility is lower for a chrominance component than for the luminance component, and a contribution to video reproducibility is small, and prediction and encoding of the high 4:2:0 profile are based on such characteristics of the 4:2:0 format. However, in the case of the 4:4:4 format, three color components equally hold texture information. The system for performing motion compensation prediction in inter prediction mode depending only on one component and based on reference image information and motion vector information is not necessarily an optimal method in the 4:4:4 format where the color components make equal contributions in representing a structure of an image signal.
As described by way of the above related art, it is an object of the present invention to provide an encoding device, a decoding device, an encoding method, and a decoding method that enhance optimality in a case of encoding moving image signals having no sample ratio distinction between color components such as a 4:4:4 format.
According to the present invention, in a case of conducting compression encoding by inputting digital moving image signals of the 4:4:4 format, there are prepared a first encoding process of encoding three color component signals of the input moving image signals in a common encoding mode and a second encoding process of encoding the three color component signals of the input moving image signals in respective independent encoding modes. The encoding process is executed by selecting any one of the first encoding process and the second encoding process, and the compression data contains an identification signal for specifying which process is selected.
Further, in a case of decoding the compression data of the digital moving image signals of the 4:4:4 format there are prepared a first decoding process of decoding the three color component signals in the common encoding mode, and a second decoding process of decoding the three color component signals in the respective independent encoding modes. The decoding process is executed by decoding the identification signal specifying whether the three color component signals are encoded from the compression data in the common encoding mode or in the respective independent encoding modes, and employing any one of the first decoding process and the second decoding process in accordance with the identification signal.
According to the present invention, in a case of performing encoding that uses multiple color spaces without being limited to the fixed color spaces of Y, Cb, Cr, etc., it is possible to flexibly select inter prediction mode information to be used for the respective color components, and to conduct an optimal encoding process even in a case where there are diverse definitions of the color spaces.
In the accompanying drawings:
A first embodiment will exemplify an encoding device that efficiently encodes video signals in a 4:4:4 format which is not restricted by a specified color space, and a decoding device that receives encoded bit streams generated by the encoding device decodes the image signals. The encoding device in the first embodiment receives the video signals including three color components such as RGB, XYZ and YCbCr, and outputs the bit streams by conducting compression encoding. As illustrated in
Further, a unit on which a plurality of macroblocks are aggregated is called a slice. The slice is a data unit on which the encoding and decoding can be independently executed in each slice. For example, when processing the video signals having a resolution equal to or higher than a high definition television (HDTV) in real time, the single picture is sliced into a plurality of slices, a period of computing time is reduced by encoding/decoding the respective slices in parallel, and the bit streams are transmitted via a line having a high error ratio. In this case, the slice is utilized for such an application that if a decoded image is disturbed because of a certain slice being destructed as affected by an error, a proper decoding process is restored from the next slice. Generally, the prediction using signal dependency on the neighboring slice cannot be applied at a boundary between the slices, and hence encoding performance declines as the number of slices increases. Such a characteristic, however, exists that flexibility of the parallel processing and the error resilience increase.
The video compression is carried out by applying the prediction/transform/quantization process on the macroblock basis, and therefore the encoded data of the macroblock multiplexed on the bit stream consists of roughly two types of information. One type of information is a category called side information different from the video signal itself such as parameters for a prediction mode, motion prediction information, and quantization, and this category of information is generically called a macroblock header. Another type of information is information of the video signal itself. According to the first embodiment of the present invention, the video signal to be encoded is compressed data of a prediction error signal acquired as a result of conducting the prediction/transform/quantization based on the macroblock header information. The video signal is expressed in a transform-coefficient-quantized format and therefore will be called coefficient-encoded data, hereinafter.
The first embodiment of the present invention will exemplify: an encoding device that encodes the three color components, selectively based on the common macroblock header or based on the independent macroblock header according to every color component; and a decoding device that executes a video decoding process by receiving the bit streams obtained as an output of the encoding device, and selecting, based on the identification information extracted from the bit stream by decoding the bit stream, whether the three color components have been encoded based on the common macroblock header or based on the independent macroblock header for each color component. The first embodiment of the present invention will particularly exemplify, with reference to specific drawings, configurations and operations of the encoding device and the decoding device that perform encoding and decoding by switching over on a sequence basis an operation of encoding and decoding the three color component signals based on the common macroblock header, and an operation of encoding and decoding those color signals based on the independent macroblock header according to every color component. The encoding device and the decoding device are thus constructed, thereby enabling the color components to be encoded by selecting a case of encoding the color components in accordance with the color space in which the input video signals are defined and with a statistical characteristic of the video signals by use of the common prediction parameters, and a case of encoding the color components by the independent prediction parameters. It is therefore possible to optimally encode the video signals in the 4:4:4 format.
Hereinafter, the process of encoding the three color component signals of one frame or one field by the common macroblock header is referred to as “common encoding process,” and a process of encoding the three color component signals of one frame or one field by the individual independent macroblock header is referred to as “independent encoding process.” Similarly, the process of decoding the image data from the bit streams to which the three color component signals of one frame or one field are encoded by the common macroblock header is referred to as “common decoding process,” and the process of decoding the image data from the bit streams to which the three color component signals of one frame or one field are encoded by the individual independent macroblock header is referred to as “independent decoding process.” In the common encoding process, the three color components of one frame or one field are collectively defined as one picture and are divided into the macroblocks each consisting of an aggregation of the three color components (
The identification information indicating whether the encoding based on the common encoding process is carried out or the encoding based on the independent encoding process is carried out will hereinafter be referred to as common encoding/independent encoding identification signal 1.
When the common encoding/independent encoding identification signal 1 indicates “common encoding process,” the access unit contains the encoded data for one picture. The picture at this time is the data representing the video signals for one frame or one field, which consist of the aggregations of the three color components as described above. The actual video encoded data is multiplexed on the bit stream on the slice basis of
Input video signals 3 are supplied to any one of the first picture encoding unit 5, a color component separating unit 6, and the second picture encoding units 7a to 7c via a switch (SW) 4. The switch 4 is activated by the common encoding/independent encoding identification signal 1 and supplies the input video signals 3 to a designated path.
The common encoding/independent encoding identification signal 1 is a signal that, when the input video signal takes the 4:4:4 format, is multiplexed on the sequence parameter set and selects the common encoding process and the independent encoding process on the sequence basis. The common encoding/independent encoding identification signal 1 is multiplexed on the sequence parameter set in a bit stream 11 as information that designates which process has been employed to generate the bit stream 11. This structure enables the decoding device, which receives the bit stream 11, to execute the common decoding process when the bit stream 11 is generated by use of the common encoding process by decoding the common encoding/independent encoding identification signal 1 in the sequence parameter set and checking the value thereof, and to execute the independent decoding process when the bit stream 11 is generated by use of the independent encoding process.
If the common encoding/independent encoding identification signal 1 indicates “common encoding process,” in the first picture encoding unit 5, the input video signals 3 are divided into the macroblocks in the form of aggregating the samples of the three color components as illustrated in
If the common encoding/independent encoding identification signal 1 designates “independent encoding process,” the input video signals 3 are separated into the signals of the color components of C0, C1, and C2 by the color component separating unit 6 and are supplied to the second picture encoding units 7a to 7c corresponding to the respective color components. In the second picture encoding units 7a to 7c, the signals separated according to every color component are divided into the macroblocks taking the format shown in
In a multiplexing unit 10, the common encoding/independent encoding identification signal 1 is added to the sequence parameter set and is multiplexed on the bit stream 11. In the multiplexing unit 10, any one of the bit stream 8 and the bit streams 9a to 9c, corresponding to the value of the common encoding/independent encoding identification signal 1, is selected, and the selected bit stream is multiplexed on the bit stream 11.
Further, though the details will be described later, quantization weighting coefficient information (12a to 12c) for quantization parameters used in a picture encoding process, especially a quantization/inverse quantization process, is provided for every three color components and input to the respective picture encoding units in which the quantization process matching a characteristic of every color component is executed. The quantization weighting coefficients 12a to 12c are also sent to the multiplexing unit 10 to be multiplexed on the sequence parameter set in order for the decoding device to use the same values of the coefficients 12a to 12c as those employed in the encoding process.
Further, an intra only encoding instruction signal 13 is input to the picture encoding units 5 and 7a to 7c, thereby controlling the encoding process. The intra only encoding instruction signal 13 is a signal for instructing whether the picture encoding unit executes the time-directional prediction process based on a motion compensation prediction. If the intra only encoding instruction signal 13 indicates “intra only encoding,” the encoding closed within the picture is carried out with respect to all of the pictures of the input video signals 3 without performing the time-directional prediction based on the motion compensation prediction. Further, at this time, an intra loop deblocking filter is simultaneously disabled (details will be described later) within the picture encoding unit. If the intra only encoding instruction signal 13 indicates “non intra only encoding,” an inter-encoding process using an intra picture/inter-picture correlation is executed with respect to the pictures of the input video signals 3 by also employing the time-directional prediction based on the motion compensation prediction. The multiplexing unit 10 adds the intra only encoding instruction signal 13 to the sequence parameter set and thus multiplexes the sequence parameter set with the bit stream 11. With this multiplexing, the decoding device receiving the bit stream 11 decodes the intra only encoding instruction signal 13 contained in the sequence parameter set and checks its value, whereby it can be recognized whether the bit stream 11 is intra only-encoded or not. Therefore, if the bit stream 11 is intra only-encoded, the intra loop deblocking filter process can be made unnecessary, and a computing amount of the decoding device can be reduced.
The intra encoding process of the AVC requires approximately a two-fold to ten-fold encoding amount as compared with the inter-encoding process, and hence the data encoded by “intra only encoding” has a data size that is considerably larger than the data encoded by “non intra only encoding.”
The conventional decoding device provides an upper limit to the data size enabling the decoding process to be executed, and reduces an operation speed and a required memory size in the device to the greatest possible degree, thereby scheming to stabilize the operation. Therefore, in the case of “intra only encoding,” there is a possibility that the data exceeding the set upper limit might be input, resulting in a problem of being disabled to determine whether the stable operation can be performed or not.
This being the case, a flag for showing whether the encoded data is less than or exceeds a predetermined amount, is provided in the sequence parameter set. A determining process is done based on the flag, and, if the encoded data is smaller than the predetermined amount, even the conventional decoding device is assumed to be capable of processing and therefore the decoding process is executed. If the encoded data exceeds the predetermined amount, it is assumed that the conventional decoding device may not execute the stable process, and consequently a process such as alarming can be taken.
Moreover, image size information 14 of the input video signal 3 is input to the picture encoding units 5 and 7a to 7c, and is configured to control the encoding process. The image size information 14 is information representing the number of intra picture macroblocks of the input video signal 3, which is controlled to set an upper limit value of the number of the macroblocks contained in the slice if a value of the information 14 is larger than a predetermined threshold value, and to prevent the slice from containing a lager number of macroblocks than the upper limit value. The image size information 14 is added to the sequence parameter set, and the sequence parameter set is multiplexed on the bit stream 11. With this multiplexing, if the picture size of the input video signal 3 is large (i.e., a spatial resolution is high), both of the encoding device and the decoding device can specify unit which can be a parallel processed and can assign tasks smoothly.
Hereinafter, the operations of the first and second picture encoding units will be explained in detail.
Outline of Operation of First Picture Encoding Unit(1) Case of Intra Only Encoding Instruction Signal 13 Indicating “Non Intra Only Encoding”
The prediction unit 15 selects a reference image from among motion compensation prediction reference image data stored in the memory 16, and executes a motion compensation prediction process on the macroblock basis. The memory 16 is stored with a plurality of pieces of reference image data each consisting of the three color components over a plurality of points of time of the most recent past or the past and the future. The prediction unit 15 performs the motion prediction by selecting an optimal reference image on the macroblock basis from among those reference images. As to the allocation of the reference image data in the memory 16, the data may be stored separately plane-sequentially according to every color component, and the samples of the respective color components may also be stored dot-sequentially. Seven types of block sizes subjected to the motion compensation prediction are provided. First, as illustrated in
The prediction unit 15 executes the motion compensation prediction process on the macroblock basis with respect to all or part of the block sizes/sub-block sizes of
Similarly, the prediction unit 15 executes the intra prediction. When the prediction unit 15 executes the intra prediction, intra prediction mode information is output to the signal 17.
Hereinafter, unless there is no particular distinction between the intra prediction and the motion compensation prediction, the signal 17 is called the prediction overhead information. Note that the reference image data for conducting the intra prediction involves using a local decoded image 23 before being subjected to the process of a deblocking filter 22 (though not illustrated, the local decoded image 23 is used as the reference image data for the intra prediction and is therefore temporarily stored in the prediction unit 15 and the like). An intra prediction mode common to the three color components is selected and applied to the common encoding process executed by the first picture encoding unit 5. As for the intra prediction, the prediction error amount only for the predetermined color component may be evaluated, and the prediction error amounts for all of the color components may also be comprehensively evaluated. Finally, the encoding mode determining unit 20 selects, by evaluating in terms of the prediction efficiency or the encoding efficiency, whether the macroblock type is set to the intra prediction or the inter prediction.
A transformation unit 24 transforms the prediction difference signal 19 and outputs the transformed signal as a transform coefficient to a quantization unit 25. In this case, a block size serving as a unit for conducting the transform may be selected from among a plurality of candidate sizes such as 4×4 and 8×8. In the case of making the transformation block size selectable, the block size selected when encoded is reflected in a value of the transformation block size designation flag 26, and the flag 26 is multiplexed on the bit stream 8. The quantization unit 25 quantizes the transform coefficient to be input on the basis of the quantization parameter 27 and the quantization weighting coefficients 12a to 12c, and outputs the quantized result as a quantized transform coefficient 28 to a variable length encoding unit 29 and a inverse quantization unit 30.
The process of the quantization unit 25 will be described. The transform coefficient transformed into a signal of a frequency domain from that of a spatial domain by the transformation unit 24 is separated into a low frequency domain where distortion is easy to be caught by eyes in terms of visual characteristics of a man and a high frequency domain where the distortion is hard to be detected. Thus, every frequency domain is weighted. Fine quantization is conducted in the low frequency domain, while coarse quantization is conducted in the high frequency domain, whereby the quantization process adapted to the visual characteristics of the man can be realized. The quantization weighting coefficients 12a to 12c are the weighting parameters given in every frequency domain. 16 weighting parameters are used for transforming the 4×4 block size, and 64 weighting parameters are used for transforming the 8×8 block size. As described above, the quantization weighting coefficients 12a to 12c are multiplexed on the sequence parameter set. In the case of executing the “common encoding process,” however, the same quantization weighting coefficient is used for the three color components. Accordingly, there is no necessity of multiplexing the three coefficients 12a, 12b, and 12c, and it is sufficient to multiplex only one coefficient. The quantization unit 25 executes the quantization process in which the transform coefficients of the three color components are weighted by use of the quantization weighting coefficients 12a to 12c, thereby obtaining the quantized transform coefficient 28.
The quantized transform coefficient 28 for the three color components is entropy-coded by the variable length encoding unit 29 using measures such as Huffman coding and arithmetic coding.
Further, the quantized transform coefficient 28 is restored to a local decoded prediction difference signal 32 via the inverse quantization unit 30 and a inverse transform unit 31. Then, in an adder 34, the signal 32 is added with a prediction image 33 generated based on the selected macroblock type/sub-macroblock type 21 and the prediction overhead information 17, thereby generating the local decoded image 23. The local decoded image 23 is, after being subjected to a block distortion removing process in the deblocking filter 22, stored in the memory 16 in order to be employed for the subsequent motion compensation prediction process.
The quantized transform coefficient 28, the macroblock type/sub-macroblock type 21, the prediction overhead information 17, and the quantization parameter 27, which are input to the variable length encoding unit 29, are arranged and shaped according to a predetermined syntax of the macroblock encoded data, and are packetized (also called NAL unitization in the AVC) on the unit of the slice data consisting of one macroblock or the aggregation of the plurality of macroblocks in the format shown in
(2) Case of Intra Only Encoding Instruction Signal 13 Indicating “Intra Only Encoding”
The prediction unit 15 executes only the intra prediction process described in the item (1). When the intra prediction is executed, the intra prediction mode information is output to the prediction overhead information 17. Note that the reference image data for conducting the intra prediction involves using the local decoded image 23 before being subjected to the process of the deblocking filter 22 (though not illustrated, the local decoded image 23 is used as the reference image data for the intra prediction and is therefore temporarily stored in the prediction unit 15 and the like). The intra prediction mode common to the three color components is selected and applied to the common encoding process executed by the first picture encoding unit 5. The encoding mode determining unit 20 selects the intra prediction mode by evaluating in terms of the prediction efficiency or the encoding efficiency.
The encoding mode determining unit 20 outputs the selected prediction difference signal 19 to the transformation unit 24. The transformation unit 24 transforms the prediction difference signal 19 to be input and outputs the transformed signal as a transform coefficient to the quantization unit 25. In this case, the block size serving as the unit for conducting the transform may be selected from among the plurality of candidate sizes such as 4×4 and 8×8. The AVC is configured so that a prediction target block of the intra prediction mode is adjusted to the transformation block size. In the case of making the transformation block size selectable, the block size selected when encoded is reflected in the value of the transformation block size designation flag 26, and the flag 26 is multiplexed on the bit stream 8. The quantization unit 25 quantizes the transform coefficient to be input on the basis of the quantization parameter 27 and the quantization weighting coefficients 12a to 12c, and outputs the quantized result as the quantized transform coefficient 28 to the variable length encoding unit 29. The example of the process is as described above.
The quantized transform coefficient 28 for the three color components is entropy-coded by the variable length encoding unit 29 using the measures such as Huffman coding and arithmetic coding.
Further, the quantized transform coefficient 28 is restored to the local decoded prediction difference signal 32 via the inverse quantization unit 30 and the inverse transform unit 31. Then, in the adder 34, the signal 32 is added with the prediction image 33 generated based on the prediction overhead information 17, thereby generating the local decoded image 23. If the intra only encoding instruction information 13 indicates “intra only encoding,” the motion compensation prediction is not executed, and hence the deblocking filter 22 executes neither the process nor the writing of the data as the reference image to the memory 16. With this structure, access to the memory and the arithmetic operation needed for the process of the deblocking filter can be reduced.
The quantized transform coefficient 28, the macroblock type/sub-macroblock type 21 (fixed to the intra mode), the prediction overhead information 17, and the quantization parameter 27, which are input to the variable length encoding unit 29, are arranged and shaped according to the predetermined syntax of the macroblock encoded data, and are packetized (also called the NAL unitization in the AVC) on the unit of the slice data consisting of one macroblock or the aggregation of the plurality of macroblocks in the format shown in
Note that the number of the macroblocks included in the slice is restricted not by the value of the intra only encoding instruction information 13 but by the image size information 14. The image size information 14 is input to the variable length encoding unit 29. The variable length encoding unit 29 sets, based on the image size information 14, an upper limit value of the number of the macroblocks included in the slice. The variable length encoding unit 29 counts the number of the encoded macroblocks in advance, and, when the number of the macroblocks included in the slice reaches the upper limit value, closes the packet of the slice data. Subsequent macroblocks are packetized as new slice data.
Moreover, the first picture encoding unit 5 according to the first embodiment of the present invention does not provide the color component identification flag 2 in the slice data because of its being recognizable from the common encoding/independent encoding identification signal 1 that all pieces of the slice data in the sequence can be defined as C0, C1, and C2 aggregated slices (i.e., the slices each consisting of the aggregation of the three color component information).
Outline of Operation of Second Picture Encoding Unit(3) Case of Intra Only Encoding Instruction Signal 13 Indicating “Non Intra Only Encoding”
A prediction unit 115 selects a reference image from among motion compensation prediction reference image data stored in a memory 116, and executes a motion compensation prediction process on the macroblock basis. The memory 116 can be stored with a plurality of pieces of reference image data each consisting of the single color component over a plurality of points of time such as the most recent past or the past and the future. The prediction unit 115 performs the motion prediction by selecting an optimal reference image on the macroblock basis from among those reference images. Note that each of the second picture encoding units 7a to 7c can be configured so as to employ only the reference image data for each target color component and not to access the reference image data of other color components. Hence, the memory 116 may take not the configuration of providing the memories for the three color components, respectively, but a configuration of aggregating the memories into one memory. Further, in the sequence where the second picture encoding units 7a to 7c execute the encoding process, the first picture encoding unit 5 does not operate, and therefore the memory 116 is configured to be shared with the memory 16. Seven types of block sizes subjected to the motion compensation prediction are provided. First, as illustrated in
The prediction unit 115 executes the motion compensation prediction process on the macroblock basis with respect to all or part of the block sizes/sub-block sizes of
Similarly, the prediction unit 115 also executes the intra prediction. When the intra prediction is executed, intra prediction mode information is output to the signal 117.
The intra prediction mode in the respective color components of the input video signals 3 is selected and applied individually for the respective color components. Note that the reference image data for conducting the intra prediction involves using a local decoded image 123 before being subjected to the process of the deblocking filter 22 (though not illustrated, the local decoded image 123 is used as the reference image data for the intra prediction and is therefore temporarily stored in the prediction unit 115). As to the intra prediction, the prediction error amount with respect to the input video signal 3a serving as the encoding processing target is evaluated. Finally, the encoding mode determining unit 120 selects, by evaluating in terms of the prediction efficiency or the encoding efficiency, whether the macroblock type is set to the intra prediction or the inter prediction.
A transformation unit 124 transforms the prediction difference signal 119 and outputs the transformed signal as a transform coefficient to a quantization unit 125. In this case, a block size serving as a unit for conducting the transform may be selected from among 4×4 and 8×8. In the AVC, a prediction target block in the intra prediction mode is configured to be adjusted to the transformation block size. In the case of making the transformation block size selectable, the block size selected when encoded is reflected in a value of a transformation block size designation flag 126, and the flag 126 is multiplexed on the bit stream 9a. The quantization unit 125 quantizes the transform coefficient to be input on the basis of a quantization parameter 127 and the quantization weighting coefficient 12a, 12b, or 12c, and outputs the quantized result as a quantized transform coefficient 128 to a variable length encoding unit 129.
Next, the process of the quantization unit 125 will be described. The transform coefficient transformed into a signal of the frequency domain from that of the spatial domain by the transformation unit 124 is separated into the low frequency domain where the distortion is easy to be caught by eyes in terms of the visual characteristics of the man and the high frequency domain where the distortion is hard to be detected. Therefore, every frequency domain is weighted. The fine quantization is conducted in the low frequency domain, while the rough quantization is conducted in the high frequency domain, whereby the quantization process adapted to the visual characteristics of the man can be realized. Each of the quantization weighting coefficients 12a, 12b, 12c is the weighting parameter given in every frequency domain. 16 weighting parameters are used for transforming the 4×4 block size, and 64 weighting parameters are used for transforming the 8×8 block size. As described above, the quantization weighting coefficients 12a, 12b, 12c are multiplexed on the sequence parameter set. In the case of executing the “independent encoding process,” however, the quantization weighting coefficients different among the three color components can be used. Accordingly, all of the three coefficients 12a, 12b, and 12c may be multiplexed, and, in the case of using the same value, only one coefficient may also be multiplexed together with information indicating this purpose. The quantization unit 125 executes the weighted quantization process on the transform coefficients of the three color components by using each of the quantization weighting coefficient 12a or 12b or 12c, thereby obtaining the quantized transform coefficient 128. The quantized transform coefficient 128 is entropy-coded by a variable length encoding unit 129 using measures such as Huffman coding and arithmetic coding.
Further, the quantized transform coefficient 128 is restored to a local decoded prediction difference signal 132 via a inverse quantization unit 130 and a inverse transform unit 131. Then, an adder 134 adds the local decoded prediction difference signal 132 to the prediction image 133 generated based on the selected macroblock type/sub-macroblock type 121 and the prediction overhead information 117, thereby generating a local decoded image 123. The local decoded image 123 is stored, after being subjected to the block distortion removing process in a deblocking filter 122, in the memory 116 in order to be employed for the subsequent motion compensation prediction process. The quantized transform coefficient 128, the macroblock type/sub-macroblock type 121, the prediction overhead information 117 and the quantization parameter 127, which are input to the variable length encoding unit 129, are arranged and shaped according to the predetermined syntax of the macroblock encoded data, and are packetized (also called NAL unitization in the AVC) on the unit of the slice data consisting of one macroblock or the aggregation of the plurality of macroblocks in the format shown in
(4) Case of Intra Only Encoding Instruction Signal 13 Indicating “Intra Only Encoding”
The prediction unit 115 executes only the intra prediction process described in the item (3). When executing the intra prediction, the intra prediction mode information is output to the prediction overhead information 117. Note that the reference image data for conducting the intra prediction involves using the local decoded image 123 before being subjected to the process of the deblocking filter 122 (though not illustrated, the local decoded image 123 is used as the reference image data for the intra prediction and is therefore temporarily stored in the prediction unit 115). The intra prediction in the AVC is as described above and executed with respect to the input video signal 3a. Therefore, the intra prediction mode in the respective color components of the input video signals 3 is selected and applied individually for the respective color components. The encoding mode determining unit 120 selects the intra prediction mode by evaluating in terms of the prediction efficiency or the encoding efficiency.
The encoding mode determining unit 120 outputs the selected prediction difference signal 119 to the transformation unit 124. The transformation unit 124 transforms the received prediction difference signal 119 and outputs the transformed signal as a transform coefficient to the quantization unit 125. In this case, the block size serving as the unit for conducting the transform may be selected from among the plurality of candidate sizes such as 4×4 and 8×8. The AVC is configured so that the prediction target block in the intra prediction mode is adjusted to the transformation block size. In the case of making the transformation block size selectable, the block size selected when encoded is reflected in a value of the transformation block size designation flag 126, and the flag 126 is multiplexed on the bit stream 9a. The quantization unit 125 quantizes the transform coefficient to be input on the basis of the quantization parameter 127 and the quantization weighting coefficient 12a, and outputs the quantized result as a quantized transform coefficient 128 to the variable length encoding unit 129. The example of the process is given as described above.
The quantized transform coefficient 128 is entropy-coded by a variable length encoding unit 129 using measures such as Huffman coding and arithmetic coding.
The quantized transform coefficient 128 is restored to the local decoded prediction difference signal 132 via the inverse quantization unit 130 and the inverse transform unit 131. Then, the adder 134 adds the signal 132 to the prediction image 133 generated based on the prediction overhead information 117, thereby generating the local decoded image 123. If the intra only encoding instruction information 113 indicates “intra only encoding,” the motion compensation prediction is not executed, and hence the deblocking filter 122 executes neither the process nor the write of the data as the reference image to the memory 116. With this configuration, the memory access and the arithmetic operation needed for the process of the deblocking filter can be reduced.
The quantized transform coefficient 128, the macroblock type/sub-macroblock type 121 (fixed to the intra mode), the prediction overhead information 117 and the quantization parameter 127, which are input to the variable length encoding unit 129, are arranged and shaped according to the predetermined syntax of the macroblock encoded data, and are packetized (also called the NAL unitization in the AVC) on the unit of the slice data consisting of one macroblock or the aggregation of the plurality of macroblocks in the format shown in
The second picture encoding units 7a to 7c according to the first embodiment encode all pieces of slice data in the sequence with the single color component slice (i.e., the C0 slice or the C1 slice or the C2 slice) through the common encoding/independent encoding identification signal 1. Hence, the color component identification flag 2 is invariably multiplexed on the head of the slice data, whereby the decoding device can recognize which slice corresponds to which picture data in the access unit. For example, the second picture encoding unit 7a sets “0” as the value of the color component identification flag 2, the second picture encoding unit 7b sets “1” as the value of the color component identification flag 2, and the second picture encoding unit 7c sets “2” as the value of the color component identification flag 2, and each of the flag values is attached to the head of the slice data. Accordingly, even when serially multiplexing the bit streams 9a to 9c on the bit stream 11, the decoding device can readily recognize which slice therein corresponds which encoded data of the C0 or C1 or C2 component. In other words, the second picture encoding units 7a to 7c can transmit the bit stream output any time when the data for one slice is accumulated without accumulating the respective bit stream outputs for one picture.
Note that the number of the macroblocks included in the slice is restricted not by the value of the intra only encoding instruction information 13 but by the image size information 14. The image size information 14 is input to the variable length encoding unit 129. The variable length encoding unit 129 sets, based on the image size information 14, an upper limit value of the number of the macroblocks included in the slice. The variable length encoding unit 129 previously counts the number of the encoded macroblocks, and, just when the number of the macroblocks included in the slice reaches the upper limit value, closes the packet of the slice data. Subsequent macroblocks are packetized as new slice data. It should be noted that the image size information 14 has the same value with respect to the C0, C1, C2 components in the case of the 4:4:4 format, and it may therefore be enough to multiplex only one piece of data in the sequence parameter set.
Further, the first picture encoding unit 5 and the second picture encoding units 7a to 7c are different in terms of whether to treat the macroblock header information as the information common to the three color components or as the information of the single color component, and the bit stream structure of the slice data. Accordingly, the transformation unit 24, the inverse transform unit 31, the quantization unit 25, the inverse quantization unit 30 and the deblocking filter 22 of
The bit stream 11 is divided on a NAL unit basis by a higher-order header analyzing unit 300. Higher-order header information such as the sequence parameter set and the picture parameter set is decoded and stored in a higher-order header memory 305 to which the first picture decoding unit 302, the color component determining unit 303 and the second picture decoding units 304 can refer. The common encoding/independent encoding identification signal 1, the quantization weighting coefficients 12a to 12c, the intra only encoding instruction information 13 and the image size information 14, which are multiplexed on the sequence basis, are retained as part of the sequence parameter set in the higher-order header memory 305.
The decoded common encoding/independent encoding identification signal 1 is supplied to a switch (SW) 301. The switch 301, if the common encoding/independent encoding identification signal 1 indicates “being subjected to the common encoding process,” supplies all of the slice NAL units in the sequence as the bit stream 8 to the first picture decoding unit 302. The switch 301, if the common encoding/independent encoding identification signal 1 indicates “being subjected to the independent encoding process,” supplies all of the slice NAL units in the sequence to the color component determining unit 303. Detailed operations of the first and second picture decoding units will be described later.
The color component determining unit 303 analyzes a value of the color component identification flag 2 shown in
A variable length decoding unit 310 receives the bit stream 8, decodes the bit stream 8 according to a predetermined rule (syntax) and extracts, from the bit stream 8, the quantized transform coefficient 28 for the three color components and the macroblock header information (the macroblock type/sub-macroblock type 21, the prediction overhead information 17, the transformation block size designation flag 26 and the quantization parameter 27) used in common to the three color components.
Further, the quantized transform coefficient 28 is input together with the quantization parameter 27 to the inverse quantization unit 30 that executes the same process as the first picture encoding unit 5, thereby performing the inverse quantization process is performed. In this case, the quantization weighting coefficients 12a to 12c used for the respective color components are employed by referring to the higher-order header memory 305. Note that if the three quantization weighting coefficients 12a to 12c take the same value, the decoder is not necessarily required to internally have the coefficients as three pieces of data, and one piece of data can be employed in common. Subsequently, the output thereof is input to the inverse transform unit 31 that executes the same process as the first picture encoding unit 5, and the output is restored to the local decoded prediction difference signal 32 (if the transformation block size designation flag 26 exists in the bit stream 8, this flag 26 is referred to in the inverse quantization process and in the inverse transform process). On the other hand, the prediction unit 311, referring to the prediction overhead information 17 in the prediction unit 15 of the first picture encoding unit 5, includes only the process of generating the predicted image 33, and the macroblock type/sub-macroblock type 21 and the prediction overhead information 17 are input to the prediction unit 311, thereby obtaining the predicted image 33 for the three color components.
If the macroblock type indicates that the macroblock type is the intra prediction, the predicted image 33 for the three color components is obtained from the prediction overhead information 17 according to the intra prediction mode information. If the macroblock type indicates that the macroblock type is the inter prediction, the predicted image 33 for the three color components is obtained from the prediction overhead information 17 according to the motion vector and the reference image index. The adder 34 adds the local decoded prediction difference signal 32 to the predicted image 33, thereby acquiring a temporary decoded image 323 for the three color components. The temporary decoded image 323 is used for the motion compensation prediction of the macroblock, and is therefore, after executing the block distortion removing process on the temporary decoded image samples for the three color components by use of the deblocking filter 22 that executes the same process as the first picture encoding unit 5, output and stored as a decoded image 313 in a memory 312. The memory 312 stores a plurality of sets of reference image data each consisting of the three color components over a plurality of points of time. The prediction unit 311 generates the predicted image by selecting the reference image indicated by the reference image index extracted out of the bit stream 8 on the macroblock basis from the reference image data. As to the arrangement of the reference image data in the memory 312, these pieces of data may be stored separately and plane-sequentially for every color component, and the samples (pixels) of the respective color components may also be stored dot-sequentially. The decoded image 313 is defined as a color video frame containing the three color components.
Further, the first picture decoding unit 302 can be configured as follows. If the intra only encoding instruction information 13 stored in the higher-order header memory 305 indicates “intra only encoding,” the reference image becomes unnecessary because the motion compensation prediction process is not needed. So, the process performed in the deblocking filter 22 is skipped, and writing the reference image to the memory 312 is not performed. This configuration enables the reduction in the memory access and the arithmetic operation required for the process of the deblocking filtering. Even in the case of the “intra only encoding,” however, the deblocking filtering or similar post-processing filtering can be carried out as the post-processing for displaying the decoded image.
Outline of Operation of Second Picture Decoding UnitA variable length decoding unit 410 receives the bit stream 9, decodes the bit stream 9 according to a predetermined rule (syntax), and extracts the quantized transform coefficient 128 for the single color component and the macroblock header information applied to the single color component (the macroblock type/sub-macroblock type 121, the prediction overhead information 117, the transformation block size designation flag 126 and the quantization parameter 127). The quantized transform coefficient 128 is input together with the quantization parameter 127 to the inverse quantization unit 130 that executes the same process as the second picture encoding unit 5, thereby performing the inverse quantization process. As the quantization weighting coefficient employed in this case, based on the color component identification flag 2 decoded by the variable length decoding unit 410, one quantization weighting coefficient corresponding to the color component concerned is selected from the quantization weighting coefficients 12a to 12c in the higher-order header memory 305, and the selected quantization weighting coefficient is referred to. Subsequently, the output of the inverse quantization unit 130 is input to the inverse transform unit 131 that executes the same process as the second picture encoding unit 7, and is restored to the local decoded prediction difference signal 132 (if the transformation block size designation flag 126 exists in the bit stream 9, this flag 126 is referred to in the inverse quantization process and a reverse orthogonal transform process).
On the other hand, a prediction unit 411 includes only the process of generating the predicted image 133, referring to the prediction overhead information 117 in the prediction unit 115 of the second picture encoding unit 7, and receives the macroblock type/sub-macroblock type 121 and the prediction overhead information 117, thereby obtaining the predicted image 133 for the single color component. If the macroblock type indicates the intra prediction, the predicted image 133 for the single color component is obtained from the prediction overhead information 117 according to the intra prediction mode information. If the macroblock type indicates that macroblock type is the inter prediction, the predicted image 133 for the single color component is obtained from the prediction overhead information 117 according to the motion vector and the reference image index. The adder 134 adds the local decoded prediction difference signal 132 to the predicted image 133, thereby acquiring a temporary decoded image 423 for the single color component. The temporary decoded image 423 is used for the subsequent motion compensation prediction of the macroblock. Therefore, after executing the block distortion removing process on the temporary decoded image samples for the single color component by use of the deblocking filter 122 that executes the same process as the second picture encoding unit 7, the temporary decoded image 423 is output as a decoded image 413 to be stored in a memory 412. The decoded image 413 includes only the samples of the single color component, and is, as illustrated in
Further, the second picture decoding unit 304 can be configured as follows. If the intra only encoding instruction information 113 stored in the higher-order header memory 305 indicates that intra only encoding instruction information 113 is “intra only encoding,” the reference image becomes unnecessary because the motion compensation prediction process is not needed. So the process performed in the deblocking filter 122 is skipped, and writing the reference image to the memory 412 is not performed. This configuration enables the reduction in the memory access and the arithmetic operation required for the process of the deblocking filtering. Even in the case of the “intra only encoding,” however, the deblocking filtering or similar post-processing filtering can be carried out as the post-processing for displaying the decoded image.
As apparent from the above description, the first picture decoding unit 302 and the second picture decoding unit 304 are different in terms of whether to treat the macroblock header information as the information common to the three color components or as the information of the single color component, and the bit stream structure of the slice data. Hence, the basic decoding process blocks such as the prediction unit, the inverse transform unit and the inverse quantization unit of
The first picture decoding unit and the second picture decoding unit in the first embodiment have been described such that the decoding units receive the bit stream 11 output by the encoding device. However, the bit stream input to the first picture decoding unit and the second picture decoding unit are not limited to the bit stream output by the encoding device, and bit streams read from storage mediums such as a hard disc and a DVD, and bit streams read from a server and transmitted via a network may be input.
Note that the encoding device and the decoding device according to the above embodiment, in the case of the independent encoding process, as shown in
-
- When encoded, in the macroblocks positioned at the boundaries between the respective color components, the motion vector search does not employ the neighboring pixels of other color components, and an off-plane search is conducted so as to extend edge point pixels of the self-color component in the same way as the process for the plane boundary. When decoded, in the macroblocks positioned at the boundaries between the color components, if the motion vector deviates from the image area of the self-color component (if the off-plane search is conducted), instead of employing the pixel signals of other colors, the predicted image is generated by extending the edge point pixels of the self-color component as deemed to be a plane boundary.
- The deblocking filtering process is not performed between the blocks positioned at the boundaries between the respective color components.
- In the case of using a learning-oriented arithmetic coding for the variable length encoding/variable length decoding processes in the encoding/decoding processes of the macroblocks of the color components, a probability model is provided individually for every color component, and a learning process is independently executed for every color component.
The independence of the signal of each color component is acquired by applying these conditions, and, the first, second and third picture encoding/decoding units can independently execute the processes, respectively.
Further, restrictions are imposed so that a slice is inhibited from being defined across the boundaries of the respective color components, one slice is prevented from containing the encoded data of the plurality of different color components, and the head macroblock data of each color component invariably becomes the head macroblock of the slice data.
Still further, a configuration for specifying which slice data belongs to which color component may involve explicitly specifying the color component to which the slice belongs by defining the color component identification flag “color_channel_idc” and attaching the flag to the head field of the slice data. Another configuration may involve using not “color_channel_idc” but the head macroblock address of each slice data and the image size information 14, and recognizing which slice data belongs to which color component. For example, when a horizontal pixel count W=1920 and a vertical pixel count V=1080, “0”, “8160” and “16320” are given as the head macroblock addresses of the C0, C1, and C2 components, so, the macroblocks having the macroblock addresses “0-8159” are allocated to the C0 component, the macroblocks having the addresses “8160-16319” are allocated to the C1 component, and the macroblocks having the addresses “16320-24479” are allocated to the C2 component.
With the configurations, the picture/access unit structure for the common encoding process/independent encoding process can be made common, thereby enhancing the efficiency of the random access and the editing operation.
Claims
1. An image encoding device for generating bit streams by subjecting a color image in a 4:4:4 format to compression encoding, wherein:
- the image encoding device multiplexes, on the bit streams, identification information and quantization matrix information, the identification information indicating whether or not signals of respective color components are independently encoded, the quantization matrix information being used for subjecting the respective color components to an inverse quantization process; and
- in a case where the identification information indicates that the signals of respective color components are independently encoded, the image encoding device multiplexes, on a slice header, color component identification information for identifying which of the color components the encoded data included in the slice corresponds to, and identifies, based on the color component identification information, a quantization matrix to be used in an encoding process of the slice.
2. An image encoding device for performing compression encoding based on an input of digital moving image signals in a 4:4:4 format, comprising:
- a first encoding unit for subjecting three color component signals of the input digital moving image signals, to an encoding process in a common encoding mode and performing a quantization process by using a common quantization matrix; and
- a second decoding unit for subjecting the three color component signals of the input digital moving image signals, respectively, to an encoding process in independent encoding modes and performing a quantization process by using independent quantization matrices, wherein:
- the image encoding device performs the encoding process by selecting one of the first encoding unit and the second encoding unit, and sets an identification signal in the compressed data, the identification signal indicating which one of the first encoding unit and the second encoding unit is selected; and
- in a case where the second encoding unit is selected, the image encoding device sets a color component identification flag in the compressed data, the color component identification flag indicating which of the three color component signals the color component signal corresponds to.
3. An image encoding device for performing compression encoding based on an input of digital moving image signals in a 4:4:4 format, comprising:
- a first encoding unit for subjecting three color component signals of the input digital moving image signals, to an encoding process in a common encoding mode and performing a quantization process by using a common quantization matrix; and
- a second encoding unit for subjecting the three color component signals of the input digital moving image signals, respectively, to an encoding process in independent encoding modes and performing a quantization process by using independent quantization matrices, wherein:
- the image encoding device performs the encoding process by selecting one of the first encoding unit and the second encoding unit, and sets an identification signal in the compressed data, the identification signal indicating which one of the first encoding unit and the second encoding unit is selected; and
- in a case where the second encoding unit is selected, the image encoding device sets an color component identification flag in the compressed data, the color component identification flag indicating which of the three color component signals the color component signal corresponds to, and makes motion compensation prediction for the three color component signals, respectively, by using independent reference images.
4. An image encoding method for generating bit streams by subjecting a color image in a 4:4:4 format to compression encoding, wherein:
- identification information for indicating whether or not signals of respective color components are independently encoded and quantization matrix information being used for subjecting the respective color components to an inverse quantization process are multiplexed on the bit streams; and
- in a case where the identification information indicates that the signals of respective color components are independently encoded, color component identification information for identifying which of the color components the encoded data included in a slice corresponds to is multiplexed on a slice header of the slice, and a quantization matrix to be used in an encoding process of the slice is specified based on the color component identification information.
Type: Application
Filed: Oct 29, 2007
Publication Date: Jul 17, 2008
Applicant: MITSUBISHI ELECTRIC CORPORATION (Tokyo)
Inventors: Yoshihisa YAMADA (Tokyo), Shunichi Sekiguchi (Tokyo), Yoshimi Moriya (Tokyo), Kazuo Sugimoto (Tokyo), Yuichi Idehara (Tokyo), Kohtaro Asai (Tokyo), Tokumichi Murakami (Tokyo)
Application Number: 11/926,848
International Classification: H04N 11/02 (20060101); H04N 7/26 (20060101); H04N 7/46 (20060101);