WO2011013192A1 - 画像符号化方法および画像復号方法 - Google Patents

画像符号化方法および画像復号方法 Download PDF

Info

Publication number
WO2011013192A1
WO2011013192A1 PCT/JP2009/063369 JP2009063369W WO2011013192A1 WO 2011013192 A1 WO2011013192 A1 WO 2011013192A1 JP 2009063369 W JP2009063369 W JP 2009063369W WO 2011013192 A1 WO2011013192 A1 WO 2011013192A1
Authority
WO
WIPO (PCT)
Prior art keywords
variable length
encoding
decoding
coefficient
image
Prior art date
Application number
PCT/JP2009/063369
Other languages
English (en)
French (fr)
Inventor
太一郎 塩寺
古藤 晋一郎
Original Assignee
株式会社東芝
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社東芝 filed Critical 株式会社東芝
Priority to PCT/JP2009/063369 priority Critical patent/WO2011013192A1/ja
Priority to JP2011524554A priority patent/JP5492206B2/ja
Publication of WO2011013192A1 publication Critical patent/WO2011013192A1/ja
Priority to US13/358,691 priority patent/US8867614B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/18Methods 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 set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • the present invention relates to image coding.
  • a compression encoding method for compressing and encoding moving image data is known.
  • prediction processing, conversion processing, and entropy encoding processing are generally performed in units of rectangular blocks of a predetermined size, for example, 8 pixels ⁇ 8 pixels.
  • AVC / H.264 encoded blocks are predicted, two-dimensional transform coefficients after DCT and quantization processing are zigzag scanned into one-dimensional data, and a variable-length coding table is adapted according to the number of DCT coefficients in adjacent blocks.
  • the conversion coefficient is encoded by switching between them.
  • Patent Document 1 one of a plurality of variable length coding tables that are scanned with respect to a frequency number of runs and levels is scanned according to a two-dimensional transform coefficient after transform and quantization and is optimized according to a quantization parameter.
  • the coding efficiency is improved by selecting and coding the coefficient.
  • an object of the present invention is to provide an image encoding method and an image decoding method capable of realizing higher encoding efficiency.
  • the present invention provides a transform / quantization step for obtaining a coefficient by performing orthogonal transform and quantization for each of a plurality of blocks in a target region of an input image, and a plurality of blocks in the target region.
  • a variable length encoding step for encoding a plurality of coefficient sequences having a common frequency component coefficient between the blocks using a plurality of variable length encoding schemes.
  • the variable length encoding step includes a plurality of variable length encoding steps. The long coding method is switched for each coefficient sequence.
  • the present invention uses a plurality of variable length decoding methods to encode encoded data of a plurality of coefficient sequences having coefficients of frequency components common to a plurality of decoding target blocks in a decoding target region of a decoding target image.
  • Variable length decoding to obtain a plurality of coefficient sequences; and a variable length decoding step for inversely quantizing and inversely transforming coefficients for each decoding target block among the plurality of coefficient sequences,
  • the variable length decoding step is characterized by switching the variable length decoding method for each coefficient sequence.
  • the present invention has an effect that higher encoding efficiency can be realized.
  • the figure which shows the other image coding apparatus of 1st Embodiment. The figure explaining orthogonal transformation.
  • the figure explaining orthogonal transformation. The figure which shows intra prediction.
  • the figure which shows intra prediction. The figure which shows intra prediction.
  • the figure which shows intra prediction. The figure which shows intra prediction.
  • the figure which shows intra prediction. The figure which shows the entropy encoding part of 1st Embodiment.
  • the figure which shows the coefficient encoding part of 1st Embodiment. The figure which shows grouping of a coefficient position.
  • the figure which shows a Golomb-Rice code The flowchart which shows the process of run length encoding.
  • FIG. 6 is a diagram of another method for generating a small pixel block.
  • FIG. 6 is a diagram of another method for generating a small pixel block.
  • the flowchart which shows the process of a coefficient encoding part.
  • the flowchart which shows the process which determines the encoding parameter k.
  • the figure which shows the coefficient decoding part of 4th Embodiment. The flowchart which shows the procedure which decodes a run length code.
  • FIG. 1A is a block diagram showing a configuration of an example of an image encoding device 1 applicable to the first embodiment of the present invention.
  • the image encoding device 1 includes an image encoding unit 100, an encoding control unit 130, and a buffer 109.
  • the image block 10 obtained by dividing the moving image data into a predetermined size is input to the image encoding unit 100.
  • the image encoding unit 100 divides the input image block 10 into small pixel blocks 11 having a predetermined size under the control of the encoding control unit 130. Based on the small pixel block 11, the image encoding unit 100 performs conversion processing, quantization processing, prediction encoding processing, and entropy encoding processing to generate encoded data 14.
  • the encoded data 14 is temporarily stored in the buffer 109 and is output from the image encoding device 1 in units of, for example, one frame.
  • Each process in the image encoding unit 100 is performed on each image signal component (for example, luminance component Y, color difference components U, V) of the moving image data.
  • an image encoding unit 100 includes a dividing unit 101, a subtracter 102, a transform and quantization unit 103, an entropy encoding unit 104, an inverse quantization and inverse transform unit 105, an adder 106, a memory 107, and a prediction unit. 108, which is controlled by the encoding control unit 130.
  • the encoding control unit 130 supplies the image encoding unit 100 with encoding control information 40 for controlling the overall encoding process by the image encoding device 1. Also, the encoding control unit 130 appropriately receives feedback information 41 output based on the result of the encoding process in the image encoding unit 100.
  • the encoding control information 40 includes mode information 31 and encoding method information 30 and the like.
  • the mode information 31 includes, for example, prediction mode information indicating a prediction mode to be described later, quantization information including parameters related to a quantization process such as a quantization parameter (QP), a quantization width (quantization step size), and a quantization matrix. Contains information necessary for decoding other than transform coefficients.
  • the feedback information 41 includes code amount information indicating the generated code amount in the image encoding unit 100.
  • the image encoding unit 100 is realized by hardware such as a circuit configured on an LSI (Large-Scale Integration) chip, for example.
  • the encoding control unit 130 may be realized by executing a program on a CPU (Central Processing Unit) connected to the LSI, or may be configured by hardware in the same manner as the image encoding unit 100. May be.
  • the image encoding unit 100 can also be realized by causing the computer and the like together with the encoding control unit 130 to execute an image encoding program on the CPU.
  • the input image block 10 is divided into block units of a predetermined size by the dividing unit 101 to form small pixel blocks 11.
  • the image block 10 is an area obtained by dividing one frame of image data or one frame of image data.
  • the image block 10 is a pixel block composed of n pixels ⁇ m pixels (n and m are natural numbers, respectively), and is composed of a pixel line composed of pixel data for one line or a pixel block composed of pixel data for a plurality of lines. Lines are also included in the concept of image blocks.
  • the small pixel block 11 is, for example, a pixel block composed of N pixels ⁇ M pixels (N and M are natural numbers, and N ⁇ n and M ⁇ m). In the image encoding unit 100, predictive encoding processing, conversion processing, and the like are performed using the small pixel block 11 as a unit.
  • the small pixel block 11 output from the dividing unit 101 is supplied to the subtractor 102.
  • the subtracter 102 subtracts a predicted image signal 19 output from the prediction unit 108 described later from the supplied small pixel block 11 to generate a prediction error signal 12.
  • the prediction error signal 12 is supplied to the transform and quantization unit 103.
  • the conversion and quantization unit 103 first performs a predetermined conversion process on the supplied prediction error signal 12 to generate a conversion coefficient.
  • orthogonal transformation such as Hadamard transformation or DCT (discrete cosine transformation) is used as the transformation processing.
  • DCT discrete cosine transformation
  • the present invention is not limited to this, and the transform coefficient may be generated using a method such as wavelet transform or independent component analysis.
  • FIGS. 2A, 2B, and 2C An example of orthogonal transformation will be described with reference to FIGS. 2A, 2B, and 2C.
  • 2A shows an example of 4 ⁇ 1 conversion
  • FIG. 2B shows an example of 2 ⁇ 2 conversion
  • FIG. 2C shows an example of 4 ⁇ 4 conversion.
  • the dividing unit 101 In the 4 ⁇ 1 conversion, as illustrated in FIG. 2A, the dividing unit 101 generates a small pixel block 11 of 4 pixels ⁇ 1 pixel, and the prediction error signal 12 that is blocked by 4 pixels ⁇ 1 pixel is generated. Apply horizontal one-dimensional orthogonal transformation. The transform coefficient after the orthogonal transform is decomposed into spatial frequency components. In the example of FIG. 2A, the position indicated by the value “0” represents the DC component with the lowest spatial frequency, and the position with the larger value represents the higher spatial frequency component.
  • the division unit 101 In the 2 ⁇ 2 conversion, as illustrated in FIG. 2B, the division unit 101 generates a small pixel block 11 of 2 pixels ⁇ 2 pixels, and the prediction error signal 12 that is blocked by 2 pixels ⁇ 2 pixels is generated.
  • the value (x, y) indicates the position of the spatial frequency component in the vertical direction
  • the value y indicates the position of the spatial frequency component in the horizontal direction
  • the higher the numerical value, the higher the spatial frequency component In the example of FIG. 2B, the position indicated by the upper left value (0, 0) represents the DC component having the lowest spatial frequency
  • the position indicated by the lower right value (1, 1) represents the highest spatial frequency component. .
  • the value “0” indicating the position in the 2 ⁇ 2 conversion is set to “L” meaning Low
  • the value “1” is set to “H” indicating High
  • the respective components are sequentially arranged in the vertical direction and the horizontal direction.
  • a DC component having a value (0, 0) is expressed as an LL component
  • each AC component is appropriately described as an HL component, an LH component, and an HH component.
  • the dividing unit 101 In the 4 ⁇ 4 conversion, as illustrated in FIG. 2C, the dividing unit 101 generates a small pixel block 11 of 4 pixels ⁇ 4 pixels, and the prediction error signal 12 that is blocked by 4 pixels ⁇ 4 pixels is generated. Apply horizontal and vertical two-dimensional orthogonal transformation.
  • the value x and the value y indicate the position of the spatial frequency component in the vertical direction and the horizontal direction, respectively, and the higher the numerical value, the higher the spatial frequency component.
  • the value (0, 0) indicates the DC component position, and the value (3, 3) is the position with the highest spatial frequency component.
  • the transform and quantization unit 103 quantizes the transform coefficient generated as described above based on a quantization parameter QP set in the encoding control unit 130 described later, and a quantized transform coefficient is a quantized transform coefficient.
  • the conversion coefficient 13 is generated.
  • the quantized transform coefficient 13 is supplied to the entropy coding unit 104 and also supplied to the inverse quantization and inverse transform unit 105.
  • the inverse quantization and inverse transform unit 105 dequantizes the quantized transform coefficient 13 according to the quantization parameter QP set in the encoding control unit 130 to restore the quantized transform coefficient 13. Then, the restored quantized transform coefficient 13 is subjected to a transform opposite to the transform performed by the transform and quantization unit 103 to generate a restored prediction error signal 16 in which the original prediction error signal 12 is restored.
  • the restored prediction error signal 16 is supplied to the adder 106.
  • the adder 106 adds the restored prediction error signal 16 and the predicted image signal 19 output from the prediction unit 108 to generate a restored small pixel block signal 17 in which the original small pixel block 11 is restored.
  • the restored small pixel block signal 17 is stored in the memory 107, supplied to the prediction unit 108 as the reference pixel signal 18, and used for prediction of the small pixel block 11 to be encoded later.
  • the prediction unit 108 applies intra prediction to the small pixel block 11 output from the dividing unit 101.
  • 3A to 3E show specific examples of intra prediction.
  • 3A to 3E show five types of prediction modes with different prediction directions. That is, in intra prediction, among the reference pixel signals 18 stored in the memory 107, pixel signals that are spatially close to the prediction target pixel block (in this example, a pixel block made up of 2 pixels ⁇ 2 pixels). Is used to predict the pixel value of the pixel block.
  • the predicted image signal 19 is copied by copying the luminance value of the reference pixel signal 18 to the prediction target pixel block according to the prediction direction. Is generated.
  • the wrinkles marked with the characters “a” to “d” are pixels to be predicted (hereinafter referred to as prediction target pixels), and the characters “A” to “ A symbol with “G” indicates a pixel (hereinafter referred to as a reference pixel) based on the reference pixel signal 18.
  • FIG. 3A is an example in which prediction is performed in the horizontal direction. Specifically, the reference pixel “E” is copied to the prediction target pixels “a” and “b” arranged close to each other in the horizontal direction, and the reference pixel “F” is arranged close to the horizontal direction. ”And“ d ”.
  • FIG. 3B is an example in which prediction is performed in the vertical direction. Specifically, the reference pixel “A” is copied to the prediction target pixels “a” and “c” arranged close to each other in the vertical direction, and the reference pixel “B” is arranged adjacent to each other in the vertical direction. ”And“ d ”.
  • FIG. 3C is an example in which prediction is performed in an oblique direction connecting the upper left and lower right. Specifically, the reference pixel “E” is copied to the lower right prediction target pixel “c”, and the reference pixel “G” is copied to the lower right prediction target pixels “a” and “d”. Then, the reference pixel “A” is copied to the prediction target pixel “b” on the lower right.
  • FIG. 3D is an example in which prediction is performed in an oblique direction connecting the upper right and the lower left. Specifically, the reference pixel “B” is copied to the lower left prediction target pixel “a”, and the reference pixel “C” is copied to the lower left prediction target pixels “b” and “c”. Then, the reference pixel “D” is copied to the prediction target pixel “d” on the lower left.
  • FIG. 3E is an example in which prediction is performed using an average value of reference pixels adjacent to a pixel block to be predicted. Specifically, average values of luminance values of the reference pixels “A”, “B”, “E”, and “F” are obtained and copied to the prediction target pixels “a” to “d”, respectively.
  • the prediction image signal 19 predicted by the prediction unit 108 in this way is supplied to the subtractor 102 described above.
  • the prediction method in the prediction unit 108 is not limited to the above example.
  • flat prediction MED (Medium Edge Detection) prediction adopted in JPEG-LS (Joint Photographic Experts Group-LS), and CALIC (Context-based Adaptive Lossless Coding Image Coding) are used. May be.
  • the prediction value is set to “0” and no prediction is performed, or a fixed value such as a value “128” is used as the prediction value.
  • the predicted image signal 19 may be used.
  • H.264 Inter prediction adopted in H.264 / AVC may be applied.
  • a configuration in which the prediction unit 108 is removed from the above-described image encoding device 1 may be employed. In this case, prediction is not performed, and the image block 10 is directly input to the transform and quantization unit 103.
  • the prediction unit 108 is removed, other configurations related to prediction, that is, the subtracter 102, the inverse quantization and inverse transformation unit 105, the adder 106, and the memory 107 are not required.
  • the entropy encoding unit 104 entropy-encodes the quantized transform coefficient 13 supplied from the transform and quantization unit 103 based on the encoding parameter acquired from the encoding control unit 130 and outputs the encoded data 14 To do.
  • the entropy coding method methods such as isometric coding, Huffman coding, and arithmetic coding can be used.
  • the encoding parameters used by the entropy encoding unit 104 include encoding method information 30 included in the encoding control information 40, mode information 31 based on prediction mode information, quantization parameter information, and the like.
  • the encoding parameters include various parameters necessary for decoding, such as transform coefficients in the transform and quantization unit 103 and information related to quantization.
  • the encoded data 14 generated by the entropy encoding unit 104 is output from the image encoding unit 100 and temporarily stored in the buffer 109 through a multiplexing process (not shown).
  • the encoded data 14 stored in the buffer 109 is output as encoded data 14 toward the outside of the image encoding device 1, for example, according to the output timing managed by the encoding control unit 130.
  • the encoded data 14 output from the image encoding device 1 is stored in a storage medium such as a hard disk or a semiconductor memory, or transmitted via a transmission system such as a communication line.
  • FIG. 4 is a block diagram illustrating an exemplary configuration of the entropy encoding unit 104 applicable to the first embodiment.
  • the entropy encoding unit 104 includes a coefficient encoding unit 110, an encoding method encoding unit 111, and a mode encoding unit 112.
  • the quantized transform coefficient 13 output from the transform and quantization unit 103 is input to the coefficient encoding unit 110. Also, the encoding method information 30 is supplied to the coefficient encoding unit 110 and the encoding method encoding unit 111, respectively. Further, the mode information 31 is supplied to the mode encoding unit 112.
  • the encoding method information 30 is information for designating the encoding method of the quantized transform coefficient 13 in the coefficient encoding unit 110. More specifically, the encoding method information 30 indicates a variable length encoding method for each coefficient position, which will be described later, in a predetermined unit of an image, for example, a small pixel block unit, an input image signal unit, a frame unit, or a sequence unit. Further, the mode information 31 includes information other than transform coefficients that are required at the time of decoding. For example, the mode information 31 includes quantization parameter information indicating the quantization parameter QP used at the time of quantization in the transform and quantization unit 103 and position information indicating the position of the transform coefficient after orthogonal transform.
  • the position of the transform coefficient is the position of the transform coefficient obtained by orthogonal transformation when the direction of the spatial frequency component is taken as the coordinate axis and the spatial frequency is taken as the coordinate value. That is, the coefficient position corresponds to the spatial frequency component in the orthogonal transformation.
  • each coordinate axis in the horizontal direction and the vertical direction is divided into two, a low-frequency component (L) and a high-frequency component (H), and the position of each conversion coefficient is represented. . That is, in the example of FIG. 2B, the position of the conversion coefficient is expressed as coordinates (L, L), coordinates (H, L), coordinates (L, H), or coordinates (H, H).
  • the encoding method information 30 and the mode information 31 are supplied from outside the image encoding unit 100, respectively.
  • the encoding method information 30 and the mode information 31 are respectively generated by the encoding control unit 130, included in the encoding control information 40, supplied to the image encoding unit 100, and input to the entropy encoding unit 104.
  • the coefficient encoding unit 110 performs entropy encoding of the quantized transform coefficient 13 in accordance with the encoding method information 30 while switching the encoding method for each coefficient position by a predetermined unit of an image, for example, an image block 10 unit.
  • the encoding method encoding unit 111 encodes the encoding method information 30, and the mode encoding unit 112 encodes the mode information 31.
  • the encoding output of the encoding method encoding unit 111 and the encoding output of the mode encoding unit 112 are embedded in the encoded output of the coefficient encoding unit 110 to form encoded data 14, and an entropy code Is output from the conversion unit 104.
  • FIG. 5 is a block diagram showing an exemplary configuration of the coefficient encoding unit 110 according to the first embodiment.
  • the coefficient encoding unit 110 includes a coefficient position extraction unit 120, an encoding method determination unit 121, a switch unit 122, and a first variable length encoding unit 123 and a second variable length encoding unit 124.
  • the quantized transform coefficient 13 is input to the coefficient encoding unit 110 and supplied to the coefficient position extraction unit 120.
  • the coefficient position extraction unit 120 supplies the supplied quantized transform coefficient 13 to the input terminal 122A of the switch unit 122, extracts a coefficient position from the quantized transform coefficient 13, and coefficient position information 20 indicating the coefficient position. Is output. For example, by counting the quantized transform coefficient 13 for each small pixel block 11, the coefficient position of the quantized transform coefficient 13 in the small pixel block 11 can be known.
  • the output terminals 122B and 122C are switched by a switching signal 21 output from an encoding method determination unit 121 described later.
  • the first variable length coding unit 123 and the second variable length coding unit 124 are connected to the output terminals 122B and 122C, respectively. That is, the quantized transform coefficient 13 supplied to the input terminal 122A is selectively supplied to one of the first variable length coding unit 123 and the second variable length coding unit 124 according to the switching signal 21.
  • the coefficient position information 20 may indicate information in units of coefficient positions, or may indicate information in units of groups grouped according to coefficient positions.
  • 6A and 6B show examples of grouping coefficient positions. In the example of FIG. 6A and FIG. 6B, grouping is performed according to the coefficient position that integrates the horizontal and vertical components, that is, the spatial frequency.
  • FIG. 6A is an example in which coefficient positions are divided into three groups in 2 ⁇ 2 conversion.
  • group # 1 whose horizontal and vertical components are both low frequency components (L)
  • group # 2 whose one of the horizontal and vertical components is a low frequency component
  • which are horizontal and vertical components Are grouped into a group # 3 which is a high frequency component (H).
  • FIG. 6B is an example in which the coefficient positions are divided into 4 groups in the 4 ⁇ 4 conversion.
  • group # 1 in which the total value of the horizontal and vertical components is 0
  • group # 2 in which the total value is 1 or 2
  • the group is divided into four groups, that is, the group # 3 having the total value of 3 or 4, and the group # 4 having the total value of 5 or more.
  • the coefficient position information 20 is supplied to the encoding method determination unit 121.
  • Encoding method information 30 is also supplied to the encoding method determination unit 121.
  • the encoding method determination unit 121 outputs the switching signal 21 in units of coefficient positions or position groups based on the coefficient position information 20 and the encoding method information 30, and supplies the switching signal 21 to the switch unit 122.
  • the switch unit 122 is switched to the coefficient position or the position group unit based on the encoding method information 30.
  • the quantized transform coefficient 13 is supplied to the first variable length coding unit 123 or the second variable length coding unit 124 adaptively in coefficient position units or position group units.
  • the first variable length coding unit 123 applies one symbol unit coding that assigns a code to the quantized transform coefficient 13 one symbol at a time as the first variable length coding.
  • symbol unit coding As typical examples of such 1-symbol unit coding, Golomb-Rice coding, Huffman coding, and fixed-length coding are known.
  • FIG. 7 shows an example of Golomb-Rice code.
  • the Golomb-Rice code is a code obtained by concatenating a variable-length unary code string prefix and a fixed-length code string suffix.
  • FIG. 7 shows an encoded sequence when encoding a prediction residual according to the value of the code length k of the code sequence suffix.
  • Huffman coding When Huffman coding is used as the first variable length coding, information indicating a probability model for determining a code table of Huffman coding given in advance is passed to the decoding side as a coding parameter k.
  • the second variable length coding unit 124 as the second variable length coding, it is possible to collectively assign codes to a plurality of symbols at the same coefficient position with respect to the supplied quantized transform coefficient 13. Multi-symbol batch coding is applied. As typical examples of such multi-symbol batch coding, run-length code and skip coding are known.
  • Run-length encoding is a coding method in which a series of symbol groups is expressed by a value (value) of the data and a continuous number (run number run).
  • run-length encoding when the same symbols are continuous, it is possible to encode the continuous symbols collectively, and therefore high encoding efficiency can be expected in a flat image or the like.
  • run-length encoding the number of runs is counted (incremented) when a symbol is equal to a held state (state), and the symbol value (value) is encoded for a symbol other than the held state. .
  • Golomb-Rice coding As a coding method for coding symbols other than the held state state, Golomb-Rice coding, fixed-length coding, or the like can be used.
  • the run number run is encoded using Golomb-Rice encoding, Huffman encoding, or fixed-length encoding according to the number of small pixel blocks 11 in the image block 10.
  • FIG. 8 is a flowchart showing a processing procedure of an example of run-length encoding.
  • Each process in the flowchart illustrated in FIG. 8 is executed by the second variable length encoding unit 124.
  • initialization is performed by assigning 0 to each of the run number run and the state state representing the data state (step S301).
  • step S303 it is determined whether or not the encoding target symbol x is equal to the state state. If it is determined that the symbol x is equal to the state state (“YES” in step S303), the process proceeds to step S304, and the value of the run number run is incremented by one. Then, the process proceeds to step S307.
  • step S303 determines whether the encoding target symbol x is not equal to the state state (“NO” in step S303). If it is determined in step S303 that the encoding target symbol x is not equal to the state state (“NO” in step S303), the process proceeds to step S305. In step S305, the run number run and the symbol x are encoded. Thereafter, 0 is substituted for the run number run and the state state is updated with the symbol x (step S306), and the process proceeds to step S307.
  • step S307 it is determined whether or not the processing in steps S303 to S306 has been executed for all the encoding target symbols. If it is determined that the processing has not been executed for all the encoding target symbols, the encoding target is moved to the next symbol in step S302, and the processing returns to step S303.
  • step S307 if it is determined in step S307 that the process has been executed for all the encoding target symbols, the process proceeds to step S308.
  • step S308 if the run number run is greater than 0, the run number run is encoded. That is, when the process proceeds from step S304 to step S308 via step S307, the run number run is encoded. In this case, when the total number of symbols to be encoded MAX_NUM is known, a value obtained by decrementing the value of the run number run by 1 may be encoded. If the run number run is 0 in step S308, the series of processing is ended as it is.
  • the run number run is incremented by one.
  • the value of the state state may be fixed to 0 when the appearance frequency of the symbol having a value of 0 is high. This eliminates the need to encode the run number run when the symbol value is 0, thereby improving the encoding efficiency.
  • Skip coding is a coding method in which a series of symbol groups are divided into a plurality of groups, whether or not all symbols in the group are zero, and coding is performed based on the determination result.
  • FIG. 10 A specific example of skip encoding is shown in FIG.
  • the symbol positions are divided into four groups, and it is determined whether or not all symbols are 0 in each group.
  • the encoding by the first variable length encoding unit 123 cannot assign a code of less than 1 bit per symbol.
  • the second variable length encoding unit 124 symbol sequences in which the same symbol (especially 0) continues can be encoded together, and code assignment of less than 1 bit per symbol is possible. Become. For this reason, the second variable length encoding unit 124 can improve the encoding efficiency in a flat region of an image or a region where prediction is effective.
  • the image block 10 input to the image encoding device 1 is a block composed of two lines (see FIG. 11A). It is assumed that the image block 10 is divided by the dividing unit 101 into small pixel blocks 11, 11,... Having a size of 2 pixels ⁇ 2 pixels (see FIG. 11B).
  • the image block 10 is a target area of the encoding process in the encoding target frame.
  • Each of the small image blocks 11 present in the image block 10 is a target block of the encoding process.
  • the size of the small pixel block 11 corresponds to the size to which the coefficient encoding unit 110 applies orthogonal transform.
  • the orthogonal transformation is performed by the 2 ⁇ 2 transformation described with reference to FIG. 2B.
  • the size of the image block 10 is, for example, 8 pixels ⁇ 8 pixels (see FIG. 12A), and the size of the small pixel block 11 is, for example, 2 pixels ⁇ 2 pixels.
  • the pixel data of the image block 10 may be rearranged according to the size of the small pixel block 11 by zigzag scanning the inside of the image block 10 with the size of the small image block 11.
  • FIG. 13 shows coefficient blocks LL, HL, an image block 10 based on the above-described two lines of pixel data, and small pixel blocks 11, 11,... Obtained by dividing the image block 10 into blocks of 2 pixels ⁇ 2 pixels.
  • An example expressed using LH and HH is shown.
  • numerals 0, 1,... are numbers assigned for convenience in order to distinguish the small pixel block 11.
  • the value BLK indicates the number of small pixel blocks 11 in the image block 10.
  • the coefficient positions LL, HL, LH, and HH are described as coefficient positions [pos] as appropriate.
  • the value pos is one of the values LL, HL, LH, and HH.
  • the horizontal and vertical components are low frequency components, respectively, the quantized transform coefficient 13 corresponding to the position LL, Quantization transform coefficient 13 corresponding to position HL and position LH, each of which is composed of a low-frequency component, and one of vertical components, and quantization transform coefficient 13 corresponding to position HH, each of which is composed of a high-frequency component and a horizontal component And are generated respectively.
  • a surface in which the transform coefficients are arranged in accordance with the horizontal and vertical coefficient positions and the position of the small pixel block 11 on the image block 10 is referred to as a coefficient surface.
  • FIG. 14A to 14D show examples in which the quantized transform coefficients 13, 13,... On the coefficient surface illustrated in FIG. 13 are rearranged collectively in units of 10 image blocks for each coefficient position.
  • each of the small pixel blocks 11, 11,... Has 4 coefficient positions LL, HL, LH, and HH, respectively.
  • FIG. 14A is an example in which the coefficients of the position LL on the coefficient surface are collected.
  • FIG. 14B is an example in which the coefficients of the position HL on the coefficient surface are collected.
  • FIG. 14C is an example in which the coefficients of the position LH on the coefficient surface are collected.
  • FIG. 14A is an example in which the coefficients of the position LL on the coefficient surface are collected.
  • FIG. 14B is an example in which the coefficients of the position HL on the coefficient surface are collected.
  • FIG. 14C is an example in which the coefficients of the position LH on the coefficient surface are collected.
  • FIGS. 14A to 14D are summarized. That is, each of FIGS. 14A to 14D shows a coefficient sequence in which conversion coefficients are arranged for each frequency component. 14A to 14D, the same numbered coefficients indicate that they belong to the same small pixel block 11.
  • the first variable length coding unit 123 performs first variable length coding on the coefficient positions LL, HL, LH, and HH, that is, the coefficient sequence in which the transform coefficients are arranged for each frequency component.
  • the second variable length coding by the second variable length coding unit 124 is selectively applied.
  • the first variable length coding according to the present embodiment is a method in which a coefficient sequence is variable length coded for each coefficient.
  • the second variable length coding according to the present embodiment is a method for coding each partial data having a variable length of 1 bit or more in the coefficient sequence.
  • the value pos is values LL, HL, LH and HH indicating the coefficient positions LL, HL, LH and HH, respectively.
  • This flag CodingMethodFlag [pos] corresponds to the encoding method information 30 described above.
  • the flag CodingMethodFlag [pos] indicates the value TRUE
  • the first variable length coding is applied to the quantized transform coefficient 13 of the frequency component indicated by the value [pos].
  • the flag CodingMethodFlag [pos] indicates the value FALSE
  • the second variable length encoding is applied to the quantized transform coefficient 13 of the frequency component indicated by the value [pos].
  • the value of the flag CodingMethodFlag [pos] indicating either the first variable length coding or the second variable length coding is not limited to TRUE and FALSE described above, and may be 0 or 1, for example.
  • the encoding method determination unit 121 includes the coefficient position information 20 supplied from the coefficient position extraction unit 120, the encoding method information supplied from the encoding control unit 130, and the like. 30, the switch unit 122 is controlled. More specifically, if the flag CodingMethodFlag [pos] corresponding to the coefficient position [pos] indicated by the coefficient position information 20 indicates the value TRUE, the switch unit 122 is controlled to select the output terminal 122B. On the other hand, if the flag CodingMethodFlag [pos] corresponding to the coefficient position [pos] indicates the value FALSE, the switch unit 122 is controlled to select the output end 122C.
  • the encoding parameter k by the Golomb-Rice encoding described above is set to the pixel block 10. Optimize every time.
  • the optimized encoding parameter best_k in which the encoding parameter k is optimized is transmitted to the decoding side together with the encoded data in which the quantized transform coefficient 13 is encoded.
  • FIG. 15 is a flowchart showing an example of processing in the coefficient encoding unit 110.
  • the process illustrated in FIG. 15 is an example in which Golomb-Rice coding is used as the first variable-length coding, and a coding parameter k that is a coding length in Golomb-Rice coding is determined in advance. is there. Run length coding is used as the second variable length coding.
  • the small pixel block 11 is composed of 2 pixels ⁇ 2 pixels.
  • the encoding parameter k is fixedly determined in the entropy encoding unit 104, for example, or the encoding parameter k is determined by an optimization process described later.
  • step S101 the processing for each small pixel block 11 for the quantized transform coefficient 13 supplied to the entropy encoding unit 104 is started (step S101).
  • step S102 processing for each coefficient position [pos] in the small pixel block 11 to be processed is started.
  • the quantized transform coefficient 13 has a coefficient code in a predetermined order of coefficient position [pos], for example, coefficient position [LL], coefficient position [HL], coefficient position [LH], and coefficient position [HH].
  • the data is input to the conversion unit 110 and supplied to the coefficient position extraction unit 120.
  • information indicating the coefficient position [pos] may be added to each of the quantized transform coefficients 13, 13,.
  • the coefficient position extraction unit 120 outputs coefficient position information 20 indicating the coefficient position [pos] for the input quantized transform coefficient 13.
  • the coefficient position information 20 is supplied to the encoding method determination unit 121.
  • step S ⁇ b> 103 the encoding method determination unit 121 acquires the coefficient position [pos] currently being processed based on the coefficient position information 20 supplied from the coefficient position extraction unit 120. Then, it is determined whether or not the value of the flag CodingMethodFlag [pos] obtained from the encoding method information 30 corresponding to the obtained coefficient position [pos] is a value (TRUE) indicating the first variable length encoding. To do.
  • step S104 the encoding method determination unit 121 controls the switch unit 122 so that the output end 122B is selected according to the value (TRUE) of the flag CodingMethodFlag [pos].
  • the quantized transform coefficient 13 at the coefficient position [pos] is supplied to the first variable length encoding unit 123 via the switch unit 122 and is Golomb-Rice encoded according to the encoding parameter k.
  • the encoded data obtained by Golomb-Rice encoding the quantized transform coefficient 13 at the coefficient position [pos] is output from the coefficient encoding unit 110.
  • step S105 the encoding method determination unit 121 controls the switch unit 122 to select the output end 122C according to the value (FALSE) of the flag CodingMethodFlag [pos].
  • the quantized transform coefficient 13 at the coefficient position [pos] is supplied to the second variable length coding unit 124 via the switch unit 122.
  • the second variable length encoding unit 124 performs run length encoding on the supplied quantized transform coefficient 13 as described with reference to the flowchart of FIG. At this time, if the encoding target symbol is not 0, the second variable length encoding unit 124 performs Golomb-Rice encoding according to the encoding parameter k on the value (value) of the encoding target symbol.
  • the second variable length encoding unit 124 associates the run number run and the state state at the coefficient position [pos] with the coefficient position [pos] To keep. For example, if a run number run having the same state state is stored in the memory at the coefficient position [pos], the run number run is incremented by one. In this way, the number of runs run and the state state at the coefficient position [pos] are held in the memory, so that the processing on the small pixel block 11 is sequentially performed without holding all the symbols of the image block 10 in the memory. Is possible.
  • the coding parameter k used in Golomb-Rice coding may use different values for the first variable length coding and the second variable length coding.
  • step S106 it is determined whether or not the processing for all the coefficient positions [pos] in the small pixel block 11 to be processed in step S101 has been completed. If it is determined that the process has not been completed, the process returns to step S102, and the process for the next coefficient position [pos] in the small pixel block 11 is started.
  • step S106 determines whether or not the processing has been completed for all coefficient positions [pos] in the small pixel block 11 to be processed. If it is determined in step S106 that the processing has been completed for all coefficient positions [pos] in the small pixel block 11 to be processed, the process proceeds to step S107.
  • step S107 it is determined whether or not the processing for all the small pixel blocks 11 in the image block 10 has been completed for the image block 10 including the small pixel block 11 that is the processing target in step S101. If it is determined that the process has not been completed, the process returns to step S101, and the process for the next small pixel block 11 in the image block 10 is started.
  • step S107 If it is determined in step S107 that the processing for all the small pixel blocks 11 in the image block 10 has been completed, the series of processing shown in FIG. 15 is terminated. Then, for example, the processing for the next image block 10 is started in the same manner.
  • step S110 when the process for obtaining the encoding parameter k [pos] for each coefficient position [pos] is started (step S110), the coefficient encoding unit 110 performs the processes of steps S101 to S107 in the flowchart of FIG. To generate the generated code amount Bits (step S111).
  • the coefficient encoding unit 110 executes the processing from step S101 to step S107 for each encoding parameter k and coefficient position [pos] (step S112), and for each encoding parameter k and coefficient position [pos].
  • the generated code amount Bits [pos] [k] is calculated.
  • step S111 it is not necessary to actually output the encoded data, and only the generated code amount needs to be calculated.
  • the code amount Bits_x in the encoded symbol x can be calculated by the procedure shown in the following equation (1).
  • Formula (1) shows the procedure of calculation according to the style of C language which is a programming language.
  • the numbers described by delimiting with “: (colon)” at the beginning of each line of the formula (1) are line numbers for distinguishing each line. The whole from the first line to the sixth line shows the formula (1).
  • operator abs (X) returns the absolute value of value X.
  • the parameter ESC_LEN indicates the boundary with the escape code.
  • the value SYMBOL_LEN indicates the bit width of the encoded symbol.
  • the escape code is applied when the variable q exceeds the value of the parameter ESC_LEN, but this is not limited to this example.
  • the value (q + k + 1) may be simply used as the code amount Bits_x for the encoded symbol x without applying the escape code. By sequentially adding the code amount Bits_x for each encoded symbol x, the code amount Bits [pos] for each coefficient position [pos] can be calculated.
  • step S111 When the generated code amount Bits [pos] [k] is obtained for a certain encoding parameter k and coefficient position [pos] in step S111, the process proceeds to step S112.
  • step S112 the coefficient encoding unit 110 determines whether or not the generated code amount Bits [pos] [k] has been obtained for all the encoding parameters k and coefficient positions [pos]. If it is determined that it has not been obtained, the process proceeds to step S110, and the generated code amount Bits [pos] [k] is obtained for the next coding parameter k or coefficient position [pos].
  • step S112 determines whether the generated code amount Bits [pos] [k] has been obtained for all coding parameters k and coefficient positions [pos].
  • step S113 the coefficient encoding unit 110 obtains an encoding parameter k that minimizes the generated code amount Bits [pos] for each coefficient position [pos].
  • the encoding parameter k that minimizes the generated code amount Bits [pos] at the coefficient position [pos] is set as the optimized encoding parameter best_k [pos].
  • step S114 the coefficient coding unit 110 performs the process according to the flowchart of FIG. 15 described above using the optimized coding parameter best_k [pos] as the coding parameter k in Golomb-Rice coding, and performs quantization transform Output encoded data in which the coefficient 13 is encoded. Also, the coefficient encoding unit 110 performs fixed-length encoding on the index value of the optimization encoding parameter best_k [pos] and embeds it in the encoded data.
  • variable-length coding method for the quantized transform coefficient 13 the first variable-length coding by 1-symbol coding in which a code is assigned to each symbol, and the coding is performed for a plurality of symbols.
  • a second variable-length encoding method by batch multi-symbol encoding that can be assigned is prepared. Then, it is possible to select which one of the first variable length coding and the second variable length coding is used for each coefficient position of the quantized transform coefficient 13, that is, for each spatial frequency. Therefore, variable length coding can be adaptively performed on the quantized transform coefficient 13 according to the characteristics of the spatial frequency.
  • the size of the image block 10 is two lines, but this is not limited to this example.
  • the image block 10 may be an arbitrary area obtained by dividing two lines in the vertical direction, or the image block 10 may be configured by a line number that is a multiple of two, such as four lines.
  • the inside of the image block 10 may be zigzag scanned in units of 2 pixels ⁇ 2 pixels to configure the small pixel block 11 (see FIG. 12B). ).
  • variable length coding methods are switched for each coefficient position, but this is not limited to this example.
  • three or more types of variable length encoding methods may be switched.
  • three types of variable-length encoding methods, Golomb-Rice encoding, run-length encoding, and skip encoding may be switched for each coefficient position.
  • the encoded data 14 is arranged in accordance with the syntax described below. Therefore, by having the syntax table indicating this syntax on the encoding side and on the decoding side, the decoding side can appropriately decode the encoded data 14.
  • FIGS. 17A to 17C, and FIGS. 18A and 18B the portions that are deeply related to the subject matter of the present embodiment are mainly shown, and the other portions are not shown in order to avoid complexity. .
  • FIGS. 17A, 17B, and 17C a first syntax example showing the structure of an example of the encoded data 14 generated by the method of sequentially processing the small pixel blocks 11 in the image block 10 will be described. I will explain.
  • the syntax is described according to a C language format, which is one of programming languages.
  • the encoded data 14 includes a header, a block, and a sub block.
  • header header information of the encoded data 14 is described.
  • the header is applied to, for example, one frame of image data or a sequence including a series of frames.
  • the block includes data constituting the image block 10 in the encoded data 14.
  • the sub-block includes data constituting the small pixel block 11 in the encoded data 14.
  • the block includes the sub-block syntax.
  • FIG. 17A shows a syntax representing an exemplary structure of the header.
  • coding method information 30 for each coefficient position [pos] that is, a flag CodingMethodFlag [pos] is described.
  • the value NUM_POS of the coefficient position [pos] describes the number of groups obtained by grouping the coefficient position [pos] or the coefficient position [pos].
  • FIG. 17B shows syntax that represents an exemplary structure of a block.
  • the image block 10 is divided into the number of segments seg indicated by the value NUM_SEG.
  • the prediction mode pred_mode is described for each segment seg.
  • an index value CodingParamIdx [pos] indicating an encoding parameter is described for each coefficient position [pos].
  • this index value CodingParamIdx [pos] for example, a coding parameter k in Golomb-Rice coding is described.
  • each sub-block subblock () included in each segment seg is described.
  • the value NUM_BLK indicates the number of subblocks included in the segment seg.
  • run number run [pos] and the state state [pos] used for run-length encoding are initialized to 0 for each coefficient position [pos] in image block units or segment units.
  • FIG. 17C shows syntax that represents an example of the structure of a sub-block.
  • the description contents change according to the value of the flag CodingMethodFlag [pos] for each coefficient position [pos]. That is, if the flag CodingMethodFlag [pos] is the value TRUE, the coefficient coef [blk] [pos], which is the quantized transform coefficient 13 encoded by the Golomb-Rice code, is described corresponding to the coefficient position [pos]. Is done.
  • the description further changes depending on whether or not the state state [pos] is different from the coefficient coef [blk] [pos]. That is, when the state state [pos] is different from the coefficient coef [blk] [pos], the run number run and the state state by run-length encoding are described corresponding to the coefficient position [pos].
  • FIGS. 18A and 18B a second syntax example showing the structure of an example of encoded data 14 generated by a method of encoding the quantized transform coefficient 13 for each coefficient position [pos] will be described with reference to FIGS. 18A and 18B. explain.
  • the syntax is described according to the format of C language, which is one of the program languages, in the same manner as described above.
  • the encoded data 14 is composed of a header and a block.
  • header header information of the encoded data 14 is described.
  • the header is applied to, for example, one frame of image data or a sequence including a series of frames.
  • the block includes data constituting the image block 10 in the encoded data 14.
  • FIG. 18A shows syntax that represents an example of the structure of a header. Since the header structure based on the second syntax is the same as the header structure based on the first syntax described with reference to FIG. 17A, description thereof is omitted here.
  • FIG. 18B shows syntax that represents an exemplary structure of a block.
  • the block with the second syntax is different from the block with the first syntax shown in FIG. 17B, and the results of the first and second variable length encoding are directly described in the block for each small pixel block 11. Is done.
  • the small pixel blocks 11, 11,... Included in the image block 10 described by the block syntax are described as small pixel blocks [blk] using the variable blk.
  • the prediction mode pred_mode is described for each segment seg.
  • an index value CodingParamIdx [pos] indicating an encoding parameter is described for each coefficient position [pos].
  • this index value CodingParamIdx [pos] for example, a coding parameter k in Golomb-Rice coding is described.
  • each coefficient position [pos] changes according to the value of the flag CodingMethodFlag [pos]. That is, if the flag CodingMethodFlag [pos] is the value TRUE, the coefficient coef [blk] [pos], which is the quantized transform coefficient 13 encoded by the Golomb-Rice code, is a small pixel block corresponding to the small pixel block 11. Each [blk] is described corresponding to the coefficient position [pos] in the small pixel block [blk].
  • the description further changes depending on whether or not the state state [pos] is different from the coefficient coef [blk] [pos]. That is, when the state state [pos] is different from the coefficient coef [blk] [pos], the run number run and the state state by run-length encoding are described corresponding to the coefficient position [pos].
  • the flag CodingMethodFlag which is information for switching the variable-length encoding method, is included in the header, but this is not limited to this example. That is, the flag CodingMethodFlag may be included in a block or sub-block. When the flag CodingMethodFlag is included in the block, the variable length coding method can be switched for each segment. Further, when the flag CodingMethodFlag is included in the sub-block, the variable-length encoding method can be switched for each of the small pixel blocks 11, 11,. Similarly, the prediction mode pred_mode and the index value CodingParamIdx may be included in the header and sub-block, and the prediction mode and the encoding parameter may be designated for each sequence, each frame, or each small pixel block 11, 11,.
  • mode information 31 is included in the syntax. As described above, the mode information 31 is necessary for decoding other than transform coefficients, such as prediction mode information and quantization information including parameters relating to a quantization process such as a quantization parameter QP, a quantization step size, and a quantization matrix. Contains information.
  • variable length coding that assigns a code of 1 bit or more to one symbol is applied to the first variable length coding unit 123 and the second variable length coding unit 124. It is not limited to examples. That is, variable length coding that allows code assignment of less than 1 bit to one symbol may be applied to each of the first variable length coding unit 123 and the second variable length coding unit 124.
  • CABAC context-based adaptive arithmetic coding
  • the first variable length coding unit 123 and the second variable length coding unit 124 differ in context (probability table) applied to arithmetic coding and its transition.
  • context provision table
  • the coding performance is improved in arithmetic coding.
  • arithmetic coding having an appropriate probability model can be realized by differentiating the context between a high-frequency component having a small entropy of a transform coefficient and a low-frequency component having a large entropy.
  • the quantization and conversion unit 103 has been described as quantizing the transform coefficient obtained by orthogonal transform, but this is not limited to this example. That is, the transform coefficient obtained by orthogonal transform may be supplied as it is to the entropy coding unit 104 and the inverse quantization and inverse transform unit 105 without performing the quantization process. In this case, for example, all other processes corresponding to the quantization process such as the inverse quantization process in the inverse quantization and inverse transform unit 105 are not performed.
  • the second embodiment is an example of a case where the amount of generated code per unit time when moving image data is compression-encoded is controlled below a certain level.
  • the amount of generated code generated in one frame of moving image data is controlled to a certain value or less.
  • the generated code amount may be controlled in units of one or a plurality of lines as the predetermined unit, or the derived code amount may be controlled in block units obtained by dividing one frame.
  • FIG. 19 is a block diagram showing a configuration of an example of the image encoding device 2 to which the second embodiment can be applied. Note that, in FIG. 19, the same reference numerals are given to portions common to FIG. 1 described above, and detailed description thereof is omitted.
  • the image encoding device 2 is an example in which the image encoding unit 100 described in the first embodiment is applied to a 2-pass image encoding process.
  • the image encoding device 2 includes an image encoding unit 200, a setting unit 201, an encoding control unit 130 ′, and a buffer 109.
  • the image encoding device 2 includes a plurality of calculation units having functions equivalent to those of the image encoding unit 100 according to the first embodiment, and the quantization parameter QP that is different in each calculation unit with respect to the input moving image data 220. 1 , QP 2 ,..., QP N are tried, and the generated code amounts are obtained. As a result, of the quantization parameters QP 1 , QP 2 ,..., QP N used in the respective calculation units, the quantization parameter QP n that does not exceed the generated code amount corresponding to the compression rate preset by the setting unit 201. Select.
  • the selected quantization parameter QP n is applied to an encoding unit having a function equivalent to that of the image encoding unit 100 according to the first embodiment, and the moving image data 220 is encoded again.
  • the output of data 14 is obtained.
  • the encoded data 14 is temporarily stored in the buffer 109 and is output from the image encoding device 2 in units of one frame, for example.
  • the image encoding unit 200 includes a buffer 202, a temporary compression unit 203, a determination unit 205, and a main compression unit 206.
  • the temporary compression unit 203 includes a plurality of calculation units 204 n that calculate a generated code amount for a certain quantization parameter QP n .
  • the calculation unit 204 n has a function equivalent to that of the image encoding unit 100 according to the first embodiment described above. That is, the calculation unit 204 n includes a dividing unit 101, a subtractor 102, a transform and quantization unit 103, an entropy coding unit 104, an inverse quantization and inverse transform unit 105, an adder 106, a memory 107, and a prediction unit 108, respectively.
  • the calculation unit 204 n obtains a prediction error signal 12 for the prediction image signal 19 of the small pixel block 11 obtained by dividing the input image block 10, orthogonally transforms the prediction error signal 12, and uses the obtained conversion coefficient as a predetermined quantum. Quantize with quantization parameter QP n . Then, the calculation unit 204 n obtains a generated code amount when the entropy coding unit 104 performs variable length coding on the quantized transform coefficient 13 obtained by quantizing the transform coefficient.
  • a plurality of calculation units 204 1 , 204 2 ,..., 204 N are respectively connected to the transform and quantization unit 103 and the inverse quantization and inverse transform unit 105 in the image coding unit 100.
  • Different quantization parameters QP 1 , QP 2 ,..., QP N are applied to the corresponding parts.
  • the main compression unit 206 includes a first encoding unit 207 whose generated code amount is fixed.
  • the first encoding unit 207 encodes each pixel with a fixed code length.
  • the unit for encoding with a fixed code length is not limited to a pixel unit, but may be a predetermined number of pixel units, a small pixel block 11 unit, an image block 10 unit, or the like.
  • the main compression unit 206 further includes a second encoding unit 208 having a function equivalent to that of the image encoding unit 100 according to the first embodiment described above. That is, the second encoding unit 208 performs encoding using a variable length code.
  • the configuration and operation of the second encoding unit 208 are the same as those of the above-described image encoding unit 100, and thus the description thereof is omitted here.
  • the compression rate information 25 indicating the compression rate set by the setting unit 201 is supplied to the encoding control unit 130 '. Similar to the encoding control unit 130 according to the first embodiment described above, the encoding control unit 130 ′ receives the encoding control information 40 ′ for controlling the entire encoding process by the image encoding device 2 as image code. To the conversion unit 200.
  • the encoding control information 40 ′ includes encoding method information 30, prediction mode information, mode information 31 based on quantization parameters, and the like, and also includes compression rate information 25.
  • the encoding method information 30 and the mode information 31 are supplied to the temporary compression unit 203 and the main compression unit 206, respectively.
  • the compression rate information 25 is supplied to the temporary compression unit 203, the main compression unit 206, and the determination unit 205.
  • the input moving image data 220 is temporarily stored in the buffer 202.
  • the moving image data 220 is read from the buffer 202, it is divided into image blocks 10 of a predetermined size.
  • the image block 10 is obtained by dividing one frame of moving image data by an arbitrary method.
  • the minimum unit is a pixel, and the maximum unit is an entire frame.
  • the input moving image data 220 is a unit that guarantees a predetermined compression rate in the image encoding device 2, and is not limited to image data in units of frames, but one or a plurality of line data or image blocks of a predetermined size. It is a concept that also includes In the first embodiment described above, the image block 10 is described as a unit for switching the encoding parameter k. However, this is not limited to this example.
  • the image block 10 is the same as the input moving image data 220. It may be a size.
  • the image block 10 read from the buffer 202 is input to the temporary compression unit 203 for evaluation and supplied to a plurality of calculation units 204 1 , 204 2 ,..., 204 N in the temporary compression unit 203.
  • the plurality of calculation unit 204 1, 204 2, ..., with respect to 204 N, as described above, different quantization parameters QP 1 respectively, QP 2, ..., QP N is applied.
  • a transform and quantization unit (not shown) in the calculation unit 204 n performs prediction based on the difference between the input data of the image block 10 and the prediction data, similarly to the transform and quantization unit 103 described with reference to FIG. The error is orthogonally transformed, and the obtained transform coefficient is quantized by dividing by the quantization step size corresponding to the quantization parameter QP n .
  • FIG. 20 shows an example of the relationship between the quantization parameter QP n and the quantization step size.
  • the quantization step size is set so that the interval becomes coarse as the value of the quantization parameter QP n increases.
  • the smaller the quantization parameter QP n quantization is performed more precisely, the larger quantization parameter QP n, so that coarser quantization is performed.
  • Each of the plurality of calculation units 204 1 , 204 2 ,..., 204 N encodes the supplied image block 10 using the applied quantization parameter QP n , and code amounts 20 1 , 20 2 , ..., 20 N is calculated. Note that the calculation units 204 1 , 204 2 ,..., 204 N do not need to output encoded data.
  • Calculator 204 1, 204 2, ..., 204 symbols of 20 1 calculated in N, 20 2, ..., 20 N are supplied to the respective determination unit 205.
  • the determination unit 205 evaluates these code amounts 20 1 , 20 2 ,..., 20 N and determines whether there is a code amount 20 m that does not exceed the target code amount corresponding to the compression rate information 25. Then, compression method information 221 for selecting whether the image block 10 is encoded with a fixed length or a variable length is generated according to the determination result.
  • the target code amount is, for example, a code amount (average allocated code amount) when the code amount is equally allocated to the image block 10 in the input moving image data 220.
  • the determination unit 205 determines that all of the code amounts 20 1 , 20 2 ,..., 20 N exceed the target code amount, the determination unit 205 selects the first encoding mode for encoding the image block 10 with a fixed length. .
  • the determination unit 205 outputs compression method information 221 indicating that the first encoding mode has been selected. This compression method information 221 is supplied to the main compression unit 206.
  • the main compression unit 206 reads the image block 10 used for evaluation from the buffer 202 in accordance with the compression method information 221 output from the determination unit 205 and inputs the image block 10 to the first encoding unit 207.
  • the first encoding unit 207 performs, for example, first encoding that encodes the image block 10 with a fixed length by performing linear quantization or spatial sampling by truncating the lower bits on the image block 10. . That is, if the first encoding mode is selected in all the image blocks 10, 10,... Constituting one frame, the frame of the input moving image data 220 is compressed to a predetermined data size or less. Guaranteed.
  • the encoded data 14 obtained by encoding the image block 10 by the first encoding unit 207 is output from the main compression unit 206 and temporarily stored in the buffer 109.
  • the determination unit 205 selects a second encoding mode for encoding the image block 10 with a variable length.
  • the determination unit 205 outputs compression method information 221 indicating that the second encoding mode has been selected.
  • the compression method information 221 is input to the main compression unit 206 together with information indicating the quantization parameter QP m .
  • the main compression unit 206 reads the image block 10 used for evaluation from the buffer 202 in accordance with the compression method information 221 output from the determination unit 205, and supplies the image block 10 to the second encoding unit 208.
  • the second encoding unit 208 has a function equivalent to that of the image encoding unit 100 illustrated in FIG.
  • the second encoding unit 208 performs orthogonal transform, quantization, and entropy encoding of the image block 10 by the method according to the first embodiment described above.
  • the quantization parameter QP m supplied from the determination unit 205 is used.
  • the encoded data 14 obtained by encoding the image block 10 by the second encoding unit 208 is output from the main compression unit 206 and temporarily stored in the buffer 109.
  • the quantization parameter QP n is different for each image block 10.
  • the quantization parameter QP n for each image block 10 is included in the mode information 31 and transmitted to the decoding side.
  • the compression method information 221 is included in the mode information 31 and embedded in the encoded data 14, for example.
  • Target code amount information indicating the compression rate information 25 may be further included in the mode information 31 and embedded in the encoded data 14.
  • the encoding method according to the first embodiment described above can be applied to a two-pass image encoding process. Therefore, since the encoding efficiency in the two-pass image encoding process can be improved, it is possible to improve the image quality under the condition that the generated code amount per unit time is kept below a certain level.
  • the encoding method for each transform coefficient position of the quantized transform coefficient 13 at the time of entropy encoding is controlled using the encoding method information 30.
  • the encoding method for each transform coefficient position of the quantized transform coefficient 13 at the time of entropy encoding is controlled using other parameters for controlling the encoding.
  • FIG. 21 is a block diagram illustrating an exemplary configuration of the entropy encoding unit 104 'applicable to the present embodiment.
  • the entropy encoding unit 104 ′ illustrated in FIG. 21 includes a coefficient encoding unit 110, a mode information conversion unit 302, and a mode encoding unit 112.
  • Mode information 31 including prediction mode information and parameters related to quantization is supplied to the mode information conversion unit 302 and the mode encoding unit 112.
  • the compression rate information 25 is further transmitted to the mode information conversion unit 302 and the mode coding unit 112. Supplied.
  • the mode information conversion unit 302 generates encoding method information 30 based on the supplied QP information, mode information 31, and compression rate information 25, and supplies the encoding method information 30 to the coefficient encoding unit 110.
  • the coefficient encoding unit 110 switches the variable length encoding method for each coefficient position based on the encoding method information 30 in the same manner as in the first and second embodiments described above, and the quantized transform coefficient 13 Encoding is performed.
  • the mode information conversion unit 302 in this embodiment will be described in more detail.
  • the first variable length coding unit 123 in the coefficient coding unit 110 performs coding for each symbol, and the second variable length coding unit 124 codes a plurality of symbols collectively. Is possible. Therefore, the first variable length encoding unit 123 is suitable for encoding data of an area or a block that requires a low compression rate or high image quality.
  • the second variable length encoding unit 124 is suitable for encoding data of regions and blocks that require a high compression rate or low or medium image quality.
  • the frequency component For example, it is conceivable to divide the frequency component into a low frequency component and a high frequency component, apply the first variable length coding to the coefficient of the low frequency component, and apply the second variable length coding to the high frequency component.
  • the range of the “low frequency component” and the range of the “high frequency component” By changing the range of the coefficient position to which the first variable length coding is applied can be changed.
  • a flag CodingMethodFlag for designating a variable length coding method is set for each coefficient position by the following four types of parameters.
  • Quantization parameter QP (2) Target code amount (3) Prediction direction (4) Image signal component
  • the small pixel block 11 is assumed to be 2 pixels ⁇ 2 pixels, and 2 ⁇ 2 transformation is used for orthogonal transformation. Therefore, the coefficient position [pos] is represented as positions LL, HL, LH and HH.
  • the quantization parameter QP and the target code amount are parameters closely related to the compression rate of image data and the image quality after decoding. Therefore, it is possible to set a flag CodingMethodFlag for designating a variable-length encoding method by using the quantization parameter QP and target code amount information of the encoding target region.
  • Figure 22A illustrates an example setting of a flag CodingMethodFlag [pos] at each coefficient position [pos] for the quantization parameter QP n.
  • the quantization parameter QP n as illustrated in FIG. 20, taken to the value QP the quantization parameter QP n increases, assumed to be defined as the interval of the quantization step size increases .
  • the flag CodingMethodFlag [pos] is set to the value TRUE from the low spatial frequency to the coefficient position [pos] corresponding to the higher spatial frequency, that is, One variable length encoding unit 123 is set to be selected. Thereafter, as the value of the quantization parameter QP n increases, each coefficient position [pos] increases such that the ratio of the flag CodingMethodFlag [pos] to the value FALSE increases from the coefficient position [pos] corresponding to a high spatial frequency. The flag CodingMethodFlag is set. In this way, by applying an appropriate variable length coding method according to the quantization parameter QP n , coding efficiency can be improved.
  • the flag CodingMethodFlag is set to the value TRUE at all coefficient positions [pos].
  • the first variable length encoding unit 123 is applied.
  • the second variable length coding unit 124 is applied with the flag CodingMethodFlag set to the value FALSE at the position HH which is the coefficient position [pos] consisting only of high frequency components, At the coefficient position [pos], the first variable length coding unit 123 is applied with the flag CodingMethodFlag as the value TRUE.
  • the first variable length coding unit 123 is applied with the flag CodingMethodFlag as the value TRUE at the position LL that is the coefficient position [pos] consisting only of the low frequency components, and other coefficient positions In [pos], the second variable length coding unit 124 is applied with the flag CodingMethodFlag as a value FALSE.
  • FIG. 22B illustrates an example of setting of a flag CodingMethodFlag [pos] at each coefficient position [pos] with respect to a target code amount, that is, a compression rate.
  • a target code amount that is, a compression rate.
  • the flag CodingMethodFlag [pos] is set to the value TRUE from the low spatial frequency to the coefficient position [pos] corresponding to the higher spatial frequency.
  • the flag CodingMethodFlag is set to the value TRUE at all coefficient positions [pos], and the first variable length encoding unit 123 is applied.
  • the second variable length coding unit 124 is applied with the flag CodingMethodFlag as a value FALSE at the position HH, which is the coefficient position [pos] consisting only of high frequency components, and other coefficient positions [ In pos], the first variable length coding unit 123 is applied with the flag CodingMethodFlag as the value TRUE.
  • the first variable length coding unit 123 is applied with the flag CodingMethodFlag as the value TRUE at the position LL that is the coefficient position [pos] including only the low frequency component
  • the second variable length coding unit 124 is applied with the flag CodingMethodFlag set to the value FALSE.
  • the second variable length coding unit 124 is applied with the flag CodingMethodFlag set to the value FALSE at all coefficient positions [pos].
  • the flag CodingMethodFlag for each coefficient position can be set according to the compression rate set by the setting unit 201.
  • a flag for each coefficient position corresponding to the compression rate, which of the first variable length encoding and the second variable length encoding is used to encode the coefficient. It is switched by CodingMethodFlag.
  • the prediction direction is the vertical direction
  • the correlation in the vertical direction in the image block 10 is removed, whereas the correlation in the horizontal direction is not removed. Therefore, when the prediction error signal 12 obtained with the prediction direction as the vertical direction is orthogonally transformed, it is considered that the vertical direction component has a small conversion coefficient and the horizontal direction component has a large conversion coefficient.
  • the flag CodingMethodFlag at the coefficient position LH is set to the value TRUE, the first variable length coding unit 123 is applied, and the flag CodingMethodFlag at the coefficient position HL is set to the value FALSE. Then, the second variable length coding unit 124 is applied.
  • the first variable length coding unit 123 is applied by setting the flag CodingMethodFlag of the coefficient position HL to the value TRUE,
  • the flag CodingMethodFlag at the coefficient position LH is set to the value FALSE, and the second variable length coding unit 124 is applied.
  • FIG. 22C shows an example of setting of the flag CodingMethodFlag [pos] at each coefficient position [pos] with respect to the prediction direction set as described above.
  • the setting according to the prediction direction is applied in a limited manner when the compression rate is 1/4 to 1/6.
  • the method (4) of setting the flag CodingMethodFlag [pos] according to the image signal component will be described. That is, in the above (1) to (3), the setting of the flag CodingMethodFlag [pos] for each coefficient position [pos] is set based on other parameters for controlling encoding. This is not limited to this example, and a flag CodingMethodFlag [pos] for each coefficient position [pos] may be set according to the image signal component.
  • FIG. 22D shows an example of setting of the flag CodingMethodFlag [pos] at each coefficient position [pos] for the image signal component.
  • the setting of the flag CodingMethodFlag [pos] at each coefficient position [pos] for the luminance component Y and the color difference components U and V is changed according to the compression rate.
  • the second variable length code is set with the flag CodingMethodFlag as the value FALSE at the position HH which is the coefficient position [pos] consisting only of the high frequency components for the color difference components U and V.
  • the applying unit 124 is applied.
  • the first variable length encoding unit 123 is applied to the color difference components U and V with the flag CodingMethodFlag as a value TRUE.
  • the ratio of setting the flag CodingMethodFlag for the color difference components U and V to the value FALSE is increased.
  • the compression rate is 1/2 to 1/4, and only the position LL that is the coefficient position [pos] consisting only of the low frequency components with respect to the color difference components U and V is set as the flag CodingMethodFlag as the value TRUE.
  • the 1 variable length encoding unit 123 is applied.
  • the ratio of applying the first variable length encoding unit 123 with the flag CodingMethodFlag as the value TRUE is set as the color difference component U. , More than V.
  • the flag CodingMethodFlag when the flag CodingMethodFlag is set using the compression rate, it is necessary to separately transmit information indicating the target code amount to the decoding side.
  • information indicating the target code amount (compression rate information) is encoded by being included in the mode information 31 and embedded in the encoded data 14.
  • the 2 ⁇ 2 transform has been described as an example, but it is needless to say that the third embodiment can be applied to a larger size orthogonal transform such as a 4 ⁇ 4 transform.
  • an oblique direction may be further used as the prediction direction in addition to the horizontal and vertical directions.
  • the flag CodingMethodFlag may be set by appropriately combining the quantization parameter QP, the target code amount, the prediction method, and the image signal component. Further, the setting method of the flag CodingMethodFlag according to the third embodiment is applied to a part of the coefficient position, and the other part of the coefficient position includes PSNR (Peak Signal-to-Noise Ratio), generated code amount, RDO.
  • PSNR Peak Signal-to-Noise Ratio
  • the flag CodingMethodFlag may be set using (Rate Distortion Optimization).
  • the encoding method encoding unit 111 is omitted, and the flag CodingMethodFlag does not necessarily have to be encoded. Therefore, the syntax structure is obtained by omitting the description of “CodingMethodFlag [pos]” in FIGS. 17A and 18A described above. In this case, the condition determination by the flag CodingMethodFlag [pos] in FIGS. 17B and 17C and FIG. 18B is replaced with the determination by the condition for setting the flag CodingMethodFlag [pos] described with reference to FIGS. 22A to 22D. become.
  • the fourth embodiment is an example of an image decoding device corresponding to the image encoding device 1 according to the first embodiment described above.
  • FIG. 23A is a block diagram illustrating an exemplary configuration of an image decoding device 4 applicable to the fourth embodiment.
  • the image decoding device 4 includes an image decoding unit 500, a decoding control unit 530, and a buffer 506.
  • the decoding control unit 530 is supplied with decoding information 80 from the image decoding unit 500 such as various parameter information supplied and feedback information output based on the result of the decoding process.
  • the decoding control unit 530 generates decoding control information 81 for controlling overall decoding processing by the image decoding device 4 and supplies the decoding control information 81 to the image decoding unit 500.
  • the image decoding device 3 has a syntax table indicating the syntax described with reference to FIGS. 17A to 17C or FIGS. 18A and 18B, and the encoded data output from the image encoding device 1 by the image decoding unit 500. Each code is extracted from 14 based on the syntax table and decoded, and decoded image data 54 is output.
  • encoding is performed by sequentially processing the small pixel blocks 11 in the image block 10 using the image encoding device 1 according to the syntax table indicating the syntax shown in FIGS. 17A to 17C.
  • the image decoding unit 500 includes a code string decoding unit 501, an inverse quantization and inverse transformation unit 502, an adder 503, a memory 504, and a prediction unit 505.
  • the encoded data 14 input to the image decoding unit 500 is supplied to the code string decoding unit 501.
  • the code string decoding unit 501 decodes the code string based on the encoded data 14 based on the syntax table. Thereby, the code sequence decoding unit 501 extracts coding parameters such as a flag CodingMethodFlag [pos] (see FIG. 17A), a prediction mode pred_mode, and an index value CodingParamIdx [pos] (each see FIG. 17B) from the coded data 14.
  • the code string decoding unit 501 extracts quantization parameter information including information necessary for quantization such as a quantization parameter QP and a quantization matrix from the encoded data 14.
  • the quantization parameter information is included in the mode information 31 and embedded in the encoded data 14, for example.
  • the quantization parameter is supplied to the decoding control unit 530 and held in the decoding control unit 530.
  • the code string decoding unit 501 extracts a code string obtained by entropy-coding the quantized transform coefficient 13 from the encoded data 14.
  • the code sequence decoding unit 501 decodes this code sequence in units of image blocks 10 based on the encoding parameters extracted from the encoded data 14, and reconstructed quantized transforms in which the quantized transform coefficients 13 at the respective coefficient positions are restored.
  • a coefficient 51 is obtained for each small pixel block 11.
  • the restored quantized transform coefficient 51 is supplied to the inverse quantization and inverse transform unit 502.
  • the prediction mode pred_mode extracted from the encoded data 14 is supplied to the prediction unit 505 as prediction mode information 52.
  • the inverse quantization and inverse transform unit 502 loads the quantization parameter from the decoding control unit 530, performs inverse quantization processing on the restored quantized transform coefficient 51 based on the loaded quantization parameter, and performs orthogonal transform. A restored transform coefficient obtained by restoring the transform coefficient is obtained. The inverse quantization and inverse transform unit 502 further performs an inverse orthogonal transform process corresponding to the orthogonal transform performed in the image encoding device 1 on the reconstructed transform coefficient, thereby reconstructing the prediction error signal 12. A prediction error signal 53 is obtained.
  • the restored prediction error signal 53 is supplied to the adder 503 and added to the predicted image signal 56 output from the prediction unit 505 to generate a decoded small pixel block 54.
  • the decoded small pixel block 54 is output from the image decoding unit 500, stored in the buffer 506, and stored in the memory 504.
  • the decoded small pixel block 54 stored in the memory 504 is used as a reference image signal 55 for prediction of a small pixel block to be decoded later.
  • the decoded small pixel block 54 stored in the buffer 506 is output in units of frames, for example, according to the timing control of the decoding processing unit 530.
  • the decoded small pixel block 54 stored in the memory 504 is supplied to the prediction unit 505 as a reference image signal 55.
  • the prediction unit 505 generates a predicted image signal 56 from the reference image signal 55 based on the prediction mode information 52 in the same manner as the prediction unit 108 described above.
  • the predicted image signal 56 is supplied to the adder 503.
  • the prediction unit 505 can be removed from the image decoding device 4.
  • prediction is not performed, and the restored prediction error signal 53 output from the inverse quantization and inverse transform unit 502 becomes the decoded small pixel block 54 as it is.
  • the other configuration relating to prediction that is, the adder 503 and the memory 504 are not required.
  • FIG. 24 is a block diagram illustrating a configuration example of the code string decoding unit 501.
  • the code string decoding unit 501 includes a separation unit 510, an encoding method decoding unit 511, a coefficient decoding unit 512, and a mode decoding unit 513.
  • the encoded data 14 is supplied to the separation unit 510.
  • the separation unit 510 separates the code part encoded with the encoding method information 30 and the code part encoded with the mode information 31 from the supplied encoded data 14 according to the syntax table, and encodes each of the encoding methods.
  • the data is supplied to the method decoding unit 511 and the mode decoding unit 513.
  • the separation unit 510 separates the code part in which the quantized transform coefficient 13 is encoded from the encoded data 14 and supplies the code part to the coefficient decoding unit 512. Not limited to this, the separation unit 510 may supply the encoded data 14 to the coefficient decoding unit 512.
  • the encoding method decoding unit 511 decodes the supplied code to obtain encoding method information 30 (flag CodingMethodFlag [pos]).
  • the encoding method information 30 is output as decoding method information 58 indicating a decoding method when decoding the encoded quantized transform coefficient 13 and is supplied to the coefficient decoding unit 512.
  • the coefficient decoding unit 512 decodes the encoded data 14 supplied from the separation unit 510 based on the decoding method information 58, and outputs the restored quantized transform coefficient 51 obtained by decoding the quantized transform coefficient 13. Further, the mode decoding unit 513 decodes the code supplied from the separation unit 510 and obtains mode information 31. As described above, the mode information 31 includes information necessary for decoding other than transform coefficients such as quantization parameters such as the quantization parameter QP and the quantization matrix, and prediction mode information 52. Parameters relating to quantization are supplied to the decoding control unit 530. The prediction mode information 52 is supplied to the prediction unit 505 as described above.
  • FIG. 25 is a block diagram illustrating an exemplary configuration of the coefficient decoding unit 512.
  • the coefficient decoding unit 512 includes a coefficient position extraction unit 520, a decoding method determination unit 521, a switch unit 522, a first variable length decoding unit 523, and a second variable length decoding unit 524.
  • the coefficient position extraction unit 520 has the same function as the coefficient position extraction unit 120 described with reference to FIG. 5 in the first embodiment. That is, the coefficient position extraction unit 520 supplies the supplied encoded data 14 to the input terminal 522A of the switch unit 522, and from the encoded data 14, the coefficient position information 60 indicating the coefficient position of the code to be decoded. get.
  • the coefficient position can be known by sequentially counting transform coefficient decoding processing for each sub-block (small pixel block).
  • the coefficient position information 60 may be represented by position groups that are grouped within the small pixel block, as described with reference to FIGS. 6A and 6B.
  • the output terminals 522B and 522C are switched by a switching signal 61 output from a decoding method determination unit 521 described later.
  • a first variable length decoding unit 523 and a second variable length decoding unit 524 are connected to the output terminals 522B and 522C, respectively. That is, the encoded data 14 supplied to the input terminal 522A is selectively supplied to one of the first variable length decoding unit 523 and the second variable length decoding unit 524 in accordance with the switching signal 61.
  • the coefficient position information 60 is supplied to the decoding method determination unit 521. Further, the decoding method information 58 is also supplied to the decoding method determination unit 521. Based on the coefficient position information 60 and the decoding method information 58, the decoding method determination unit 521 outputs a switching signal 61 for each coefficient position or for each position group and supplies the switching signal 61 to the switch unit 522.
  • the switch unit 522 is switched to the coefficient position or position group unit based on the decoding method information 58, and the encoded data 14 output from the coefficient position extraction unit 520 is first variable length decoded in coefficient position or position group unit.
  • Unit 523 or the second variable length decoding unit 524 is adaptively supplied.
  • the first variable length decoding unit 523 performs decoding processing (first variable length decoding) corresponding to the encoding performed by the first variable length encoding unit 123 at the time of encoding the supplied encoded data 14. Call it). That is, since the first variable length encoding unit 123 performs one symbol unit encoding that encodes one symbol at a time, the first variable length decoding unit 523 encodes encoded data by a one symbol unit decoding method that decodes one symbol at a time. 14 is decoded and the restored quantized transform coefficient 51 is output. For example, when Golomb-Rice coding is used in the first variable length coding unit 123, the coding parameter k is decoded, and the symbol is decoded using the coding parameter k.
  • the second variable length decoding unit 524 decodes the supplied encoded data 14 corresponding to the encoding performed by the second variable length encoding unit 124 at the time of encoding (second variable length decoding). Call it). That is, since the second variable length coding unit 124 performs multiple symbol batch coding that collectively codes a plurality of symbols, the second variable length decoding unit 524 decodes the code string and collects the plurality of symbols. Multiple-symbol batch decoding is performed, and restored quantized transform coefficients 51 are output. For example, when run-length coding is used in the second variable length coding unit 124, a series of symbol groups is expressed by the value of the data (value) and the number of runs (run).
  • FIG. 26 is a flowchart illustrating an example of a processing procedure for decoding a run-length code. Each process in the flowchart illustrated in FIG. 26 is executed by the second variable length decoding unit 524. Here, it is assumed that the total number NUM_MAX of decoding target symbols is known.
  • step S401 the encoding target symbol position num and the state state are set to 0 and initialized (step S401).
  • the run number run is decoded (step S402), and in the next step S403, it is determined whether or not the decoded run number run is greater than zero. If it is determined that the run number run is greater than 0 (“YES” in step S403), the process proceeds to step S404.
  • step S404 the value of the state state is substituted for the decoding target symbol.
  • step S405 the run number run is decremented by 1, and in the next step S406, the encoding target symbol position num is incremented by 1.
  • step S407 it is determined whether or not the value indicating the encoding target symbol position num exceeds the value indicating the decoding target symbol total number NUM_MAX. If it is determined that it has not exceeded (“NO” in step S407), the process returns to step S403 to determine whether or not the run number run is greater than zero.
  • step S407 if it is determined in step S407 that the value indicating the encoding target symbol position num exceeds the value indicating the total number of decoding target symbols NUM_MAX, it is determined that the processing for all the decoding target symbols is completed, and the series of processing ends. Is done.
  • step S403 If it is determined in step S403 that the run number run is 0, the process proceeds to step S408 (“NO” in step S403).
  • step S408 the next code is an encoding method (for example, Golomb-Rice encoding) used to encode the value (value) in symbols other than those held in the second variable length encoding unit 124 described above. ) And the decoded value y is substituted into the decoding target symbol.
  • step S409 the value y is substituted for the state state, and in the next step S410, the encoding target symbol position num is incremented by one.
  • step S410 When the encoding target symbol position num is incremented in step S410, the process proceeds to step S411, and it is determined whether or not the value indicating the encoding target symbol position num exceeds the value indicating the decoding target symbol total number NUM_MAX. . If it is determined that it has not exceeded (“NO” in step S412), the process returns to step S402, and the next run number run is decoded.
  • step S411 if it is determined in step S411 that the value indicating the encoding target symbol position num has exceeded the value indicating the total number of decoding target symbols NUM_MAX, it is determined that the processing for all the decoding target symbols is completed, and the series of processing ends. Is done.
  • the value of the state state may be fixed to 0, as in the process shown in the flowchart of FIG.
  • the syntax in this case is composed of a header (see FIG. 17A), a block (see FIG. 17B), and a sub-block (see FIG. 17C).
  • the sub-block syntax is embedded in the block syntax.
  • the header syntax describes header information.
  • the block syntax describes data required for each image block 10.
  • the sub-block syntax describes data required for each small pixel block 11.
  • the decoding control unit 530 can appropriately decode the encoded data 14 by controlling the decoding process on the encoded data 14 according to these syntaxes.
  • the header syntax shown in FIG. 17A describes a flag CodingMethodFlag [pos] for switching the variable length decoding method for each coefficient position [pos].
  • the value NUM_POS is the number of coefficient positions or the number of coefficient position groups.
  • an index value CodingParamIdx [pos] which is a prediction mode pred_mode for each image block, and a coding parameter for each coefficient position [pos] (such as a coding parameter k in Golomb-Rice coding). It is clearly stated. Furthermore, a sub-block subblock () for decoding transform coefficients is embedded in units of small pixel blocks [blk] in the image block.
  • the value NUM_BLK is the number of small pixel blocks in the image block.
  • the prediction mode pred_mode and the index value CodingParamIdx [pos] may be described by switching for each segment seg in which a plurality of small pixel blocks are grouped.
  • the image block is divided into NUM_SEG segments seg. Note that the run number run and state state used for decoding using run-length encoding are initialized to 0 in image block units and segment units.
  • first variable length decoding which is a decoding method for decoding one symbol at a time, such as Golomb-Rice encoding, is applied.
  • the coefficient coef [blk] [pos] at the coefficient position [pos] of the small pixel block [blk] is decoded using the index value CodingParamIdx [pos].
  • the run number run [pos] and the state state [pos] are decoded by the variable length decoding method switched by the flag CodingMethodFlag [pos]. The Then, 0 is substituted for the run number run [pos], and the coefficient coef [blk] [pos] is substituted for the state state [pos].
  • the run number run [pos] is described only when the run number run [pos] is 0 or more at the coefficient position [pos] to which the second variable length decoding is applied.
  • the syntax in this case is composed of the syntax of the header (see FIG. 18A) and the block (see FIG. 18B).
  • header syntax header information similar to that in FIG. 17A is described.
  • the block includes data constituting the image block 10 in the encoded data 14.
  • a flag CodingMethodFlag [pos] for switching the variable length decoding method is determined for each coefficient position [pos].
  • the flag CodingMethodFlag [pos] is the value TRUE
  • the first variable length decoding which is a decoding method for decoding all the transform coefficients at the coefficient position [pos] one symbol at a time, such as Golomb-Rice coding. Applies.
  • the coefficient coef [blk] [pos] at the coefficient position [pos] of the small pixel block [blk] is decoded using the index value CodingParamIdx [pos].
  • the second variable length decoding is applied to the transform coefficient at the coefficient position [pos] that can be decoded collectively by a plurality of symbols such as run-length coding.
  • the coefficient coef [blk] [pos] is equal to the state state [pos]
  • 1 is added to the run number run [pos] and the decoded data is not shown.
  • the run number run [pos] and the state state [pos] are decoded by the variable length decoding method switched by the flag CodingMethodFlag [pos]. The Then, 0 is substituted for the run number run [pos], and the coefficient coef [blk] [pos] is substituted for the state state [pos].
  • the run number run [pos] is described only when the run number run [pos] is 0 or more at the coefficient position [pos] to which the second variable length decoding is applied.
  • variable-length coding in which a code of 1 bit or more is assigned to one symbol for the first variable-length coding unit 123 and the second variable-length coding unit 124.
  • the decoding process has been described. This is not limited to this example, and even when encoding is performed using variable length coding, such as CABAC, in which a code of less than 1 bit can be assigned to one symbol, the fourth embodiment is applied. Decoding processing can be applied.
  • the first variable length encoding unit 123 and the second variable length encoding unit 124 having different contexts and transitions applied to arithmetic encoding are converted into coefficients by the switch unit 122. It is applied by switching for each position. Therefore, on the decoding side, the first variable length decoding unit 523 and the second variable length decoding unit 524 correspond the context applied to arithmetic coding and the transition thereof to the first variable length encoding unit 123 and the second variable length decoding unit 523.
  • the two variable length coding units 124 are made to correspond to each other. Then, the first variable length decoding unit 523 and the second variable length decoding unit 524 are switched and applied for each coefficient position.
  • the context switching frequency is reduced, and the complexity of the decoding process can be reduced.
  • the fifth embodiment is an example of an image decoding device corresponding to the image encoding device 2 according to the second embodiment described above.
  • FIG. 27 is a block diagram showing an example of the configuration of the image decoding device 5 applicable to the fifth embodiment.
  • the image decoding device 5 includes an image decoding unit 600, a setting unit 605, and a decoding control unit 630.
  • Decoding information 91 is supplied from the image decoding unit 600 to the decoding control unit 630 based on the supplied various parameter information and feedback information output based on the result of the decoding process.
  • the decoding control unit 630 generates decoding control information 90 for controlling the entire decoding process by the image decoding device 5 and supplies the decoding control information 90 to the image decoding unit 600.
  • the image decoding device 5 has a syntax table indicating the syntax described with reference to FIGS. 17A to 17C or FIGS. 18A and 18B, and the encoded data output from the image encoding device 2 by the image decoding unit 600. Each code is extracted from 14 based on the syntax table and decoded, and decoded image data 63 is output.
  • the setting unit 605 sets the compression rate information 65 indicating the compression rate of the encoded data 14 to the decoding control unit 630.
  • the compression rate information 65 is included in the decoding control information 90 and set in the first decoding unit 602 and the second decoding unit 603, respectively.
  • the compression rate information 65 can be set in advance for the first decoding unit 602 and the second decoding unit 603 using the setting unit 605 as input means.
  • target code amount information included and embedded in the mode information 31 may be decoded and set by the compression method information decoding unit 601 described later as the compression rate information 65. .
  • the image decoding unit 600 includes a compression method information decoding unit 601, a first decoding unit 602, a second decoding unit 603, and a buffer 604.
  • the encoded data 14 input to the image decoding unit 600 is supplied to the compression method information decoding unit 601.
  • the compression method information decoding unit 601 extracts the mode information 31 from the supplied encoded data 14 according to the syntax, and acquires the compression method information 221 included in the mode information 31.
  • the acquired compression method information 221 is supplied to the first decoding unit 602 and the second decoding unit 603 together with the encoded data 14 as the decoding method switching information 61.
  • the decoding method switching information 61 indicates whether the encoded data 14 is to be decoded by the first decoding unit 602 or the second decoding unit 603 in units of image blocks 10.
  • the image decoding unit 600 selects whether the encoded data 14 is to be decoded by the first decoding unit 602 or the second decoding unit 603 according to the decoding method switching information 61.
  • the first decoding unit 602 corresponds to the first encoding unit 207 in the second embodiment described above. That is, the first decoding unit 602 performs a process reverse to the encoding process performed by the first encoding unit 207 to decode the encoded data 14. As a more specific example, the first decoding unit 602 corresponds to the first encoding unit 207 and performs inverse quantization or low-order bit interpolation on the encoded data 14 by low-order bit compensation for each image block 10.
  • the decoded image block 62 is obtained by performing the decoding process.
  • the decoded image block 62 is stored in the buffer 604.
  • the second decoding unit 603 corresponds to the second encoding unit 208 in the second embodiment described above, and has a function equivalent to that of the image decoding unit 600 illustrated in FIG. That is, the second decoding unit 603 performs a process reverse to the encoding process by the second encoding unit 208 to decode the encoded data 14 to obtain a decoded image block 62.
  • the decoded image block 62 is stored in the buffer 604.
  • the decoded image blocks 62, 62,... Stored in the buffer 604 are output as decoded image data 63 with the output timing controlled by the decoding control unit 630.
  • the second decoding unit 603 which one of the first variable length decoding and the second variable length decoding is used to decode the encoded data 14 is determined in the compression rate information 65 set by the setting unit 605. Based on the method of setting the flag CodingMethodFlag using the target code amount described with reference to FIG. 22B, for example.
  • the sixth embodiment is an example of an image decoding device corresponding to the image coding device according to the third embodiment described above.
  • the image decoding apparatus according to the sixth embodiment is different only in the configuration of the code string decoding unit 501 from the configuration of the image decoding apparatus 4 according to the fourth embodiment described with reference to FIG. This point will be mainly described.
  • FIG. 28 is a block diagram illustrating an exemplary configuration of the code string decoding unit 700 according to the sixth embodiment.
  • the same reference numerals are given to the portions common to FIG. 24 described above, and detailed description thereof will be omitted.
  • the code string decoding unit 700 is replaced with a code string decoding unit 501 in the image decoding device 4 illustrated in FIG. 23, whereby the image decoding device 6 according to the sixth embodiment is obtained.
  • the code string decoding unit 700 includes a separation unit 514, a coefficient decoding unit 512, a mode decoding unit 513, and a mode information conversion unit 515.
  • the encoded data 14 input to the code string decoding unit 700 is supplied to the separation unit 514.
  • the separation unit 514 separates the code part in which the mode information 31 is encoded from the supplied encoded data 14 according to the syntax table, and supplies the code part to the mode decoding unit 513.
  • the separation unit 514 separates the code part in which the quantized transform coefficient 13 is encoded from the encoded data 14 and supplies the code part to the coefficient decoding unit 512.
  • the separation unit 514 may supply the supplied encoded data 14 to the coefficient decoding unit 512.
  • the mode decoding unit 513 decodes the code supplied from the separation unit 514 to obtain the mode information 31.
  • the mode information 31 includes information necessary for decoding other than transform coefficients, such as quantization parameters such as a quantization parameter QP and a quantization matrix, and prediction mode information 52.
  • the mode information 31 is supplied to the mode information conversion unit 515.
  • the mode information conversion unit 515 generates decoding method information 58 from the supplied mode information 31 and supplies the decoding method information 58 to the coefficient decoding unit 512.
  • the coefficient decoding unit 512 decodes the encoded data 14 supplied from the separation unit 514 based on the decoding method information 58, and outputs the restored quantized transform coefficient 51 obtained by decoding the quantized transform coefficient 13. That is, the coefficient decoding unit 512 switches between a first decoding method for decoding one symbol at a time and a second decoding method for performing decoding for each coefficient position in units of coefficient positions in accordance with the decoding method information 58. Thus, the encoded data 14 is decoded.
  • the mode information conversion unit 515 includes the quantization parameter QP and the prediction included in the mode information 31 supplied from the mode decoding unit 513 as data used as the encoding method information 30 when the encoded data 14 is encoded.
  • Decoding method information 58 is generated based on the mode information and / or the target code amount information.
  • the quantization parameter QP the compression rate (target code amount) and the prediction direction included in the mode information 31, and the image signal component (luminance component Y,
  • a flag CodingMethodFlag [pos] indicating which one of the first decoding method and the second decoding method is to be selected is generated based on the information used for encoding among the color difference components U and V).
  • the sixth embodiment there is no need to transmit information indicating the transform coefficient decoding method from the encoding side. Therefore, it is possible to reduce the additional information while maintaining the encoding efficiency. Further, since it is not necessary to decode the flag CodingMethodFlag for designating the decoding method, the description of the flag CodingMethodFlag [pos] can be omitted in the syntax as described above.
  • the encoded data 14 may be transmitted from the image encoding device to the image decoding device via a wired or wireless transmission path, or may be decoded from the image encoding device via a storage medium such as an optical disk or a semiconductor memory. It may be passed to the device.
  • the image encoding device or the image decoding device according to each of the above-described embodiments may be configured not only as hardware but also partly or entirely as a software program.
  • a program for causing a computer to execute each function of the image encoding device or the image decoding device includes, for example, a control device such as a CPU (Central Processing Unit), a ROM (Read Only Memory), a RAM ( Connect a storage device such as Random Access Memory), an external storage device such as an HDD (Hard Disk Drive) or an optical disk drive device, a display control device that outputs a display signal to the display device, a keyboard or a mouse, It is installed in a computer having an input / output I / F for inputting / outputting digital signals.
  • the computer may further include a communication I / F for connecting to a communication network.
  • the program is provided in the form of an installable or executable file, recorded on a computer-readable recording medium such as a CD (Compact Disk), a flexible disk (FD), a DVD (Digital Versatile Disk), etc.
  • a computer-readable recording medium such as a CD (Compact Disk), a flexible disk (FD), a DVD (Digital Versatile Disk), etc.
  • a program for realizing the image encoding device or the image decoding device according to each embodiment on a computer is stored on a computer connected to a network such as the Internet, and is provided by being downloaded via the network. It may be configured.
  • a program for realizing the image encoding apparatus or the image decoding apparatus according to each embodiment on a computer may be configured to be provided or distributed via a network such as the Internet.
  • a program for realizing the image encoding device or the image decoding device according to each embodiment on a computer may be provided by being incorporated in advance in a ROM or the like.
  • the program for realizing the image encoding device or the image decoding device according to each embodiment on a computer is an image encoding device, for example, the encoding control unit 130, the image encoding unit 100, and the image decoding device described above are used. If there is, for example, the module configuration includes the decoding control unit 530 and the image decoding unit 500 described above.
  • the CPU reads the program from the above-mentioned storage medium and executes it
  • the above-described units are loaded onto the main storage device (RAM), and if it is an image encoding device, for example, If the encoding control unit 130 and the image encoding unit 100 are image decoding devices, for example, the decoding control unit 530 and the image decoding unit 500 are generated on the main storage device.
  • the image coding method performs variable length coding in coefficient position units using any of the first variable length coding step and the second variable length coding step.
  • the method further includes a step of embedding information indicating whether or not the processing has been performed in the encoded data.
  • the first variable length coding step may perform variable length coding of the coefficient using any one of Golomb-Rice coding, Huffman coding, and fixed length coding.
  • the first variable length coding step includes run length coding and a skip representing whether all the coefficients are 0 or not in a small area obtained by dividing the area composed of a plurality of blocks.
  • a variable length coding of a coefficient is performed using any one of the coding.
  • the image encoding method further includes a step of encoding information indicating a compression rate and transmitting the encoded information to the decoding side.
  • the image decoding method information indicating which one of the first variable length coding and the second variable length coding is used to perform variable length coding in coefficient position units is decoded from the encoded data, and decoding is performed.
  • the first variable length decoding and the second variable length decoding are switched in coefficient position units in accordance with the received information.
  • the first variable length decoding step is characterized in that any one of Golomb-Rice code, Huffman code, and fixed length code is decoded to decode the coefficient.
  • the second variable length decoding step includes a run-length code and a skip code expressing whether all transform coefficients are 0 or not in a small area obtained by dividing the area composed of a plurality of blocks. Any one of them is decoded to decode a coefficient.
  • the image decoding method further includes a step of decoding the encoded information indicating the compression rate.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

 画像データが所定サイズに分割された小画素ブロックに対して直交変換を行い、得られた変換係数に対して可変長符号化を施して符号化データを生成する。可変長符号化は、複数の小画素ブロックからなる領域内で、小画素ブロックにおける垂直および水平空間周波数を座標とした係数位置毎に、1シンボルずつ可変長符号化を行う第1の可変長符号化と、複数シンボルを纏めて可変長符号化することが可能な第2の可変長符号化とを切り替えて行う。第1および第2の可変長符号化の切り替えは、量子化幅、圧縮率、画像信号成分、イントラ予測における予測モードなどに応じて制御する。

Description

画像符号化方法および画像復号方法
 本発明は、画像符号化に関する。
 従来から、動画像データを圧縮符号化する圧縮符号化方法が知られている。このような圧縮符号化方法では、例えば8画素×8画素といった所定サイズの矩形ブロック単位で予測処理、変換処理およびエントロピー符号化処理を行うのが一般的である。例えばAVC/H.264では、符号化ブロックを予測、DCTおよび量子化の処理後の2次元変換係数をジグザグスキャンすることで1次元データ化し、さらに隣接ブロックにおけるDCT係数の個数に応じて可変長符号化テーブルを適応的に切り替えることで変換係数の符号化を行う。
 特許文献1では、変換および量子化後の2次元変換係数を走査し、量子化パラメータに応じて、ランとレベルの頻度数に対して最適化された複数の可変長符号化テーブルのうち1つを選択して係数の符号化を行うことで、符号化効率の改善を図っている。
特許3337583号公報(米国特許第5650782号)
 装置内部で用いられる画像処理LSI(Large-Scale Integration)などでは、回路レイアウトなど様々な制約からメモリバンド幅などが制限されるため、符号化ブロックを例えば2画素×2画素といった小さいサイズで構成する必要が生じる場合がある。しかしながら、AVC/H.264および特許文献1では、符号化ブロック単位で変換係数の1次元化を行うため、符号化ブロックのサイズが小さい場合にはラン数が大きくならず、必ずしも符号化効率が改善しない。
 また、特許文献1では、可変長符号化テーブルをブロック単位で切り替えるため、変換係数と空間周波数との関係を利用した符号化を行うことができず、必ずしも符号化効率が改善しない。
 したがって、本発明の目的は、より高い符号化効率を実現可能な画像符号化方法および画像復号方法を提供することにある。
 本発明は、上述した課題を解決するために、入力画像の対象領域内の複数のブロックのそれぞれを単位として直交変換および量子化して係数を求める変換・量子化ステップと、対象領域内の複数のブロック間で共通な周波数成分の係数を有する複数の係数列を、複数の可変長符号化方式を用いて符号化する可変長符号化ステップとを有し、可変長符号化ステップは、複数の可変長符号化方式を係数列毎に切り替えることを特徴とする。
 また、本発明は、復号対象画像の復号対象領域内の複数の復号対象ブロック間で共通な周波数成分の係数を有する複数の係数列のそれぞれの符号化データを複数の可変長復号方式を用いて可変長復号して、複数の係数列を得る可変長復号ステップと、複数の係数列のうち復号対象ブロック毎の係数を逆量子化・逆変換する逆量子化・逆変換ステップとを有し、可変長復号ステップは、可変長復号方式を係数列毎に切り替えることを特徴とする。
 本発明は、より高い符号化効率が実現可能であるという効果がある。
第1の実施形態の画像符号化装置を示す図。 第1の実施形態の他の画像符号化装置を示す図。 直交変換を説明する図。 直交変換を説明する図。 直交変換を説明する図。 イントラ予測を示す図。 イントラ予測を示す図。 イントラ予測を示す図。 イントラ予測を示す図。 イントラ予測を示す図。 第1の実施形態のエントロピー符号化部を示す図。 第1の実施形態の係数符号化部を示す図。 係数位置のグループ分けを示す図。 係数位置のグループ分けを示す図。 ゴロム・ライス符号を示す図。 ランレングス符号化の処理を示すフローチャート。 ランレングス符号化の例を示す図。 スキップ符号化の例を示す図。 画像ブロックの図。 小画素ブロックの図。 小画素ブロックを生成する他の方法の図。 小画素ブロックを生成する他の方法の図。 画像ブロックと小画素ブロックとを係数位置で表現した図。 変換係数を位置毎に纏めて並べ替えた図。 変換係数を位置毎に纏めて並べ替えた図。 変換係数を位置毎に纏めて並べ替えた図。 変換係数を位置毎に纏めて並べ替えた図。 係数符号化部の処理を示すフローチャート。 符号化パラメータkを決定する処理を示すフローチャート。 第1のシンタクスを示す図。 第1のシンタクスを示す図。 第1のシンタクスを示す図。 第2のシンタクスを示す図。 第2のシンタクスを示す図。 第2の実施形態の画像符号化装置を示す図。 QPnと量子化ステップサイズを示す図。 第3の実施形態のエントロピー符号化部を示す図。 QPnに対する各係数位置のフラグCodingMethodFlagを示す図。 目標符号量に対する各係数位置のフラグCodingMethodFlagを示す図。 予測方向に対する各係数位置のフラグCodingMethodFlagを示す図。 画像信号成分に対する各係数位置のフラグCodingMethodFlagを示す図。 第4の実施形態の画像復号装置を示す図。 第4の実施形態の他の画像復号装置を示す図。 第4の実施形態の符号列復号部を示す図。 第4の実施形態の係数復号部を示す図。 ランレングス符号を復号する手順を示すフローチャート。 第5の実施形態の画像復号装置を示す図。 第6の実施形態の符号列復号部を示す図。 第6の実施形態の画像復号装置を示す図。
<第1の実施形態>
 以下、第1の実施形態を図面を参照しながら説明する。図1Aは、本発明の第1の実施形態に適用可能な画像符号化装置1の一例の構成を示すブロック図である。この画像符号化装置1は、画像符号化部100、符号化制御部130およびバッファ109を有する。
 画像符号化部100に対して、動画像データが所定サイズに分割された画像ブロック10が入力される。画像符号化部100は、符号化制御部130の制御に従い、入力された画像ブロック10を所定サイズの小画素ブロック11に分割する。画像符号化部100は、この小画素ブロック11に基づき、変換処理および量子化処理、予測符号化処理、ならびに、エントロピー符号化処理を行い、符号化データ14を生成する。
 符号化データ14は、バッファ109に一旦溜め込まれ、例えば1フレームを単位として画像符号化装置1から出力される。なお、この画像符号化部100における各処理は、動画像データの各画像信号成分(例えば輝度成分Y、色差成分U、V)に対してそれぞれ行われる。
 画像符号化部100の一例の構成について、より詳細に説明する。図1において、画像符号化部100は、分割部101、減算器102、変換および量子化部103、エントロピー符号化部104、逆量子化および逆変換部105、加算器106、メモリ107、予測部108を有し、符号化制御部130によって制御される。
 符号化制御部130は、画像符号化装置1による符号化処理全般を制御するための符号化制御情報40を、画像符号化部100に供給する。また、符号化制御部130は、画像符号化部100における符号化処理の結果に基づき出力されるフィードバック情報41を、適宜、受け取る。符号化制御情報40は、モード情報31および符号化方法情報30などを含む。モード情報31は、後述する予測モードを示す予測モード情報や、量子化パラメータ(QP)、量子化幅(量子化ステップサイズ)、量子化マトリクスなどの量子化処理に関するパラメータを含む量子化情報といった、変換係数以外の復号に必要な情報を含む。フィードバック情報41は、画像符号化部100での発生符号量を示す符号量情報が含まれる。
 画像符号化部100は、例えばLSI(Large-Scale Integration)チップ上に構成された回路などのハードウェアにより実現される。この場合、符号化制御部130は、当該LSIに接続されるCPU(Central Processing Unit)上でプログラムを実行させることで実現してもよいし、画像符号化部100と同様にしてハードウェアで構成してもよい。画像符号化部100は、符号化制御部130と共に、コンピュータなどでCPU上で画像符号化プログラムを実行させることでも実現可能である。
 入力された画像ブロック10は、分割部101において所定サイズのブロック単位に分割され、小画素ブロック11とされる。ここで、画像ブロック10は、1フレームの画像データまたは1フレームの画像データを分割した一領域である。例えば、画像ブロック10は、n画素×m画素(n,mはそれぞれ自然数)からなる画素ブロックであって、1ライン分の画素データからなる画素ラインや、複数ライン分の画素データからなる画素ブロックラインも画像ブロックの概念に含まれる。小画素ブロック11は、例えばN画素×M画素からなる画素ブロック(N,Mはそれぞれ自然数、且つ、N≦nおよびM≦m)である。画像符号化部100では、この小画素ブロック11を単位として予測符号化処理や変換処理などが行われる。
 分割部101から出力された小画素ブロック11は、減算器102に供給される。減算器102は、供給された小画素ブロック11から、後述する予測部108より出力される予測画像信号19を減算して、予測誤差信号12を生成する。予測誤差信号12は、変換および量子化部103に供給される。
 変換および量子化部103は、先ず、供給された予測誤差信号12に対して所定の変換処理を施し、変換係数を生成する。ここでは、変換処理として、アダマール変換やDCT(離散コサイン変換)といった直交変換を用いる。これに限らず、ウェーブレット変換や独立成分解析などの手法を用いて変換係数を生成してもよい。
 直交変換の例について、図2A、図2Bおよび図2Cを用いて説明する。図2Aは4×1変換、図2Bは2×2変換、図2Cは4×4変換の例をそれぞれ示す。
 4×1変換では、図2Aに例示されるように、分割部101で4画素×1画素の小画素ブロック11を生成し、4画素×1画素でブロック化された予測誤差信号12に対して、水平1次元の直交変換を適用する。直交変換後の変換係数は、空間周波数成分に分解されている。図2Aの例では、値「0」で示される位置が最も空間周波数が低いDC成分を表し、値が大きくなる位置ほど高い空間周波数成分を表す。
 2×2変換では、図2Bに例示されるように、分割部101で2画素×2画素の小画素ブロック11を生成し、2画素×2画素でブロック化された予測誤差信号12に対して、水平および垂直方向の2次元の直交変換を適用する。図中の値(x,y)は、値xが垂直方向の空間周波数成分の位置、値yが水平方向の空間周波数成分の位置を示し、それぞれ数値が大きいほど高い空間周波数成分を表す。図2Bの例では、左上の値(0,0)で示される位置が最も空間周波数が低いDC成分を表し、右下の値(1,1)で示される位置が最も高い空間周波数成分を表す。
 なお、以下では、2×2変換において位置を示す値「0」をLowを意味する「L」とし、値「1」をHighを示す「H」として、垂直方向、水平方向の順に各成分を表す。例えば、値(0,0)のDC成分は、LL成分と表記し、各AC成分をそれぞれHL成分、LH成分、HH成分として、適宜、各成分を表記する。
 4×4変換では、図2Cに例示されるように、分割部101で4画素×4画素の小画素ブロック11を生成し、4画素×4画素でブロック化された予測誤差信号12に対して、水平および垂直方向の2次元の直交変換を適用する。図2Cの例では、値(x,y)は、値xおよび値yは、それぞれ垂直方向および水平方向の空間周波数成分の位置を示し、それぞれ数値が大きいほど高い空間周波数成分を表す。値(0,0)がDC成分位置を示し、値(3,3)が最も空間周波数成分が高い位置となる。
 変換および量子化部103では、上述のようにして生成された変換係数を、後述する符号化制御部130に設定されている量子化パラメータQPに基づき量子化し、量子化された変換係数である量子化変換係数13を生成する。量子化変換係数13は、エントロピー符号化部104に供給されると共に、逆量子化および逆変換部105に供給される。
 逆量子化および逆変換部105は、量子化変換係数13を符号化制御部130に設定されている量子化パラメータQPに従って逆量子化して量子化変換係数13を復元する。そして、復元された量子化変換係数13に対して変換および量子化部103で行った変換と逆の変換を行い、元の予測誤差信号12を復元した復元予測誤差信号16を生成する。復元予測誤差信号16は、加算器106に供給される。加算器106は、この復元予測誤差信号16と、予測部108から出力される予測画像信号19とを加算して、元の小画素ブロック11が復元された復元小画素ブロック信号17を生成する。
 復元小画素ブロック信号17は、メモリ107に記憶され、参照画素信号18として予測部108に供給され、後に符号化処理される小画素ブロック11の予測に用いられる。
 予測部108は、分割部101から出力された小画素ブロック11に対して、イントラ予測を適用する。図3A~図3Eは、イントラ予測の具体的な例を示す。図3A~図3Eは、それぞれ予測方向の異なる5種類の予測モードが示されている。すなわち、イントラ予測においては、メモリ107に記憶される参照画素信号18のうち、予測対象の画素ブロック(この例では、2画素×2画素からなる画素ブロック)に対して空間的に近接する画素信号を用いて、当該画素ブロックの画素値を予測する。
 より具体的には、画像においては隣接画素同士の相関が高いことを利用して、予測方向に従って参照画素信号18の輝度値を予測対象の画素ブロックに対してコピーすることで、予測画像信号19を生成する。図3A~図3Eにおいて、文字「a」~「d」が記された升が予測対象となる画素(以下、予測対象画素)であり、影を付して示される、文字「A」~「G」が記された升が参照画素信号18による画素(以下、参照画素)を示す。
 図3Aは水平方向に予測を行う例である。具体的には、参照画素「E」を水平方向に近接して並ぶ予測対象画素「a」および「b」にコピーし、参照画素「F」を水平方向に近接して並ぶ予測対象画素「c」および「d」にコピーする。図3Bは垂直方向に予測を行う例である。具体的には、参照画素「A」を垂直方向に近接して並ぶ予測対象画素「a」および「c」にコピーし、参照画素「B」を垂直方向に近接して並ぶ予測対象画素「b」および「d」にコピーする。
 また、図3Cは左上および右下を結ぶ斜め方向に予測を行う例である。具体的には、参照画素「E」を右斜め下の予測対象画素「c」にコピーし、参照画素「G」を右斜め下の予測対象画素「a」および「d」にコピーする。そして、参照画素「A」を右斜め下の予測対象画素「b」にコピーする。図3Dは右上および左下を結ぶ斜め方向に予測を行う例である。具体的には、参照画素「B」を左斜め下の予測対象画素「a」にコピーし、参照画素「C」を左斜め下の予測対象画素「b」および「c」にコピーする。そして、参照画素「D」を左斜め下の予測対象画素「d」にコピーする。
 さらに、図3Eは、予測対象となる画素ブロックに隣接する参照画素の平均値を用いて予測を行う例である。具体的には、参照画素「A」、「B」、「E」および「F」の輝度値の平均値を求めて、予測対象画素「a」~「d」にそれぞれコピーする。
 このようにして予測部108で予測された予測画像信号19が上述した減算器102に供給される。
 なお、予測部108における予測方法は、上述の例に限定されない。例えば、平面予測やJPEG-LS(Joint Photographic Experts Group-LS)に採用されているMED(Median Edge Detection)予測、CALIC(Context-based Adaptive Lossless Image Coding)方式に用いられている傾斜適応予測を用いてもよい。また、ピクチャの境界など、予測対象の画素ブロックに隣接する参照画素が存在しない場合には、予測値を「0」として予測無しとしたり、予測値として例えば値「128」などの固定値を用いて予測画像信号19としてもよい。さらに、予測部108に対して、H.264/AVCに採用されているインター予測を適用してもよい。また、図1Bに画像符号化装置1’として例示するように、上述した画像符号化装置1から予測部108を取り除いた構成としてもよい。この場合、予測は行われず、画像ブロック10が直接的に変換および量子化部103に入力される。予測部108を取り除いた場合、予測に関する他の構成、すなわち、減算器102、逆量子化および逆変換部105、加算器106、ならびに、メモリ107が不要となる。
 一方、エントロピー符号化部104は、符号化制御部130などから取得した符号化パラメータに基づき、変換および量子化部103から供給された量子化変換係数13をエントロピー符号化し、符号化データ14として出力する。エントロピー符号化方式としては、等長符号化、ハフマン符号化、算術符号化などの方式を用いることができる。
 また、エントロピー符号化部104が用いる符号化パラメータは、符号化制御情報40に含まれる符号化方法情報30、予測モード情報や量子化パラメータ情報などによるモード情報31を含む。当該符号化パラメータは、変換および量子化部103における変換係数や量子化に関する情報といった、復号の際に必要となる様々なパラメータを含む。
 エントロピー符号化部104により生成された符号化データ14は、画像符号化部100から出力され、図示されない多重化処理を経てバッファ109に一旦溜め込まれる。バッファ109に溜め込まれた符号化データ14は、符号化制御部130が管理する出力タイミングに従って、例えば画像符号化装置1の外部に向けて符号化データ14として出力される。画像符号化装置1から出力された符号化データ14は、例えば、ハードディスクや半導体メモリといった記憶媒体に記憶されたり、通信回線などの伝送系により伝送される。
 次に、画像符号化装置1におけるエントロピー符号化部104について、より詳細に説明する。図4は、本第1の実施形態に適用可能なエントロピー符号化部104の一例の構成を示すブロック図である。図4において、エントロピー符号化部104は、係数符号化部110、符号化方法符号化部111およびモード符号化部112を有する。
 変換および量子化部103から出力された量子化変換係数13が係数符号化部110に入力される。また、符号化方法情報30が係数符号化部110および符号化方法符号化部111にそれぞれ供給される。また、モード情報31がモード符号化部112に供給される。
 符号化方法情報30は、係数符号化部110における量子化変換係数13の符号化方法を指定するための情報である。より具体的には、符号化方法情報30は、画像の所定単位、例えば小画素ブロック単位、入力画像信号単位、フレーム単位またはシーケンス単位で、後述する係数位置毎の可変長符号化方法を示す。また、モード情報31は、復号時に必要となる変換係数以外の情報からなる。例えば、モード情報31には、変換および量子化部103において量子化の際に用いた量子化パラメータQPを示す量子化パラメータ情報や、直交変換後の変換係数の位置を示す位置情報が含まれる。
 なお、変換係数の位置とは、空間周波数の成分の方向を座標軸とし、空間周波数を座標値として考えた場合の、直交変換により得られた変換係数の位置であるものとする。すなわち、係数位置は、直交変換における空間周波数成分に対応する。一例として、上述した図2Bの例では、水平方向および垂直方向による各座標軸が、それぞれ低周波成分(L)と高周波成分(H)とに2分割されて、各変換係数の位置が表される。すなわち、図2Bの例では、変換係数の位置は、座標(L,L)、座標(H,L)、座標(L,H)または座標(H,H)として表されることになる。
 以下では、2×2変換の場合における座標(L,L)、座標(H,L)、座標(L,H)または座標(H,H)の各変換係数の係数位置を、それぞれ位置LL、位置HL、位置LHおよび位置HHのように表記する。
 これら符号化方法情報30およびモード情報31は、それぞれ画像符号化部100の外部から供給される。例えば、符号化方法情報30およびモード情報31は、それぞれ符号化制御部130で生成されて符号化制御情報40に含めて画像符号化部100に供給され、エントロピー符号化部104に入力される。
 係数符号化部110は、量子化変換係数13のエントロピー符号化を、符号化方法情報30に従い、係数位置毎の符号化方法を画像の所定単位、例えば画像ブロック10単位で切り替えながら行う。一方、符号化方法符号化部111が符号化方法情報30を符号化すると共に、モード符号化部112がモード情報31を符号化する。符号化方法符号化部111の符号化出力と、モード符号化部112の符号化出力とが、係数符号化部110による符号化出力に対して埋め込まれて、符号化データ14とされ、エントロピー符号化部104から出力される。
 次に、上述したエントロピー符号化部104における係数符号化部110について、より詳細に説明する。図5は、本第1の実施形態による係数符号化部110の一例の構成を示すブロック図である。係数符号化部110は、係数位置抽出部120、符号化方法判定部121、スイッチ部122、ならびに、第1可変長符号化部123および第2可変長符号化部124を有する。
 量子化変換係数13が係数符号化部110に入力され、係数位置抽出部120に供給される。係数位置抽出部120は、供給された量子化変換係数13をスイッチ部122の入力端122Aに供給すると共に、当該量子化変換係数13から係数位置を抽出し、当該係数位置を示す係数位置情報20を出力する。例えば、量子化変換係数13を小画素ブロック11毎に計数することで、当該小画素ブロック11における量子化変換係数13の係数位置を知ることができる。
 スイッチ部122は、後述する符号化方法判定部121から出力される切替信号21により、出力端122Bおよび122Cが切り替えられる。出力端122Bおよび122Cに対して、第1可変長符号化部123および第2可変長符号化部124がそれぞれ接続される。すなわち、入力端122Aに供給された量子化変換係数13は、切替信号21に応じて第1可変長符号化部123および第2可変長符号化部124の何れか一方に、選択的に供給される。
 係数位置情報20は、係数位置単位で情報を示してもよいし、係数位置に応じてグループ分けしたグループ単位で情報を示してもよい。図6Aおよび図6Bは、係数位置のグループ分けの例を示す。図6Aおよび図6Bの例では、水平および垂直成分を統合した係数位置すなわち空間周波数に応じてグループ分けを行っている。
 図6Aは、2×2変換において、係数位置を3グループに分けている例である。図6Aの例では、水平および垂直成分が何れも低周波数成分(L)であるグループ#1と、水平および垂直成分のうち一方が低周波数成分であるグループ#2と、水平および垂直成分が何れも高周波成分(H)であるグループ#3とにグループ分けされている。
 図6Bは、4×4変換において、係数位置を4グループに分けている例である。図6Bの例では、空間周波数を0~3の4段階に分類したときに、水平および垂直成分の合計値がそれぞれ0であるグループ#1と、当該合計値が1または2であるグループ#2と、当該合計値が3または4であるグループ#3と、当該合計値が5以上のグループ#4との4グループにグループ分けされている。
 係数位置情報20は、符号化方法判定部121に供給される。符号化方法判定部121には、符号化方法情報30も供給される。符号化方法判定部121は、係数位置情報20と符号化方法情報30とに基づき、係数位置単位または位置グループ単位に切替信号21を出力し、スイッチ部122に供給する。これにより、スイッチ部122が符号化方法情報30に基づき係数位置または位置グループ単位に切り替えられる。係数位置単位または位置グループ単位で適応的に、第1可変長符号化部123または第2可変長符号化部124に対して、量子化変換係数13が供給される。
 ここで、第1可変長符号化部123でなされる第1の可変長符号化と、第2可変長符号化部124でなされる第2の可変長符号化について説明する。第1可変長符号化部123では、第1の可変長符号化として、量子化変換係数13に対して1シンボルずつ符号を割り当てる、1シンボル単位符号化を適用する。このような1シンボル単位符号化の典型的な例としては、ゴロム・ライス符号化、ハフマン符号化および固定長符号化が知られている。
 図7は、ゴロム・ライス符号の例を示す。ゴロム・ライス符号は、可変長のunary符号の列prefixと、固定長の符号列suffixとを連結した符号である。図7において、符号列suffixの符号長kの値に応じた予測残差を符号化した際の符号化列が示されている。ゴロム・ライス符号を復号する際には、どの符号長kの値を用いて符号化したかという情報が必要となる。そのため、符号長kの値を、ゴロム・ライス符号の符号化パラメータとして、復号側に渡す。
 なお、第1の可変長符号化としてハフマン符号化を用いる場合、予め与えられたハフマン符号化の符号表を決定する確率モデルを示す情報を、符号化パラメータkとして復号側に渡す。
 第2可変長符号化部124では、第2の可変長符号化として、供給された、量子化変換係数13に対して、同一の係数位置の複数シンボルに対して纏めて符号を割り当てることが可能な複数シンボル一括符号化を適用する。このような複数シンボル一括符号化の典型的な例として、ランレングス符号およびスキップ符号化が知られている。
 ランレングス符号化について、概略的に説明する。ランレングス符号化は、一連のシンボル群を、そのデータの値(value)と連続数(ラン数run)とで表現するようにした符号化方式である。ランレングス符号化は、同一のシンボルが連続している場合に、この連続したシンボルを纏めて符号化することが可能であるため、平坦な画像などにおいて高い符号化効率が期待できる。ランレングス符号化では、シンボルが、保持された状態(state)と等しい場合にラン数をカウント(インクリメント)し、保持された状態state以外のシンボルでは、そのシンボルの値(value)を符号化する。この、保持された状態state以外のシンボルを符号化する符号化方式としては、ゴロム・ライス符号化や固定長符号化などを用いることができる。また、ラン数runは、画像ブロック10内の小画素ブロック11の数に応じて、ゴロム・ライス符号化若しくはハフマン符号化あるいは固定長符号化を用いて符号化する。
 図8は、ランレングス符号化の一例の処理手順を示すフローチャートである。この図8に例示されるフローチャートにおける各処理は、第2可変長符号化部124において実行される。先ず、ラン数runと、データの状態を表す状態stateとにそれぞれ0を代入して初期化する(ステップS301)。次に、ステップS303で、符号化対象のシンボルxが状態stateと等しいか否かを判定する。若し、シンボルxが状態stateと等しいと判定された場合(ステップS303の「YES」)、処理はステップS304に移行され、ラン数runの値を1だけインクリメントする。そして、処理がステップS307に移行される。
 一方、ステップS303で、符号化対象のシンボルxが状態stateと等しくないと判定された場合は(ステップS303の「NO」)、処理はステップS305に移行される。ステップS305では、ラン数runおよびシンボルxを符号化する。その後、ラン数runに0を代入すると共に状態stateをシンボルxで更新し(ステップS306)、処理がステップS307に移行される。
 ステップS307では、全ての符号化対象のシンボルに対して、ステップS303~ステップS306の処理を実行したか否かが判定される。若し、全ての符号化対象シンボルに対して処理が実行されていないと判定されたら、ステップS302で符号化対象を次のシンボルに移動させて、処理がステップS303に戻される。
 一方、ステップS307で全ての符号化対象シンボルに対して処理が実行されたと判定されたら、処理はステップS308に移行される。ステップS308では、ラン数runが0より大きければ、ラン数runを符号化する。すなわち、上述のステップS304からステップS307を介してステップS308に移行された場合に、ラン数runの符号化を行う。この場合、符号化対象のシンボル総数MAX_NUMが既知の場合、ラン数runの値を1デクリメントした値を符号化してもよい。なお、ステップS308でラン数runが0であれば、そのまま一連の処理が終了される。
 図9は、符号化対象シンボル総数MAX_NUM=16の場合のシンボル位置(num)毎のランレングス符号化の具体的な処理の例を示す。図9の例では、シンボル位置num=0~4において、値が0の符号化対象シンボルが連続している。そのため、これらのシンボルの処理時には、ステップS303の判定により処理がステップS304に移行されて、ラン数runが1ずつインクリメントされる。状態stateは更新されず、値0が維持される。
 また、図9の例では、シンボル位置num=5で符号化対象のシンボルの値が1となっている。この値は状態stateの値と異なるため、ステップS303の判定により処理がステップS305に移行され、ラン数runとシンボル位置num=5におけるシンボルの値1が符号化される。そして、ラン数runに0が代入されると共に状態stateの値が当該シンボルの値1に更新される。
 このように、ランレングス符号化においては、符号化対象のシンボル値において同一値が連続して現れる場合には、ラン数runを1ずつインクリメントする。異なるシンボル値が現れた場合に、ラン数runおよび当該異なるシンボル値を符号化する。図9の例では、シンボル位置num=8~11においてシンボル位置毎に異なるシンボル値が現れているので、ラン数runおよびシンボル値の符号化が毎回行われている。
 なお、上述した図8のフローチャートによる処理において、値が0となるシンボルの出現頻度が高い場合には、状態stateの値を0に固定的としてもよい。これにより、シンボル値が0の場合にラン数runを符号化する必要がなくなるため、符号化効率を向上できる。
 次に、上述したスキップ符号化について、概略的に説明する。スキップ符号化は、一連のシンボル群を複数のグループに分割し、グループ内のシンボルが全てゼロであるか否かを判定し、この判定結果に基づいて符号化を行う符号化方式である。
 スキップ符号化の具体的な例を、図10に示す。図10の例では、シンボル位置を4つのグループに分け、それぞれのグループ内でシンボルが全て0であるか否かを判定する。グループ内のシンボルが全て0である場合、スキップ情報を示すフラグskipflag=TRUEであることを示す情報を符号化する。すなわち、グループ内のシンボルが全て0である場合には、フラグskipflag=TRUEを示す情報のみを符号化するだけで、そのグループ内のシンボルが符号化される。一方、グループ内のシンボルの少なくとも1つが0ではない場合、フラグskipflag=FALSEであることを示す情報を符号化し、さらにグループ内の個々のシンボルをゴロム・ライス符号、ランレングス符号などの可変長符号などを使用して符号化する。
 上述したように、第1可変長符号化部123による符号化では、1シンボル当たり1ビット未満の符号割り当てが不可能である。これに対して、第2可変長符号化部124による符号化では、同一のシンボル(特に0)が連続するようなシンボル列を纏めて符号化し、1シンボル当たり1ビット未満の符号割り当てが可能となる。そのため、第2可変長符号化部124では、画像の平坦領域や、予測が有効な領域において、符号化効率を向上させることが可能となる。
 一方、第2可変長符号化部124による符号化は、例えば上述した図9のシンボル位置num=8~11に示すように同一のシンボルが連続しない場合には、シンボル毎にラン数runを符号化する必要がある。そのため、シンボル列において同一のシンボルが連続しないテクスチャ領域や、予測が有効でない領域においては、第2可変長符号化部124による符号化は、第1可変長符号化部123による符号化と比較して符号化性能が悪化する。すなわち、このような同一のシンボルが連続しないような領域では、第1可変長符号化部123による符号化が有効となる。
 次に、本実施形態による画像符号化装置1において特徴的な処理である、エントロピー符号化部104内の係数符号化部110の処理について、より詳細に説明する。なお、以下では、画像符号化装置1に入力される画像ブロック10は、2ラインからなるブロックであるものとする(図11A参照)。この画像ブロック10が分割部101で、2画素×2画素のサイズを持つ小画素ブロック11、11、…に分割されるものとする(図11B参照)。画像ブロック10は、符号化対象フレーム中の符号化処理の対象領域である。画像ブロック10内に存在する少画像ブロック11のそれぞれは、符号化処理の対象ブロックである。
 なお、小画素ブロック11のサイズは、係数符号化部110において直交変換を適用するサイズと対応するものとする。小画素ブロック11のサイズが2画素×2画素であるこの例では、直交変換は、図2Bを用いて説明した2×2変換により行われる。
 小画素ブロック11を生成するための他の方法として、画像ブロック10のサイズを例えば8画素×8画素(図12A参照)、小画素ブロック11のサイズを例えば2画素×2画素とする。そして、図12Bに例示されるように、小画像ブロック11のサイズで画像ブロック10の内部をジグザグスキャンすることで、画像ブロック10の画素データを小画素ブロック11のサイズに従い並べ替えてもよい。
 図13は、上述した2ラインの画素データによる画像ブロック10と、当該画像ブロック10が2画素×2画素のブロックに分割された小画素ブロック11、11、…とを、係数位置LL、HL、LHおよびHHを用いて表現した例を示す。なお、図13中の数字0、1、…は、小画素ブロック11を区別するために便宜的に付した番号である。値BLKは、画像ブロック10内の小画素ブロック11の数を示す。また、以下では、係数位置LL、HL、LHおよびHHを、適宜、係数位置[pos]として記述する。この場合、値posは、値LL、HL、LHおよびHHの何れかとなる。
 すなわち、2画素×2画素からなる小画素ブロック11に対して2×2変換を施すと、水平および垂直成分がそれぞれ低周波成分からなる、位置LLに対応する量子化変換係数13と、水平および垂直成分の何れか一方が低周波成分からなる、位置HLおよび位置LHにそれぞれ対応する量子化変換係数13と、水平および垂直成分がそれぞれ高周波成分からなる、位置HHに対応する量子化変換係数13とがそれぞれ生成される。
 なお、変換係数を水平および垂直方向の係数位置、ならびに、小画素ブロック11の画像ブロック10上での位置に応じて並べてなる面を、係数面と呼ぶ。
 図14A~図14Dは、図13に例示した係数面上の各量子化変換係数13、13、…を、係数位置毎に、画像ブロック10単位でそれぞれ纏めて並べ替えた例を示す。ここでは、2画素×2画素のサイズの小画素ブロック11に対して2×2変換を適用するため、各小画素ブロック11、11、…は、それぞれ4の係数位置LL、HL、LHおよびHHで表現される。図14Aは、係数面における位置LLの係数を纏めた例である。図14Bは、係数面における位置HLの係数を纏めた例である。図14Cは、係数面における位置LHの係数を纏めた例である。図14Dは、係数面における位置HHの係数を纏めた例である。すなわち、図14A~図14Dのそれぞれは、変換係数を周波数成分毎に並べた係数列を示す。なお、図14A~図14Dにおいて、同じ番号の係数は、同一の小画素ブロック11に属することを示す。
 本実施形態においては、係数位置LL、HL、LHおよびHH、すなわち、変換係数を周波数成分毎に並べた係数列に対して、第1可変長符号化部123による第1の可変長符号化と、第2可変長符号化部124による第2の可変長符号化とがそれぞれ選択的に適用される。本実施形態の第1の可変長符号化は、係数列を係数毎に可変長符号化する方式である。本実施形態の第2の可変長符号化は、係数列内で1ビット以上の可変長の部分データ毎に符号化する方式である。係数位置LL、HL、LHおよびHHすなわち係数位置[pos]に対して、それぞれ第1可変長符号化および第2可変長符号化のうち何れを適用させるかは、フラグCodingMethodFlag[pos]により示す。値posは、係数位置LL、HL、LHおよびHHをそれぞれ示す値LL、HL、LHおよびHHである。このフラグCodingMethodFlag[pos]は、上述した符号化方法情報30に相当する。
 より具体的な例として、フラグCodingMethodFlag[pos]が値TRUEを示す場合、値[pos]で示される周波数成分の量子化変換係数13に対して、第1の可変長符号化を適用する。一方、フラグCodingMethodFlag[pos]が値FALSEを示す場合、値[pos]で示される周波数成分の量子化変換係数13に対して、第2の可変長符号化を適用する。なお、第1の可変長符号化および第2の可変長符号化の何れかを示すフラグCodingMethodFlag[pos]の値は、上述のTRUEおよびFALSEに限られず、例えば0および1を用いてもよい。
 すなわち、上述した図5に例示される構成において、符号化方法判定部121は、係数位置抽出部120から供給された係数位置情報20と、符号化制御部130などから供給された符号化方法情報30とに基づき、スイッチ部122を制御する。より具体的には、係数位置情報20が示す係数位置[pos]に対応するフラグCodingMethodFlag[pos]が値TRUEを示していれば、出力端122Bを選択するように、スイッチ部122を制御する。一方、係数位置[pos]に対応するフラグCodingMethodFlag[pos]が値FALSEを示していれば、出力端122Cを選択するように、スイッチ部122を制御する。
 第1の可変長符号化にゴロム・ライス符号化を、第2の可変長符号化にランレングス符号化を適用した場合には、上述したゴロム・ライス符号化による符号化パラメータkを画素ブロック10毎に最適化する。符号化パラメータkが最適化された最適化符号化パラメータbest_kは、量子化変換係数13が符号化された符号化データと共に、復号側に伝送される。
 図15は、係数符号化部110における一例の処理を示すフローチャートである。この図15に例示する処理は、第1の可変長符号化としてゴロム・ライス符号化を用い、ゴロム・ライス符号化における符号化長である符号化パラメータkが予め決められている場合の例である。第2の可変長符号化としては、ランレングス符号化を用いるものとする。
 なお、以下では、小画素ブロック11が2画素×2画素からなるものとする。また、符号化パラメータkは、例えばエントロピー符号化部104において固定的に決められているか、若しくは、後述する最適化処理により符号化パラメータkが決定されているものとする。
 先ず、エントロピー符号化部104に供給された量子化変換係数13に対する小画素ブロック11毎の処理が開始される(ステップS101)。次のステップS102で、処理対象の小画素ブロック11における係数位置[pos]毎の処理が開始される。
 ここで、例えば量子化変換係数13は、係数位置[pos]の所定の順序、例えば、係数位置[LL]、係数位置[HL]、係数位置[LH]および係数位置[HH]の順に係数符号化部110に入力され、係数位置抽出部120に供給されるものとする。これに限らず、量子化変換係数13、13、…のそれぞれに対し、係数位置[pos]を示す情報を付加してもよい。係数位置抽出部120は、入力された量子化変換係数13について、係数位置[pos]を示す係数位置情報20を出力する。この係数位置情報20は、符号化方法判定部121に供給される。
 係数位置[pos]毎の処理が開始されると、処理がステップS103に移行される。ステップS103で、符号化方法判定部121は、係数位置抽出部120から供給された係数位置情報20に基づき現在処理対象としている係数位置[pos]を取得する。そして、取得された係数位置[pos]に対応する符号化方法情報30から得られるフラグCodingMethodFlag[pos]の値が、第1の可変長符号化を示す値(TRUE)であるか否かを判定する。
 若し、フラグCodingMethodFlag[pos]の値が第1の可変長符号化を示す値であると判定されたら、処理はステップS104に移行される。ステップS104で、符号化方法判定部121は、フラグCodingMethodFlag[pos]の値(TRUE)に従い、スイッチ部122を出力端122Bが選択されるように制御する。係数位置[pos]の量子化変換係数13は、スイッチ部122を介して第1可変長符号化部123に供給され、符号化パラメータkに従いゴロム・ライス符号化される。係数位置[pos]の量子化変換係数13がゴロム・ライス符号化された符号化データは、係数符号化部110から出力される。
 一方、フラグCodingMethodFlag[pos]の値が第1の可変長符号化を示す値ではないと判定されたら、処理はステップS105に移行される。すなわち、この場合、フラグCodingMethodFlag[pos]の値が第2の可変長符号化を示す値(FALSE)となっている。ステップS105で、符号化方法判定部121は、フラグCodingMethodFlag[pos]の値(FALSE)に従い、スイッチ部122を出力端122Cが選択されるように制御する。係数位置[pos]の量子化変換係数13は、スイッチ部122を介して第2可変長符号化部124に供給される。
 なお、ここでは、ゴロム・ライス符号化による符号化パラメータkを最適化する方法について説明したが、これはこの例に限定されない。すなわち、図15のフローチャートによる処理は、符号化パラメータkとして、ハフマン符号化における符号表を決定する確率モデルを示す情報を用いる際にも適用可能である。
 第2可変長符号化部124は、供給された量子化変換係数13に対して、図8のフローチャートを用いて説明したようにして、ランレングス符号化を施す。このとき、第2可変長符号化部124は、符号化対象シンボルが0でない場合、当該符号化対象シンボルの値(value)に対し、符号化パラメータkに従ったゴロム・ライス符号化を施す。
 一方、第2可変長符号化部124は、当該符号化対象シンボルの値が0である場合、係数位置[pos]におけるラン数runおよび状態stateを、当該係数位置[pos]に関連付けて、メモリに保持しておく。例えば、メモリ上に当該係数位置[pos]で状態stateが等しいラン数runが記憶されていれば、当該ラン数runを1だけインクリメントする。このように、係数位置[pos]におけるラン数runおよび状態stateをメモリに保持しておくことで、画像ブロック10の全シンボルをメモリに保持することなく、小画素ブロック11に対する処理を逐次的に行うことが可能である。
 なお、ゴロム・ライス符号化で用いる符号化パラメータkは、第1の可変長符号化と第2の可変長符号化とで異なる値を用いてもよい。
 ステップS104またはステップS105の処理が終了すると、処理はステップS106に移行される。ステップS106では、ステップS101で処理対象とされた小画素ブロック11内の全ての係数位置[pos]に対する処理が終了したか否かが判定される。若し、終了していないと判定されたら、処理はステップS102に戻され、当該小画素ブロック11内の次の係数位置[pos]に対する処理が開始される。
 一方、ステップS106で、処理対象とされた小画素ブロック11内の全ての係数位置[pos]に対する処理が終了したと判定されたら、処理はステップS107に移行される。ステップS107では、ステップS101で処理対象とされた小画素ブロック11が含まれる画像ブロック10について、当該画像ブロック10内の全ての小画素ブロック11に対する処理が終了したか否かが判定される。若し、終了していないと判定されたら、処理はステップS101に戻され、当該画像ブロック10内の次の小画素ブロック11に対する処理が開始される。
 ステップS107で、当該画像ブロック10内の全ての小画素ブロック11に対する処理が終了したと判定されたら、この図15に示される一連の処理が終了される。そして、例えば次の画像ブロック10に対する処理が同様にして開始される。
 次に、符号化パラメータkを決定するための一例の処理について、図16のフローチャートを用いて説明する。先ず、係数位置[pos]毎の符号化パラメータk[pos]を求める処理が開始されると(ステップS110)、係数符号化部110は、上述した図15のフローチャートにおけるステップS101~ステップS107の処理を実行し、発生符号量Bitsを求める(ステップS111)。係数符号化部110は、このステップS101~ステップS107の処理を、符号化パラメータk毎および係数位置[pos]毎に実行し(ステップS112)、符号化パラメータk毎および係数位置[pos]毎の発生符号量Bits[pos][k]を算出する。
 なお、ステップS111において、実際に符号化データを出力する必要は無く、発生符号量のみを計算すればよい。例として、ゴロム・ライス符号を適用する場合、符号化シンボルxにおける符号量Bits_xは、次式(1)に示される手順により計算できる。
 なお、式(1)は、プログラム言語であるC言語の様式に従い、計算の手順を示したものである。式(1)の各行の先頭に「:(コロン)」で区切られて記述される数字は、各行を区別するための行番号である。1行目から6行目までの全体が、式(1)を示す。
1: Bits_x=0
2: abs_x=abs(X)
3: q=abs_x>>k
4: if (q<ESC_LEN) Bits_x+=q+k+1
5: else Bits_x+=ESC_LEN+SYMBOL_LEN
6: if (abs_x!=0) Bits_x+=1   …(1)
 式(1)において、オペレータabs(X)は、値Xの絶対値を返す。パラメータESC_LENは、エスケープコードとの境界を示す。また、値SYMBOL_LENは、符号化シンボルのビット幅を示す。本実施形態では、変数qがパラメータESC_LENの値を超える場合にはエスケープ符号を適用しているが、これはこの例に限定されない。例えば、エスケープ符号を適用せず、単に値(q+k+1)を符号化シンボルxに対する符号量Bits_xとしてもよい。この符号量Bits_xを符号化シンボルx毎に順次加算することで、係数位置[pos]毎の符号量Bits[pos]の算出が可能である。
 ステップS111で、ある符号化パラメータkおよび係数位置[pos]について発生符号量Bits[pos][k]が求められたら、処理はステップS112に移行される。ステップS112では、係数符号化部110は、全ての符号化パラメータkおよび係数位置[pos]について発生符号量Bits[pos][k]が求められたか否かを判定する。若し、求められていないと判定されたら、処理はステップS110に移行され、次の符号化パラメータkまたは係数位置[pos]について、発生符号量Bits[pos][k]を求める。
 一方、ステップS112で、全ての符号化パラメータkおよび係数位置[pos]について発生符号量Bits[pos][k]が求められたと判定されたら、処理はステップS113に移行される。ステップS113で、係数符号化部110は、係数位置[pos]毎に、発生符号量Bits[pos]が最小となる符号化パラメータkを求める。係数位置[pos]において発生符号量Bits[pos]が最小となる符号化パラメータkを、最適化符号化パラメータbest_k[pos]とする。
 係数位置[pos]毎の最適化符号化パラメータbest_k[pos]が求められたら、処理はステップS114に移行する。ステップS114で、係数符号化部110は、この最適化符号化パラメータbest_k[pos]をゴロム・ライス符号化における符号化パラメータkとして用いて、上述した図15のフローチャートによる処理を行い、量子化変換係数13が符号化された符号化データを出力する。また、係数符号化部110は、最適化符号化パラメータbest_k[pos]のインデクス値を固定長符号化して、当該符号化データに埋め込む。
 このように、本実施形態では、量子化変換係数13に対する可変長符号化方法として、1シンボル毎に符号を割り当てる1シンボル符号化による第1の可変長符号化と、複数のシンボルに纏めて符号を割り当てることが可能な複数シンボル一括符号化による第2の可変長符号化方式とを用意する。そして、量子化変換係数13の係数位置すなわち空間周波数毎に、第1の可変長符号化と第2の可変長符号化とのうち何れを用いるかを選択可能としている。そのため、量子化変換係数13に対して、空間周波数の性質に応じて適応的に可変長符号化を行うことができる。
 なお、上述では、画像ブロック10のサイズを2ラインであるとして説明したが、これはこの例に限定されない。例えば、画像ブロック10を、2ラインを垂直方向に区切った任意の領域としてもよいし、4ラインなど、2の倍数のライン数で以て画像ブロック10を構成してもよい。また、画像ブロック10のサイズが4ライン以上である場合には、当該画像ブロック10内部を、2画素×2画素単位でジグザグスキャンして、小画素ブロック11を構成してもよい(図12B参照)。
 また、上述では、2種類の可変長符号化方法を係数位置毎に切り替えているが、これはこの例に限定されない。例えば、3種類以上の可変長符号化方法を切り替えるようにしてもよい。一例として、ゴロム・ライス符号化、ランレングス符号化およびスキップ符号化の3種類の可変長符号化方法を係数位置毎に切り替えてもよい。
 次に、本実施形態の画像符号化部100から出力される符号化データ14に適用可能なシンタクスの例について、図17A~図17C、ならびに、図18Aおよび図18Bを用いて説明する。以下に説明するシンタクスに従い、符号化データ14のデータが配列される。したがって、このシンタクスを示すシンタクステーブル符号化側および復号側でそれぞれ持つことで、復号側では、符号化データ14を適切に復号することが可能となる。
 なお、図17A~図17C、ならびに、図18Aおよび図18Bにおいては、本実施形態の主題に深く関わる部分を中心に示し、その他の部分については、煩雑さを避けるために表示を省略している。
 先ず、画像ブロック10内の小画素ブロック11を逐次的に処理する方式により生成される符号化データ14の一例の構造を示す第1のシンタクスの例について、図17A、図17Bおよび図17Cを用いて説明する。なお、これら図17A、図17Bおよび図17Cにおいては、シンタクスを、プログラム言語の1つであるC言語の様式に従い記述している。
 第1のシンタクスによれば、符号化データ14は、ヘッダ、ブロックおよびサブブロックから構成される。ヘッダは、符号化データ14のヘッダ情報が記述される。ヘッダは、例えば、画像データの1フレームや、一連のフレームからなるシーケンスに対して適用される。ブロックは、符号化データ14における画像ブロック10を構成するデータを含む。サブブロックは、符号化データ14における小画素ブロック11を構成するデータを含む。したがって、ブロックは、サブブロックのシンタクスを含む。
 図17Aは、ヘッダの一例の構造を表すシンタクスを示す。ヘッダのシンタクスには、係数位置[pos]毎の符号化方法情報30すなわちフラグCodingMethodFlag[pos]が記述される。係数位置[pos]の値NUM_POSは、係数位置[pos]または係数位置[pos]をグループ分けしたグループ数が記述される。
 図17Bは、ブロックの一例の構造を表すシンタクスを示す。この図17Bに例示されるシンタクスにおいては、画像ブロック10が値NUM_SEGで示される個数のセグメントsegに分割されている。図17Bのシンタクスにおいて、セグメントseg毎に、予測モードpred_modeが記述される。また、各セグメントsegにおいて、係数位置[pos]毎に符号化パラメータを示すインデクス値CodingParamIdx[pos]が記述される。このインデクス値CodingParamIdx[pos]では、例えばゴロム・ライス符号化における符号化パラメータkが記述される。
 さらに、ブロックのシンタクスにおいて、各セグメントsegに含まれる各サブブロックsubblock()が記述される。値NUM_BLKは、セグメントsegに含まれるサブブロックの数を示す。さらにまた、係数位置[pos]において、フラグCodingMethodFlag[pos]が値FALSE、且つ、状態state[pos]が0、且つ、ラン数run[pos]が0より大きい場合に、ラン数run[pos]が記述される。
 なお、ランレングス符号化に用いられるラン数run[pos]および状態state[pos]は、係数位置[pos]毎に、画像ブロック単位またはセグメント単位で0に初期化される。
 図17Cは、サブブロックの一例の構造を表すシンタクスを示す。サブブロックにおいては、係数位置[pos]毎に、フラグCodingMethodFlag[pos]の値に応じて記述内容が変わる。すなわち、フラグCodingMethodFlag[pos]が値TRUEであれば、ゴロム・ライス符号により符号化された量子化変換係数13である、係数coef[blk][pos]が係数位置[pos]に対応して記述される。
 一方、サブブロックのシンタクスにおいて、フラグCodingMethodFlag[pos]が値TRUE以外、すなわち値FALSEの場合、状態state[pos]が係数coef[blk][pos]と異なるか否かでさらに記述が変わる。すなわち、状態state[pos]が係数coef[blk][pos]と異なる場合、ランレングス符号化によるラン数runおよび状態stateが、係数位置[pos]に対応して記述される。
 次に、量子化変換係数13を係数位置[pos]毎に符号化する方式により生成される符号化データ14の一例の構造を示す第2のシンタクスの例について、図18Aおよび図18Bを用いて説明する。なお、これら図18Aおよび図18Bにおいては、上述と同様にして、シンタクスを、プログラム言語の1つであるC言語の様式に従い記述している。
 第2のシンタクスによれば、符号化データ14は、ヘッダおよびブロックから構成される。ヘッダは、符号化データ14のヘッダ情報が記述される。ヘッダは、例えば、画像データの1フレームや、一連のフレームからなるシーケンスに対して適用される。ブロックは、符号化データ14における画像ブロック10を構成するデータを含む。
 図18Aは、ヘッダの一例の構造を表すシンタクスを示す。この第2のシンタクスによるヘッダ構造は、図17Aを用いて説明した第1のシンタクスによるヘッダ構造と同一なので、ここでの説明を省略する。
 図18Bは、ブロックの一例の構造を表すシンタクスを示す。この第2のシンタクスによるブロックは、図17Bに示した第1のシンタクスによるブロックと異なり、第1および第2の可変長符号化の結果が、小画素ブロック11毎にブロック内に直接的に記述される。なお、ここでは、ブロックのシンタクスにより記述される画像ブロック10に含まれる小画素ブロック11、11、…を、変数blkを用いて小画素ブロック[blk]として説明する。
 図18Bのシンタクスにおいて、セグメントseg毎に、予測モードpred_modeが記述される。また、各セグメントsegにおいて、係数位置[pos]毎に符号化パラメータを示すインデクス値CodingParamIdx[pos]が記述される。このインデクス値CodingParamIdx[pos]では、例えばゴロム・ライス符号化における符号化パラメータkが記述される。
 係数位置[pos]毎の記述は、フラグCodingMethodFlag[pos]の値に応じて変わる。すなわち、フラグCodingMethodFlag[pos]が値TRUEであれば、ゴロム・ライス符号により符号化された量子化変換係数13である係数coef[blk][pos]が、小画素ブロック11に対応する小画素ブロック[blk]毎に、当該小画素ブロック[blk]における係数位置[pos]に対応して記述される。
 一方、フラグCodingMethodFlag[pos]が値TRUE以外、すなわち値FALSEであれば、状態state[pos]が係数coef[blk][pos]と異なるか否かでさらに記述が変わる。すなわち、状態state[pos]が係数coef[blk][pos]と異なる場合、ランレングス符号化によるラン数runおよび状態stateが、係数位置[pos]に対応して記述される。
 また、係数位置[pos]について小画素ブロック[blk]の処理が全て終了した後に、状態stateが0、且つ、ラン数runが0より大きければ、当該係数位置[pos]の記述の後ろに、ラン数run[pos]が記述される。
 上述したシンタクスにおいては、可変長符号化方法を切り替えるための情報であるフラグCodingMethodFlagをヘッダに含めているが、これはこの例に限定されない。すなわち、フラグCodingMethodFlagをブロックやサブブロックに含めるようにしてもよい。フラグCodingMethodFlagをブロックに含める場合には、可変長符号化方法の切り替えをセグメント毎に行うことができる。また、フラグCodingMethodFlagをサブブロックに含める場合には、可変長符号化方法の切り替えを小画素ブロック11、11、…毎に行うことができる。同様に、予測モードpred_modeやインデクス値CodingParamIdxをヘッダやサブブロックに含め、シーケンスやフレーム毎、あるいは、小画素ブロック11、11、…毎に予測モードや符号化パラメータを指定するようにしてもよい。
 また、図17A~図17C、ならびに、図18Aおよび図18Bに例示したシンタクスに対し、例えば行間に本実施形態で定義していないシンタクス要素を挿入してもよいし、条件分岐に関する記述をさらに含ませてもよい。例えば、モード情報31がシンタクスに含められる。モード情報31は、上述したように、予測モード情報や、量子化パラメータQP、量子化ステップサイズ、量子化マトリクスなどの量子化処理に関するパラメータを含む量子化情報といった、変換係数以外の復号に必要な情報を含む。
 さらに、シンタクステーブルを複数のテーブルに分割したり、複数に分かれたシンタクステーブルを統合することも可能である。さらにまた、上述したシンタクスにおいて示した各用語は、これらに限定されるものではなく、利用する形態に応じて任意に変更してもよい。
 本実施形態では、第1可変長符号化部123および第2可変長符号化部124に、1シンボルに対して1ビット以上の符号を割り当てる可変長符号化を適用しているが、これはこの例に限定されない。すなわち、第1可変長符号化部123および第2可変長符号化部124のそれぞれに、1シンボルに対して1ビット未満の符号割り当てが可能な可変長符号化を適用させてもよい。このような可変長符号化の例として、コンテキストベースの適応算術符号化であるCABAC(Context-based Adaptive Binary Arithmetic Coding)がある。
 この場合、第1可変長符号化部123と第2可変長符号化部124とで、算術符号化に適用するコンテキスト(確率テーブル)およびその遷移を異ならせる。コンテキストの遷移が異なる第1可変長符号化部123および第2可変長符号化部124を、スイッチ部122により係数位置毎に切り替えて適用することで、算術符号化において符号化性能を向上させることができる。一例として、変換係数のエントロピーが小さい高周波成分と、当該エントロピーが大きい低周波成分とでコンテクストを異ならせることにより、適切な確率モデルを持つ算術符号化を実現できる。
 なお、上述では、量子化および変換部103は、直交変換して得られた変換係数を量子化するように説明したが、これはこの例に限定されない。すなわち、量子化処理を行わずに、直交変換して得られた変換係数をそのままエントロピー符号化部104と、逆量子化および逆変換部105とに供給してもよい。この場合、例えば逆量子化および逆変換部105における逆量子化処理など、量子化処理に対応する他の処理は、全て行わないことになる。
<第2の実施形態>
 次に、第2の実施形態について説明する。本第2の実施形態は、動画像データを圧縮符号化した際の、単位時間当たりの発生符号量を一定以下に制御する場合の例である。例えば、動画像データの1フレームで発生する発生符号量を一定以下に制御する。これに限らず、当該所定単位が1または複数のライン単位で発生符号量を制御してもよいし、1フレームを分割したブロック単位で派生符号量を制御してもよい。
 図19は、本第2の実施形態を適用可能な画像符号化装置2の一例の構成を示すブロック図である。なお、図19において、上述した図1と共通する部分には同一の符号を付し、詳細な説明を省略する。この画像符号化装置2は、上述の第1の実施形態で説明した画像符号化部100を、2パス方式の画像符号化処理に適用した例である。
 画像符号化装置2は、画像符号化部200、設定部201、符号化制御部130’およびバッファ109を有する。画像符号化装置2は、第1の実施形態による画像符号化部100と同等の機能を有する算出部を複数有し、入力された動画像データ220に対し、各算出部で異なる量子化パラメータQP1、QP2、…、QPNを用いた符号化を試みて、それぞれの発生符号量を求める。その結果、それぞれの算出部で用いた量子化パラメータQP1、QP2、…、QPNのうち、設定部201により予め設定された圧縮率に対応する発生符号量を超えない量子化パラメータQPnを選択する。この選択された量子化パラメータQPnを、第1の実施形態による画像符号化部100と同等の機能を有する符号化部に適用させて、再び当該動画像データ220に対する符号化を行い、符号化データ14の出力を得る。符号化データ14は、バッファ109に一旦溜め込まれ、例えば1フレームを単位として画像符号化装置2から出力される。
 画像符号化部200の一例の構成について、より詳細に説明する。図19において、画像符号化部200は、バッファ202、仮圧縮部203、判定部205および本圧縮部206を有する。
 仮圧縮部203は、ある量子化パラメータQPnにおける発生符号量を算出する算出部204nを複数有する。算出部204nは、上述した第1の実施形態による画像符号化部100と同等の機能を有する。すなわち、算出部204nは、それぞれ、分割部101、減算器102、変換および量子化部103、エントロピー符号化部104、逆量子化および逆変換部105、加算器106、メモリ107および予測部108を有する。
 算出部204nは、入力された画像ブロック10を分割した小画素ブロック11の予測画像信号19に対する予測誤差信号12を求め、予測誤差信号12を直交変換し、得られた変換係数を所定の量子化パラメータQPnで量子化する。そして、算出部204nは、変換係数が量子化された量子化変換係数13をエントロピー符号化部104により可変長符号化した際の発生符号量を求める。
 画像符号化部200においては、複数の算出部2041、2042、…、204Nは、それぞれ、画像符号化部100における変換および量子化部103、ならびに、逆量子化および逆変換部105に相当する部分に対して、異なる量子化パラメータQP1、QP2、…、QPNが適用される。
 本圧縮部206は、発生符号量が固定的とされた第1の符号化部207を有する。第1の符号化部207は、例えば各画素を固定的な符号長で符号化する。固定的な符号長で符号化を行う単位は、画素単位に限らず、所定数の画素単位、小画素ブロック11単位、画像ブロック10単位などでもよい。
 本圧縮部206は、さらに、上述した第1の実施形態による画像符号化部100と同等の機能を有する第2の符号化部208を有する。すなわち、第2の符号化部208は、可変長符号を用いて符号化を行う。第2の符号化部208の構成および動作については、上述の画像符号化部100と何ら変わるところがないので、ここでの説明を省略する。
 設定部201で設定された圧縮率を示す圧縮率情報25が符号化制御部130’に供給される。符号化制御部130’は、上述した第1の実施形態による符号化制御部130と同様に、画像符号化装置2による符号化処理全般を制御するための符号化制御情報40’を、画像符号化部200に供給する。
 符号化制御情報40’は、符号化方法情報30や、予測モード情報や量子化に関するパラメータなどによるモード情報31などを含むと共に、圧縮率情報25を含む。符号化方法情報30およびモード情報31は、仮圧縮部203および本圧縮部206にそれぞれ供給される。また、圧縮率情報25は、仮圧縮部203、本圧縮部206および判定部205に供給される。
 入力された動画像データ220は、バッファ202に一旦格納される。動画像データ220は、バッファ202から読み出される際に、所定サイズの画像ブロック10に分割される。画像ブロック10は、動画像データの1フレームを任意の方法で分割したもので、最小単位が画素、最大単位が1フレーム全体とする。
 ここで、入力される動画像データ220は、画像符号化装置2において所定の圧縮率を保証する単位とし、フレーム単位の画像データに限らず、1または複数のラインデータや、所定サイズの画像ブロックも含む概念である。また、上述の第1の実施形態では、画像ブロック10は、符号化パラメータkを切り替える単位であるとして説明したが、これはこの例に限定されず、例えば入力される動画像データ220と同一のサイズであってもよい。
 バッファ202から読み出された画像ブロック10は、評価のために仮圧縮部203に入力され、仮圧縮部203内の複数の算出部2041、2042、…、204Nにそれぞれ供給される。
 ここで、これら複数の算出部2041、2042、…、204Nに対して、上述したように、それぞれ異なる量子化パラメータQP1、QP2、…、QPNが適用されている。算出部204n内の変換および量子化部(図示しない)は、図1を用いて説明した変換および量子化部103と同様に、入力された画像ブロック10のデータと予測データとの差分による予測誤差を直交変換し、得られた変換係数を、量子化パラメータQPnに対応する量子化ステップサイズで除すことで量子化する。
 図20は、量子化パラメータQPnと、量子化ステップサイズとの関係の例を示す。この例では、量子化ステップサイズは、量子化パラメータQPnの値が大きくなるに連れて間隔が粗くなるように値が設定される。この場合、小さい量子化パラメータQPnでは、より精密に量子化がなされ、大きい量子化パラメータQPnでは、より粗く量子化がなされることになる。
 複数の算出部2041、2042、…、204Nのそれぞれは、適用されている量子化パラメータQPnを用いて供給された画像ブロック10の符号化を行い、符号量201、202、…、20Nを算出する。なお、算出部2041、2042、…、204Nは、符号化データを出力する必要は、無い。
 算出部2041、2042、…、204Nで算出された符号量201、202、…、20Nは、それぞれ判定部205に供給される。判定部205は、これら符号量201、202、…、20Nを評価し、圧縮率情報25に対応する目標符号量を超えない符号量20mが存在するか否かを判定する。そして、判定結果に応じて、画像ブロック10を固定長で符号化するか、可変長で符号化するかを選択するための圧縮方法情報221を生成する。ここで、目標符号量とは、例えば、入力された動画像データ220内の画像ブロック10に対して均等に符号量を割り当てた場合の符号量(平均割り当て符号量)である。
 判定部205は、符号量201、202、…、20Nが全て目標符号量を超えてしまうと判定した場合、画像ブロック10を固定長で符号化する第1の符号化モードを選択する。判定部205は、第1の符号化モードを選択したことを示す圧縮方法情報221を出力する。この圧縮方法情報221は、本圧縮部206に供給される。
 本圧縮部206は、判定部205から出力された圧縮方法情報221に従い、評価に用いた画像ブロック10をバッファ202から読み出して、第1の符号化部207に入力する。第1の符号化部207は、例えば、画像ブロック10に対して下位ビット切捨てによる線形量子化や空間サンプリングを施すことで、当該画像ブロック10を固定長で符号化する第1の符号化を行う。つまり、1フレームを構成する全ての画像ブロック10、10、…において第1の符号化モードが選択されれば、入力された動画像データ220の当該フレームは、所定のデータサイズ以下での圧縮が保証される。画像ブロック10が第1の符号化部207で符号化された符号化データ14は、本圧縮部206から出力され、バッファ109に一旦格納される。
 一方、符号量20nが目標符号量を超えない量子化パラメータQPmが存在する場合、判定部205は、画像ブロック10を可変長で符号化する第2の符号化モードを選択する。判定部205は、第2の符号化モードを選択したことを示す圧縮方法情報221を出力する。この圧縮方法情報221は、当該量子化パラメータQPmを示す情報と共に、本圧縮部206に入力される。
 本圧縮部206は、判定部205から出力された圧縮方法情報221に従い、評価に用いた画像ブロック10をバッファ202から読み出し、第2の符号化部208に供給する。第2の符号化部208は、上述したように、図1に示した画像符号化部100と同等の機能を有する。第2の符号化部208は、上述の第1の実施形態による方法により、画像ブロック10の直交変換、量子化およびエントロピー符号化を行う。量子化の際には、判定部205から供給された量子化パラメータQPmが用いられる。画像ブロック10が第2の符号化部208で符号化された符号化データ14は、本圧縮部206から出力され、バッファ109に一旦格納される。
 なお、本第2の実施形態においては、画像ブロック10毎に量子化パラメータQPnが異なる。画像ブロック10毎の量子化パラメータQPnは、例えばモード情報31に含められて復号側に伝送される。また、圧縮方法情報221も、例えばモード情報31に含められて符号化データ14に埋め込まれる。圧縮率情報25を示す目標符号量情報をさらにモード情報31に含めて符号化データ14に埋め込むようにしてもよい。
 以上説明したように、上述の第1の実施形態による符号化方法を2パス方式の画像符号化処理にも適用することができる。したがって、2パス方式の画像符号化処理における符号化効率を向上させることができるので、単位時間の発生符号量を一定以下に抑える条件下での画質を向上させることが可能である。
<第3の実施形態>
 次に、第3の実施形態について説明する。上述した第1および第2の実施形態では、エントロピー符号化の際の量子化変換係数13の変換係数位置毎の符号化方法を、符号化方法情報30を用いて制御していた。これに対して、本実施形態では、エントロピー符号化の際の量子化変換係数13の変換係数位置毎の符号化方法を、符号化を制御するための他のパラメータを用いて制御する。
 図21は、本実施形態に適用可能なエントロピー符号化部104’の一例の構成を示すブロック図である。このエントロピー符号化部104’は、上述の第1および第2の実施形態におけるエントロピー符号化部104に対応するものである。なお、図21において、上述した図4と共通する部分には同一の符号を付し、詳細な説明を省略する。
 図21に示されるエントロピー符号化部104’は、係数符号化部110、モード情報変換部302およびモード符号化部112を有する。予測モード情報や量子化に関するパラメータを含むモード情報31がモード情報変換部302およびモード符号化部112に供給される。上述した第2の実施形態による画像符号化部200に対してこのエントロピー符号化部104’を適用する場合には、圧縮率情報25がモード情報変換部302およびモード符号化部112に対してさらに供給される。
 モード情報変換部302は、供給されたQP情報やモード情報31、圧縮率情報25に基づき、符号化方法情報30を生成し、係数符号化部110に供給する。係数符号化部110は、上述した第1および第2の実施形態と同様にして、この符号化方法情報30に基づき、可変長符号化方法を係数位置毎に切り替えて、量子化変換係数13の符号化を行う。
 本実施形態におけるモード情報変換部302の動作について、より詳細に説明する。上述したように、係数符号化部110内の第1可変長符号化部123は、1シンボル毎の符号化を行い、第2可変長符号化部124は、複数シンボルを纏めて符号化することが可能である。したがって、第1可変長符号化部123は、低圧縮率または高画質が求められる領域やブロックのデータを符号化するのに適している。一方、第2可変長符号化部124は、高圧縮率または低画質乃至中画質が求められる領域やブロックのデータを符号化するのに適している。例えば、周波数成分を低周波成分と高周波成分とに分けて、低周波成分の係数に第1の可変長符号化を適用し、高周波成分に第2の可変長符号化を適用することが考えられる。「低周波成分」の範囲および「高周波成分」の範囲を変えることにより、第1の可変長符号化が適用される係数位置の範囲を変えることができる。
 本実施形態では、以下の4種類のパラメータにより、係数位置毎に可変長符号化方法を指定するためのフラグCodingMethodFlagを設定する。
(1)量子化パラメータQP
(2)目標符号量
(3)予測方向
(4)画像信号成分
 なお、以下では、小画素ブロック11を2画素×2画素とし、直交変換に2×2変換を用いるものとする。したがって、係数位置[pos]は、位置LL、HL、LHおよびHHとして表される。
 先ず、(1)の、量子化パラメータQPを用いてフラグCodingMethodFlagを設定する方法について説明する。量子化パラメータQPや目標符号量は、画像データの圧縮率や復号後の画質に密接に関係するパラメータである。そのため、符号化対象領域の量子化パラメータQPや目標符号量の情報を用いることで、可変長符号化方法を指定するためのフラグCodingMethodFlagを設定することが可能である。
 図22Aは、量子化パラメータQPnに対する各係数位置[pos]におけるフラグCodingMethodFlag[pos]の一例の設定を示す。ここで、量子化パラメータQPnは、図20に例示したように、量子化パラメータQPnの値QPが大きくなるに連れ、量子化ステップサイズの間隔が大きくなるように定義されているものとする。
 圧縮率が低く高画質である、量子化パラメータQPnの値が小さい範囲では、低い空間周波数からより高い空間周波数に対応する係数位置[pos]までフラグCodingMethodFlag[pos]を値TRUE、すなわち、第1可変長符号化部123を選択するように設定する。以降、量子化パラメータQPnの値が大きくなるに連れ、高い空間周波数に対応する係数位置[pos]からフラグCodingMethodFlag[pos]が値FALSEになる割合が増加するように、各係数位置[pos]のフラグCodingMethodFlagが設定される。このように、量子化パラメータQPnに応じて適切な可変長符号化方法を適用することで、符号化効率を向上させることができる。
 図22Aの例では、より精密に量子化が行われ、圧縮率が低く高画質の量子化パラメータQP=0およびQP=1の場合には、全ての係数位置[pos]においてフラグCodingMethodFlagを値TRUEに設定し、第1可変長符号化部123を適用させる。量子化パラメータQP=2乃至QP=4の場合には、高周波成分のみからなる係数位置[pos]である位置HHにおいてフラグCodingMethodFlagを値FALSEとして第2可変長符号化部124を適用させ、他の係数位置[pos]ではフラグCodingMethodFlagを値TRUEとして第1可変長符号化部123を適用する。
 量子化パラメータQP=5乃至QP=7では、低周波成分のみからなる係数位置[pos]である位置LLにおいてフラグCodingMethodFlagを値TRUEとして第1可変長符号化部123を適用させ、他の係数位置[pos]ではフラグCodingMethodFlagを値FALSEとして第2可変長符号化部124を適用する。また、より量子化ステップサイズの大きい量子化パラメータQP=8以上で、全ての係数位置[pos]においてフラグCodingMethodFlagを値FALSEとして第2可変長符号化部124を適用する。
 次に、(2)の、目標符号量を用いてフラグCodingMethodFlagを設定する方法について説明する。図22Bは、目標符号量すなわち圧縮率に対する各係数位置[pos]におけるフラグCodingMethodFlag[pos]の一例の設定を示す。圧縮率が低いほど高画質が期待され、圧縮率が高くなるに連れ単位時間当たりの発生符号量が少なくなることが期待される。したがって、圧縮率が低い範囲では、低い空間周波数からより高い空間周波数に対応する係数位置[pos]までフラグCodingMethodFlag[pos]を値TRUEに設定する。以降、圧縮率が高くなるに連れ、高い空間周波数に対応する係数位置[pos]から、フラグCodingMethodFlag[pos]が値FALSEになる割合が増加するように、各係数位置[pos]のフラグCodingMethodFlag[pos]が設定される。このように、圧縮率に応じて適切な可変長符号化方法を適用することで、符号化効率を向上させることができる。
 図22Bの例では、圧縮率が最も低い(1~1/2)場合には、全ての係数位置[pos]においてフラグCodingMethodFlagを値TRUEとし、第1可変長符号化部123を適用させる。圧縮率が1/2~1/4では、高周波成分のみからなる係数位置[pos]である位置HHにおいてフラグCodingMethodFlagを値FALSEとして第2可変長符号化部124を適用させ、他の係数位置[pos]ではフラグCodingMethodFlagを値TRUEとして第1可変長符号化部123を適用する。
 圧縮率がより高い1/4~1/6では、低周波成分のみからなる係数位置[pos]である位置LLにおいてフラグCodingMethodFlagを値TRUEとして第1可変長符号化部123を適用させ、他の係数位置[pos]ではフラグCodingMethodFlagを値FALSEとして第2可変長符号化部124を適用する。また、圧縮率が1/6より高い場合には、全ての係数位置[pos]においてフラグCodingMethodFlagを値FALSEとして第2可変長符号化部124を適用する。
 例えば、上述した第2の実施形態において、設定部201で設定された圧縮率に応じて各係数位置毎のフラグCodingMethodFlagを設定することができる。第2の符号化部208において、係数の符号化を第1の可変長符号化および第2の可変長符号化の何れを用いて行うかが、この圧縮率に応じた各係数位置毎のフラグCodingMethodFlagにより切り替えられる。
 次に、(3)の、予測方向を用いてフラグCodingMethodFlagを設定する方法について説明する。すなわち、画像符号化部100における予測部108、あるいは、画像符号化部200内の算出部2041、2042、…における予測部108において、画像ブロック10に適用する予測モードの予測方向に応じて、フラグCodingMethodFlagを設定する。
 例えば、上述の図3Bに例示されるように、予測方向が垂直方向である場合、画像ブロック10における垂直方向の相関は除去される一方、水平方向の相関は、除去されない。したがって、予測方向を垂直方向として求めた予測誤差信号12を直交変換した場合、垂直方向成分は変換係数が小さく、水平方向成分は変換係数が大きくなると考えられる。
 そこで、予測方向が垂直方向である予測モードの場合、係数位置LHのフラグCodingMethodFlagを値TRUEに設定して第1可変長符号化部123を適用させ、係数位置HLのフラグCodingMethodFlagを値FALSEに設定して第2可変長符号化部124を適用させる。
 また、予測方向が上述の図3Aに示す水平方向である予測モードの場合、同様の考え方から、係数位置HLのフラグCodingMethodFlagを値TRUEに設定して第1可変長符号化部123を適用させ、係数位置LHのフラグCodingMethodFlagを値FALSEに設定して第2可変長符号化部124を適用させる。
 その他の予測方向の予測モードについては、例えば係数位置LLのフラグCodingMethodFlagのみを値TRUEとし、他の係数位置のフラグCodingMethodFlagを値FALSEとする。このように、予測方向に応じて適切な可変長符号化方法を適用することで、符号化効率を向上させることができる。
 図22Cは、このようにして設定された、予測方向に対する各係数位置[pos]におけるフラグCodingMethodFlag[pos]の一例の設定を示す。図22Cの例では、予測方向に応じた設定が、圧縮率が1/4~1/6の場合に限定的に適用されている。
 次に、(4)の、画像信号成分に応じてフラグCodingMethodFlag[pos]を設定する方法について説明する。すなわち、上述の(1)~(3)では、各係数位置[pos]に対するフラグCodingMethodFlag[pos]の設定を、符号化を制御するための他のパラメータに基づき設定している。これはこの例に限定されず、画像信号成分に応じて、係数位置[pos]毎のフラグCodingMethodFlag[pos]を設定してもよい。
 画像信号が輝度成分Yと色差成分U、Vとで構成される場合、一般的に、輝度成分Yに情報量が集中し、色差成分U、Vは、輝度成分Yに対して情報量が少ない。そのため、色差成分U、Vは、輝度成分Yと比較して予測処理が容易で、予測誤差が小さい場合が多い。したがって、色差成分U、Vを直交変換した変換係数は、エントロピーが低くなりシンボルがゼロになる傾向が強くなる。そこで、色差成分U、Vに対して第2可変長符号化部124を適用させる割合を、輝度成分Yに対して適用させる割合よりも高く設定することで、符号化効率を向上させることができる。
 図22Dは、画像信号成分に対する各係数位置[pos]におけるフラグCodingMethodFlag[pos]の一例の設定を示す。この図22Dの例では、輝度成分Yおよび色差成分U、Vに対する各係数位置[pos]におけるフラグCodingMethodFlag[pos]の設定を、圧縮率に応じて変えている。
 すなわち、圧縮率が低い(1~1/2)場合、色差成分U、Vに対して、高周波成分のみからなる係数位置[pos]である位置HHにおいてフラグCodingMethodFlagを値FALSEとして第2可変長符号化部124を適用させる。また、他の係数位置[pos]では、色差成分U、Vに対して、フラグCodingMethodFlagを値TRUEとして第1可変長符号化部123を適用する。以降、圧縮率が高くなるに連れ、色差成分U、Vに対するフラグCodingMethodFlagを値FALSEに設定する割合を増加させていく。図22Cの例では、圧縮率が1/2~1/4で、色差成分U、Vに対して低周波成分のみからなる係数位置[pos]である位置LLのみをフラグCodingMethodFlagを値TRUEとして第1可変長符号化部123を適用する。
 輝度成分Yについても同様である。輝度成分Yの場合、上述のように色差成分U、Vに比べて情報量が多い傾向があるので、フラグCodingMethodFlagを値TRUEとして第1可変長符号化部123を適用する割合を、色差成分U、Vの場合よりも多くする。
 本実施形態を適用し、量子化パラメータQPや予測モードを用いてフラグCodingMethodFlagを設定する場合、これら量子化パラメータQPや予測モードを示す情報は、復号時に必要な情報として、モード情報31により復号側に伝送される。そのため、復号側では、フラグCodingMethodFlagを用いなくても、符号化時に量子化変換係数13を第1および第2の可変長符号化のうち何れを用いて可変長符号化したかを知ることができる。したがって、本実施形態の構成では、フラグCodingMethodFlagを復号側に伝送する必要が無く、上述の第1および第2の実施形態における符号化方法符号化部111が不要となり、符号化効率を維持したまま付加情報を削減することが可能となる。これは、画像信号成分を用いてフラグCodingMethodFlagを設定する場合も同様である。
 なお、図22Bおよび図22Dの例のように、圧縮率を用いてフラグCodingMethodFlagを設定する場合には、目標符号量を示す情報を別途に復号側に伝送する必要がある。例えば、目標符号量を示す情報(圧縮率情報)を、モード情報31に含めて符号化し、符号化データ14に埋め込むことが考えられる。
 上述では、2×2変換を例に挙げて説明したが、4×4変換などより大きなサイズの直交変換に対しても、本第3の実施形態を適用可能であることはもちろんである。この場合、予測方向に応じてフラグCodingMethodFlagを設定する例では、予測方向として、水平および垂直方向以外に斜め方向をさらに用いてもよい。
 また、量子化パラメータQP、目標符号量、予測方法および画像信号成分を適宜組み合わせてフラグCodingMethodFlagを設定することも可能である。さらに、係数位置の一部に対して本第3の実施形態によるフラグCodingMethodFlagの設定方法を適用し、係数位置の他の部分は、PSNR(Peak Signal-to-Noise Ratio)や発生符号量、RDO(Rate Distortion Optimisation)を用いてフラグCodingMethodFlagを設定するようにしてもよい。
 さらにまた、上述したように、本実施形態によれば、符号化方法符号化部111が省略され、フラグCodingMethodFlagを必ずしも符号化する必要はない。したがって、シンタクス構造は、上述した図17Aおよび図18Aにおいて「CodingMethodFlag[pos]」の記述を省略したものとなる。この場合、図17Bおよび図17Cや、図18BにおけるフラグCodingMethodFlag[pos]による条件判定は、図22A~図22Dを用いて説明した、フラグCodingMethodFlag[pos]を設定するための条件による判定に置き換わることになる。
<第4の実施形態>
 次に、第4の実施形態について説明する。本第4の実施形態は、上述した第1の実施形態による画像符号化装置1に対応する画像復号装置の例である。
 図23Aは、本第4の実施形態に適用可能な画像復号装置4の一例の構成を示すブロック図である。画像復号装置4は、画像復号部500、復号制御部530およびバッファ506を有する。復号制御部530に対し、画像復号部500から、供給された各種パラメータ情報や復号処理の結果に基づき出力されるフィードバック情報などによる復号情報80が供給される。また、復号制御部530は、画像復号装置4による復号処理全般を制御するための復号制御情報81を生成し、画像復号部500に供給する。
 画像復号装置3は、図17A~図17C、あるいは、図18Aおよび図18Bを用いて説明したシンタクスを示すシンタクステーブルを持ち、画像復号部500により、画像符号化装置1から出力された符号化データ14からシンタクステーブルに基づき各符号を取り出して復号し、復号画像データ54を出力する。
 以下では、符号化は、画像符号化装置1を用い、図17A~図17Cに示すシンタクスを示すシンタクステーブルに従い、画像ブロック10内の小画素ブロック11を逐次的に処理することにより行われたものとする。
 画像復号部500は、符号列復号部501、逆量子化および逆変換部502、加算器503、メモリ504および予測部505を有する。画像復号部500に入力された符号化データ14は、符号列復号部501に供給される。符号列復号部501は、シンタクステーブルに基づき符号化データ14による符号列を解読する。これにより、符号列復号部501は、符号化データ14から、フラグCodingMethodFlag[pos](図17A参照)、予測モードpred_mode、インデクス値CodingParamIdx[pos](それぞれ図17B参照)といった符号化パラメータを取り出す。
 同様に、符号列復号部501は、符号化データ14から、量子化パラメータQPおよび量子化マトリクスといった量子化に必要な情報を含む量子化パラメータ情報を取り出す。この量子化パラメータ情報は、例えばモード情報31に含められて符号化データ14に埋め込まれている。この量子化パラメータは、復号制御部530に供給され、復号制御部530内に保持される。
 また、符号列復号部501は、符号化データ14から、量子化変換係数13がエントロピー符号化された符号列を取り出す。符号列復号部501は、符号化データ14から取り出した符号化パラメータに基づき、画像ブロック10単位でこの符号列を復号して、各係数位置の量子化変換係数13が復元された復元量子化変換係数51を、小画素ブロック11毎に得る。復元量子化変換係数51は、逆量子化および逆変換部502に供給される。また、符号化データ14から取り出された予測モードpred_modeは、予測モード情報52として予測部505に供給される。
 逆量子化および逆変換部502は、復号制御部530から量子化パラメータをロードし、ロードされた量子化パラメータに基づき復元量子化変換係数51に対して逆量子化処理を施して、直交変換の変換係数が復元された復元変換係数を得る。逆量子化および逆変換部502は、さらに、画像符号化装置1で行われた直交変換に対応する逆直交変換処理を、この復元変換係数に対して施し、予測誤差信号12が復元された復元予測誤差信号53を得る。
 復元予測誤差信号53は、加算器503に供給され、予測部505から出力される予測画像信号56と加算されて復号小画素ブロック54が生成される。この復号小画素ブロック54は、画像復号部500から出力されバッファ506に溜め込まれると共に、メモリ504に記憶される。メモリ504に記憶された復号小画素ブロック54は、参照画像信号55として、後に復号処理される小画素ブロックの予測に用いられる。バッファ506に溜め込まれた復号小画素ブロック54は、復号処理部530のタイミング制御に従い、例えば1フレーム単位で出力される。
 メモリ504に記憶された復号小画素ブロック54は、参照画像信号55として予測部505に供給される。予測部505は、予測モード情報52に基づき、上述した予測部108と同様にして、参照画像信号55から予測画像信号56を生成する。この予測画像信号56が加算器503に供給される。なお、上述した図1Bに示す画像符号化装置1’のように予測を行わないで生成された符号化データ14を復号する場合には、図23Bに画像復号装置4’として例示されるように、画像復号装置4から予測部505を取り除くことができる。この場合、予測は行われず、逆量子化および逆変換部502から出力される復元予測誤差信号53がそのまま復号小画素ブロック54となる。またこの場合、予測に関する他の構成、すなわち、加算器503およびメモリ504が不要となる。
 図24は、符号列復号部501の一例の構成を示すブロック図である。符号列復号部501は、分離部510、符号化方法復号部511、係数復号部512およびモード復号部513を有する。符号化データ14は、分離部510に供給される。分離部510は、シンタクステーブルに従い、供給された符号化データ14から、符号化方法情報30が符号化された符号部分とモード情報31が符号化された符号部分とを分離し、それぞれ符号化方方法復号部511およびモード復号部513に供給する。
 また、分離部510は、符号化データ14から量子化変換係数13が符号化された符号部分を分離して係数復号部512に供給する。これに限らず、分離部510は、符号化データ14を係数復号部512に供給するようにしてもよい。
 符号化方法復号部511は、供給された符号を復号して符号化方法情報30(フラグCodingMethodFlag[pos])を得る。この符号化方法情報30は、符号化された量子化変換係数13を復号する際の復号方法を示す復号方法情報58として出力され、係数復号部512に供給される。
 係数復号部512は、分離部510から供給された符号化データ14を、復号方法情報58に基づき復号し、量子化変換係数13が復号された復元量子化変換係数51を出力する。また、モード復号部513は、分離部510から供給された符号を復号し、モード情報31を得る。モード情報31は、上述したように、量子化パラメータQPおよび量子化マトリクスなどの量子化に関するパラメータや、予測モード情報52といった、変換係数以外の復号に必要な情報を含む。量子化に関するパラメータは、復号制御部530に供給される。また、予測モード情報52は、上述のように予測部505に供給される。
 図25は、係数復号部512の一例の構成を示すブロック図である。係数復号部512は、係数位置抽出部520、復号方法判定部521およびスイッチ部522、ならびに、第1可変長復号部523および第2可変長復号部524を有する。
 係数位置抽出部520は、上述の第1の実施形態において図5を用いて説明した係数位置抽出部120と同様の機能を有する。すなわち、係数位置抽出部520は、供給された符号化データ14をスイッチ部522の入力端522Aに供給すると共に、当該符号化データ14から、復号対象の符号の係数位置を示す係数位置情報60を取得する。例えば、図17Bに例示したブロックのシンタクスに従い、サブブロック(小画素ブロック)毎に、変換係数の復号処理を逐次計数することで、係数位置を知ることができる。なお、係数位置情報60は、図6Aおよび図6Bを用いて説明したように、小画素ブロック内でグループ分けした位置グループで表してもよい。
 スイッチ部522は、後述する復号方法判定部521から出力される切替信号61により、出力端522Bおよび522Cが切り替えられる。出力端522Bおよび522Cに対して、第1可変長復号部523および第2可変長復号部524がそれぞれ接続される。すなわち、入力端522Aに供給された符号化データ14は、切替信号61に応じて第1可変長復号部523および第2可変長復号部524の何れか一方に、選択的に供給される。
 係数位置情報60は、復号方法判定部521に供給される。また、復号方法判定部521には、復号方法情報58も供給される。復号方法判定部521は、係数位置情報60と復号方法情報58とに基づき、係数位置毎または位置グループ毎に切替信号61を出力し、スイッチ部522に供給する。
 これにより、スイッチ部522が復号方法情報58に基づき係数位置または位置グループ単位に切り替えられ、係数位置抽出部520から出力された符号化データ14が、係数位置または位置グループ単位で第1可変長復号部523または第2可変長復号部524に対して適応的に供給される。
 第1可変長復号部523は、供給された符号化データ14に対して、符号化の際に第1可変長符号化部123でなされた符号化に対応する復号処理(第1の可変長復号と呼ぶ)を行う。すなわち、第1可変長符号化部123は、1シンボルずつ符号化する1シンボル単位符号化を行うため、第1可変長復号部523は、1シンボルずつ復号する1シンボル単位復号方法により符号化データ14に対する復号処理を行い、復元量子化変換係数51を出力する。例えば、第1可変長符号化部123でゴロム・ライス符号化が用いられた場合には、符号化パラメータkを復号し、当該符号化パラメータkを用いてシンボルを復号する。
 第2可変長復号部524は、供給された符号化データ14に対して、符号化の際に第2可変長符号化部124でなされた符号化に対応する復号処理(第2の可変長復号と呼ぶ)を行う。すなわち、第2可変長符号化部124は、複数のシンボルをまとめて符号化する複数シンボル一括符号化を行うため、第2可変長復号部524は、符号列を復号して複数シンボルを纏めて出力する複数シンボル一括復号を行い、復元量子化変換係数51を出力する。例えば、第2可変長符号化部124でランレングス符号化が用いられた場合には、一連のシンボル群は、そのデータの値(value)とラン数(run)で表現されている。
 図26は、ランレングス符号を復号する一例の処理手順を示すフローチャートである。この図26に例示されるフローチャートにおける各処理は、第2可変長復号部524において実行される。なお、ここでは、復号対象シンボルの総数NUM_MAXが既知であるとする。
 先ず、符号化対象シンボル位置numと、状態stateとを0に設定して初期化する(ステップS401)。次に、ラン数runを復号し(ステップS402)、次のステップS403で、復号されたラン数runが0より大きいか否かを判定する。若し、ラン数runが0より大きいと判定された場合(ステップS403の「YES」)、処理はステップS404に移行される。
 ステップS404では、復号対象シンボルに対して状態stateの値を代入する。そして、次のステップS405でラン数runを1だけデクリメントし、さらに次のステップS406で符号化対象シンボル位置numを1だけインクリメントする。そして、次のステップS407で、符号化対象シンボル位置numを示す値が復号対象のシンボル総数NUM_MAXを示す値を超えたか否かが判定される。若し、超えていないと判定されたら(ステップS407の「NO」)、処理はステップS403に戻され、ラン数runが0より大きいか否かが判定される。
 一方、ステップS407で、符号化対象シンボル位置numを示す値が復号対象のシンボル総数NUM_MAXを示す値を超えたと判定されたら、全ての復号対象シンボルに対する処理が終了したとされ、一連の処理が終了される。
 上述のステップS403でラン数runが0であると判定されたら、処理はステップS408に移行される(ステップS403の「NO」)。ステップS408では、次の符号が、上述の第2可変長符号化部124で保持された以外のシンボルにおいてその値(value)を符号化するのに用いた符号化方法(例えばゴロム・ライス符号化)に対応する復号方法により復号され、復号された値yが復号対象シンボルに代入される。そして、次のステップS409で、値yが状態stateに代入され、さらに次のステップS410で符号化対象シンボル位置numを1だけインクリメントする。
 ステップS410で符号化対象シンボル位置numがインクリメントされたら、処理はステップS411に移行され、符号化対象シンボル位置numを示す値が復号対象のシンボル総数NUM_MAXを示す値を超えたか否かが判定される。若し、超えていないと判定されたら(ステップS412の「NO」)、処理はステップS402に戻され、次のラン数runが復号される。
 一方、ステップS411で、符号化対象シンボル位置numを示す値が復号対象のシンボル総数NUM_MAXを示す値を超えたと判定されたら、全ての復号対象シンボルに対する処理が終了したとされ、一連の処理が終了される。
 なお、この図26のフローチャートに示す処理において、上述した図8のフローチャートによる処理と同様に、状態stateの値を0に固定的としてもよい。
 次に、シンタクスに従った復号処理の例について、より具体的に説明する。先ず、上述した図17A~図17Cに示されるシンタクスに従い、画像ブロック10内の小画素ブロック11を逐次的に符号化した符号化データ14を復号する処理について説明する。
 既に説明したように、この場合のシンタクスは、ヘッダ(図17A参照)と、ブロック(図17B参照)と、サブブロック(図17C参照)の各シンタクスから構成される。サブブロックのシンタクスは、ブロックのシンタクスに埋め込まれている。ヘッダのシンタクスは、ヘッダ情報が記述される。ブロックのシンタクスは、画像ブロック10毎に必要とされるデータが記述される。また、サブブロックのシンタクスは、小画素ブロック11毎に必要とされるデータが記述される。
 例えば、復号制御部530は、符号化データ14に対する復号処理を、これらのシンタクスに従い制御することで、符号化データ14を適切に復号することができる。
 図17Aに示すヘッダのシンタクスは、係数位置[pos]毎の可変長復号方法を切り替えるためのフラグCodingMethodFlag[pos]が記述される。図17Aにおいて、値NUM_POSは、係数位置の数、若しくは、係数位置グループの数である。
 図17Bに示すブロックのシンタクスでは、画像ブロック毎の予測モードpred_modeや、係数位置[pos]毎の符号化パラメータ(ゴロム・ライス符号化における符号化パラメータkなど)であるインデックス値CodingParamIdx[pos]が明記される。さらに、画像ブロック内の小画素ブロック[blk]単位に変換係数の復号を行うサブブロックsubblock()が埋め込まれる。値NUM_BLKは、画像ブロック内の小画素ブロックの数である。
 予測モードpred_modeやインデックス値CodingParamIdx[pos]は、小画素ブロックを複数纏めたセグメントseg毎に切り替えて記されていてもよい。図17Bに示すシンタクスでは、画像ブロックをNUM_SEG個のセグメントsegに分割している。なお、ランレングス符号化を用いた復号に用いられるラン数runおよび状態stateは、画像ブロック単位およびセグメント単位で0に初期化される。
 図17Cに示すサブブロックのシンタクスでは、小画素ブロック毎の変換係数が記述される。図17Cに示す通り、係数位置[pos]毎に可変長復号方法を切り替えるためのフラグCodingMethodFlag[pos]を判定する。その結果、フラグCodingMethodFlag[pos]が値TRUEであると判定されたら、ゴロム・ライス符号化などの1シンボルずつ復号する復号方法である第1の可変長復号が適用される。この場合、インデックス値CodingParamIdx[pos]を用いて小画素ブロック[blk]の係数位置[pos]における係数coef[blk][pos]が復号される。
 一方、フラグCodingMethodFlag[pos]が値FALSEであると判定されたら、ランレングス符号化などの複数シンボルを纏めて復号可能な第2可変長復号が適用される。この場合、係数coef[blk][pos]が状態state[pos]と等しければ、ラン数run[pos]に1が加算され復号データは示されない。
 また、係数coef[blk][pos]が状態state[pos]と等しくなければ、ラン数run[pos]と状態state[pos]とがフラグCodingMethodFlag[pos]により切り替えられる可変長復号方法により復号される。そして、ラン数run[pos]に対して0が代入され、状態state[pos]に対して係数coef[blk][pos]が代入される。
 全ての小画素ブロックの処理が終わったら、第2可変長復号が適用される係数位置[pos]においてラン数run[pos]が0以上の値の場合のみ、ラン数run[pos]が記述される。
 次に、上述した図18Aおよび図18Bに示されるシンタクスに従い、量子化変換係数13を係数位置[pos]毎に符号化した符号化データ14を復号する処理について説明する。
 既に説明したように、この場合のシンタクスは、ヘッダ(図18A参照)およぼブロック(図18B参照)の各シンタクスから構成される。ヘッダのシンタクスは、図17Aと同様のヘッダ情報が記述される。ブロックは、符号化データ14における画像ブロック10を構成するデータを含む。
 図18Bに示すブロックのシンタクスでは、図17Bを用いて説明したブロックのシンタクスと異なり、係数位置[pos]毎に処理を行う。先ず、係数位置[pos]毎に可変長復号方法を切り替えるためのフラグCodingMethodFlag[pos]を判定する。その結果、フラグCodingMethodFlag[pos]が値TRUEであると判定されたら、係数位置[pos]の変換係数は全てゴロム・ライス符号化などの1シンボルずつ復号する復号方法である第1の可変長復号が適用される。この場合、インデックス値CodingParamIdx[pos]を用いて小画素ブロック[blk]の係数位置[pos]における係数coef[blk][pos]が復号される。
 一方、フラグCodingMethodFlag[pos]が値FALSEであると判定されたら、係数位置[pos]における変換係数は、全てランレングス符号化などの複数シンボルを纏めて復号可能な第2可変長復号が適用される。この場合、係数coef[blk][pos]が状態state[pos]と等しければ、ラン数run[pos]に1が加算され復号データは示されない。
 また、係数coef[blk][pos]が状態state[pos]と等しくなければ、ラン数run[pos]と状態state[pos]とがフラグCodingMethodFlag[pos]により切り替えられる可変長復号方法により復号される。そして、ラン数run[pos]に対して0が代入され、状態state[pos]に対して係数coef[blk][pos]が代入される。
 全ての小画素ブロックの処理が終わったら、第2可変長復号が適用される係数位置[pos]においてラン数run[pos]が0以上の値の場合のみ、ラン数run[pos]が記述される。
 なお、上述では、符号化を、第1可変長符号化部123および第2可変長符号化部124に対して、1シンボルに対して1ビット以上の符号を割り当てる可変長符号化により行った場合の復号処理について説明した。これはこの例に限定されず、符号化を、CABACといった、1シンボルに対して1ビット未満の符号割り当てが可能な可変長符号化を用いて行った場合にも、本第4の実施形態による復号処理を適用可能である。
 この場合、上述したように、符号化の際に、算術符号化に適用するコンテキストおよびその遷移が異なる第1可変長符号化部123および第2可変長符号化部124が、スイッチ部122により係数位置毎に切り替えて適用される。したがって、復号側でもこれに対応し、第1可変長復号部523と第2可変長復号部524とで、算術符号化に適用するコンテキストおよびその遷移を、第1可変長符号化部123および第2可変長符号化部124にそれぞれ対応させて異ならせる。そして、係数位置毎に、第1可変長復号部523と第2可変長復号部524とを切り替えて適用する。符号化の際に、係数位置毎に纏めた順序で符号化を行なうことで、コンテクスト切り替えの頻度が低下して、復号処理の複雑度を低減させることができる。
<第5の実施形態>
 次に、第5の実施形態について説明する。本第5の実施形態は、上述した第2の実施形態による画像符号化装置2に対応する画像復号装置の例である。
 図27は、本第5の実施形態に適用可能な画像復号装置5の一例の構成を示すブロック図である。画像復号装置5は、画像復号部600、設定部605および復号制御部630を有する。復号制御部630に対し、画像復号部600から、供給された各種パラメータ情報や復号処理の結果に基づき出力されるフィードバック情報などによる復号情報91が供給される。また、復号制御部630は、画像復号装置5による復号処理全般を制御するための復号制御情報90を生成し、画像復号部600に供給する。
 画像復号装置5は、図17A~図17C、あるいは、図18Aおよび図18Bを用いて説明したシンタクスを示すシンタクステーブルを持ち、画像復号部600により、画像符号化装置2から出力された符号化データ14からシンタクステーブルに基づき各符号を取り出して復号し、復号画像データ63を出力する。
 以下では、符号化は、画像符号化装置2を用い、図17A~図17Cに示すシンタクスを示すシンタクステーブルに従い行われたものとする。
 設定部605は、符号化データ14の圧縮率を示す圧縮率情報65を、復号制御部630に対して設定する。この圧縮率情報65は、復号制御情報90に含められて第1の復号部602および第2の復号部603にそれぞれ設定される。圧縮率情報65は、設定部605を入力手段として予め第1の復号部602および第2の復号部603に対して設定しておくことができる。これに限らず、符号化データ14に、例えばモード情報31に含められて埋め込まれた目標符号量情報を圧縮率情報65として、後述する圧縮方法情報復号部601で復号して設定してもよい。
 画像復号部600は、圧縮方法情報復号部601、第1の復号部602、第2の復号部603、バッファ604を有する。画像復号部600に入力された符号化データ14が圧縮方法情報復号部601に供給される。圧縮方法情報復号部601は、供給された符号化データ14から、シンタクスに従いモード情報31を取り出し、モード情報31に含められた圧縮方法情報221を取得する。取得された圧縮方法情報221は、復号方法切替情報61として、符号化データ14と共に第1の復号部602および第2の復号部603にそれぞれ供給される。復号方法切替情報61は、符号化データ14の復号を第1の復号部602および第2の復号部603の何れで行うかを、画像ブロック10単位で示す。画像復号部600は、この復号方法切替情報61に従い、符号化データ14の復号を第1の復号部602および第2の復号部603の何れで行うかを選択する。
 第1の復号部602は、上述の第2の実施形態における第1の符号化部207に対応する。すなわち、第1の復号部602は、第1の符号化部207による符号化処理と逆の処理を行い、符号化データ14を復号する。より具体的な例として、第1の復号部602は、第1の符号化部207に対応し、符号化データ14に対して、画像ブロック10単位で下位ビット補填による逆量子化や、空間補間処理を施して復号処理を行い、復号画像ブロック62を得る。この復号画像ブロック62は、バッファ604に記憶される。
 第2の復号部603は、上述の第2の実施形態における第2の符号化部208に対応するもので、図23に示した画像復号部600と同等の機能を有する。すなわち、第2の復号部603は、第2の符号化部208による符号化処理と逆の処理を行って符号化データ14を復号し、復号画像ブロック62を得る。この復号画像ブロック62は、バッファ604に記憶される。バッファ604に記憶された復号画像ブロック62、62、…は、復号制御部630に出力タイミングを制御されて、復号画像データ63として出力される。
 第2の復号部603において、符号化データ14の復号を第1の可変長復号および第2の可変長復号のうち何れを用いて行うかは、設定部605で設定された圧縮率情報65に基づき、例えば、図22Bを用いて説明した、目標符号量を用いてフラグCodingMethodFlagを設定する方法に従い決めることができる。
<第6の実施形態>
 次に、第6の実施形態について説明する。本第6の実施形態は、上述した第3の実施形態による画像符号化装置に対応する画像復号装置の例である。本第6の実施形態による画像復号装置は、図23を用いて説明した第4の実施形態による画像復号装置4の構成に対して符号列復号部501の構成が異なるのみであるので、以下では、この点を中心に説明する。
 図28は、本第6の実施形態による符号列復号部700の一例の構成を示すブロック図である。なお、図28において、上述した図24と共通する部分には同一の符号を付し、詳細な説明を省略する。図29に例示されるように、この符号列復号部700を図23に示す画像復号装置4における符号列復号部501と置き換えることで、本第6の実施形態による画像復号装置6とする。
 符号列復号部700は、分離部514、係数復号部512、モード復号部513およびモード情報変換部515を有する。符号列復号部700に入力された符号化データ14は、分離部514に供給される。分離部514は、シンタクステーブルに従い、供給された符号化データ14からモード情報31が符号化された符号部分を分離し、モード復号部513に供給する。また、分離部514は、符号化データ14から量子化変換係数13が符号化された符号部分を分離して係数復号部512に供給する。これに限らず、分離部514は、供給された符号化データ14を係数復号部512に供給するようにしてもよい。
 モード復号部513は、分離部514から供給された符号を復号してモード情報31を得る。このモード情報31は、上述したように、量子化パラメータQPおよび量子化マトリクスなどの量子化に関するパラメータや、予測モード情報52といった、変換係数以外の復号に必要な情報を含む。モード情報31は、モード情報変換部515に供給される。
 モード情報変換部515は、供給されたモード情報31から復号方法情報58を生成し、係数復号部512に供給する。係数復号部512は、分離部514から供給された符号化データ14を、復号方法情報58に基づき復号し、量子化変換係数13が復号された復元量子化変換係数51を出力する。すなわち、係数復号部512は、復号方法情報58に従い、1シンボルずつの復号を行う第1の復号方法と、係数位置毎に纏めて復号を行う第2の復号方法とを、係数位置単位で切り替えて、符号化データ14の復号を行う。
 モード情報変換部515の処理について、より詳細に説明する。モード情報変換部515は、モード復号部513から供給されたモード情報31に、符号化データ14の符号化の際に符号化方法情報30として用いられたデータとして含まれる、量子化パラメータQP、予測モード情報および/または目標符号量情報に基づき復号方法情報58を生成する。
 具体的な例として、図22A~図22Dを用いて説明したような、モード情報31に含まれる量子化パラメータQP、圧縮率(目標符号量)および予測方向や、画像信号成分(輝度成分Y、色差成分U、V)のうち、符号化の際に用いられた情報に基づき、第1の復号方法および第2の復号方法のうち何方を選択するかを示すフラグCodingMethodFlag[pos]を生成する。
 本第6の実施形態によれば、変換係数の復号方法を示す情報を符号化側から伝送する必要が無い。そのため、符号化効率を維持したまま付加情報を削減することが可能となる。また、復号方法を指定するためのフラグCodingMethodFlagを復号する必要が無いので、既に説明したように、シンタクスにおいて、フラグCodingMethodFlag[pos]の記述が省略できる。
 上述した各実施形態は、例えば1のLSI(Large-Scale Integration)内に関連する他の画像処理回路と共に組み込む場合に、用いて好適である。勿論、これに限らず、上述の各実施形態による画像符号化装置および画像復号装置は、単独で構成されていてもよい。また、符号化データ14は、有線または無線といった伝送路を介して画像符号化装置から画像復号装置に伝送されてもよいし、光ディスク、半導体メモリといった記憶媒体を介して画像符号化装置から画像復号装置に渡されてもよい。
<他の実施形態>
 さらに、上述した各実施形態による画像符号化装置または画像復号装置は、ハードウェアのみならず一部または全部をプログラムによりソフトウェア的に構成してもよい。ソフトウェアで構成する場合、画像符号化装置または画像復号装置の各機能をコンピュータに実行させるためのプログラムが、例えば、CPU(Central Processing Unit)などの制御装置と、ROM(Read Only Memory)やRAM(Random Access Memory)などの記憶装置と、HDD(ハードディスクドライブ)、光ディスクドライブ装置などの外部記憶装置と、ディスプレイ装置に表示信号を出力する表示制御装置と、キーボードやマウスなどを接続したり、他のディジタル信号の入出力を行う入出力I/Fを備えたコンピュータにインストールされる。このコンピュータは、通信ネットワークに接続するための通信I/Fをさらに備えてもよい。
 当該プログラムは、例えばインストール可能な形式または実行可能な形式のファイルでCD(Compact Disk)、フレキシブルディスク(FD)、DVD(Digital Versatile Disk)などのコンピュータで読み取り可能な記録媒体に記録されて提供される。
 また、各実施形態による画像符号化装置または画像復号装置をコンピュータ上で実現するためのプログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、各実施形態による画像符号化装置または画像復号装置をコンピュータ上で実現するためのプログラムを、インターネットなどのネットワーク経由で提供または配布するように構成してもよい。
 また、各実施形態による画像符号化装置または画像復号装置をコンピュータ上で実現するためのプログラムを、ROMなどに予め組み込んで提供するように構成してもよい。
 各実施形態による画像符号化装置または画像復号装置をコンピュータ上で実現するためのプログラムは、画像符号化装置であれば、例えば上述した符号化制御部130および画像符号化部100、画像復号装置であれば、例えば上述した復号制御部530および画像復号部500を含むモジュール構成となっている。実際のハードウェアとしては、CPU(プロセッサ)が上述の記憶媒体から当該プログラムを読み出して実行することにより、上述の各部が主記憶装置(RAM)上にロードされ、画像符号化装置であれば例えば符号化制御部130および画像符号化部100が、画像復号装置であれば例えば復号制御部530および画像復号部500が、主記憶装置上に生成されるようになっている。
<各実施形態の他の対応>
 上述の各実施形態の他の対応によれば、画像符号化方法は、第1可変長符号化ステップおよび第2可変長符号化ステップのうち何れを用いて係数位置単位での可変長符号化を行ったかを示す情報を、符号化データに埋め込むステップをさらに有することを特徴とする。
 また、画像符号化方法において、第1可変長符号化ステップは、ゴロム・ライス符号化、ハフマン符号化および固定長符号化のうち、何れか1を用いて係数の可変長符号化を行うことを特徴とする。
 また、画像符号化方法において、第1可変長符号化ステップは、ランレングス符号化、ならびに、複数ブロックからなる領域内を分割した小領域において全ての係数が0であるか否かを表現するスキップ符号化のうち何れか1を用いて係数の可変長符号化を行うことを特徴とする。
 また、画像符号化方法は、圧縮率を示す情報を符号化して復号側に伝送するステップをさらに有することを特徴とする。
 また、画像復号方法において、第1可変長符号化および第2可変長符号化のうち何れを用いて係数位置単位での可変長符号化を行ったかを示す情報を符号化データから復号し、復号された情報に従い第1可変長復号および第2可変長復号を係数位置単位で切り替えることを特徴とする。
 また、画像復号方法において、第1可変長復号ステップは、ゴロム・ライス符号、ハフマン符号および固定長符号のうち、何れか1を復号して係数を復号すことを特徴とする。
 また、画像復号方法において、第2可変長復号ステップは、ランレングス符号、ならびに、複数ブロックからなる領域内を分割した小領域において全ての変換係数が0であるか否かを表現するスキップ符号のうち何れか1を復号して係数を復号することを特徴とする。
 また、画像復号方法は、符号化された、圧縮率を示す情報を復号するステップをさらに有することを特徴とする。
 <各実施形態における変形例> 
 なお、本発明は上記実施形態そのままに限定されるものでは無く、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
10 画像ブロック
11 小画素ブロック
14 符号化データ
30 符号化方法情報
31 モード情報
101 分割部
103 変換および量子化部
104 エントロピー符号化部
108 予測部
110 係数符号化部
111 符号化方法符号化部
112 モード符号化部
120,520 係数位置抽出部
121 符号化方法判定部
122 スイッチ部
123 第1可変長符号化部
124 第2可変長符号化部
203 仮圧縮部
2041,2042,…,204n,…,204N 算出部
206 本圧縮部
207 第1の符号化部
208 第2の符号化部
302 モード情報変換部
501,700 符号列復号部
510 分離部
511 符号化方法復号部
512 係数復号部
513 モード復号部
521 復号方法判定部
522 スイッチ部
523 第1可変長復号部
524 第2可変長復号部
602 第1の復号部
603 第2の復号部

Claims (22)

  1.  入力画像の対象領域内の複数のブロックのそれぞれを単位として直交変換および量子化して係数を求める変換・量子化ステップと、
     前記対象領域内の前記複数のブロック間で共通な周波数成分の係数を有する複数の係数列を、複数の可変長符号化方式を用いて符号化する可変長符号化ステップと
    を有し、
     前記可変長符号化ステップは、
     前記複数の可変長符号化方式を前記係数列毎に切り替える
    ことを特徴とする画像符号化方法。
  2.  前記可変長符号化ステップは、
     前記係数列を前記係数毎に可変長符号化する第1可変長符号化ステップと、
     前記係数列を可変長の部分データ毎に符号化する第2可変長符号化ステップと
    を備え、
     前記第1可変長符号化ステップの実行と第2可変長符号化ステップの実行とを前記係数列毎に切り替える
    ことを特徴とする請求項1に記載の画像符号化方法。
  3.  既に復号が完了した参照画像を用いて前記ブロックの予測画像を予測する予測ステップをさらに有し、
     前記変換・量子化ステップは、
     前記予測画像と前記入力画像の前記ブロックとの予測誤差を直交変換および量子化して前記係数を求め、
     前記可変長符号化ステップは、
     前記量子化の幅を示す量子化幅と、前記予測処理による予測の方向を示す予測方向と、前記入力画像の信号成分とのうち少なくとも1に基づき、前記第1可変長符号化ステップの実行と第2可変長符号化ステップの実行とを前記係数列毎に切り替える
    ことを特徴とする請求項2に記載の画像符号化方法。
  4.  前記可変長符号化ステップは、
     前記周波数成分を直流成分を含む低周波成分と高周波成分とに分けた場合の、低周波成分の係数列に対して前記第1可変長符号化ステップを実行し、高周波成分の係数列に対して前記第2可変長符号化ステップを実行するように、該第1可変長符号化ステップの実行と該第2可変長符号化ステップの実行とを切り替える
    ことを特徴とする請求項3に記載の画像符号化方法。
  5.  前記可変長符号化ステップは、
     前記量子化幅が大きくなるにつれて前記低周波成分の範囲を拡大し、
     前記量子化幅が小さくなるにつれて前記低周波成分の範囲を縮小する
    ことを特徴とする請求項4に記載の画像符号化方法。
  6.  前記第1可変長符号化ステップは、
     ゴロム・ライス符号化を用いて前記係数の可変長符号化を行い、ゴロム・ライス符号の固定長部分の長さを示すパラメータを、前記対象領域内で前記係数列毎に切り替えて前記係数の可変長符号化を行う
    ことを特徴とする請求項5に記載の画像符号化方法。
  7.  圧縮率を設定する設定ステップと、
     前記設定ステップで設定された前記圧縮率に従い、符号長を固定的として前記ブロックに対して符号化を行う固定長符号化ステップと、
     前記ブロックに対して前記可変長符号化ステップで符号化を行った際の時間当たりの発生符号量が、前記設定ステップで設定された前記圧縮率に応じた符号量を超えるか否かを判定する判定ステップと、
     前記判定ステップで、前記発生符号量が前記圧縮率に応じた符号量を超えると判定されたら、前記固定長符号化ステップにより前記ブロックに対する符号化を行い、前記判定ステップで、前記発生符号量が前記圧縮率に応じた符号量を超えないと判定されたら、前記可変長符号化ステップにより前記ブロックに対する符号化を行う符号化ステップと、
     前記符号化ステップで前記可変長符号化ステップと前記固定長符号化ステップとのうち何れを用いて符号化を行ったかを示す圧縮情報を符号化する圧縮情報符号化ステップと
    をさらに有する
    ことを特徴とする請求項6に記載の画像符号化方法。
  8.  前記可変長符号化ステップは、
     前記圧縮率が小さくなるにつれて前記低周波成分の範囲を拡大し、
     前記圧縮率が大きくなるにつれて前記低周波成分の範囲を縮小する
    ことを特徴とする請求項7に記載の画像符号化方法。
  9.  前記第1可変長符号化ステップは、
     ハフマン符号化を用いて前記係数の可変長符号化を行い、前記ハフマン符号化に用いる符号表を決定する確率モデルを、前記対象領域内で前記係数列毎に切り替えて前記係数の可変長符号化を行う
    ことを特徴とする請求項5に記載の画像符号化方法。
  10.  前記第1可変長符号化ステップおよび前記第2可変長符号化ステップは、
     算術符号化を用いて前記係数の可変長符号化を行い、前記算術符号化の遷移状態を示すコンテクストにおいて、前記第1可変長符号化ステップと前記第2可変長符号化ステップとで異なる前記コンテクストを用いて可変長符号化を行う
    ことを特徴とする請求項5に記載の画像符号化方法。
  11.  前記可変長符号化ステップは、
     前記予測処理による予測の方向が水平予測の場合、水平成分の範囲よりも垂直成分の範囲が広くなるように前記低周波成分の範囲を設定し、
     前記予測処理による予測の方向が垂直予測の場合、垂直成分の範囲よりも水平成分の範囲が広くなるように前記低周波成分の範囲を設定する
    ことを特徴とする請求項4に記載の画像符号化方法。
  12.  復号対象画像の復号対象領域内の複数の復号対象ブロック間で共通な周波数成分の係数を有する複数の係数列のそれぞれの符号化データを複数の可変長復号方式を用いて可変長復号して、前記複数の係数列を得る可変長復号ステップと、
     前記複数の係数列のうち前記復号対象ブロック毎の係数を逆量子化・逆変換する逆量子化・逆変換ステップと
    を有し、
     前記可変長復号ステップは、
     前記可変長復号方式を前記係数列毎に切り替える
    ことを特徴とする画像復号方法。
  13.  前記可変長復号ステップは、
     前記符号化データを前記係数毎に可変長復号する第1可変長復号ステップと、
     前記符号化データを可変長の部分データ毎に可変長復号する第2可変長復号ステップと
    を備え、
     前記可変長復号ステップは、
     前記第1可変長復号ステップの実行と前記第2可変長復号ステップの実行とを前記係数列毎に切り替える
    ことを特徴とする請求項12に記載する画像復号方法。
  14.  前記符号化データは、前記画像に対して既に復号が完了した参照画像を用いて予測処理が行われた予測画像の該画像との誤差を前記ブロックを単位として直交変換および量子化して求めた係数を符号化して生成され、
     前記可変長復号ステップは、
     前記量子化の幅を示す量子化幅と、前記予測処理による予測の方向を示す予測方向と、前記画像の信号成分とのうち少なくとも1に基づき、前記第1可変長復号ステップの実行と第2可変長復号ステップの実行とを前記係数列毎に切り替える
    ことを特徴とする請求項13に記載の画像復号方法。
  15.  前記可変長復号ステップは、
     前記周波数成分を直流成分を含む低周波成分と高周波成分とに分けた場合の、低周波成分の係数列に対して前記第1可変長復号ステップを実行し、高周波成分の係数列に対して前記第2可変長復号ステップを実行するように、該第1可変長復号ステップの実行と該第2可変長復号ステップの実行とを切り替える
    ことを特徴とする請求項14に記載の画像復号方法。
  16.  前記可変長復号ステップは、
     前記量子化幅が大きくなるにつれて前記低周波成分の範囲を拡大し、
     前記量子化幅が小さくなるにつれて前記低周波成分の範囲を縮小する
    ことを特徴とする請求項15に記載の画像復号方法。
  17.  前記第1可変長復号ステップは、
     ゴロム・ライス符号の可変長復号を行って前記符号化データから前記係数の復号を行い、前記ゴロム・ライス符号の固定長部分の長さを示すパラメータを、前記復号対象領域内で前記係数列毎に切り替えて前記係数の可変長復号を行う
    ことを特徴とする請求項16に記載の画像復号方法。
  18.  前記符号化データは、単位時間当たりの発生符号量が所定の符号量を超えないように設定された圧縮率に従い、符号長を固定的として前記ブロックに対して符号化を行う固定長符号化と、可変長符号を用いて前記ブロックに対して符号化を行う可変長符号化とがブロック単位で切り替えられて前記画像に対して符号化を行って生成され、
     前記固定長符号化により符号化が行われた前記符号化データに対して復号を行う第1の復号ステップと、
     前記可変長符号化により符号化が行われた前記符号化データに対して、前記切替ステップで前記第1の可変長復号ステップの実行と前記第2の可変長復号ステップの実行とを切り替えて復号を行う第2の復号ステップと、
     前記符号化データと共に供給される、該符号化データに対して前記固定長符号化と前記可変長符号化とのうち何れを用いて符号化が行われたかを示す符号化方法情報に対して復号を行う符号化方法情報復号ステップと、
     前記符号化方法情報復号ステップで復号が行われた前記符号化方法情報に従い前記第1の復号ステップの実行と前記第2の復号ステップの実行とのうち一方を選択する選択ステップと
    をさらに有する
    ことを特徴とする請求項17に記載の画像復号方法。
  19.  前記可変長復号ステップは、
     前記圧縮率が小さくなるにつれて前記低周波成分の範囲を拡大し、
     前記圧縮率が大きくなるにつれて前記低周波成分の範囲を縮小する
    ことを特徴とする請求項18に記載の画像復号方法。
  20.  前記第1可変長復号ステップは、
     ハフマン符号の可変長復号を行って前記符号化データから前記係数の復号を行い、該ハフマン符号を生成する際に用いる符号表を決定する確率モデルを、前記復号対象領域内で前記係数列毎に切り替えて前記係数の可変長復号を行う
    ことを特徴とする請求項16に記載の画像復号方法。
  21.  前記第1可変長復号ステップおよび前記第2可変長復号ステップは、
     算術符号の可変長復号を行って前記符号化データから前記係数の復号を行い、該算術符号を生成する算術符号化の遷移状態を示すコンテクストにおいて、前記第1可変長復号ステップと前記第2可変長復号ステップとで異なる前記コンテクストを用いて可変長復号を行う
    ことを特徴とする請求項16に記載の画像復号方法。
  22.  前記切替ステップは、
     前記予測処理による予測の方向が水平予測の場合、水平成分の範囲よりも垂直成分の範囲が広くなるように前記低周波成分の範囲を設定し、
     前記予測処理による予測の方向が垂直予測の場合、垂直成分の範囲よりも水平成分の範囲が広くなるように前記低周波成分の範囲を設定する
    ことを特徴とする請求項15に記載の画像復号方法。
PCT/JP2009/063369 2009-07-27 2009-07-27 画像符号化方法および画像復号方法 WO2011013192A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2009/063369 WO2011013192A1 (ja) 2009-07-27 2009-07-27 画像符号化方法および画像復号方法
JP2011524554A JP5492206B2 (ja) 2009-07-27 2009-07-27 画像符号化方法および画像復号方法、ならびに、画像符号化装置および画像復号装置
US13/358,691 US8867614B2 (en) 2009-07-27 2012-01-26 Image coding method and image decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/063369 WO2011013192A1 (ja) 2009-07-27 2009-07-27 画像符号化方法および画像復号方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/358,691 Continuation US8867614B2 (en) 2009-07-27 2012-01-26 Image coding method and image decoding method

Publications (1)

Publication Number Publication Date
WO2011013192A1 true WO2011013192A1 (ja) 2011-02-03

Family

ID=43528869

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/063369 WO2011013192A1 (ja) 2009-07-27 2009-07-27 画像符号化方法および画像復号方法

Country Status (3)

Country Link
US (1) US8867614B2 (ja)
JP (1) JP5492206B2 (ja)
WO (1) WO2011013192A1 (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014027658A (ja) * 2012-07-30 2014-02-06 Intel Corp 圧縮エンコーディング及びデコーディング方法並びに装置
CN104247419A (zh) * 2012-04-13 2014-12-24 Jvc建伍株式会社 图像编码装置、图像编码方法、图像编码程序、发送装置、发送方法、及发送程序、以及图像解码装置、图像解码方法、图像解码程序、接收装置、接收方法及接收程序
CN104247421A (zh) * 2012-04-16 2014-12-24 高通股份有限公司 用于系数扫描的系数群及系数译码
JP2016517230A (ja) * 2013-03-27 2016-06-09 ゼットティーイー コーポレイション 奥行き情報符号化および復号化方法、奥行き情報符号化および復号化装置、並びにビデオ処理及び再生装置
JP2016163278A (ja) * 2015-03-04 2016-09-05 キヤノン株式会社 画像符号化装置及びその制御方法
CN106851277A (zh) * 2012-04-13 2017-06-13 佳能株式会社 视频数据的变换单位的子集的编解码的方法、设备和系统
JP2019126080A (ja) * 2019-03-14 2019-07-25 キヤノン株式会社 画像符号化装置及び方法及びプログラム及び記憶媒体
JP2019528651A (ja) * 2016-08-29 2019-10-10 アップル インコーポレイテッドApple Inc. ビデオ符号化/復号化システムのための多次元量子化技術
JP2020127188A (ja) * 2019-02-06 2020-08-20 ソニー株式会社 残留レベルデータの位置依存エントロピ符号化のための埋込みコーディク(ebc)回路
JP2020526966A (ja) * 2017-07-05 2020-08-31 レッド.コム,エルエルシー 電子機器でのビデオ画像データ処理
CN112672160A (zh) * 2020-12-17 2021-04-16 绍兴文理学院 融合帧内块复制和串复制编码参数的编码解码方法和装置

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102611892B (zh) * 2006-03-16 2014-10-08 华为技术有限公司 在编码过程中实现自适应量化的方法及装置
WO2010041857A2 (en) * 2008-10-06 2010-04-15 Lg Electronics Inc. A method and an apparatus for decoding a video signal
PT3349360T (pt) 2011-01-14 2019-12-09 Ge Video Compression Llc Esquema de codificação e descodificação de entropia
US10129540B2 (en) * 2012-04-10 2018-11-13 Texas Instruments Incorporated Reduced complexity coefficient transmission for adaptive loop filtering (ALF) in video coding
JP2013258577A (ja) * 2012-06-13 2013-12-26 Canon Inc 撮像装置、撮像方法及びプログラム、画像符号化装置、画像符号化方法及びプログラム
US20140281367A1 (en) * 2013-03-14 2014-09-18 Mark W. Johnson Address calculation for received data
US10904551B2 (en) * 2013-04-05 2021-01-26 Texas Instruments Incorporated Video coding using intra block copy
US9875723B2 (en) * 2013-08-13 2018-01-23 Mediatek Inc. Data processing apparatus for transmitting/receiving randomly accessible compressed pixel data groups over display interface and related data processing method
JP6196117B2 (ja) * 2013-10-08 2017-09-13 株式会社東芝 画像符号化装置及び画像復号装置
JP6461029B2 (ja) 2016-03-10 2019-01-30 株式会社東芝 時系列データ圧縮装置
KR102601350B1 (ko) * 2016-05-31 2023-11-13 엘지디스플레이 주식회사 데이터 압축 방법 및 이를 이용한 표시 장치
AU2017201760B2 (en) * 2017-03-15 2023-03-09 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data
US11153604B2 (en) * 2017-11-21 2021-10-19 Immersive Robotics Pty Ltd Image compression for digital reality
US10798419B2 (en) * 2018-11-19 2020-10-06 Sony Corporation Embedded codec circuitry for sub-block based encoding of quantized prediction residual levels
US20210076047A1 (en) * 2019-09-11 2021-03-11 Chung Yuan Christian University System, apparatus and method for data compaction and decompaction
JP2021129143A (ja) 2020-02-10 2021-09-02 キオクシア株式会社 デコード装置
JP2021175049A (ja) * 2020-04-22 2021-11-01 株式会社リコー 情報処理装置、情報処理方法、及びプログラム
US11769071B2 (en) * 2020-11-30 2023-09-26 IonQ, Inc. System and method for error correction in quantum computing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06153172A (ja) * 1992-10-30 1994-05-31 Hitachi Ltd 符号量制御方式
US5757973A (en) * 1991-01-11 1998-05-26 Sony Corporation Compression of image data seperated into frequency component data in a two dimensional spatial frequency domain
JP2001045482A (ja) * 1999-07-27 2001-02-16 Canon Inc 画像処理装置及び方法
JP2004007376A (ja) * 2001-11-22 2004-01-08 Matsushita Electric Ind Co Ltd 可変長符号化方法および可変長復号化方法
WO2005081539A1 (ja) * 2004-02-23 2005-09-01 Nec Corporation 2次元信号の符号化/復号方法および装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970009408B1 (ko) 1994-01-18 1997-06-13 대우전자 주식회사 인터/인트라 테이블 선택 회로
US5883678A (en) * 1995-09-29 1999-03-16 Kabushiki Kaisha Toshiba Video coding and video decoding apparatus for reducing an alpha-map signal at a controlled reduction ratio
KR101030903B1 (ko) 2001-11-22 2011-04-22 파나소닉 주식회사 부호화 방법 및 부호화 장치
KR100571920B1 (ko) * 2003-12-30 2006-04-17 삼성전자주식회사 움직임 모델을 이용한 매쉬 기반의 움직임 보상방법을제공하는 영상의 부호화 방법 및 그 부호화 장치
US8135071B2 (en) * 2007-01-16 2012-03-13 Cisco Technology, Inc. Breakpoint determining for hybrid variable length coding using relationship to neighboring blocks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5757973A (en) * 1991-01-11 1998-05-26 Sony Corporation Compression of image data seperated into frequency component data in a two dimensional spatial frequency domain
JPH06153172A (ja) * 1992-10-30 1994-05-31 Hitachi Ltd 符号量制御方式
JP2001045482A (ja) * 1999-07-27 2001-02-16 Canon Inc 画像処理装置及び方法
JP2004007376A (ja) * 2001-11-22 2004-01-08 Matsushita Electric Ind Co Ltd 可変長符号化方法および可変長復号化方法
WO2005081539A1 (ja) * 2004-02-23 2005-09-01 Nec Corporation 2次元信号の符号化/復号方法および装置

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106851277A (zh) * 2012-04-13 2017-06-13 佳能株式会社 视频数据的变换单位的子集的编解码的方法、设备和系统
CN105245906B (zh) * 2012-04-13 2017-03-29 Jvc建伍株式会社 图像解码装置、图像解码方法、接收装置及接收方法
CN106851277B (zh) * 2012-04-13 2021-05-07 佳能株式会社 视频数据的变换单位的子集的编解码的方法、设备和系统
CN105187830A (zh) * 2012-04-13 2015-12-23 Jvc建伍株式会社 图像解码装置、图像解码方法、接收装置及接收方法
CN105187843A (zh) * 2012-04-13 2015-12-23 Jvc建伍株式会社 图像解码装置、图像解码方法、接收装置及接收方法
CN105245906A (zh) * 2012-04-13 2016-01-13 Jvc建伍株式会社 图像解码装置、图像解码方法、接收装置及接收方法
CN104247419A (zh) * 2012-04-13 2014-12-24 Jvc建伍株式会社 图像编码装置、图像编码方法、图像编码程序、发送装置、发送方法、及发送程序、以及图像解码装置、图像解码方法、图像解码程序、接收装置、接收方法及接收程序
AU2016202272B2 (en) * 2012-04-13 2017-09-28 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a subset of transform units of encoded video data
CN107105248A (zh) * 2012-04-13 2017-08-29 佳能株式会社 视频数据的变换单位的子集的编解码的方法、设备和系统
US10873761B2 (en) 2012-04-13 2020-12-22 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a subset of transform units of encoded video data
CN107105247A (zh) * 2012-04-13 2017-08-29 佳能株式会社 视频数据的变换单位的子集的编解码的方法、设备和系统
CN104247421B (zh) * 2012-04-16 2018-01-19 高通股份有限公司 用于系数扫描的系数群及系数译码
CN104247421A (zh) * 2012-04-16 2014-12-24 高通股份有限公司 用于系数扫描的系数群及系数译码
JP2014027658A (ja) * 2012-07-30 2014-02-06 Intel Corp 圧縮エンコーディング及びデコーディング方法並びに装置
JP2016517230A (ja) * 2013-03-27 2016-06-09 ゼットティーイー コーポレイション 奥行き情報符号化および復号化方法、奥行き情報符号化および復号化装置、並びにビデオ処理及び再生装置
JP2016163278A (ja) * 2015-03-04 2016-09-05 キヤノン株式会社 画像符号化装置及びその制御方法
JP2019528651A (ja) * 2016-08-29 2019-10-10 アップル インコーポレイテッドApple Inc. ビデオ符号化/復号化システムのための多次元量子化技術
JP2021036676A (ja) * 2016-08-29 2021-03-04 アップル インコーポレイテッドApple Inc. ビデオ符号化/復号化システムのための多次元量子化技術
US11153594B2 (en) 2016-08-29 2021-10-19 Apple Inc. Multidimensional quantization techniques for video coding/decoding systems
JP7063965B2 (ja) 2016-08-29 2022-05-09 アップル インコーポレイテッド ビデオ符号化/復号化システムのための多次元量子化技術
US11539974B2 (en) 2016-08-29 2022-12-27 Apple Inc. Multidimensional quantization techniques for video coding/decoding systems
JP2020526966A (ja) * 2017-07-05 2020-08-31 レッド.コム,エルエルシー 電子機器でのビデオ画像データ処理
JP7313330B2 (ja) 2017-07-05 2023-07-24 レッド.コム,エルエルシー 電子機器でのビデオ画像データ処理
JP2020127188A (ja) * 2019-02-06 2020-08-20 ソニー株式会社 残留レベルデータの位置依存エントロピ符号化のための埋込みコーディク(ebc)回路
JP7020466B2 (ja) 2019-02-06 2022-02-16 ソニーグループ株式会社 残留レベルデータの位置依存エントロピ符号化のための組込みコーディク(ebc)回路
JP2019126080A (ja) * 2019-03-14 2019-07-25 キヤノン株式会社 画像符号化装置及び方法及びプログラム及び記憶媒体
CN112672160A (zh) * 2020-12-17 2021-04-16 绍兴文理学院 融合帧内块复制和串复制编码参数的编码解码方法和装置
CN112672160B (zh) * 2020-12-17 2023-10-10 绍兴文理学院 融合帧内块复制和串复制编码参数的编码解码方法和装置

Also Published As

Publication number Publication date
JP5492206B2 (ja) 2014-05-14
US20120121012A1 (en) 2012-05-17
US8867614B2 (en) 2014-10-21
JPWO2011013192A1 (ja) 2013-01-07

Similar Documents

Publication Publication Date Title
JP5492206B2 (ja) 画像符号化方法および画像復号方法、ならびに、画像符号化装置および画像復号装置
KR102096423B1 (ko) 쿼드 트리를 이용한 블록 정보 부/복호화 방법 및 이러한 방법을 사용하는 장치
US10893273B2 (en) Data encoding and decoding
JP4800571B2 (ja) 損失の無い方法でディジタル画像を符号化するための装置および方法
JP3679083B2 (ja) 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、画像符号化プログラム、画像復号プログラム
KR100932412B1 (ko) 구성가능한 패턴 옵티마이저
KR20230085229A (ko) 종속 양자화
KR102020101B1 (ko) 비디오 코덱에서 신택스 요소 인코딩을 위한 방법 및 장치
JP2016129405A (ja) 画像復号装置、画像符号化装置および符号化データのデータ構造
JP5231243B2 (ja) 符号化装置及び符号化方法
WO2011125314A1 (ja) 動画像符号化装置および動画像復号装置
GB2496210A (en) Context adaptive (CABAC) data encoding and decoding
JP6497100B2 (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: 09847784

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011524554

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09847784

Country of ref document: EP

Kind code of ref document: A1