WO2020255578A1 - 画像処理装置および方法 - Google Patents

画像処理装置および方法 Download PDF

Info

Publication number
WO2020255578A1
WO2020255578A1 PCT/JP2020/018617 JP2020018617W WO2020255578A1 WO 2020255578 A1 WO2020255578 A1 WO 2020255578A1 JP 2020018617 W JP2020018617 W JP 2020018617W WO 2020255578 A1 WO2020255578 A1 WO 2020255578A1
Authority
WO
WIPO (PCT)
Prior art keywords
bin
context
coding
conversion
unit
Prior art date
Application number
PCT/JP2020/018617
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 EP20827816.8A priority Critical patent/EP3989563A4/en
Priority to KR1020217039759A priority patent/KR20220021486A/ko
Priority to JP2021527441A priority patent/JP7494850B2/ja
Priority to US17/606,460 priority patent/US11973948B2/en
Priority to CN202080042943.4A priority patent/CN113940072A/zh
Publication of WO2020255578A1 publication Critical patent/WO2020255578A1/ja
Priority to US18/430,668 priority patent/US20240171746A1/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • the present disclosure relates to an image processing device and a method, and more particularly to an image processing device and a method capable of suppressing an increase in load.
  • the adaptive orthogonal transformation identifier mts_idx is signaled (encoded / decoded) as mode information related to adaptive orthogonal transformation (MTS (MultipleTransform Selection)).
  • MTS MultipleTransform Selection
  • context coding was applied in which the adaptive orthogonal conversion identifier mts_idx was binarized, and the context variable ctx was assigned to each bin of the bin string bins to perform arithmetic coding.
  • the context decoding corresponding to the context coding was applied to the decoding of the coded data of the adaptive orthogonal transformation identifier mts_idx.
  • the context variable may increase unnecessarily, and the memory usage may increase unnecessarily. That is, there is a possibility that the load of the coding process and the decoding process will increase.
  • This disclosure has been made in view of such a situation, and makes it possible to suppress an increase in the load of encoding processing and decoding processing.
  • the image processing device of one aspect of the present technology applies a predetermined predetermined context variable to the first bin of the bin string obtained by binarizing the adaptive orthogonal transformation identifier indicating the mode of adaptive orthogonal transformation in image coding. It is an image processing device including a coding unit that is assigned and context-encoded.
  • a predetermined predetermined context variable is set for the first bin of the bin sequence in which the adaptive orthogonal transformation identifier indicating the mode of adaptive orthogonal transformation in image coding is binarized. It is an image processing method that assigns and encodes the context.
  • the image processing apparatus of the other aspect of the present technology is a context variable based on a parameter related to the block size for the first bin of the bin sequence in which the adaptive orthogonal transformation identifier indicating the mode of the adaptive orthogonal transformation in image coding is binarized. It is an image processing apparatus provided with a coding unit that assigns and encodes a context.
  • the image processing method of another aspect of the present technology is a context variable based on a parameter related to the block size for the first bin of the bin sequence in which the adaptive orthogonal transformation identifier indicating the mode of adaptive orthogonal transformation in image coding is binarized. It is an image processing method that assigns and encodes the context.
  • a predetermined predetermined value is set for the first bin of the bin row in which the adaptive orthogonal transformation identifier indicating the mode of the adaptive orthogonal transformation in image coding is binarized.
  • Context variables are assigned and context-encoded.
  • the parameter related to the block size is set for the first bin of the bin string in which the adaptive orthogonal transformation identifier indicating the mode of the adaptive orthogonal transformation in image coding is binarized. Based on the context variable is assigned and context-encoded.
  • Non-Patent Document 1 (above)
  • Non-Patent Document 2 Recommendation ITU-T H.264 (04/2017) "Advanced video coding for generic audiovisual services", April 2017
  • Non-Patent Document 3 Recommendation ITU-T H.265 (12/2016) "High efficiency video coding", December 2016
  • Non-Patent Document 4 J. Chen, E. Alshina, GJ Sullivan, J.-R. Ohm, J.
  • Non-Patent Document 5 B. Bross, J. Chen, S. Liu, "Versatile Video Coding (Draft 3)," JVET-L1001, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29/WG 11 12th Meeting: Macau, CN, 3-12 Oct. 2018
  • Non-Patent Document 6 JJ Chen, Y.
  • VTM 3 Versatile Video Coding and Test Model 3
  • JVET-L1002 Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29/WG 11 12th Meeting: Macau, CN, 3-12 Oct.
  • Non-Patent Document 7 Jianle Chen, Yan Ye, Seung Hwan Kim, "Algorithm description for Versatile Video Coding and Test Model 5 (VTM 5)", JVET-N1002-v2, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29/WG 11 14th Meeting: Geneva, CH, 19-27 Mar.
  • Non-Patent Document 8 Moonmo Koo, Jaehyun Lim, Mehdi Salehifar, Seung Hwan Kim, "CE6: Reduced Secondary Transform (RST) (CE6-3.1)", JVET-N0193, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29/WG 11 14th Meeting: Geneva, CH, 19-27 March 2019
  • Non-Patent Document 9 Mischa Siekmann, Martin Winken, Heiko Schwarz, Detlev Marpe "CE6 --related: Simplification of the Reduced Secondary Transform", JVET-N0555-v3, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29/WG 11 14th Meeting: Geneva, CH, 19-27 March 2019
  • Non-Patent Document 10 C.
  • the contents described in the above-mentioned non-patent documents are also the basis for determining the support requirements.
  • Quad-Tree Block Structure and QTBT Quad Tree Plus Binary Tree
  • the Quad-Tree Block Structure and QTBT Quad Tree Plus Binary Tree
  • they are within the disclosure range of the present technology. It shall meet the support requirements of the claims.
  • technical terms such as Parsing, Syntax, and Semantics are also claimed, even if they are not directly described in the examples. Shall meet the support requirements in the range of.
  • a "block” (not a block indicating a processing unit) used in the description as a partial area of an image (picture) or a processing unit indicates an arbitrary partial area in the picture unless otherwise specified. Its size, shape, characteristics, etc. are not limited.
  • “block” includes TB (Transform Block), TU (Transform Unit), PB (Prediction Block), PU (Prediction Unit), SCU (Smallest Coding Unit), and CU described in the above-mentioned non-patent documents.
  • the block size may be specified by using the identification information that identifies the size.
  • the block size may be specified by the ratio or difference with the size of the reference block (for example, LCU or SCU).
  • the designation of the block size also includes the designation of the range of the block size (for example, the designation of the range of the allowable block size).
  • the encoding includes not only the entire process of converting an image into a bitstream but also a part of the process. For example, it not only includes processing that includes prediction processing, orthogonal transformation, quantization, arithmetic coding, etc., but also includes processing that collectively refers to quantization and arithmetic coding, prediction processing, quantization, and arithmetic coding. Including processing, etc.
  • decoding includes not only the entire process of converting a bitstream into an image, but also some processes.
  • processing not only includes processing that includes inverse arithmetic decoding, inverse quantization, inverse orthogonal conversion, prediction processing, etc., but also processing that includes inverse arithmetic decoding and inverse quantization, inverse arithmetic decoding, inverse quantization, and prediction processing. Including processing that includes and.
  • Context encoding / decoding of adaptive orthogonal transformation identifiers > Conventionally, in image coding / decoding, the adaptive orthogonal transformation identifier mts_idx has been signaled (encoded / decoded) as mode information related to adaptive orthogonal transformation (MTS (Multiple Transform Selection)). Context coding using the following context was applied to the coding of the adaptive orthogonal transformation identifier mts_idx.
  • MTS Multiple Transform Selection
  • the adaptive orthogonal transformation identifier mts_idx is binarized by a truncated unary code (TU (Truncated Unary)) as shown in Table A in FIG. 1, and a bin string bins is obtained.
  • arithmetic coding is performed with reference to the context variable ctx corresponding to each binIdx (index indicating which bin) of the bin string bins obtained by the TR.
  • the index that identifies the context variable ctx is called ctxInc (or ctxIdx).
  • the context variable ctx which has a one-to-one correspondence with the value of, is assigned.
  • the appearance (frequency) of 0s and 1s in the adaptive orthogonal transformation may change depending on the division depth, so in order to improve efficiency, the context is also variable accordingly.
  • each bin of the bin string bins of the adaptive orthogonal conversion identifier mts_idx can be interpreted as a flag corresponding to the conversion type as shown in the table shown in A of FIG.
  • Decoding of the coded data of the adaptive orthogonal transformation identifier mts_idx was performed by a method corresponding to such coding. That is, context decoding using context was applied.
  • the adaptive orthogonal transformation identifier mts_idx does not occur. Therefore, there is a context variable ctx that is not used at all, and the memory usage may increase unnecessarily due to the context variable ctx (the memory capacity required for processing may increase).
  • a predetermined predetermined context variable is assigned to the first bin of the bin string obtained by binarizing the adaptive orthogonal transformation identifier indicating the mode of adaptive orthogonal transformation in image coding, and the context is encoded.
  • a context variable based on a parameter related to the block size is assigned to the first bin of the bin string in which the adaptive orthogonal conversion identifier indicating the mode of adaptive orthogonal conversion in image coding is binarized, and the context is encoded.
  • the conversion type selectivity is DCT (Discrete Cosine Transform) 2xDCT2, DST (Discrete Sine Transform) 7xDST7, DCT8xDST7, DST7xDCT8, DCT8xDCT8 in descending order. That is, the selectivity of each conversion type is not uniform. Therefore, it is inefficient to assign the context variable ctx for all conversion types in the same way, and the total number of context coding bins may increase unnecessarily. As mentioned above, each bin in the bin string bins of the adaptive orthogonal transformation identifier mts_idx can be interpreted as a flag corresponding to the transformation type. In other words, it is inefficient to assign the context variable ctx to each bin of the bin string bins in the same way, and the total number of context-encoded bins may increase unnecessarily.
  • CABAC Context-based Adaptive Binary Arithmetic Code
  • bypass coding is applied to bins corresponding to conversion types with relatively low selectivity. By doing so, it is possible to suppress an increase in the number of context coding bins and suppress an increase in the processing amount (throughput) of CABAC while suppressing a decrease in coding efficiency. That is, it is possible to suppress an increase in the load of the coding process and the decoding process.
  • the adaptive orthogonal conversion identifier indicating the mode of the adaptive orthogonal conversion in image coding which is performed as shown in the table shown in B of FIG. 1, is binarized to each bin of the bin sequence.
  • the context variable is assigned (method 0) as follows.
  • a predetermined predetermined context variable (fixed (one-to-one correspondence) context variable) ctx is assigned to the first bin of the bin sequence and context-encoded (method 1).
  • a predetermined predetermined context variable for identifying the context variable ctx is used for the first bin of the bin sequence in which the adaptive orthogonal conversion identifier is binarized.
  • the index ctxInc) may be assigned and context-encoded, and bypass coding may be performed on the second to fourth bins of the bin sequence (method 1-1).
  • predetermined context variables (index ctxInc) are different from each other for the first and second bins of the bin sequence in which the adaptive orthogonal conversion identifier is binarized. ) May be assigned and context-encoded, and bypass coding may be performed on the third and fourth bins of the bin sequence (method 1-2).
  • predetermined different context variables (index ctxInc) are set for the first to third bins of the bin string obtained by binarizing the adaptive orthogonal conversion identifier. ) May be assigned and context-encoded, and bypass coding may be performed on the fourth bin of the bin sequence (method 1-3).
  • predetermined different context variables (index ctxInc) are set for the first to fourth bins of the bin string obtained by binarizing the adaptive orthogonal transformation identifier. ) May be assigned and context-encoded (method 1-4).
  • the number of contexts, the number of context-encoded bins, and the number of bypass-encoded bins for each of these methods is shown in the table of FIG.
  • the number of contexts was 9, the number of context-encoding bins was 4, and the number of bypass-encoding bins was 0.
  • the number of contexts is 1, the number of context coding bins is 1, and the number of bypass coding bins is 3.
  • the number of contexts is 2, the number of context coding bins is 2, and the number of bypass coding bins is 2.
  • the number of contexts is 3, the number of context-encoding bins is 3, and the number of bypass-encoding bins is 1. Further, in the case of Method 1-4, the number of contexts is 4, the number of context-encoding bins is 4, and the number of bypass-encoding bins is 0.
  • the number of context coding bins required for coding can be reduced as compared with the case of method 0.
  • the number of context coding bins required for coding is the same as in the case of method 0. That is, by applying Method 1, bypass coding can be applied to bins corresponding to conversion types with relatively low selectivity. Therefore, it is possible to suppress an increase in the number of context coding bins and suppress an increase in the processing amount (throughput) while suppressing a decrease in coding efficiency.
  • each bin of the bin string of the binarized adaptive orthogonal conversion identifier showing the mode of the inverse adaptive orthogonal conversion in image decoding which was performed as shown in the table shown in B of FIG.
  • the context variable is assigned to (method 0) as follows.
  • a predetermined predetermined context variable (fixed (one-to-one correspondence) context variable) ctx is assigned to the first bin of the bin sequence, and the context is decoded (method 1).
  • a predetermined predetermined context variable (to identify the context variable ctx) is used for the first bin of the bin string of the binarized adaptive orthogonal conversion identifier.
  • Index ctxInc may be assigned to perform context decoding, and bypass decoding may be performed on the second to fourth bins of the bin sequence (method 1-1).
  • predetermined context variables (indexes) different from each other are set for the first and second bins of the bin string of the binarized adaptive orthogonal conversion identifier.
  • ctxInc may be assigned to perform context decoding, and bypass decoding may be performed on the third and fourth bins of the bin sequence (method 1-2).
  • predetermined different context variables are set for the first to third bins of the bin string of the binarized adaptive orthogonal conversion identifier.
  • ctxInc may be assigned to perform context decoding, and bypass decoding may be performed on the fourth bin of the bin row (method 1-3).
  • B1 is assigned and the context is decoded
  • predetermined different context variables are set for the first to fourth bins of the bin string of the binarized adaptive orthogonal transformation identifier.
  • ctxInc may be assigned to decode the context (method 1-4).
  • the number of contexts, the number of context coding bins, and the number of bypass coding bins of each of these methods are the same as in the case of coding (FIG. 5).
  • the number of context-encoding bins required for decoding can be reduced as compared with the case of method 0.
  • the number of context-encoded bins required for decoding is the same as in the case of method 0. That is, by applying Method 1, bypass decoding can be applied to bins corresponding to conversion types with relatively low selectivity. Therefore, it is possible to suppress an increase in the number of context coding bins and suppress an increase in the processing amount (throughput) while suppressing a decrease in coding efficiency.
  • FIG. 6 is a block diagram showing an example of the configuration of an image coding device, which is an aspect of an image processing device to which the present technology is applied.
  • the image coding device 100 shown in FIG. 6 is a device that encodes image data of a moving image.
  • the image coding device 100 encodes image data of a moving image by the coding method described in any one of Non-Patent Document 1 to Non-Patent Document 10.
  • FIG. 6 shows the main things such as the processing unit (block) and the data flow, and not all of them are shown in FIG. That is, in the image coding apparatus 100, there may be a processing unit that is not shown as a block in FIG. 6, or there may be a processing or data flow that is not shown as an arrow or the like in FIG.
  • the image coding device 100 includes a control unit 101, a sorting buffer 111, a calculation unit 112, an orthogonal conversion unit 113, a quantization unit 114, a coding unit 115, a storage buffer 116, and an inverse quantization unit. It has 117, an inverse orthogonal conversion unit 118, a calculation unit 119, an in-loop filter unit 120, a frame memory 121, a prediction unit 122, and a rate control unit 123.
  • the control unit 101 divides the moving image data held by the sorting buffer 111 into blocks (CU, PU, conversion block, etc.) of the processing unit based on the block size of the external or predetermined processing unit. .. Further, the control unit 101 determines the coding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, filter information Finfo, etc.) to be supplied to each block based on, for example, RDO (Rate-Distortion Optimization). To do.
  • RDO Rate-Distortion Optimization
  • control unit 101 determines the coding parameters as described above, the control unit 101 supplies them to each block. Specifically, it is as follows.
  • Header information Hinfo is supplied to each block.
  • the prediction mode information Pinfo is supplied to the coding unit 115 and the prediction unit 122.
  • the conversion information Tinfo is supplied to the coding unit 115, the orthogonal conversion unit 113, the quantization unit 114, the inverse quantization unit 117, and the inverse orthogonal conversion unit 118.
  • the filter information Finfo is supplied to the in-loop filter unit 120.
  • ⁇ Sort buffer> Each field (input image) of moving image data is input to the image coding device 100 in the reproduction order (display order).
  • the sorting buffer 111 acquires and holds (stores) each input image in its reproduction order (display order).
  • the sorting buffer 111 sorts the input images in the coding order (decoding order) or divides the input images into blocks of processing units based on the control of the control unit 101.
  • the sorting buffer 111 supplies each processed input image to the calculation unit 112. Further, the sorting buffer 111 also supplies each input image (original image) to the prediction unit 122 and the in-loop filter unit 120.
  • the calculation unit 112 takes the image I corresponding to the block of the processing unit and the prediction image P supplied from the prediction unit 122 as inputs, subtracts the prediction image P from the image I as shown in the following equation, and predicts.
  • the residual D is derived and supplied to the orthogonal conversion unit 113.
  • the orthogonal conversion unit 113 receives the predicted residual D supplied from the calculation unit 112 and the conversion information Tinfo supplied from the control unit 101 as inputs, and is orthogonal to the predicted residual D based on the conversion information Tinfo. The conversion is performed and the conversion coefficient Coeff is derived.
  • the orthogonal conversion unit 113 can perform adaptive orthogonal conversion that adaptively selects the type (conversion coefficient) of the orthogonal conversion.
  • the orthogonal conversion unit 113 supplies the obtained conversion coefficient Coeff to the quantization unit 114.
  • the quantization unit 114 takes the conversion coefficient Coeff supplied from the orthogonal conversion unit 113 and the conversion information Tinfo supplied from the control unit 101 as inputs, and scales (quantizes) the conversion coefficient Coeff based on the conversion information Tinfo. ). The rate of this quantization is controlled by the rate control unit 123.
  • the quantization unit 114 supplies the conversion coefficient after quantization obtained by such quantization, that is, the quantization conversion coefficient level level, to the coding unit 115 and the inverse quantization unit 117.
  • the coding unit 115 includes a quantization conversion coefficient level level supplied from the quantization unit 114 and various coding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, filter information Finfo) supplied from the control unit 101. Etc.), information about the filter such as the filter coefficient supplied from the in-loop filter unit 120, and information about the optimum prediction mode supplied from the prediction unit 122 are input.
  • the coding unit 115 performs variable length coding (for example, arithmetic coding) of the quantization conversion coefficient level level to generate a bit string (coded data).
  • the coding unit 115 derives the residual information Rinfo from the quantization conversion coefficient level, encodes the residual information Rinfo, and generates a bit string.
  • the coding unit 115 includes the information about the filter supplied from the in-loop filter unit 120 in the filter information Finfo, and includes the information about the optimum prediction mode supplied from the prediction unit 122 in the prediction mode information Pinfo. Then, the coding unit 115 encodes the various coding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, filter information Finfo, etc.) described above to generate a bit string.
  • the coding unit 115 multiplexes the bit strings of the various information generated as described above to generate the coded data.
  • the coding unit 115 supplies the coded data to the storage buffer 116.
  • the storage buffer 116 temporarily holds the coded data obtained by the coding unit 115.
  • the storage buffer 116 outputs the held coded data as, for example, a bit stream or the like to the outside of the image coding device 100 at a predetermined timing.
  • this coded data is transmitted to the decoding side via an arbitrary recording medium, an arbitrary transmission medium, an arbitrary information processing device, or the like. That is, the storage buffer 116 is also a transmission unit that transmits encoded data (bit stream).
  • the dequantization unit 117 performs processing related to dequantization. For example, the inverse quantization unit 117 takes the quantization conversion coefficient level level supplied from the quantization unit 114 and the conversion information Tinfo supplied from the control unit 101 as inputs, and quantizes based on the conversion information Tinfo. Conversion coefficient level Scales the value of level (inverse quantization). This inverse quantization is an inverse process of quantization performed in the quantization unit 114.
  • the inverse quantization unit 117 supplies the conversion coefficient Coeff_IQ obtained by such inverse quantization to the inverse orthogonal conversion unit 118. Since the inverse orthogonal conversion unit 118 is the same as the inverse orthogonal conversion unit (described later) on the decoding side, the description (described later) on the decoding side can be applied to the inverse quantization unit 117.
  • the inverse orthogonal conversion unit 118 performs processing related to the inverse orthogonal conversion. For example, the inverse orthogonal conversion unit 118 inputs the conversion coefficient Coeff_IQ supplied from the inverse quantization unit 117 and the conversion information Tinfo supplied from the control unit 101, and sets the conversion coefficient Coeff_IQ based on the conversion information Tinfo. On the other hand, the inverse orthogonal transformation is performed to derive the predicted residual D'.
  • This inverse orthogonal conversion is an inverse process of the orthogonal transformation performed by the orthogonal transform unit 113. That is, the inverse orthogonal conversion unit 118 can perform adaptive inverse orthogonal transformation that adaptively selects the type (conversion coefficient) of the inverse orthogonal transformation.
  • the inverse orthogonal conversion unit 118 supplies the predicted residual D'obtained by such an inverse orthogonal conversion to the calculation unit 119. Since the inverse orthogonal conversion unit 118 is the same as the inverse orthogonal conversion unit (described later) on the decoding side, the description (described later) given on the decoding side can be applied to the inverse orthogonal conversion unit 118.
  • the calculation unit 119 inputs the prediction residual D'supplied from the inverse orthogonal conversion unit 118 and the prediction image P supplied from the prediction unit 122.
  • the calculation unit 119 adds the predicted residual D'and the predicted image P corresponding to the predicted residual D'to derive the locally decoded image Rlocal.
  • the calculation unit 119 supplies the derived locally decoded image Rlocal to the in-loop filter unit 120 and the frame memory 121.
  • the in-loop filter unit 120 performs processing related to the in-loop filter processing. For example, the in-loop filter unit 120 combines the locally decoded image Rlocal supplied from the calculation unit 119, the filter information Finfo supplied from the control unit 101, and the input image (original image) supplied from the sorting buffer 111. Input.
  • the information input to the in-loop filter unit 120 is arbitrary, and information other than this information may be input. For example, even if the prediction mode, motion information, code amount target value, quantization parameter QP, picture type, block (CU, CTU, etc.) information and the like are input to the in-loop filter unit 120 as necessary. Good.
  • the in-loop filter unit 120 appropriately filters the locally decoded image Rlocal based on the filter information Finfo.
  • the in-loop filter unit 120 also uses an input image (original image) and other input information for the filter processing, if necessary.
  • the in-loop filter unit 120 includes a bilateral filter, a deblocking filter (DBF (DeBlocking Filter)), an adaptive offset filter (SAO (Sample Adaptive Offset)), and an adaptive loop filter (ALF (Adaptive Loop Filter)). Apply two in-loop filters in this order. It should be noted that which filter is applied and which order is applied is arbitrary and can be appropriately selected.
  • DPF DeBlocking Filter
  • SAO Sample Adaptive Offset
  • ALF adaptive Loop Filter
  • the filter processing performed by the in-loop filter unit 120 is arbitrary and is not limited to the above example.
  • the in-loop filter unit 120 may apply a Wiener filter or the like.
  • the in-loop filter unit 120 supplies the filtered locally decoded image Rlocal to the frame memory 121.
  • the in-loop filter unit 120 supplies information about the filter to the coding unit 115.
  • the frame memory 121 performs processing related to storage of data related to images. For example, the frame memory 121 receives and holds (stores) the locally decoded image Rlocal supplied from the calculation unit 119 and the filtered locally decoded image Rlocal supplied from the in-loop filter unit 120 as inputs. Further, the frame memory 121 reconstructs and holds the decoded image R for each picture unit using the locally decoded image Rlocal (stored in the buffer in the frame memory 121). The frame memory 121 supplies the decoded image R (or a part thereof) to the prediction unit 122 in response to the request of the prediction unit 122.
  • the prediction unit 122 performs processing related to the generation of the prediction image.
  • the prediction unit 122 includes the prediction mode information Pinfo supplied from the control unit 101, the input image (original image) supplied from the sorting buffer 111, and the decoded image R (or a part thereof) read from the frame memory 121. Is input.
  • the prediction unit 122 uses the prediction mode information Pinfo and the input image (original image) to perform prediction processing such as inter prediction and intra prediction, makes a prediction by referring to the decoded image R as a reference image, and based on the prediction result.
  • the motion compensation process is performed to generate the predicted image P.
  • the prediction unit 122 supplies the generated prediction image P to the calculation unit 112 and the calculation unit 119. Further, the prediction unit 122 supplies information regarding the prediction mode selected by the above processing, that is, the optimum prediction mode, to the coding unit 115 as needed.
  • the rate control unit 123 performs processing related to rate control. For example, the rate control unit 123 controls the rate of the quantization operation of the quantization unit 114 based on the code amount of the coded data stored in the storage buffer 116 so that overflow or underflow does not occur.
  • each processing unit may be configured by a logic circuit that realizes the above-mentioned processing.
  • each processing unit has, for example, a CPU (Central Processing Unit), a ROM (Read Only Memory), a RAM (Random Access Memory), and the like, and the above-mentioned processing is realized by executing a program using them. You may do so.
  • each processing unit may have both configurations, and a part of the above-mentioned processing may be realized by a logic circuit, and the other may be realized by executing a program.
  • the configurations of the respective processing units may be independent of each other. For example, some processing units realize a part of the above-mentioned processing by a logic circuit, and some other processing units execute a program.
  • the above-mentioned processing may be realized by the other processing unit by both the logic circuit and the execution of the program.
  • FIG. 7 is a block diagram showing a main configuration example of the coding unit 115 of FIG. As shown in FIG. 7, the coding unit 115 includes a binarization unit 131, a selection unit 132, a context setting unit 133, a context coding unit 134, and a bypass coding unit 135.
  • the coding unit 115 also encodes other coding parameters, the residual information Rinfo, and the like, as described above.
  • the coding unit 115 is described in ⁇ 2-1. Coding of the adaptive orthogonal transformation identifier is performed by applying the method 1 described in>.
  • the binarization unit 131 performs processing related to binarization of the adaptive orthogonal conversion identifier. For example, the binarization unit 131 acquires the adaptive orthogonal transformation identifier mts_idx supplied from the control unit 101. Further, the binarization unit 131 binarizes the adaptive orthogonal conversion identifier with a truncated utility code (or a truncated rice code) to generate a bin sequence thereof. Further, the binarization unit 131 supplies the generated bin sequence to the selection unit 132.
  • the selection unit 132 performs processing related to selection of the supply destination of each bin in the bin sequence of the adaptive orthogonal conversion identifier. For example, the selection unit 132 acquires the bin sequence of the adaptive orthogonal conversion identifier supplied from the binarization unit 131.
  • the selection unit 132 selects whether to set the supply destination to the context setting unit 133 or the bypass coding unit 135 for each bin in the bin sequence of the acquired adaptive orthogonal conversion identifier.
  • the selection unit 132 has ⁇ 2-1. The selection is made according to Method 1 described above in Coding of Adaptive Orthogonal Transformation Identifiers>. For example, the selection unit 132 may make its selection according to method 1-1 (that is, the table shown in A of FIG. 3). Further, the selection unit 132 may make the selection according to the method 1-2 (that is, the table shown in B of FIG. 3). Further, the selection unit 132 may make the selection according to the method 1-3 (that is, the table shown in A of FIG. 4). Further, the selection unit 132 may make the selection according to the method 1-4 (that is, the table shown in B of FIG. 4).
  • the selection unit 132 supplies the bin to the context setting unit 133.
  • the selection unit 132 supplies the bin to the bypass coding unit 135.
  • the context setting unit 133 performs processing related to context setting. For example, the context setting unit 133 acquires the bin supplied from the selection unit 132. The context setting unit 133 assigns a context variable (index ctxInc) to the bin.
  • the context setting unit 133 is described in ⁇ 2-1. In Coding of Adaptive Orthogonal Transformation Identifier>, the allocation is performed according to the method 1 described above. For example, the context setting unit 133 may make the allocation according to the method 1-1 (that is, the table shown in A of FIG. 3). Further, the context setting unit 133 may make the allocation according to the method 1-2 (that is, the table shown in B of FIG. 3).
  • the context setting unit 133 may make the allocation according to the method 1-3 (that is, the table shown in A of FIG. 4). Further, the context setting unit 133 may make the allocation according to the method 1-4 (that is, the table shown in B of FIG. 4).
  • the context setting unit 133 can acquire the coding result from the context coding unit 134.
  • the context setting unit 133 can appropriately update the context variable (index ctxInc) using the encoding result.
  • the context setting unit 133 supplies the context variable (index ctxInc) derived in this way to the context coding unit 134.
  • the context coding unit 134 performs processing related to arithmetic coding. For example, the context encoding unit 134 acquires a context variable (index ctxInc) supplied from the context setting unit 133. Further, the context coding unit 134 performs arithmetic coding using the context variable (index ctxInc). That is, context coding is performed. Further, the context coding unit 134 supplies the coding result to the storage buffer 116 as coded data.
  • a context variable index ctxInc
  • the bypass coding unit 135 performs processing related to bypass coding. For example, the bypass coding unit 135 acquires a bin supplied from the selection unit 132. The bypass coding unit 135 bypass-codes (arithmetically encodes) the bin. The bypass coding unit 135 supplies the coding result to the storage buffer 116 as coded data.
  • each processing unit (binarization unit 131 to bypass coding unit 135) performs processing, so that the coding unit 115 is subjected to method 1 (for example, any one of methods 1-1 to 1-4).
  • method 1 for example, any one of methods 1-1 to 1-4.
  • step S101 the sorting buffer 111 is controlled by the control unit 101 to sort the frame order of the input moving image data from the display order to the coding order.
  • step S102 the control unit 101 sets a processing unit (block division is performed) for the input image held by the sorting buffer 111.
  • step S103 the control unit 101 determines (sets) the coding parameters for the input image held by the sorting buffer 111.
  • step S104 the prediction unit 122 performs prediction processing and generates a prediction image or the like of the optimum prediction mode. For example, in this prediction process, the prediction unit 122 performs intra-prediction to generate a prediction image or the like of the optimum intra-prediction mode, and performs inter-prediction to generate a prediction image or the like of the optimum inter-prediction mode.
  • the optimum prediction mode is selected from among them based on the cost function value and the like.
  • step S105 the calculation unit 112 calculates the difference between the input image and the prediction image of the optimum mode selected by the prediction processing in step S104. That is, the calculation unit 112 generates a prediction residual D between the input image and the prediction image.
  • the amount of the predicted residual D obtained in this way is smaller than that of the original image data. Therefore, the amount of data can be compressed as compared with the case where the image is encoded as it is.
  • step S106 the orthogonal conversion unit 113 performs orthogonal conversion processing on the predicted residual D generated by the processing in step S105, and derives the conversion coefficient Coeff.
  • step S107 the quantization unit 114 quantizes the conversion coefficient Coeff obtained by the process of step S106 by using the quantization parameter calculated by the control unit 101, and derives the quantization conversion coefficient level. ..
  • step S108 the inverse quantization unit 117 inverse-quantizes the quantization conversion coefficient level level generated by the process of step S107 with the characteristics corresponding to the quantization characteristics of step S107, and derives the conversion coefficient Coeff_IQ. ..
  • step S109 the inverse orthogonal conversion unit 118 performs inverse orthogonal conversion of the conversion coefficient Coeff_IQ obtained by the processing of step S108 by a method corresponding to the orthogonal conversion processing of step S106, and derives the predicted residual D'. Since this inverse orthogonal conversion process is the same as the inverse orthogonal conversion process (described later) performed on the decoding side, the description (described later) performed on the decoding side is applied to the inverse orthogonal conversion process in step S109. can do.
  • step S110 the calculation unit 119 adds the predicted image obtained by the prediction process of step S104 to the predicted residual D'derived by the process of step S109 to obtain the locally decoded decoded image. Generate.
  • step S111 the in-loop filter unit 120 performs an in-loop filter process on the locally decoded decoded image derived by the process of step S110.
  • step S112 the frame memory 121 stores the locally decoded decoded image derived by the process of step S110 and the locally decoded decoded image filtered in step S111.
  • the coding unit 115 encodes the quantization conversion coefficient level level obtained by the process of step S107.
  • the coding unit 115 encodes the quantization conversion coefficient level level, which is information about an image, by arithmetic coding or the like to generate coded data.
  • the coding unit 115 encodes various coding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo). Further, the coding unit 115 derives the residual information RInfo from the quantization conversion coefficient level and encodes the residual information RInfo.
  • step S114 the storage buffer 116 accumulates the coded data thus obtained and outputs it, for example, as a bit stream to the outside of the image coding device 100.
  • This bit stream is transmitted to the decoding side via, for example, a transmission line or a recording medium.
  • the rate control unit 123 performs rate control as needed.
  • step S114 When the process of step S114 is completed, the image coding process is completed.
  • the coding unit 115 encodes the adaptive orthogonal transformation identifier mts_idx. At that time, the coding unit 115 is described in ⁇ 2-1. Coding of the adaptive orthogonal transformation identifier is performed by applying the method 1 described in>. An example of the coding flow of the adaptive orthogonal transformation identifier mts_idx will be described with reference to the flowchart of FIG.
  • the binarizing unit 131 of the coding unit 115 binarizes the adaptive orthogonal conversion identifier mts_idx with the truncated unity code (or the truncated rice code) in step S131, and binarizes the bin sequence. To generate.
  • the selection unit 132 selects the context setting unit 133 as the supply destination of the bin (that is, selects the context coding).
  • the selection unit 132 applies context coding as the encoding method for this bin according to any of the tables shown in FIGS. 3 and 4 (ie, applying any of methods 1-1 to 1-4). Select.
  • step S133 the context setting unit 133 assigns a predetermined predetermined context variable ctx (index ctxInc) to the bin. Then, the context coding unit 134 performs arithmetic coding using the context variable. That is, context coding is performed.
  • step S134 the selection unit 132 targets unprocessed bins among the second and subsequent bins in the bin row.
  • step S135 the selection unit 132 determines whether or not to bypass-code the bin to be processed. For example, the selection unit 132 bypass-codes the bin to be processed according to any of the tables shown in FIGS. 3 and 4 (ie, applying any of methods 1-1 to 1-4). Determine if not.
  • step S136 the process proceeds to step S136. That is, in this case, the selection unit 132 selects the bypass coding unit 135 as the supply destination of the bin. In step S136, the bypass coding unit 135 bypass-codes (arithmetically encodes) the bin to be processed. When the process of step S136 is completed, the process proceeds to step S138.
  • step S137 If it is determined in step S135 that bypass coding is not performed (context coding is performed), the process proceeds to step S137. That is, in this case, the selection unit 132 selects the context setting unit 133 as the supply destination of the bin. In step S137, the context setting unit 133 assigns a predetermined predetermined context variable ctx (index ctxInc) to the bin. Then, the context coding unit 134 performs arithmetic coding using the context variable. That is, context coding is performed. When the process of step S137 is completed, the process proceeds to step S138.
  • step S138 the coding unit 115 determines whether or not to end the coding of the adaptive orthogonal transformation identifier mts_idx. If it is determined that the process is not completed, the process returns to step S134, and the subsequent processes are repeated. If it is determined in step S138 that the process is finished, the coding process is finished.
  • the coding unit 115 can apply the method 1 (for example, any of the methods 1-1 to 1-4) to encode the adaptive orthogonal conversion identifier. Therefore, it is possible to suppress an increase in memory usage. In addition, it is possible to suppress an increase in the amount of processing (throughput). That is, it is possible to suppress an increase in the load of the coding process.
  • FIG. 10 is a block diagram showing an example of the configuration of an image decoding device, which is an aspect of an image processing device to which the present technology is applied.
  • the image decoding device 200 shown in FIG. 10 is a device that encodes coded data of a moving image.
  • the image decoding device 200 decodes the encoded data by the decoding method described in any one of Non-Patent Document 1 to Non-Patent Document 10 to generate moving image data.
  • the image decoding device 200 decodes the coded data (bit stream) generated by the image coding device 100 described above to generate moving image data.
  • FIG. 10 shows the main things such as the processing unit and the data flow, and not all of them are shown in FIG. That is, in the image decoding apparatus 200, there may be a processing unit that is not shown as a block in FIG. 10, or there may be a processing or data flow that is not shown as an arrow or the like in FIG.
  • the image decoding apparatus 200 includes a storage buffer 211, a decoding unit 212, an inverse quantization unit 213, an inverse orthogonal conversion unit 214, a calculation unit 215, an in-loop filter unit 216, a sorting buffer 217, a frame memory 218, and It has a prediction unit 219.
  • the prediction unit 219 has an intra prediction unit (not shown) and an inter prediction unit.
  • the storage buffer 211 acquires and holds (stores) the bit stream input to the image decoding device 200.
  • the storage buffer 211 supplies the stored bit stream to the decoding unit 212 at a predetermined timing or when a predetermined condition is satisfied.
  • the decoding unit 212 performs processing related to image decoding. For example, the decoding unit 212 takes the bit stream supplied from the storage buffer 211 as an input, decodes the syntax value of each syntax element from the bit string in a variable length according to the definition of the syntax table, and derives the parameters. To do.
  • the syntax element and the parameters derived from the syntax value of the syntax element include, for example, information such as header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, residual information Rinfo, and filter information Finfo. That is, the decoding unit 212 parses (analyzes and acquires) this information from the bit stream. This information will be described below.
  • Header information Hinfo includes header information such as VPS (Video Parameter Set) / SPS (Sequence Parameter Set) / PPS (Picture Parameter Set) / SH (slice header).
  • the header information Hinfo includes, for example, image size (width PicWidth, height PicHeight), bit depth (brightness bitDepthY, color difference bitDepthC), color difference array type ChromaArrayType, maximum CU size MaxCUSize / minimum MinCUSize, quadtree division ( Maximum depth of Quad-tree division MaxQTDepth / Minimum depth MinQTDepth / Maximum depth of binary-tree division (Binary-tree division) MaxBTDepth / Minimum depth MinBTDepth, Maximum value of conversion skip block MaxTSSize (also called maximum conversion skip block size) ), Information that defines the on / off flag (also called the valid flag) of each coding tool is included.
  • the on / off flags of the coding tool included in the header information Hinfo include the on / off flags related to the conversion and quantization processing shown below.
  • the on / off flag of the coding tool can also be interpreted as a flag indicating whether or not the syntax related to the coding tool exists in the coded data. Further, when the value of the on / off flag is 1 (true), it indicates that the coding tool can be used, and when the value of the on / off flag is 0 (false), it indicates that the coding tool cannot be used. Shown. The interpretation of the flag value may be reversed.
  • Inter-component prediction enabled flag (ccp_enabled_flag): Flag information indicating whether or not inter-component prediction (CCP (Cross-Component Prediction), also called CC prediction) can be used. For example, if this flag information is "1" (true), it indicates that it can be used, and if it is "0" (false), it indicates that it cannot be used.
  • CCP Cross-Component Prediction
  • This CCP is also called inter-component linear prediction (CCLM or CCLMP).
  • the prediction mode information Pinfo includes, for example, information such as size information PBSize (prediction block size) of the processing target PB (prediction block), intra prediction mode information IPinfo, and motion prediction information MVinfo.
  • Intra prediction mode information IPinfo includes, for example, prev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode in JCTVC-W1005, 7.3.8.5 Coding Unit syntax, and the brightness intra prediction mode IntraPredModeY derived from the syntax.
  • Intra-prediction mode information IPinfo includes, for example, inter-component prediction flag (ccp_flag (cclmp_flag)), multi-class linear prediction mode flag (mclm_flag), color difference sample position type identifier (chroma_sample_loc_type_idx), color difference MPM identifier (chroma_mpm_idx), and , IntraPredModeC, etc., which are derived from these syntaxes.
  • the multi-class linear prediction mode flag is information regarding the mode of linear prediction (linear prediction mode information). More specifically, the multi-class linear prediction mode flag (mclm_flag) is flag information indicating whether or not to set the multi-class linear prediction mode. For example, "0" indicates that it is a one-class mode (single class mode) (for example, CCLMP), and "1" indicates that it is a two-class mode (multi-class mode) (for example, MCLMP). ..
  • the color difference sample position type identifier (chroma_sample_loc_type_idx) is an identifier that identifies the type of pixel position of the color difference component (also referred to as the color difference sample position type). For example, when the color difference array type (ChromaArrayType), which is information about the color format, indicates the 420 format, the color difference sample position type identifier is assigned as shown in the following formula.
  • this color difference sample position type identifier (chroma_sample_loc_type_idx) is transmitted (stored in) as information (chroma_sample_loc_info ()) regarding the pixel position of the color difference component.
  • the color difference MPM identifier (chroma_mpm_idx) is an identifier indicating which prediction mode candidate in the color difference intra prediction mode candidate list (intraPredModeCandListC) is designated as the color difference intra prediction mode.
  • the information included in the prediction mode information Pinfo is arbitrary, and information other than this information may be included.
  • the conversion information Tinfo includes, for example, the following information.
  • the information included in the conversion information Tinfo is arbitrary, and information other than this information may be included.
  • Transform skip flag A flag that indicates whether to skip the (reverse) primary conversion and the (reverse) secondary conversion.
  • Scan identifier (scanIdx) Secondary conversion identifier (st_idx) Adaptive Orthogonal Transformation Identifier (mts_idx) Quantization parameters (qp) Quantization matrix (scaling_matrix (eg JCTVC-W1005, 7.3.4 Scaling list data syntax))
  • the residual information Rinfo includes, for example, the following syntax.
  • cbf (coded_block_flag): Residual data presence / absence flag last_sig_coeff_x_pos: Last non-zero conversion coefficient X coordinate last_sig_coeff_y_pos: Last non-zero conversion coefficient Y coordinate coded_sub_block_flag: Subblock non-zero conversion coefficient presence / absence flag sig_coeff_flag: Non-zero conversion coefficient presence / absence flag gr1_flag Flag indicating whether the conversion coefficient level is greater than 1 (also called GR1 flag)
  • gr2_flag Flag indicating whether the level of non-zero conversion coefficient is greater than 2 (also called GR2 flag) sign_flag: A code indicating the positive or negative of the non-zero conversion coefficient (also called a sign code) coeff_abs_level_remaining: Residual level of non-zero conversion factor (also called non-zero conversion factor residual level) Such.
  • the information included in the residual information Rinfo is arbitrary, and information other than this information may be included.
  • the filter information Finfo includes, for example, control information related to each of the following filter processes.
  • Control information for deblocking filter (DBF) Control information for pixel adaptive offset (SAO)
  • Control information for adaptive loop filter (ALF) Control information for other linear and nonlinear filters
  • filter information Finfo is arbitrary, and information other than this information may be included.
  • the decoding unit 212 derives the quantization conversion coefficient level level of each coefficient position in each conversion block with reference to the residual information Rinfo.
  • the decoding unit 212 supplies the quantization conversion coefficient level to the inverse quantization unit 213.
  • the decoding unit 212 supplies the parsed header information Hinfo, prediction mode information Pinfo, quantization conversion coefficient level level, conversion information Tinfo, and filter information Finfo to each block. Specifically, it is as follows.
  • the header information Hinfo is supplied to the inverse quantization unit 213, the inverse orthogonal conversion unit 214, the prediction unit 219, and the in-loop filter unit 216.
  • the prediction mode information Pinfo is supplied to the inverse quantization unit 213 and the prediction unit 219.
  • the conversion information Tinfo is supplied to the inverse quantization unit 213 and the inverse orthogonal conversion unit 214.
  • the filter information Finfo is supplied to the in-loop filter unit 216.
  • each coding parameter may be supplied to an arbitrary processing unit.
  • other information may be supplied to an arbitrary processing unit.
  • the dequantization unit 213 has at least a configuration necessary for performing processing related to dequantization.
  • the inverse quantization unit 213 takes the conversion information Tinfo and the quantization conversion coefficient level level supplied from the decoding unit 212 as inputs, and scales the value of the quantization conversion coefficient level level based on the conversion information Tinfo (reverse). Quantization), and the conversion coefficient Coeff_IQ after dequantization is derived.
  • this inverse quantization is performed as an inverse process of quantization by the quantization unit 114 of the image coding apparatus 100. Further, this dequantization is the same process as the dequantization by the dequantization unit 117 of the image coding apparatus 100. That is, the inverse quantization unit 117 of the image coding apparatus 100 performs the same processing (inverse quantization) as the inverse quantization unit 213.
  • the inverse quantization unit 213 supplies the derived conversion coefficient Coeff_IQ to the inverse orthogonal conversion unit 214.
  • the inverse orthogonal conversion unit 214 performs processing related to the inverse orthogonal conversion. For example, the inverse orthogonal conversion unit 214 inputs the conversion coefficient Coeff_IQ supplied from the inverse quantization unit 213 and the conversion information Tinfo supplied from the decoding unit 212, and the conversion coefficient Coeff_IQ is set based on the conversion information Tinfo. On the other hand, the inverse orthogonal transformation process is performed to derive the predicted residual D'.
  • this inverse orthogonal conversion is performed as an inverse process of the orthogonal transformation by the orthogonal transform unit 113 of the image coding apparatus 100. Further, this inverse orthogonal conversion is the same process as the inverse orthogonal transformation by the inverse orthogonal conversion unit 118 of the image coding apparatus 100. That is, the inverse orthogonal conversion unit 118 of the image coding apparatus 100 performs the same processing (inverse orthogonal conversion) as the inverse orthogonal conversion unit 214.
  • the inverse orthogonal conversion unit 214 supplies the derived predicted residual D'to the calculation unit 215.
  • the calculation unit 215 performs processing related to addition of information related to images. For example, the calculation unit 215 inputs the prediction residual D'supplied from the inverse orthogonal conversion unit 214 and the prediction image P supplied from the prediction unit 219. As shown in the following equation, the calculation unit 215 adds the predicted residual D'and the predicted image P (predicted signal) corresponding to the predicted residual D'to derive the locally decoded image Rlocal.
  • the calculation unit 215 supplies the derived locally decoded image Rlocal to the in-loop filter unit 216 and the frame memory 218.
  • the in-loop filter unit 216 performs processing related to the in-loop filter processing. For example, the in-loop filter unit 216 inputs the locally decoded image Rlocal supplied from the calculation unit 215 and the filter information Finfo supplied from the decoding unit 212.
  • the information input to the in-loop filter unit 216 is arbitrary, and information other than this information may be input.
  • the in-loop filter unit 216 appropriately filters the locally decoded image Rlocal based on the filter information Finfo.
  • the in-loop filter unit 216 includes a bilateral filter, a deblocking filter (DBF (DeBlocking Filter)), an adaptive offset filter (SAO (Sample Adaptive Offset)), and an adaptive loop filter (ALF (Adaptive Loop Filter)). Apply two in-loop filters in this order. It should be noted that which filter is applied and which order is applied is arbitrary and can be appropriately selected.
  • DPF DeBlocking Filter
  • SAO Sample Adaptive Offset
  • ALF adaptive Loop Filter
  • the in-loop filter unit 216 performs filter processing corresponding to the filter processing performed by the coding side (for example, the in-loop filter unit 120 of the image coding apparatus 100).
  • the filter processing performed by the in-loop filter unit 216 is arbitrary and is not limited to the above example.
  • the in-loop filter unit 216 may apply a Wiener filter or the like.
  • the in-loop filter unit 216 supplies the filtered locally decoded image Rlocal to the sorting buffer 217 and the frame memory 218.
  • the sorting buffer 217 receives the locally decoded image Rlocal supplied from the in-loop filter unit 216 as an input, and holds (stores) it.
  • the rearrangement buffer 217 reconstructs and holds (stores in the buffer) the decoded image R for each picture unit using the locally decoded image Rlocal.
  • the sorting buffer 217 sorts the obtained decoded image R from the decoding order to the reproduction order.
  • the rearrangement buffer 217 outputs the rearranged decoded image R group as moving image data to the outside of the image decoding apparatus 200.
  • the frame memory 218 performs processing related to storage of data related to images. For example, the frame memory 218 receives the locally decoded image Rlocal supplied from the arithmetic unit 215 as an input, reconstructs the decoded image R for each picture unit, and stores it in the buffer in the frame memory 218.
  • the frame memory 218 receives the in-loop filtered locally decoded image Rlocal supplied from the in-loop filter unit 216 as an input, reconstructs the decoded image R for each picture, and buffers the frame memory 218. Store in.
  • the frame memory 218 appropriately supplies the stored decoded image R (or a part thereof) to the prediction unit 219 as a reference image.
  • frame memory 218 may store header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, filter information Finfo, etc. related to the generation of the decoded image.
  • the prediction unit 219 performs processing related to the generation of the prediction image. For example, the prediction unit 219 takes the prediction mode information Pinfo supplied from the decoding unit 212 as input, makes a prediction by the prediction method specified by the prediction mode information Pinfo, and derives the prediction image P. At the time of derivation, the prediction unit 219 uses the decoded image R (or a part thereof) before or after the filter stored in the frame memory 218 specified by the prediction mode information Pinfo as a reference image. The prediction unit 219 supplies the derived prediction image P to the calculation unit 215.
  • each processing unit may be configured by a logic circuit that realizes the above-mentioned processing.
  • each processing unit may have, for example, a CPU, ROM, RAM, etc., and execute a program using them to realize the above-mentioned processing.
  • each processing unit may have both configurations, and a part of the above-mentioned processing may be realized by a logic circuit, and the other may be realized by executing a program.
  • the configurations of the respective processing units may be independent of each other. For example, some processing units realize a part of the above-mentioned processing by a logic circuit, and some other processing units execute a program.
  • the above-mentioned processing may be realized by the other processing unit by both the logic circuit and the execution of the program.
  • FIG. 11 is a block diagram showing a main configuration example of the decoding unit 212 of FIG.
  • the decoding unit 212 includes a selection unit 231, a context setting unit 232, a context decoding unit 233, a bypass decoding unit 234, and an inverse binarization unit 235.
  • the decoding unit 212 also decodes the coded data such as other coding parameters and the residual information Rinfo as described above.
  • the decoding unit 212 has ⁇ 2-2. Decoding the encoded data of the adaptive orthogonal transformation identifier is performed by applying the method 1 described in Decoding the adaptive orthogonal transformation identifier.
  • the selection unit 231 performs processing related to selection of the supply destination of the coded data of each bin of the bin string of the binarized adaptive orthogonal conversion identifier. For example, the selection unit 231 acquires the coded data of the bin sequence of the adaptive orthogonal conversion identifier supplied from the storage buffer 211.
  • the selection unit 231 selects whether the supply destination of the coded data of each bin in the bin sequence of the acquired adaptive orthogonal conversion identifier is the context setting unit 232 or the bypass decoding unit 234.
  • the selection unit 231 is described in ⁇ 2-2.
  • the selection is made according to the method 1 described above in Decoding the adaptive orthogonal transformation identifier>.
  • the selection unit 231 may make the selection according to the method 1-1 (that is, the table shown in A of FIG. 3).
  • the selection unit 231 may make the selection according to the method 1-2 (that is, the table shown in B of FIG. 3).
  • the selection unit 231 may make the selection according to the method 1-3 (that is, the table shown in A of FIG. 4).
  • the selection unit 231 may make the selection according to the method 1-4 (that is, the table shown in B of FIG. 4).
  • the selection unit 231 supplies the encoded data of the bin to the context setting unit 232.
  • the selection unit 231 supplies the bin to the bypass decoding unit 234.
  • the context setting unit 232 performs processing related to context setting. For example, the context setting unit 232 acquires the encoded data of the bin supplied from the selection unit 231. The context setting unit 232 assigns a context variable (index ctxInc) to the bin. The context setting unit 232 is described in ⁇ 2-2. Decoding the adaptive orthogonal transformation identifier>, the allocation is performed according to the method 1 described above. For example, the context setting unit 232 may make the allocation according to the method 1-1 (that is, the table shown in A of FIG. 3). Further, the context setting unit 232 may make the allocation according to the method 1-2 (that is, the table shown in B of FIG. 3).
  • the context setting unit 232 may make the allocation according to the method 1-3 (that is, the table shown in A of FIG. 4). Further, the context setting unit 232 may make the allocation according to the method 1-4 (that is, the table shown in B of FIG. 4).
  • the context setting unit 232 can acquire the decoding result from the context decoding unit 233.
  • the context setting unit 232 can appropriately update the context variable (index ctxInc) using the decoding result.
  • the context setting unit 232 supplies the context variable (index ctxInc) derived in this way to the context decoding unit 233.
  • the context decoding unit 233 performs processing related to arithmetic decoding. For example, the context decoding unit 233 acquires the context variable (index ctxInc) supplied from the context setting unit 232. In addition, the context decoding unit 233 performs arithmetic decoding using the context variable (index ctxInc). That is, context decoding is performed. Further, the context decoding unit 233 supplies the decoding result, that is, the bin to be processed in the bin sequence of the adaptive orthogonal transformation identifier, to the inverse binarization unit 235.
  • the context decoding unit 233 supplies the decoding result, that is, the bin to be processed in the bin sequence of the adaptive orthogonal transformation identifier, to the inverse binarization unit 235.
  • the bypass decoding unit 234 performs processing related to bypass decoding. For example, the bypass decoding unit 234 acquires the coded data of the bin supplied from the selection unit 231. The bypass decoding unit 234 bypass-decodes (arithmetically decodes) the coded data in the bin. The bypass decoding unit 234 supplies the decoding result, that is, the bin to be processed in the bin sequence of the adaptive orthogonal transformation identifier, to the inverse binarization unit 235.
  • the inverse binarization unit 235 performs processing related to inverse binarization (also referred to as multi-valued) of the bin string of the adaptive orthogonal transformation identifier. For example, the inverse binarization unit 235 acquires a bin sequence of adaptive orthogonal transformation identifiers supplied from the context decoding unit 233 and the bypass decoding unit 234. The inverse binarization unit 235 inversely binarizes the acquired bin sequence and derives the adaptive orthogonal transformation identifier mts_idx. This inverse binarization is the inverse processing of the binarization by the binarization unit 131.
  • the inverse binarization unit 235 performs the inverse binarization using the truncated unity code (or the truncated rice code).
  • the inverse binarization unit 235 supplies the derived adaptive orthogonal transformation identifier mts_idx as Tinfo to the inverse orthogonal transformation unit 214.
  • the inverse orthogonal transformation unit 214 appropriately performs adaptive orthogonal transformation based on the adaptive orthogonal transformation identifier mts_idx.
  • each processing unit (selection unit 231 to inverse binarization unit 235) performs processing, so that the decoding unit 212 applies method 1 (for example, any one of methods 1-1 to 1-4).
  • the encoded data of the adaptive orthogonal conversion identifier can be decoded. Therefore, it is possible to suppress an increase in memory usage. In addition, it is possible to suppress an increase in the amount of processing (throughput). That is, it is possible to suppress an increase in the load of the decoding process.
  • the storage buffer 211 acquires (stores) the coded data (bit stream) supplied from the outside of the image decoding device 200 in step S201.
  • step S202 the decoding unit 212 decodes the coded data (bit stream) and obtains the quantization conversion coefficient level. Further, the decoding unit 212 parses (analyzes and acquires) various coding parameters from the coded data (bit stream) by this decoding.
  • step S203 the inverse quantization unit 213 performs inverse quantization, which is the inverse process of quantization performed on the coding side, with respect to the quantization conversion coefficient level level obtained by the process of step S202, and performs conversion. Obtain the coefficient Coeff_IQ.
  • step S204 the inverse orthogonal transformation unit 214 performs an inverse orthogonal transformation process, which is an inverse process of the orthogonal transformation process performed on the coding side, with respect to the conversion coefficient Coeff_IQ obtained in step S203, and predicts residual D. 'Get.
  • step S205 the prediction unit 219 executes the prediction process by the prediction method specified by the coding side based on the information parsed in step S202, and refers to the reference image stored in the frame memory 218. Then, the predicted image P is generated.
  • step S206 the calculation unit 215 adds the predicted residual D'obtained in step S204 and the predicted image P obtained in step S205 to derive the locally decoded image Rlocal.
  • step S207 the in-loop filter unit 216 performs an in-loop filter process on the locally decoded image Rlocal obtained by the process of step S206.
  • step S208 the sorting buffer 217 derives the decoded image R using the filtered locally decoded image Rlocal obtained by the process of step S207, and arranges the decoded image R group in the order of decoding to reproduction. Change.
  • the decoded image R group sorted in the order of reproduction is output as a moving image to the outside of the image decoding device 200.
  • the frame memory 218 stores at least one of the locally decoded image Rlocal obtained by the process of step S206 and the filtered locally decoded image Rlocal obtained by the process of step S207. ..
  • step S209 When the process of step S209 is completed, the image decoding process is completed.
  • the decoding unit 212 decodes the encoded data of the adaptive orthogonal conversion identifier mts_idx. At that time, the decoding unit 212 has ⁇ 2-2. Decoding the encoded data of the adaptive orthogonal transformation identifier is performed by applying the method 1 described in Decoding the adaptive orthogonal transformation identifier. An example of the flow of decoding the coded data of the adaptive orthogonal transformation identifier mts_idx will be described with reference to the flowchart of FIG.
  • the selection unit 231 selects the context setting unit 232 as the supply destination of the bin (that is, selects context decoding). For example, selection unit 231 selects context decoding as the decoding method for this bin according to any of the tables shown in FIGS. 3 and 4 (ie, applying any of methods 1-1 to 1-4). To do.
  • step S232 the context setting unit 232 assigns a predetermined predetermined context variable ctx (index ctxInc) to the bin. Then, the context decoding unit 233 performs arithmetic decoding using the context variable. That is, context decoding is performed.
  • step S233 the selection unit 231 targets the unprocessed bins among the second and subsequent bins in the bin row.
  • the selection unit 231 determines whether or not to bypass decode the bin to be processed. For example, the selection unit 231 bypasses the encoded data of the bin to be processed according to any of the tables shown in FIGS. 3 and 4 (that is, applying any of methods 1-1 to 1-4). Determine whether to decrypt.
  • step S235 the selection unit 231 selects the bypass decoding unit 234 as the supply destination of the coded data of the bin.
  • step S235 the bypass decoding unit 234 bypass-decodes the encoded data of the bin to be processed.
  • step S234 If it is determined in step S234 that bypass decoding is not performed (context decoding is performed), the process proceeds to step S236. That is, in this case, the selection unit 231 selects the context setting unit 232 as the supply destination of the coded data of the bin. In step S236, the context setting unit 232 assigns a predetermined predetermined context variable ctx (index ctxInc) to the bin. Then, the context decoding unit 233 performs arithmetic decoding using the context variable. That is, context decoding is performed. When the process of step S236 is completed, the process proceeds to step S237.
  • step S237 the inverse binarization unit 235 inversely binarizes the bin sequence using the truncated unity code (or the truncated rice code), and derives the adaptive orthogonal transformation identifier mts_idx.
  • step S2308 the decoding unit 212 determines whether or not to end the decoding of the adaptive orthogonal transformation identifier mts_idx. If it is determined that the process is not completed, the process returns to step S233, and the subsequent processes are repeated. If it is determined in step S238 that the process is finished, the decoding process is finished.
  • the decoding unit 212 can apply method 1 (for example, any of methods 1-1 to 1-4) to decode the encoded data of the adaptive orthogonal conversion identifier. it can. Therefore, it is possible to suppress an increase in memory usage. In addition, it is possible to suppress an increase in the amount of processing (throughput). That is, it is possible to suppress an increase in the load of the decoding process.
  • method 1 for example, any of methods 1-1 to 1-4
  • the adaptive orthogonal conversion identifier indicating the mode of the adaptive orthogonal conversion in image coding which is performed as shown in the table shown in B of FIG. 1, is binarized to each bin of the bin sequence.
  • the context variable is assigned (method 0) as follows.
  • the context variable based on the parameter related to the block size is assigned to the first bin of the bin string in which the adaptive orthogonal conversion identifier indicating the mode of the adaptive orthogonal conversion in image coding is binarized, and the context is encoded.
  • the parameter related to this block size is the difference between the logarithmic value of the long side of the conversion block and the logarithmic value of the minimum conversion block size to which adaptive orthogonal transformation can be applied. That is, the logarithmic value of the long side of the conversion block and the minimum conversion to which the adaptive orthogonal transformation can be applied to the first bin of the bin string obtained by binarizing the adaptive orthogonal transformation identifier indicating the mode of the adaptive orthogonal transformation in image coding. Context-encoded by assigning a context variable based on the difference between the block size and the logarithmic value (method 2).
  • the logarithmic value (log2W) of the conversion block size in the horizontal direction and the logarithmic direction in the vertical direction with respect to the first bin of the bin sequence in which the adaptive orthogonal conversion identifier is binarized For example, as shown in the table shown in A of FIG. 14, the logarithmic value (log2W) of the conversion block size in the horizontal direction and the logarithmic direction in the vertical direction with respect to the first bin of the bin sequence in which the adaptive orthogonal conversion identifier is binarized.
  • a context variable ctx (index ctxInc) may be assigned and context-encoded, and bypass coding may be performed on the second to fourth bins of the bin sequence (method 2-1). ).
  • the logarithmic value of the conversion block size in the horizontal direction and the conversion block in the vertical direction are obtained.
  • the context variable ctx index ctxInc is based on the difference (max (log2W, log2H) -log2MinMtsSize) between the longer of the logarithmic values of the size and the logarithmic value of the smallest transform block size to which adaptive orthogonal transformation is applicable.
  • Allocate and context-encode assign a predetermined predetermined context variable (index ctxInc) to the second bin of the bin string, and context-encode it, and for the third and fourth bins of the bin sequence.
  • Bypass coding may be performed (method 2-2).
  • the logarithmic value of the conversion block size in the horizontal direction and the conversion block in the vertical direction are obtained.
  • the context variable ctx index ctxInc is based on the difference (max (log2W, log2H) -log2MinMtsSize) between the longer of the logarithmic values of the size and the logarithmic value of the smallest transform block size to which adaptive orthogonal transformation is applicable.
  • Allocate and context-encode assign a predetermined different context variable (index ctxInc) to the second and third bins of the bin sequence, and context-encode it, and for the fourth bin of the bin sequence.
  • Bypass coding may be performed (Method 2-3).
  • the logarithmic value of the horizontal conversion block size and the vertical conversion block are obtained.
  • the context variable ctx (index ctxInc) is based on the difference (max (log2W, log2H)-log2MinMtsSize) between the longer of the logarithmic values of the size and the logarithmic value of the minimum conversion block size to which adaptive orthogonal transformation can be applied. It may be assigned and context-encoded, and predetermined different context variables (index ctxInc) may be assigned to the second to fourth bins of the bin sequence for context encoding (method 2-4).
  • the number of contexts is 6, the number of context coding bins is 3, and the number of bypass coding bins is 1. Further, in the case of the method 2-4, the number of contexts is 7, the number of context coding bins is 4, and the number of bypass coding bins is 0.
  • the number of context coding bins required for coding can be reduced as compared with the case of method 0.
  • the number of context coding bins required for coding is the same as in the case of method 0. That is, by applying Method 2, bypass coding can be applied to bins corresponding to conversion types with relatively low selectivity. Therefore, it is possible to suppress an increase in the number of context coding bins and suppress an increase in the processing amount (throughput) while suppressing a decrease in coding efficiency.
  • each bin of the bin string of the binarized adaptive orthogonal conversion identifier showing the mode of the inverse adaptive orthogonal conversion in image decoding which was performed as shown in the table shown in B of FIG.
  • the context variable is assigned to (method 0) as follows.
  • the context variable based on the parameter related to the block size is assigned to the first bin of the binarized adaptive orthogonal conversion identifier bin string and context-encoded.
  • the parameter related to this block size is the difference between the logarithmic value of the long side of the conversion block and the logarithmic value of the minimum conversion block size to which adaptive orthogonal transformation can be applied. That is, it is based on the difference between the logarithmic value of the long side of the conversion block and the logarithmic value of the minimum conversion block size to which the adaptive orthogonal conversion can be applied to the first bin of the bin sequence of the binarized adaptive orthogonal conversion identifier. Assign a context variable and decode the context (method 2).
  • the logarithmic value (log2W) of the conversion block size in the horizontal direction and the vertical to the first bin of the bin sequence of the binarized adaptive orthogonal conversion identifier Difference between the longer (max (log2W, log2H)) of the logarithmic value (log2H) of the conversion block size in the direction and the logarithmic value (log2MinMtsSize) of the minimum conversion block size to which adaptive orthogonal transformation can be applied (max (log2W) , Log2H)-log2MinMtsSize), a context variable ctx (index ctxInc) may be assigned to perform context decoding, and bypass decoding may be performed on the 2nd to 4th bins of the bin sequence (method 2-1). ).
  • the logarithmic value of the conversion block size in the horizontal direction and the conversion in the vertical direction are performed.
  • Context variable ctx (index ctxInc) based on the difference (max (log2W, log2H) -log2MinMtsSize) between the longer of the logarithmic value of the block size and the logarithmic value of the minimum conversion block size to which adaptive orthogonal transformation can be applied Is assigned to decode the context, and a predetermined predetermined context variable (index ctxInc) is assigned to the second bin of the bin row to decode the context, and the third and fourth bins of the bin row are assigned.
  • Bypass decoding may be performed (method 2-2).
  • Context variable ctx (index ctxInc) based on the difference (max (log2W, log2H) -log2MinMtsSize) between the longer of the logarithmic value of the block size and the logarithmic value of the minimum conversion block size to which adaptive orthogonal transformation can be applied.
  • index ctxInc predetermined different context variables (index ctxInc) are assigned to the second and third bins of the bin row to decode the context, and the fourth bin of the bin row is Bypass decoding may be performed (method 2-3).
  • the fourth bin (binIdx 3) Is bypass decrypted (bypass).
  • Context variable ctx (index ctxInc) based on the difference (max (log2W, log2H) -log2MinMtsSize) between the longer of the logarithmic value of the block size and the logarithmic value of the minimum conversion block size to which adaptive orthogonal transformation can be applied.
  • context decoding may be performed by assigning predetermined different context variables (index ctxInc) to the second to fourth bins of the bin sequence (method 2-4).
  • the number of contexts, the number of context-encoded bins, and the number of bypass-encoded bins of each of these methods are the same as in the case of coding (FIG. 16).
  • the number of context-encoding bins required for decoding can be reduced as compared with the case of method 0.
  • the number of context-encoded bins required for decoding is the same as in the case of method 0. That is, by applying method 2, bypass decoding can be applied to bins corresponding to conversion types with relatively low selectivity. Therefore, it is possible to suppress an increase in the number of context coding bins and suppress an increase in the processing amount (throughput) while suppressing a decrease in coding efficiency.
  • the coding side will be described.
  • the configuration on the coding side in this case is the same as in the case of the first embodiment. That is, the image coding device 100 in this case has the same configuration as that described with reference to FIG. Further, the coding unit 115 in this case has the same configuration as that described with reference to FIG. 7.
  • the image coding device 100 in this case performs basically the same processing as in the case of the first embodiment. That is, the image coding process executed by the image coding apparatus 100 in this case is performed in the same flow as in the case described with reference to the flowchart of FIG.
  • each process of step S301 and step S302 is executed in the same manner as each process of step S131 and step S132 of FIG. That is, in this case, the selection unit 132 selects the context setting unit 133 as the supply destination of the bin (that is, selects the context coding). For example, selection 132 uses context coding as the encoding method for this bin according to any of the tables shown in FIGS. 14 and 15 (ie, applying any of methods 2-1 to 2-4). Select.
  • step S303 the context setting unit 133 applies the longer of the logarithmic value of the horizontal conversion block size and the logarithmic value of the vertical conversion block size to the bin, and the minimum applicable orthogonal transformation.
  • the context variable ctx (index ctxInc) is assigned based on the difference (max (log2W, log2H) -log2MinMtsSize) of the conversion block size from the logarithmic value.
  • the context coding unit 134 performs arithmetic coding using the context variable. That is, context coding is performed.
  • step S304 to S308 is executed in the same manner as each process of steps S134 to S138 of FIG. If it is determined in step S308 to end, the coding process ends.
  • the coding unit 115 can apply the method 2 (for example, any of the methods 2-1 to 2-4) to encode the adaptive orthogonal conversion identifier. Therefore, it is possible to suppress an increase in memory usage. In addition, it is possible to suppress an increase in the amount of processing (throughput). That is, it is possible to suppress an increase in the load of the coding process.
  • the decoding side will be described.
  • the configuration on the decoding side in this case is the same as in the case of the first embodiment. That is, the image decoding device 200 in this case has the same configuration as that described with reference to FIG. Further, the decoding unit 212 in this case has the same configuration as that described with reference to FIG.
  • the image decoding device 200 in this case performs basically the same processing as in the case of the first embodiment. That is, the image decoding process executed by the image decoding apparatus 200 in this case is performed in the same flow as in the case described with reference to the flowchart of FIG.
  • step S321 the process of step S321 is executed in the same manner as the process of step S231 of FIG. That is, in this case, the selection unit 231 selects the context setting unit 232 as the supply destination of the bin (that is, selects context decoding). For example, selection unit 231 selects context decoding as the decoding method for this bin according to any of the tables shown in FIGS. 14 and 15 (ie, applying any of methods 2-1 to 2-4). To do.
  • step S322 the context setting unit 232 sets the longer of the logarithmic value of the horizontal conversion block size and the logarithmic value of the vertical conversion block size for the bin, and the minimum to which the adaptive orthogonal transformation can be applied.
  • the context variable ctx (index ctxInc) is assigned based on the difference (max (log2W, log2H) -log2MinMtsSize) of the conversion block size from the logarithmic value.
  • the context decoding unit 233 performs arithmetic decoding using the context variable. That is, context decoding is performed.
  • the decoding unit 212 can apply method 2 (for example, any of methods 2-1 to 2-4) to decode the encoded data of the adaptive orthogonal conversion identifier. it can. Therefore, it is possible to suppress an increase in memory usage. In addition, it is possible to suppress an increase in the amount of processing (throughput). That is, it is possible to suppress an increase in the load of the decoding process.
  • method 2 for example, any of methods 2-1 to 2-4
  • the adaptive orthogonal conversion identifier indicating the mode of the adaptive orthogonal conversion in image coding which is performed as shown in the table shown in B of FIG. 1, is binarized to each bin of the bin sequence.
  • the context variable is assigned (method 0) as follows.
  • the context variable based on the parameter related to the block size is assigned to the first bin of the bin string in which the adaptive orthogonal conversion identifier indicating the mode of the adaptive orthogonal conversion in image coding is binarized, and the context is encoded.
  • the parameter related to this block size is the difference between the logarithmic value of the long side of the transformation block and the logarithmic value of the minimum conversion block size to which adaptive orthogonal transformation can be applied, and the minimum value within a predetermined threshold value. And. That is, the logarithmic value of the long side of the conversion block and the minimum conversion to which the adaptive orthogonal transformation can be applied to the first bin of the bin string obtained by binarizing the adaptive orthogonal transformation identifier indicating the mode of the adaptive orthogonal transformation in image coding. Context coding is performed by assigning a context variable based on the difference between the block size and the logarithmic value and the smaller value of the predetermined threshold value (method 3).
  • this threshold value TH is arbitrary. By setting this threshold value to a value smaller than the maximum value of the difference between the logarithmic value of the long side of the transformation block and the logarithmic value of the minimum transform block size to which adaptive orthogonal transformation can be applied, the context is compared with that of Method 2. The number can be reduced. Therefore, the memory usage can be reduced.
  • the logarithmic value (log2W) of the conversion block size in the horizontal direction and the logarithmic direction in the vertical direction with respect to the first bin of the bin sequence in which the adaptive orthogonal conversion identifier is binarized The difference (max (log2W, log2H)) between the logarithmic value (log2H) of the conversion block size of and the logarithmic value (log2MinMtsSize) of the minimum conversion block size to which adaptive orthogonal transformation can be applied.
  • Context coding may be performed, and bypass coding may be performed on the second to fourth bins of the bin sequence (method 3-1).
  • the logarithmic value of the conversion block size in the horizontal direction and the conversion block in the vertical direction are obtained.
  • the logarithmic value of the horizontal conversion block size and the vertical conversion block are obtained.
  • the logarithmic value of the horizontal conversion block size and the vertical conversion block are obtained.
  • FIG. 21 shows an example of the number of contexts, the number of context-encoded bins, and the number of bypass-encoded bins of each of these methods.
  • the number of contexts was 9, the number of context-encoding bins was 4, and the number of bypass-encoding bins was 0.
  • the number of contexts is 3, the number of context coding bins is 1, and the number of bypass coding bins is 3.
  • the number of contexts is 4, the number of context coding bins is 2, and the number of bypass coding bins is 2.
  • the number of contexts is 5, the number of context coding bins is 3, and the number of bypass coding bins is 1. Further, in the case of the method 3-4, the number of contexts is 6, the number of context coding bins is 4, and the number of bypass coding bins is 0.
  • the number of contexts is 2.
  • the number of contexts is 3.
  • the number of contexts is 4.
  • the number of contexts is 5.
  • the number of context coding bins required for coding can be reduced as compared with the case of method 0.
  • the number of context coding bins required for coding is the same as in the case of method 0. That is, by applying Method 3, bypass coding can be applied to bins corresponding to conversion types with relatively low selectivity. Therefore, it is possible to suppress an increase in the number of context coding bins and suppress an increase in the processing amount (throughput) while suppressing a decrease in coding efficiency.
  • the context variable is assigned to (method 0) as follows.
  • the context variable based on the parameter related to the block size is assigned to the first bin of the binarized adaptive orthogonal conversion identifier bin string and context-encoded.
  • the parameter related to this block size is the difference between the logarithmic value of the long side of the transformation block and the logarithmic value of the minimum conversion block size to which adaptive orthogonal transformation can be applied, and the minimum value within a predetermined threshold value.
  • Context decoding is performed by assigning a context variable based on the smaller value of the predetermined threshold value (method 3).
  • this threshold value TH is arbitrary as in the case of coding.
  • this threshold value By setting this threshold value to a value smaller than the maximum value of the difference between the logarithmic value of the long side of the transformation block and the logarithmic value of the minimum transform block size to which adaptive orthogonal transformation can be applied, the context is compared with that of Method 2. The number can be reduced. Therefore, the memory usage can be reduced.
  • the logarithmic value (log2W) of the conversion block size in the horizontal direction and the vertical value to the first bin of the bin sequence of the binarized adaptive orthogonal conversion identifier Difference between the longer (max (log2W, log2H)) of the logarithmic value (log2H) of the conversion block size of the direction and the logarithmic value (log2MinMtsSize) of the minimum conversion block size to which adaptive orthogonal transformation can be applied (max (log2W) , Log2H)-log2MinMtsSize) and the smaller value of the predetermined threshold (TH) (min (max (log2W, log2H)-log2MinMtsSize, TH)), assign the context variable ctx (index ctxInc)
  • the context decoding may be performed, and bypass decoding may be performed on the second to fourth bins of the bin sequence (method 3-1).
  • the logarithmic value of the conversion block size in the horizontal direction and the conversion in the vertical direction are performed.
  • the context decoding may be performed, and bypass decoding may be performed on the third and fourth bins of the bin sequence (method 3-2).
  • the logarithmic and vertical conversion of the horizontal conversion block size For example, as shown in the table shown in A of FIG. 20, for the first bin of the bin sequence of the binarized adaptive orthogonal conversion identifier, the logarithmic and vertical conversion of the horizontal conversion block size.
  • assign the context variable ctx (index ctxInc) to decode the context
  • ctxInc) may be assigned to perform context decoding, and bypass decoding may be performed on the fourth bin of the bin row (method 3-3).
  • the number of contexts, the number of context-encoded bins, and the number of bypass-encoded bins of each of these methods are the same as in the case of coding (A in FIG. 21 and B in FIG. 21).
  • the number of context-encoding bins required for decoding can be reduced as compared with the case of method 0.
  • the number of context-encoded bins required for decoding is the same as in the case of method 0. That is, by applying method 3, bypass decoding can be applied to bins corresponding to conversion types with relatively low selectivity. Therefore, it is possible to suppress an increase in the number of context coding bins and suppress an increase in the processing amount (throughput) while suppressing a decrease in coding efficiency.
  • the coding side will be described.
  • the configuration on the coding side in this case is the same as in the case of the first embodiment. That is, the image coding device 100 in this case has the same configuration as that described with reference to FIG. Further, the coding unit 115 in this case has the same configuration as that described with reference to FIG. 7.
  • the image coding device 100 in this case performs basically the same processing as in the case of the first embodiment. That is, the image coding process executed by the image coding apparatus 100 in this case is performed in the same flow as in the case described with reference to the flowchart of FIG.
  • each process of step S351 and step S352 is executed in the same manner as each process of step S131 and step S132 of FIG. That is, in this case, the selection unit 132 selects the context setting unit 133 as the supply destination of the bin (that is, selects the context coding). For example, selection 132 uses context coding as the encoding method for this bin according to any of the tables shown in FIGS. 19 and 20 (ie, applying any of methods 3-1 to 3-4). Select.
  • step S353 the context setting unit 133 determines the longer of the logarithmic value of the horizontal conversion block size and the logarithmic value of the vertical conversion block size and the minimum applicable orthogonal transformation to the bin.
  • the context variable ctx index ctxInc is assigned based on the difference between the logarithmic value of the conversion block size and the minimum value (min (max (log2W, log2H) -log2MinMtsSize, TH)) with the predetermined threshold value.
  • the context coding unit 134 performs arithmetic coding using the context variable. That is, context coding is performed.
  • step S354 to S358 is executed in the same manner as each process of steps S134 to S138 of FIG. If it is determined in step S358 to end, the coding process ends.
  • the coding unit 115 can apply the method 3 (for example, any one of the methods 3-1 to 3-4) to encode the adaptive orthogonal conversion identifier. Therefore, it is possible to suppress an increase in memory usage. In addition, it is possible to suppress an increase in the amount of processing (throughput). That is, it is possible to suppress an increase in the load of the coding process.
  • the decoding side will be described.
  • the configuration on the decoding side in this case is the same as in the case of the first embodiment. That is, the image decoding device 200 in this case has the same configuration as that described with reference to FIG. Further, the decoding unit 212 in this case has the same configuration as that described with reference to FIG.
  • the image decoding device 200 in this case performs basically the same processing as in the case of the first embodiment. That is, the image decoding process executed by the image decoding apparatus 200 in this case is performed in the same flow as in the case described with reference to the flowchart of FIG.
  • step S371 the process of step S371 is executed in the same manner as the process of step S231 of FIG. That is, in this case, the selection unit 231 selects the context setting unit 232 as the supply destination of the bin (that is, selects context decoding). For example, selection unit 231 selects context decoding as the decoding method for this bin according to any of the tables shown in FIGS. 19 and 20 (ie, applying any of methods 3-1 to 3-4). To do.
  • step S372 the context setting unit 232 sets the longer of the logarithmic value of the horizontal conversion block size and the logarithmic value of the vertical conversion block size for the bin, and the minimum applicable orthogonal transformation.
  • the context variable ctx (index ctxInc) is assigned based on the difference between the logarithmic value of the conversion block size and the minimum value (min (max (log2W, log2H) -log2MinMtsSize, TH)) with the predetermined threshold value.
  • the context decoding unit 233 performs arithmetic decoding using the context variable. That is, context decoding is performed.
  • step S373 to S378 is executed in the same manner as each process of steps S233 to S238 of FIG. If it is determined in step S378 to end, the decoding process ends.
  • the decoding unit 212 can apply method 3 (for example, any of methods 3-1 to 3-4) to decode the encoded data of the adaptive orthogonal conversion identifier. it can. Therefore, it is possible to suppress an increase in memory usage. In addition, it is possible to suppress an increase in the amount of processing (throughput). That is, it is possible to suppress an increase in the load of the decoding process.
  • method 3 for example, any of methods 3-1 to 3-4
  • the adaptive orthogonal conversion identifier indicating the mode of the adaptive orthogonal conversion in image coding which is performed as shown in the table shown in B of FIG. 1, is binarized to each bin of the bin sequence.
  • the context variable is assigned (method 0) as follows.
  • the context variable based on the parameter related to the block size is assigned to the first bin of the bin string in which the adaptive orthogonal conversion identifier indicating the mode of the adaptive orthogonal conversion in image coding is binarized, and the context is encoded.
  • the parameter related to this block size is the difference between the logarithmic value of the long side of the transformation block and the logarithmic value of the minimum conversion block size to which adaptive orthogonal transformation can be applied, and the minimum value within a predetermined threshold value.
  • Context coding is performed by assigning a context variable based on the result of right-bit shifting the minimum value between the difference between the block size and the logarithmic value and the predetermined threshold value (method 4).
  • this threshold value TH is arbitrary.
  • this threshold value By setting this threshold value to a value smaller than the maximum value of the difference between the logarithmic value of the long side of the transformation block and the logarithmic value of the minimum transform block size to which adaptive orthogonal transformation can be applied, the context is compared with that of Method 2. The number can be reduced.
  • the value of the scale parameter shift which is the shift amount of the right bit shift, is arbitrary. In the case of this method 4, since the minimum value is further shifted to the right bit, the number of contexts can be reduced as compared with the case of method 3. Therefore, the memory usage can be reduced.
  • the logarithmic value (log2W) of the conversion block size in the horizontal direction and the logarithmic direction in the vertical direction with respect to the first bin of the bin sequence in which the adaptive orthogonal conversion identifier is binarized For example, as shown in the table shown in A of FIG. 24, the logarithmic value (log2W) of the conversion block size in the horizontal direction and the logarithmic direction in the vertical direction with respect to the first bin of the bin sequence in which the adaptive orthogonal conversion identifier is binarized.
  • the logarithmic value of the horizontal conversion block size and the vertical conversion block for the first bin of the bin sequence in which the adaptive orthogonal conversion identifier is binarized is binarized.
  • a context variable ctx (index ctxInc) is assigned and context-encoded
  • a predetermined predetermined bin is set in advance for the second bin of the bin sequence.
  • a context variable (index ctxInc) may be assigned and context-encoded, and bypass coding may be performed on the third and fourth bins of the bin sequence (method 4-2).
  • the index ctxInc based on is assigned and context-encoded
  • the logarithmic value of the horizontal conversion block size and the vertical conversion block are obtained.
  • the context variable ctx (index ctxInc) is assigned and context-encoded
  • the second and third bins of the bin sequence are predetermined.
  • the context variables (index ctxInc) different from each other may be assigned and context-encoded, and bypass coding may be performed on the fourth bin of the bin sequence (method 4-3).
  • the index ctxInc based on is assigned and context-encoded
  • the logarithmic value of the horizontal conversion block size and the vertical conversion block are obtained.
  • the context variable ctx (index ctxInc) is assigned and context-encoded
  • the 2nd to 4th bins of the bin sequence are predetermined.
  • the context variables (index ctxInc) different from each other may be assigned and context-encoded (method 4-4).
  • FIG. 26 shows an example of the number of contexts, the number of context-encoded bins, and the number of bypass-encoded bins of each of these methods.
  • the number of contexts was 9, the number of context-encoding bins was 4, and the number of bypass-encoding bins was 0.
  • the number of contexts is 2
  • the number of context coding bins is 1, and the number of bypass coding bins is 3.
  • the number of contexts is 3, the number of context coding bins is 2, and the number of bypass coding bins is 2.
  • the number of contexts is 4, the number of context coding bins is 3, and the number of bypass coding bins is 1.
  • the number of contexts is 5, the number of context coding bins is 4, and the number of bypass coding bins is 0.
  • the number of context coding bins required for coding can be reduced as compared with the case of method 0.
  • the number of context coding bins required for coding is the same as in the case of method 0. That is, by applying method 4, bypass coding can be applied to bins corresponding to conversion types with relatively low selectivity. Therefore, it is possible to suppress an increase in the number of context coding bins and suppress an increase in the processing amount (throughput) while suppressing a decrease in coding efficiency.
  • each bin of the bin string of the binarized adaptive orthogonal conversion identifier showing the mode of the inverse adaptive orthogonal conversion in image decoding which was performed as shown in the table shown in B of FIG.
  • the context variable is assigned to (method 0) as follows.
  • the context variable based on the parameter related to the block size is assigned to the first bin of the binarized adaptive orthogonal conversion identifier bin string and context-encoded.
  • the parameter related to this block size is the difference between the logarithmic value of the long side of the transformation block and the logarithmic value of the minimum conversion block size to which adaptive orthogonal transformation can be applied, and the minimum value within a predetermined threshold value.
  • the result of right-bit shifting is, for the first bin of the bin string of the binarized adaptive orthogonal conversion identifier, the difference between the logarithmic value of the long side of the conversion block and the logarithmic value of the minimum conversion block size to which the adaptive orthogonal transformation can be applied.
  • Context decoding is performed by assigning a context variable based on the result of right-bit shifting the minimum value within the predetermined threshold value (method 4).
  • this threshold value TH is arbitrary as in the case of coding.
  • this threshold value By setting this threshold value to a value smaller than the maximum value of the difference between the logarithmic value of the long side of the transformation block and the logarithmic value of the minimum transform block size to which adaptive orthogonal transformation can be applied, the context is compared with that of Method 2. The number can be reduced.
  • the value of the scale parameter shift which is the shift amount of the right bit shift, is arbitrary. In the case of this method 4, since the minimum value is further shifted to the right bit, the number of contexts can be reduced as compared with the case of method 3. Therefore, the memory usage can be reduced.
  • the logarithmic value (log2W) of the conversion block size in the horizontal direction and the vertical value to the first bin of the bin sequence of the binarized adaptive orthogonal conversion identifier Difference between the longer (max (log2W, log2H)) of the logarithmic value (log2H) of the conversion block size of the direction and the logarithmic value (log2MinMtsSize) of the minimum conversion block size to which adaptive orthogonal transformation can be applied (max (log2W) , Log2H)-log2MinMtsSize) and the smaller value of the predetermined threshold (TH) (min (max (log2W, log2H)-log2MinMtsSize, TH)) is shifted to the right (min (max (log2W, TH))) Based on log2H)-log2MinMtsSize, TH) >> shift), the context variable ctx (index ctxInc) may be assigned for context
  • the logarithmic value and the vertical conversion of the conversion block size in the horizontal direction are performed with respect to the first bin of the bin sequence of the binarized adaptive orthogonal conversion identifier.
  • the difference between the logarithmic value of the block size, the logarithmic value of the minimum conversion block size to which adaptive orthogonal transformation can be applied, and the smaller value of the predetermined threshold value are right-bit-shifted (min).
  • min the logarithmic value of the block size
  • the logarithmic value of the minimum conversion block size to which adaptive orthogonal transformation can be applied and the smaller value of the predetermined threshold value are right-bit-shifted (min).
  • the context variable ctx (index ctxInc) is assigned and context decoding is performed, and a predetermined predetermined value is set for the second bin of the bin sequence.
  • the context variable (index ctxInc) of the above may be assigned to decode the context, and bypass decoding may be performed on the third and fourth bins of the bin sequence (method 4-2).
  • the index ctxInc based on is assigned and the context is decoded
  • Each is bypass decoded (bypass).
  • the index ctxInc based on is assigned and context-decrypted
  • the logarithmic and vertical conversion of the horizontal conversion block size For example, as shown in the table shown in FIG. 25B, for the first bin of the bin sequence of the binarized adaptive orthogonal conversion identifier, the logarithmic and vertical conversion of the horizontal conversion block size. The difference between the longer of the logarithmic value of the block size and the logarithmic value of the minimum conversion block size to which the adaptive orthogonal transformation can be applied, and the result of right-bit shifting the smaller value of the predetermined threshold value (min).
  • Context decoding may be performed by assigning defined context variables (index ctxInc) different from each other (method 4-4).
  • the context is decoded
  • the number of contexts, the number of context-encoded bins, and the number of bypass-encoded bins of each of these methods are the same as in the case of coding (FIG. 26).
  • the number of context-encoding bins required for decoding can be reduced as compared with the case of method 0.
  • the number of context-encoded bins required for decoding is the same as in the case of method 0. That is, by applying the method 4, bypass decoding can be applied to the bin corresponding to the conversion type having a relatively low selectivity. Therefore, it is possible to suppress an increase in the number of context coding bins and suppress an increase in the processing amount (throughput) while suppressing a decrease in coding efficiency.
  • the coding side will be described.
  • the configuration on the coding side in this case is the same as in the case of the first embodiment. That is, the image coding device 100 in this case has the same configuration as that described with reference to FIG. Further, the coding unit 115 in this case has the same configuration as that described with reference to FIG. 7.
  • the image coding device 100 in this case performs basically the same processing as in the case of the first embodiment. That is, the image coding process executed by the image coding apparatus 100 in this case is performed in the same flow as in the case described with reference to the flowchart of FIG.
  • each process of step S401 and step S402 is executed in the same manner as each process of step S131 and step S132 of FIG. That is, in this case, the selection unit 132 selects the context setting unit 133 as the supply destination of the bin (that is, selects the context coding). For example, selection 132 uses context coding as the encoding method for this bin according to any of the tables shown in FIGS. 24 and 25 (ie, applying any of methods 4-1 to 4-4). Select.
  • step S403 the context setting unit 133 performs the minimum conversion applicable to the bin with the longer of the logarithmic value of the horizontal conversion block size and the logarithmic value of the vertical conversion block size.
  • the context coding unit 134 performs arithmetic coding using the context variable. That is, context coding is performed.
  • step S404 to S408 is executed in the same manner as each process of steps S134 to S138 of FIG. If it is determined in step S408 to end, the coding process ends.
  • the coding unit 115 can apply the method 4 (for example, any one of the methods 4-1 to 4-4) to encode the adaptive orthogonal conversion identifier. Therefore, it is possible to suppress an increase in memory usage. In addition, it is possible to suppress an increase in the amount of processing (throughput). That is, it is possible to suppress an increase in the load of the coding process.
  • the decoding side will be described.
  • the configuration on the decoding side in this case is the same as in the case of the first embodiment. That is, the image decoding device 200 in this case has the same configuration as that described with reference to FIG. Further, the decoding unit 212 in this case has the same configuration as that described with reference to FIG.
  • the image decoding device 200 in this case performs basically the same processing as in the case of the first embodiment. That is, the image decoding process executed by the image decoding apparatus 200 in this case is performed in the same flow as in the case described with reference to the flowchart of FIG.
  • step S421 is executed in the same manner as the process of step S231 of FIG. That is, in this case, the selection unit 231 selects the context setting unit 232 as the supply destination of the bin (that is, selects context decoding). For example, selection unit 231 selects context decoding as the decoding method for this bin according to any of the tables shown in FIGS. 24 and 25 (ie, applying any of methods 4-1 to 4-4). To do.
  • the context setting unit 232 is the minimum conversion applicable to the bin with the longer of the logarithmic value of the horizontal conversion block size and the logarithmic value of the vertical conversion block size.
  • the context decoding unit 233 performs arithmetic decoding using the context variable. That is, context decoding is performed.
  • step S423 to S428 is executed in the same manner as each process of steps S233 to S238 of FIG. If it is determined in step S428 to end, the decoding process ends.
  • the decoding unit 212 can apply method 4 (for example, any of methods 4-1 to 4-4) to decode the encoded data of the adaptive orthogonal conversion identifier. it can. Therefore, it is possible to suppress an increase in memory usage. In addition, it is possible to suppress an increase in the amount of processing (throughput). That is, it is possible to suppress an increase in the load of the decoding process.
  • method 4 for example, any of methods 4-1 to 4-4
  • the adaptive orthogonal conversion identifier indicating the mode of the adaptive orthogonal conversion in image coding which is performed as shown in the table shown in B of FIG. 1, is binarized to each bin of the bin sequence.
  • the context variable is assigned (method 0) as follows.
  • the context variable based on the parameter related to the block size is assigned to the first bin of the bin string in which the adaptive orthogonal conversion identifier indicating the mode of the adaptive orthogonal conversion in image coding is binarized, and the context is encoded.
  • context variables are assigned and context-encoded according to whether or not the parameter related to the block size is equal to or greater than a predetermined threshold value (method 5).
  • the parameter (S) related to the block size is equal to or greater than the predetermined threshold value (TH) for the first bin of the bin row in which the adaptive orthogonal transformation identifier is binarized.
  • a context variable ctx index ctxInc
  • TH predetermined threshold value for the first bin of the bin row in which the adaptive orthogonal transformation identifier is binarized.
  • a context variable ctx index ctxInc
  • bypass coding may be performed on the second to fourth bins of the bin sequence (method). 5-1).
  • indexes A0, A1, B1, B2, and B3 are set with unique values that do not overlap.
  • parameter S may be any parameter as long as it relates to the block size.
  • the parameter S may be the product of the width tbWidth and the height tbHeight of the conversion block, that is, the area of the conversion block.
  • S tbWidth * tbHeight
  • the parameter S may be the sum of the logarithmic value of the width tbWidth of the conversion block and the logarithmic value of the height tbHeight, that is, the logarithmic value of the area of the conversion block.
  • S log2 (tbWidth) + log2 (tbHeight)
  • the parameter S may be the maximum value of the width tbWidth and the height tbHeight of the conversion block, that is, the size of the long side of the conversion block.
  • S max (tbWidth, tbHeight)
  • the parameter S may be the minimum value of the width tbWidth and the height tbHeight of the conversion block, that is, the size of the short side of the conversion block.
  • S min (tbWidth, tbHeight)
  • the parameter S may be the logarithmic value of the width tbWidth of the conversion block and the logarithmic value of the height tbHeight, that is, the logarithmic value of the size of the long side of the conversion block.
  • S max (log2 (tbWidth), log2 (tbHeight))
  • the parameter S may be the logarithmic value of the width tbWidth of the conversion block and the logarithmic value of the height tbHeight, that is, the logarithmic value of the size of the short side of the conversion block.
  • S min (log2 (tbWidth), log2 (tbHeight))
  • the parameter S may be cbSubDiv, which is the ratio of the area of the coded block to the area of the CTU.
  • cbSubDiv is the ratio of the area of the coded block to the area of the CTU.
  • the parameter S may be the result of shifting the ratio cbSubDiv of the area of the coded block to the area of the CTU by the right bit of the scale parameter shift.
  • this scale parameter shift may be the difference between the logarithmic value of the CTU block size and the logarithmic value of the maximum conversion block size. Further, the logarithmic value of the maximum conversion block size may be 5.
  • the parameter S may be an absolute value of the difference between the logarithmic value of the width tbWidth and the logarithmic value of the height tbHeight of the conversion block.
  • S abs (log2 (tbWidth) --log2 (tbHeight))
  • FIG. 32 shows an example of the number of contexts, the number of context-encoded bins, and the number of bypass-encoded bins of each of these methods.
  • the number of contexts was 9, the number of context-encoding bins was 4, and the number of bypass-encoding bins was 0.
  • the number of contexts is 2, the number of context coding bins is 1, and the number of bypass coding bins is 3.
  • the number of contexts is 3, the number of context coding bins is 2, and the number of bypass coding bins is 2.
  • the number of contexts is 4, the number of context coding bins is 3, and the number of bypass coding bins is 1. Further, in the case of the method 5-4, the number of contexts is 5, the number of context coding bins is 4, and the number of bypass coding bins is 0.
  • the number of context coding bins required for coding can be reduced as compared with the case of method 0.
  • the number of context coding bins required for coding is the same as in the case of method 0. That is, by applying method 5, bypass coding can be applied to bins corresponding to conversion types with relatively low selectivity. Therefore, it is possible to suppress an increase in the number of context coding bins and suppress an increase in the processing amount (throughput) while suppressing a decrease in coding efficiency.
  • the context variable based on the parameter related to the block size is assigned to the first bin of the binarized adaptive orthogonal conversion identifier bin string and context-encoded.
  • context decoding is performed by assigning a context variable according to whether or not the parameter related to the block size is equal to or greater than a predetermined threshold value (method 5).
  • the parameter (S) related to the block size is equal to or higher than a predetermined threshold value (TH) for the first bin of the bin row of the binarized adaptive orthogonal transformation identifier.
  • TH predetermined threshold value
  • a context variable ctx (index ctxInc) may be assigned according to the presence or absence (S ⁇ TH?), Context decoding may be performed, and bypass decoding may be performed on the second to fourth bins of the bin sequence (method). 5-1).
  • the parameter related to the block size is equal to or more than a predetermined threshold value for the first bin of the bin string of the binarized adaptive orthogonal conversion identifier.
  • the context variable ctx (index ctxInc) is assigned according to (S ⁇ TH?) To decode the context, and a predetermined predetermined context variable (index ctxInc) is assigned to the second bin of the bin row to give the context. Decoding may be performed, and bypass decoding may be performed on the third and fourth bins of the bin sequence (method 5-2).
  • the context variable ctx (index ctxInc) is assigned according to (S ⁇ TH?), The context is decoded, and the predetermined and different context variables (index ctxInc) are set for the second and third bins of the bin sequence. Is assigned to decode the context, and bypass decoding may be performed on the fourth bin of the bin row (method 5-3).
  • the context variable ctx (index ctxInc) is assigned according to (S ⁇ TH?), The context is decoded, and the predetermined and different context variables (index ctxInc) are set for the second to fourth bins of the bin sequence. May be assigned to decode the context (method 5-4).
  • the fourth bin (binIdx ) In 3)
  • the parameter S may be any parameter as long as it relates to the block size. For example, ⁇ 6-1.
  • the parameter S may be derived by the various methods described in Adaptation Orthogonal Transformation Identifier Coding>.
  • the number of contexts, the number of context coding bins, and the number of bypass coding bins of each of these methods are the same as in the case of coding (FIG. 32).
  • the number of context-encoding bins required for decoding can be reduced as compared with the case of method 0.
  • the number of context-encoded bins required for decoding is the same as in the case of method 0. That is, by applying method 5, bypass decoding can be applied to bins corresponding to conversion types with relatively low selectivity. Therefore, it is possible to suppress an increase in the number of context coding bins and suppress an increase in the processing amount (throughput) while suppressing a decrease in coding efficiency.
  • the coding side will be described.
  • the configuration on the coding side in this case is the same as in the case of the first embodiment. That is, the image coding device 100 in this case has the same configuration as that described with reference to FIG. Further, the coding unit 115 in this case has the same configuration as that described with reference to FIG. 7.
  • the image coding device 100 in this case performs basically the same processing as in the case of the first embodiment. That is, the image coding process executed by the image coding apparatus 100 in this case is performed in the same flow as in the case described with reference to the flowchart of FIG.
  • each process of step S451 and step S452 is executed in the same manner as each process of step S131 and step S132 of FIG. That is, in this case, the selection unit 132 selects the context setting unit 133 as the supply destination of the bin (that is, selects the context coding). For example, selection 132 uses context coding as the encoding method for this bin according to any of the tables shown in FIGS. 29 and 30 (ie, applying any of methods 5-1 to 5-4). Select.
  • step S453 the context setting unit 133 sets the context variable ctx (for the bin, depending on whether or not the parameter (S) related to the block size is equal to or greater than a predetermined threshold (TH?) (S ⁇ TH?). Index ctxInc) is assigned.
  • the context coding unit 134 performs arithmetic coding using the context variable. That is, context coding is performed.
  • step S454 to S458 is executed in the same manner as each process of steps S134 to S138 of FIG. If it is determined in step S408 to end, the coding process ends.
  • the coding unit 115 can apply the method 5 (for example, any of the methods 5-1 to 5-4) to encode the adaptive orthogonal conversion identifier. Therefore, it is possible to suppress an increase in memory usage. In addition, it is possible to suppress an increase in the amount of processing (throughput). That is, it is possible to suppress an increase in the load of the coding process.
  • the decoding side will be described.
  • the configuration on the decoding side in this case is the same as in the case of the first embodiment. That is, the image decoding device 200 in this case has the same configuration as that described with reference to FIG. Further, the decoding unit 212 in this case has the same configuration as that described with reference to FIG.
  • the image decoding device 200 in this case performs basically the same processing as in the case of the first embodiment. That is, the image decoding process executed by the image decoding apparatus 200 in this case is performed in the same flow as in the case described with reference to the flowchart of FIG.
  • step S471 is executed in the same manner as the process of step S231 of FIG. That is, in this case, the selection unit 231 selects the context setting unit 232 as the supply destination of the bin (that is, selects context decoding). For example, selection unit 231 selects context decoding as the decoding method for this bin according to any of the tables shown in FIGS. 29 and 30 (ie, applying any of methods 5-1 to 5-4). To do.
  • step S472 the context setting unit 232 sets the context variable ctx (for the bin, depending on whether or not the parameter (S) related to the block size is equal to or greater than a predetermined threshold (TH?) (S ⁇ TH?). Index ctxInc) is assigned.
  • the context decoding unit 233 performs arithmetic decoding using the context variable. That is, context decoding is performed.
  • step S473 to S478 is executed in the same manner as each process of steps S233 to S238 of FIG. If it is determined in step S478 to end, the decoding process ends.
  • the decoding unit 212 can apply method 5 (for example, any of methods 5-1 to 5-4) to decode the encoded data of the adaptive orthogonal conversion identifier. it can. Therefore, it is possible to suppress an increase in memory usage. In addition, it is possible to suppress an increase in the amount of processing (throughput). That is, it is possible to suppress an increase in the load of the decoding process.
  • method 5 for example, any of methods 5-1 to 5-4
  • the binarization of the adaptive orthogonal conversion identifier (method 0) indicating the mode of the adaptive orthogonal conversion in image coding, which has been performed as shown in the table shown in A of FIG. 2, is as follows. Do so.
  • the adaptive orthogonal conversion identifier is binarized and encoded into a bin sequence composed of 1 bin (1 bit) indicating whether or not the conversion type is other than DCT2xDCT2 and 2 bins (2 bits) indicating other conversion types. (Method 6).
  • the length of the bin row (bin length) can be made up to 3 bins.
  • the length of the bin row (bin length) was 4 bins at the maximum, so that the bin length can be shortened by 1 bin by applying the method 6.
  • this bin sequence is divided into a 1-bin prefix part indicating whether or not the conversion type is other than DCT2xDCT2 and a 2-bin suffix part indicating other conversion types. It may be binarized.
  • a context may be assigned and encoded by any of the methods 0 to 5 described above to each bin of the bin sequence of the adaptive orthogonal transformation identifier generated by the binarization by the method 6.
  • a predetermined predetermined context variable ctx (index ctxInc), that is, fixed to the first bin of the bin sequence in which the adaptive orthogonal conversion identifier is binarized.
  • the context variable ctx (corresponding to one-to-one) of the above may be assigned and context-encoded, and bypass coding may be performed on the second and third bins of the bin sequence (method 1-1).
  • predetermined different context variables (index ctxInc) are set for the first and second bins of the bin string obtained by binarizing the adaptive orthogonal conversion identifier. ) May be assigned and context-encoded, and bypass coding may be performed on the third bin of the bin sequence (method 1-2).
  • predetermined different context variables (index ctxInc) are set for the first to third bins of the bin string in which the adaptive orthogonal transformation identifier is binarized. ) May be assigned and context-encoded (Method 1-3).
  • the bin length in the worst case is 3. Therefore, the number of contexts is 3, the number of context-encoding bins is 2, and the number of bypass-encoding bins is 1. Further, when the method 6 and the method 1-3 are combined (method 6-3), the bin length in the worst case is 3. Therefore, the number of contexts is 4, the number of context-encoding bins is 3, and the number of bypass-encoding bins is 0.
  • the number of context coding bins required for coding can be reduced as compared with the case of method 0. That is, by applying method 6, the bin length at the worst case is reduced, and by applying method 1, bypass coding is applied to the bin corresponding to the conversion type having a relatively low selectivity. can do. Therefore, it is possible to suppress an increase in the number of context coding bins and suppress an increase in the processing amount (throughput) while suppressing a decrease in coding efficiency.
  • method 6 By combining method 6 with another method (for example, any of methods 2 to 5) instead of method 1, the effects of method 6 and the effects of those methods can be combined. Therefore, in either case, it is possible to suppress an increase in the memory usage amount and the processing amount (throughput).
  • the bin string composed of 1 bin (1 bit) indicating whether or not the conversion type is other than DCT2xDCT2 and 2 bins (2 bits) indicating other conversion types obtained by decoding is inversely binarized and adaptively orthogonalized. Derivation of the conversion identifier (method 6).
  • the length of the bin row (bin length) can be made up to 3 bins.
  • the length of the bin row (bin length) was 4 bins at the maximum, so that the bin length can be shortened by 1 bin by applying the method 6.
  • this bin sequence is divided into a 1-bin prefix part indicating whether or not the conversion type is other than DCT2xDCT2 and a 2-bin suffix part indicating other conversion types. It may be inversely binarized.
  • a context may be assigned to each bin in the bin sequence by any of the methods 0 to 5 described above for decoding.
  • a predetermined predetermined context variable ctx (index ctxInc), that is, fixed to the first bin of the bin sequence in which the adaptive orthogonal conversion identifier is binarized.
  • the context variable ctx (corresponding to one-to-one) of the above may be assigned to perform context decoding, and bypass decoding may be performed on the second and third bins of the bin sequence (method 1-1).
  • predetermined different context variables (index ctxInc) are set for the first and second bins of the bin string obtained by binarizing the adaptive orthogonal conversion identifier. ) May be assigned to perform context decoding, and bypass decoding may be performed on the third bin of the bin sequence (method 1-2).
  • predetermined different context variables (index ctxInc) are set for the first to third bins of the bin string obtained by binarizing the adaptive orthogonal transformation identifier. ) May be assigned to decode the context (method 1-3).
  • B1 is assigned and the context is decoded
  • the number of contexts, the number of context-encoded bins, the number of bypass-encoded bins, and the bin length at the worst case of each of these methods are the same as in the case of coding (FIG. 37).
  • the number of context-encoding bins required for decoding can be reduced as compared with the case of method 0. That is, by applying method 6, the bin length at the worst case is reduced, and by applying method 1, bypass decoding is applied to the bin corresponding to the conversion type having a relatively low selectivity. be able to. Therefore, it is possible to suppress an increase in the number of context coding bins and suppress an increase in the processing amount (throughput) while suppressing a decrease in coding efficiency.
  • method 6 By combining method 6 with another method (for example, any of methods 2 to 5) instead of method 1, the effects of method 6 and the effects of those methods can be combined. Therefore, in either case, it is possible to suppress an increase in the memory usage amount and the processing amount (throughput).
  • the coding side will be described.
  • the configuration on the coding side in this case is the same as in the case of the first embodiment. That is, the image coding device 100 in this case has the same configuration as that described with reference to FIG. Further, the coding unit 115 in this case has the same configuration as that described with reference to FIG. 7.
  • the image coding device 100 in this case performs basically the same processing as in the case of the first embodiment. That is, the image coding process executed by the image coding apparatus 100 in this case is performed in the same flow as in the case described with reference to the flowchart of FIG.
  • the binarization unit 131 of the coding unit 115 sets the adaptive orthogonal conversion identifier mts_idx to 1 bin (1 bit) indicating whether or not the conversion type is other than DCT2xDCT2 in step S501. It is binarized into a bin string composed of 2 bins (2 bits) indicating other conversion types.
  • the coding unit 115 applies the method 6 to binarize the adaptive orthogonal transformation identifier, and performs the method 1 (for example, any one of the methods 1-1 to 1-3). It can be applied to encode the bin sequence. Therefore, it is possible to suppress an increase in memory usage. In addition, it is possible to suppress an increase in the amount of processing (throughput). That is, it is possible to suppress an increase in the load of the coding process.
  • the decoding side will be described.
  • the configuration on the decoding side in this case is the same as in the case of the first embodiment. That is, the image decoding device 200 in this case has the same configuration as that described with reference to FIG. Further, the decoding unit 212 in this case has the same configuration as that described with reference to FIG.
  • the image decoding device 200 in this case performs basically the same processing as in the case of the first embodiment. That is, the image decoding process executed by the image decoding apparatus 200 in this case is performed in the same flow as in the case described with reference to the flowchart of FIG.
  • each process of steps S521 to S526 is executed in the same manner as each process of steps S231 to S236 of FIG.
  • step S527 the inverse binarization unit 235 reverses a bin sequence composed of 1 bin (1 bit) indicating whether or not the conversion type is other than DCT2xDCT2 and 2 bins (2 bits) indicating other conversion types. Binarize and derive the adaptive orthogonal conversion identifier mts_idx.
  • step S528 the decoding unit 212 determines whether or not to end the decoding of the adaptive orthogonal transformation identifier mts_idx. If it is determined that the process is not completed, the process returns to step S523, and the subsequent processes are repeated. If it is determined in step S528 to end, the decoding process ends.
  • the decoding unit 212 applies method 1 (for example, any one of methods 1-1 to 1-3) to decode the encoded data of the adaptive orthogonal conversion identifier, and obtains the coded data thereof.
  • a bin sequence can be derived.
  • the decoding unit 212 can apply the method 6 to inversely binarize the bin sequence and derive an adaptive orthogonal transformation identifier. Therefore, it is possible to suppress an increase in memory usage. In addition, it is possible to suppress an increase in the amount of processing (throughput). That is, it is possible to suppress an increase in the load of the decoding process.
  • conversion skip or adaptive orthogonal conversion can be applied even for the color difference component.
  • the conversion skip flag and the adaptive orthogonal conversion identifier are signaled (encoded / decoded) for each component ID (cIdx) (method 7).
  • Figure 40 shows an example of the syntax of the transform unit (transform_unit) in that case.
  • the luminance (Y), the color difference (Cb), and the color difference (Cr) are shown in the 17th, 20th, and 23rd lines (gray background line) from the top of this syntax. )
  • the transform mode (transform_mode) is signaled.
  • An example of the syntax of the transform mode (transform_mode) in this case is shown in FIG.
  • the transformation skip flag transform_skip_flag [x0] [y0] [cIdx] is signaled in the fifth line from the top (gray line) of this syntax.
  • the adaptive orthogonal transformation identifier tu_mts_idx [x0] [y0] [cIdx] is signaled in the eighth line (gray area line) from the top of this syntax. That is, the conversion skip flag and the adaptive orthogonal conversion identifier are signaled for each component ID (cIdx).
  • ctx may be assigned and context encoded.
  • the component ID (cIdx) of the conversion block is 0 for the first bin of the bin sequence in which the adaptive orthogonal conversion identifier is binarized.
  • the component ID (cIdx) of the conversion block is 0 for the first bin of the bin sequence in which the adaptive orthogonal conversion identifier is binarized.
  • the index ctxInc) may be assigned for context encoding, and bypass encoding may be performed for the fourth bin (method 7-3).
  • the component ID (cIdx) of the conversion block is 0 for the first bin of the bin string in which the adaptive orthogonal conversion identifier is binarized.
  • the index ctxInc) may be assigned and context-encoded (method 7-4).
  • the number of contexts, the number of context-encoded bins, and the number of bypass-encoded bins for each of these methods is shown in the table of FIG.
  • the number of contexts was 9, the number of context-encoding bins was 4, and the number of bypass-encoding bins was 0.
  • the number of contexts is 2, the number of context coding bins is 1, and the number of bypass coding bins is 3.
  • the number of contexts is 3, the number of context coding bins is 2, and the number of bypass coding bins is 2.
  • the number of contexts is 4, the number of context coding bins is 3, and the number of bypass coding bins is 1. Further, in the case of the method 7-4, the number of contexts is 5, the number of context-encoding bins is 4, and the number of bypass-encoding bins is 0.
  • the number of context coding bins required for coding can be reduced as compared with the case of method 0.
  • the number of context coding bins required for coding is the same as in the case of method 0. That is, by applying method 7, bypass coding can be applied to bins corresponding to conversion types with relatively low selectivity. Therefore, it is possible to suppress an increase in the number of context coding bins and suppress an increase in the processing amount (throughput) while suppressing a decrease in coding efficiency.
  • control parameters for conversion skip and adaptive orthogonal conversion may be signaled (encoded) for each treeType. That is, [cIdx] of each control parameter should be replaced with [treeType].
  • the method of assigning the context variable to each bin of the bin sequence of the adaptive orthogonal transformation identifier mts_idx described above can be applied to other syntax elements related to orthogonal transformation and the like. For example, it can be applied to the secondary conversion identifier st_idx and the conversion skip flag ts_flag.
  • Figure 40 shows an example of the syntax of the transform unit (transform_unit) in that case.
  • the luminance (Y), the color difference (Cb), and the color difference (Cr) are shown in the 17th, 20th, and 23rd lines (gray background line) from the top of this syntax. )
  • the transform mode (transform_mode) is signaled.
  • An example of the syntax of the transform mode (transform_mode) in this case is shown in FIG.
  • the transformation skip flag transform_skip_flag [x0] [y0] [cIdx] is signaled in the fifth line from the top (gray line) of this syntax.
  • the adaptive orthogonal transformation identifier tu_mts_idx [x0] [y0] [cIdx] is signaled in the eighth line (gray area line) from the top of this syntax. That is, the conversion skip flag and the adaptive orthogonal conversion identifier are signaled for each component ID (cIdx).
  • the component ID (cIdx) of the conversion block is 0 for the first bin of the bin string obtained by binarizing the adaptive orthogonal conversion identifier.
  • the component ID (cIdx) of the conversion block is 0 for the first bin of the bin sequence in which the adaptive orthogonal conversion identifier is binarized.
  • the index ctxInc) may be assigned to perform context decoding, and bypass decoding may be performed on the fourth bin (method 7-3).
  • the number of contexts, the number of context-encoded bins, and the number of bypass-encoded bins of each of these methods are the same as in the case of coding (FIG. 44).
  • the number of context-encoding bins required for decoding can be reduced as compared with the case of method 0.
  • the number of context-encoded bins required for decoding is the same as in the case of method 0. That is, by applying method 7, bypass decoding can be applied to bins corresponding to conversion types with relatively low selectivity. Therefore, it is possible to suppress an increase in the number of context coding bins and suppress an increase in the processing amount (throughput) while suppressing a decrease in coding efficiency.
  • control parameters for conversion skip and adaptive orthogonal conversion may be signaled (decoded) for each treeType. That is, [cIdx] of each control parameter should be replaced with [treeType].
  • the method of assigning the context variable to each bin of the bin sequence of the adaptive orthogonal transformation identifier mts_idx described above can be applied to other syntax elements related to orthogonal transformation and the like. For example, it can be applied to the secondary conversion identifier st_idx and the conversion skip flag ts_flag.
  • the coding side will be described.
  • the configuration on the coding side in this case is the same as in the case of the first embodiment. That is, the image coding device 100 in this case has the same configuration as that described with reference to FIG. Further, the coding unit 115 in this case has the same configuration as that described with reference to FIG. 7.
  • the image coding device 100 in this case performs basically the same processing as in the case of the first embodiment. That is, the image coding process executed by the image coding apparatus 100 in this case is performed in the same flow as in the case described with reference to the flowchart of FIG.
  • each process of step S551 and step S552 is executed in the same manner as each process of step S131 and step S132 of FIG. That is, in this case, the selection unit 132 selects the context setting unit 133 as the supply destination of the bin (that is, selects the context coding). For example, selection 132 uses context coding as the encoding method for this bin according to any of the tables shown in FIGS. 42 and 43 (ie, applying any of methods 7-1 to 7-4). Select.
  • the context coding unit 134 performs arithmetic coding using the context variable. That is, context coding is performed.
  • step S554 to S558 is executed in the same manner as each process of steps S134 to S138 of FIG. If it is determined in step S558 to end, the coding process ends.
  • the coding unit 115 can apply the method 7 (for example, any of the methods 7-1 to 7-4) to encode the adaptive orthogonal conversion identifier. Therefore, it is possible to suppress an increase in memory usage. In addition, it is possible to suppress an increase in the amount of processing (throughput). That is, it is possible to suppress an increase in the load of the coding process.
  • the decoding side will be described.
  • the configuration on the decoding side in this case is the same as in the case of the first embodiment. That is, the image decoding device 200 in this case has the same configuration as that described with reference to FIG. Further, the decoding unit 212 in this case has the same configuration as that described with reference to FIG.
  • the image decoding device 200 in this case performs basically the same processing as in the case of the first embodiment. That is, the image decoding process executed by the image decoding apparatus 200 in this case is performed in the same flow as in the case described with reference to the flowchart of FIG.
  • step S571 is executed in the same manner as the process of step S231 of FIG. That is, in this case, the selection unit 231 selects the context setting unit 232 as the supply destination of the bin (that is, selects context decoding). For example, selection section 231 selects context decoding as the decoding method for this bin according to any of the tables shown in FIGS. 42 and 43 (ie, applying any of methods 7-1 to 7-4). To do.
  • the context decoding unit 233 performs arithmetic decoding using the context variable. That is, context decoding is performed.
  • step S573 to S578 is executed in the same manner as each process of steps S233 to S238 of FIG. If it is determined in step S578 to end, the decoding process ends.
  • the decoding unit 212 can apply method 7 (for example, any of methods 7-1 to 7-4) to decode the encoded data of the adaptive orthogonal conversion identifier. it can. Therefore, it is possible to suppress an increase in memory usage. In addition, it is possible to suppress an increase in the amount of processing (throughput). That is, it is possible to suppress an increase in the load of the decoding process.
  • method 7 for example, any of methods 7-1 to 7-4
  • the series of processes described above can be executed by hardware or by software.
  • the programs constituting the software are installed on the computer.
  • the computer includes a computer embedded in dedicated hardware, a general-purpose personal computer capable of executing various functions by installing various programs, and the like.
  • FIG. 47 is a block diagram showing a configuration example of computer hardware that executes the above-mentioned series of processes programmatically.
  • the CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • the input / output interface 810 is also connected to the bus 804.
  • An input unit 811, an output unit 812, a storage unit 813, a communication unit 814, and a drive 815 are connected to the input / output interface 810.
  • the input unit 811 includes, for example, a keyboard, a mouse, a microphone, a touch panel, an input terminal, and the like.
  • the output unit 812 includes, for example, a display, a speaker, an output terminal, and the like.
  • the storage unit 813 includes, for example, a hard disk, a RAM disk, a non-volatile memory, or the like.
  • the communication unit 814 is composed of, for example, a network interface.
  • the drive 815 drives a removable medium 821 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
  • the CPU 801 loads the program stored in the storage unit 813 into the RAM 803 via the input / output interface 810 and the bus 804, and executes the above-described series. Is processed.
  • the RAM 803 also appropriately stores data and the like necessary for the CPU 801 to execute various processes.
  • the program executed by the computer can be recorded and applied to the removable media 821 as a package media or the like, for example.
  • the program can be installed in the storage unit 813 via the input / output interface 810 by attaching the removable media 821 to the drive 815.
  • the program can also be provided via wired or wireless transmission media such as local area networks, the Internet, and digital satellite broadcasting.
  • the program can be received by the communication unit 814 and installed in the storage unit 813.
  • this program can be installed in advance in ROM 802 or storage unit 813.
  • the data unit in which the various information described above is set and the data unit targeted by the various processes are arbitrary and are not limited to the above-mentioned examples.
  • these information and processing are TU (Transform Unit), TB (Transform Block), PU (Prediction Unit), PB (Prediction Block), CU (Coding Unit), LCU (Largest Coding Unit), and subblock, respectively.
  • Blocks, tiles, slices, pictures, sequences, or components, or data in those data units may be targeted.
  • this data unit can be set for each information or process, and it is not necessary that the data unit of all the information or process is unified.
  • the storage location of these information is arbitrary, and may be stored in the header, parameter set, or the like of the above-mentioned data unit. Further, it may be stored in a plurality of places.
  • control information related to the present technology described in each of the above embodiments may be transmitted from the coding side to the decoding side.
  • control information for example, enabled_flag
  • control information for example, present_flag
  • control information indicating an object to which the present technology is applied (or an object to which the present technology is not applied
  • control information may be transmitted that specifies the block size (upper and lower limits, or both) to which the present technology is applied (or allowed or prohibited), frames, components, layers, and the like.
  • This technique can be applied to any image coding / decoding method. That is, as long as it does not contradict the above-mentioned technology, specifications of various processes related to image coding / decoding such as conversion (inverse transformation), quantization (inverse quantization), coding (decoding), prediction, etc. are arbitrary. It is not limited to the example. In addition, some of these processes may be omitted as long as they do not contradict the present technology described above.
  • this technology can be applied to a multi-viewpoint image coding / decoding system that encodes / decodes a multi-viewpoint image including images of a plurality of viewpoints (views).
  • the present technology may be applied to the coding / decoding of each viewpoint (view).
  • this technology is applied to a hierarchical image coding (scalable coding) / decoding system that encodes / decodes a hierarchical image that is layered (layered) so as to have a scalability function for a predetermined parameter. can do.
  • the present technology may be applied to the coding / decoding of each layer.
  • the image coding device 100 and the image decoding device 200 have been described as application examples of the present technology, but the present technology can be applied to any configuration.
  • this technology is a transmitter or receiver (for example, a television receiver or mobile phone) for satellite broadcasting, cable broadcasting such as cable TV, distribution on the Internet, and distribution to terminals by cellular communication, or It can be applied to various electronic devices such as devices (for example, hard disk recorders and cameras) that record images on media such as optical disks, magnetic disks, and flash memories, and reproduce images from these storage media.
  • devices for example, hard disk recorders and cameras
  • a processor as a system LSI (Large Scale Integration) or the like (for example, a video processor), a module using a plurality of processors (for example, a video module), a unit using a plurality of modules (for example, a video unit)
  • a processor as a system LSI (Large Scale Integration) or the like
  • a module using a plurality of processors for example, a video module
  • a unit using a plurality of modules for example, a video unit
  • it can be implemented as a configuration of a part of the device, such as a set (for example, a video set) in which other functions are added to the unit.
  • this technology can be applied to a network system composed of a plurality of devices.
  • the present technology may be implemented as cloud computing that is shared and jointly processed by a plurality of devices via a network.
  • this technology is implemented in a cloud service that provides services related to images (moving images) to arbitrary terminals such as computers, AV (AudioVisual) devices, portable information processing terminals, and IoT (Internet of Things) devices. You may try to do it.
  • the system means a set of a plurality of components (devices, modules (parts), etc.), and it does not matter whether all the components are in the same housing. Therefore, a plurality of devices housed in separate housings and connected via a network, and a device in which a plurality of modules are housed in one housing are both systems. ..
  • Systems, devices, processing units, etc. to which this technology is applied can be used in any field such as transportation, medical care, crime prevention, agriculture, livestock industry, mining, beauty, factories, home appliances, weather, nature monitoring, etc. .. The use is also arbitrary.
  • this technology can be applied to systems and devices used for providing ornamental contents and the like.
  • the present technology can be applied to systems and devices used for traffic such as traffic condition supervision and automatic driving control.
  • the present technology can be applied to systems and devices used for security purposes.
  • the present technology can be applied to a system or device used for automatic control of a machine or the like.
  • the present technology can be applied to systems and devices used for agriculture and livestock industry.
  • the present technology can also be applied to systems and devices for monitoring natural conditions such as volcanoes, forests and oceans, and wildlife. Further, for example, the present technology can be applied to systems and devices used for sports.
  • the "flag” is information for identifying a plurality of states, and is not only information used for identifying two states of true (1) or false (0), but also three or more states. It also contains information that can identify the state. Therefore, the value that this "flag” can take may be, for example, 2 values of 1/0 or 3 or more values. That is, the number of bits constituting this "flag” is arbitrary, and may be 1 bit or a plurality of bits.
  • the identification information (including the flag) is assumed to include not only the identification information in the bit stream but also the difference information of the identification information with respect to a certain reference information in the bit stream. In, the "flag” and “identification information” include not only the information but also the difference information with respect to the reference information.
  • various information (metadata, etc.) regarding the coded data may be transmitted or recorded in any form as long as it is associated with the coded data.
  • the term "associate" means, for example, to make the other data available (linkable) when processing one data. That is, the data associated with each other may be combined as one data or may be individual data.
  • the information associated with the coded data (image) may be transmitted on a transmission path different from the coded data (image).
  • the information associated with the coded data (image) may be recorded on a recording medium (or another recording area of the same recording medium) different from the coded data (image). Good.
  • this "association" may be a part of the data, not the entire data. For example, an image and information corresponding to the image may be associated with each other in an arbitrary unit such as a plurality of frames, one frame, or a part within the frame.
  • the embodiment of the present technology is not limited to the above-described embodiment, and various changes can be made without departing from the gist of the present technology.
  • the configuration described as one device (or processing unit) may be divided and configured as a plurality of devices (or processing units).
  • the configurations described above as a plurality of devices (or processing units) may be collectively configured as one device (or processing unit).
  • a configuration other than the above may be added to the configuration of each device (or each processing unit).
  • a part of the configuration of one device (or processing unit) may be included in the configuration of another device (or other processing unit). ..
  • the above-mentioned program may be executed in any device.
  • the device may have necessary functions (functional blocks, etc.) so that necessary information can be obtained.
  • each step of one flowchart may be executed by one device, or may be shared and executed by a plurality of devices.
  • the plurality of processes may be executed by one device, or may be shared and executed by a plurality of devices.
  • a plurality of processes included in one step can be executed as processes of a plurality of steps.
  • the processes described as a plurality of steps can be collectively executed as one step.
  • the processing of the steps for writing the program may be executed in chronological order in the order described in the present specification, or may be executed in parallel or in calls. It may be executed individually at the required timing such as when it is broken. That is, as long as there is no contradiction, the processing of each step may be executed in an order different from the above-mentioned order. Further, the processing of the step for writing this program may be executed in parallel with the processing of another program, or may be executed in combination with the processing of another program.
  • a plurality of technologies related to this technology can be independently implemented independently as long as there is no contradiction.
  • any plurality of the present technologies can be used in combination.
  • some or all of the techniques described in any of the embodiments may be combined with some or all of the techniques described in other embodiments. It is also possible to carry out a part or all of any of the above-mentioned techniques in combination with other techniques not described above.
  • the present technology can also have the following configurations.
  • An image processing device including a unit.
  • the coding unit assigns predetermined different context variables to the first to third bins of the bin row for context coding, and bypasses the fourth bin of the bin row.
  • the image processing apparatus according to (1) which performs encoding.
  • the coding unit assigns predetermined different context variables to the first and second bins of the bin row for context coding, and assigns the third and fourth bins of the bin row to the context.
  • the image processing apparatus according to (1) wherein bypass coding is performed on the image processing apparatus.
  • the coding unit assigns a predetermined predetermined context variable to the first bin of the bin row for context coding, and bypasses the second to fourth bins of the bin row.
  • the image processing apparatus according to (1) which performs encoding.
  • the coding unit binarizes and encodes the adaptive orthogonal conversion identifier into a bin sequence composed of 1 bit indicating whether or not the conversion type is other than DCT2xDCT2 and 2 bits indicating other conversion types.
  • the image processing apparatus according to any one of (1) to (5). (7) Image processing in which a predetermined predetermined context variable is assigned to the first bin of a bin string obtained by binarizing an adaptive orthogonal transformation identifier indicating a mode of adaptive orthogonal transformation in image coding to perform context coding.
  • An image processing device including a unit.
  • the parameter relating to the block size is the difference between the logarithmic value of the long side of the conversion block and the logarithmic value of the minimum conversion block size to which the adaptive orthogonal transformation can be applied.
  • the parameter relating to the block size is the difference between the logarithmic value of the long side of the conversion block and the logarithmic value of the minimum conversion block size to which the adaptive orthogonal transformation can be applied, and the minimum value within a predetermined threshold value (10).
  • the parameter relating to the block size is the difference between the logarithmic value of the long side of the conversion block and the logarithmic value of the minimum conversion block size to which the adaptive orthogonal transformation can be applied, and the minimum value within a predetermined threshold value.
  • the image processing apparatus according to (8) which is the result of bit shifting.
  • the image processing apparatus assigns a context variable according to whether or not the parameter related to the block size is equal to or more than a predetermined threshold value and performs context coding.
  • the coding unit binarizes the adaptive orthogonal conversion identifier into a bin sequence composed of 1 bit indicating whether or not the conversion type is other than DCT2xDCT2 and 2 bits indicating other conversion types, and encodes the identifier.
  • the image processing apparatus according to any one of (8) to (12).
  • the image processing apparatus binarizes and encodes the adaptive orthogonal transformation identifier for each component.
  • Image processing in which a context variable based on a parameter related to block size is assigned to the first bin of a bin string obtained by binarizing an adaptive orthogonal transformation identifier indicating a mode of adaptive orthogonal transformation in image coding to perform context coding.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本開示は、負荷の増大を抑制することができるようにする画像処理装置および方法に関する。 画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、予め定められた所定のコンテキスト変数を割り当ててコンテキスト符号化する。また、画像復号における逆適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、予め定められた所定のコンテキスト変数を割り当ててコンテキスト復号する。本開示は、例えば、画像処理装置、画像符号化装置、画像復号装置、情報処理装置、電子機器、画像処理方法、または情報処理方法等に適用することができる。

Description

画像処理装置および方法
 本開示は、画像処理装置および方法に関し、特に、負荷の増大を抑制することができるようにした画像処理装置および方法に関する。
 従来、画像符号化において、適応直交変換(MTS(Multiple Transform Selection))に関するモード情報として、適応直交変換識別子mts_idxがシグナリング(符号化・復号)された。適応直交変換識別子mts_idxの符号化には、適応直交変換識別子mts_idxを2値化し、ビン列binsの各ビンに対してコンテキスト変数ctxを割り当てて算術符号化するコンテキスト符号化が適用された。また、適応直交変換識別子mts_idxの符号化データの復号には、そのコンテキスト符号化に対応するコンテキスト復号が適用された。
Benjamin Bross, Jianle Chen, Shan Liu, "Versatile Video Coding (Draft 5)", JVET-N1001v8, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting: Geneva, CH, 19-27 Mar. 2019
 しかしながら、このような方法の場合、コンテキスト変数が不要に増大し、メモリ使用量が不要に増大するおそれがあった。つまり、符号化処理や復号処理の負荷が増大するおそれがあった。
 本開示は、このような状況に鑑みてなされたものであり、符号化処理や復号処理の負荷の増大を抑制することができるようにするものである。
 本技術の一側面の画像処理装置は、画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、予め定められた所定のコンテキスト変数を割り当ててコンテキスト符号化する符号化部を備える画像処理装置である。
 本技術の一側面の画像処理方法は、画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、予め定められた所定のコンテキスト変数を割り当ててコンテキスト符号化する画像処理方法である。
 本技術の他の側面の画像処理装置は、画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、ブロックサイズに関するパラメータに基づくコンテキスト変数を割り当ててコンテキスト符号化する符号化部を備える画像処理装置である。
 本技術の他の側面の画像処理方法は、画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、ブロックサイズに関するパラメータに基づくコンテキスト変数を割り当ててコンテキスト符号化する画像処理方法である。
 本技術の一側面の画像処理装置および方法においては、画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、予め定められた所定のコンテキスト変数が割り当てられてコンテキスト符号化される。
 本技術の他の側面の画像処理装置および方法においては、画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、ブロックサイズに関するパラメータに基づくコンテキスト変数が割り当てられてコンテキスト符号化される。
適応直交変換識別子の符号化の様子の例を説明する図である。 適応直交変換識別子の符号化の様子の例を説明する図である。 適応直交変換識別子のビン列の各ビンに対するコンテキスト変数の割り当ての例を示す図である。 適応直交変換識別子のビン列の各ビンに対するコンテキスト変数の割り当ての例を示す図である。 各方法の、コンテキスト数、コンテキスト符号化ビン数、およびバイパス符号化ビン数の比較例を示す図である。 画像符号化装置の主な構成例を示すブロック図である。 符号化部の主な構成例を示すブロック図である。 画像符号化処理の流れの例を示すフローチャートである。 符号化処理の流れの例を示すフローチャートである。 画像復号装置の主な構成例を示すブロック図である。 復号部の主な構成例を示すブロック図である。 画像復号処理の流れの例を示すフローチャートである。 復号処理の流れの例を示すフローチャートである。 適応直交変換識別子のビン列の各ビンに対するコンテキスト変数の割り当ての例を示す図である。 適応直交変換識別子のビン列の各ビンに対するコンテキスト変数の割り当ての例を示す図である。 各方法の、コンテキスト数、コンテキスト符号化ビン数、およびバイパス符号化ビン数の比較例を示す図である。 符号化処理の流れの例を示すフローチャートである。 復号処理の流れの例を示すフローチャートである。 適応直交変換識別子のビン列の各ビンに対するコンテキスト変数の割り当ての例を示す図である。 適応直交変換識別子のビン列の各ビンに対するコンテキスト変数の割り当ての例を示す図である。 各方法の、コンテキスト数、コンテキスト符号化ビン数、およびバイパス符号化ビン数の比較例を示す図である。 符号化処理の流れの例を示すフローチャートである。 復号処理の流れの例を示すフローチャートである。 適応直交変換識別子のビン列の各ビンに対するコンテキスト変数の割り当ての例を示す図である。 適応直交変換識別子のビン列の各ビンに対するコンテキスト変数の割り当ての例を示す図である。 各方法の、コンテキスト数、コンテキスト符号化ビン数、およびバイパス符号化ビン数の比較例を示す図である。 符号化処理の流れの例を示すフローチャートである。 復号処理の流れの例を示すフローチャートである。 適応直交変換識別子のビン列の各ビンに対するコンテキスト変数の割り当ての例を示す図である。 適応直交変換識別子のビン列の各ビンに対するコンテキスト変数の割り当ての例を示す図である。 CTUの面積に対する符号化ブロックの面積の比の例を示す図である。 各方法の、コンテキスト数、コンテキスト符号化ビン数、およびバイパス符号化ビン数の比較例を示す図である。 符号化処理の流れの例を示すフローチャートである。 復号処理の流れの例を示すフローチャートである。 適応直交変換識別子の2値化の様子の例を示す図である。 適応直交変換識別子のビン列の各ビンに対するコンテキスト変数の割り当ての例を示す図である。 各方法の、コンテキスト数、コンテキスト符号化ビン数、およびバイパス符号化ビン数の比較例を示す図である。 符号化処理の流れの例を示すフローチャートである。 復号処理の流れの例を示すフローチャートである。 変換ユニットに関するシンタックスの例を示す図である。 直交変換モードに関するシンタックスの例を示す図である。 適応直交変換識別子のビン列の各ビンに対するコンテキスト変数の割り当ての例を示す図である。 適応直交変換識別子のビン列の各ビンに対するコンテキスト変数の割り当ての例を示す図である。 各方法の、コンテキスト数、コンテキスト符号化ビン数、およびバイパス符号化ビン数の比較例を示す図である。 符号化処理の流れの例を示すフローチャートである。 復号処理の流れの例を示すフローチャートである。 コンピュータの主な構成例を示すブロック図である。
 以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
 1.適応直交変換識別子の符号化
 2.第1の実施の形態
 3.第2の実施の形態
 4.第3の実施の形態
 5.第4の実施の形態
 6.第5の実施の形態
 7.第6の実施の形態
 8.第7の実施の形態
 9.付記
 <1.適応直交変換識別子の符号化>
  <1-1.技術内容・技術用語をサポートする文献等>
 本技術で開示される範囲は、実施の形態に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献等に記載されている内容や以下の非特許文献において参照されている他の文献の内容等も含まれる。
 非特許文献1:(上述)
 非特許文献2:Recommendation ITU-T H.264 (04/2017) "Advanced video coding for generic audiovisual services", April 2017
 非特許文献3:Recommendation ITU-T H.265 (12/2016) "High efficiency video coding", December 2016
 非特許文献4:J. Chen, E. Alshina, G. J. Sullivan, J.-R. Ohm, J. Boyce,"Algorithm Description of Joint Exploration Test Model (JEM7)", JVET-G1001, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 7th Meeting: Torino, IT, 13-21 July 2017
 非特許文献5:B. Bross, J. Chen, S. Liu , "Versatile Video Coding (Draft 3), " JVET-L1001, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting: Macau, CN, 3-12 Oct. 2018
 非特許文献6:J. J. Chen, Y. Ye, S. Kim,"Algorithm description for Versatile Video Coding and Test Model 3 (VTM 3)", JVET-L1002, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting: Macau, CN, 3-12 Oct. 2018
 非特許文献7:Jianle Chen, Yan Ye, Seung Hwan Kim, "Algorithm description for Versatile Video Coding and Test Model 5 (VTM 5)", JVET-N1002-v2, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting: Geneva, CH, 19-27 Mar. 2019
 非特許文献8:Moonmo Koo, Jaehyun Lim, Mehdi Salehifar, Seung Hwan Kim, "CE6: Reduced Secondary Transform (RST) (CE6-3.1)", JVET-N0193, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting: Geneva, CH, 19-27 March 2019
 非特許文献9:Mischa Siekmann, Martin Winken, Heiko Schwarz, Detlev Marpe "CE6 - related: Simplification of the Reduced Secondary Transform", JVET-N0555-v3, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting: Geneva, CH, 19-27 March 2019
 非特許文献10:C. Rosewarne, J. Gan, "CE6-related: RST binarization", JVET-N0105-v2, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting: Geneva, CH, 19-27 March 2019
 つまり、上述の非特許文献に記載されている内容もサポート要件を判断する際の根拠となる。例えば、上述の非特許文献に記載されているQuad-Tree Block Structure、QTBT(Quad Tree Plus Binary Tree) Block Structureが実施例において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。また、例えば、パース(Parsing)、シンタックス(Syntax)、セマンティクス(Semantics)等の技術用語についても同様に、実施例において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。
 また、本明細書において、画像(ピクチャ)の部分領域や処理単位として説明に用いる「ブロック」(処理部を示すブロックではない)は、特に言及しない限り、ピクチャ内の任意の部分領域を示し、その大きさ、形状、および特性等は限定されない。例えば、「ブロック」には、上述の非特許文献に記載されているTB(Transform Block)、TU(Transform Unit)、PB(Prediction Block)、PU(Prediction Unit)、SCU(Smallest Coding Unit)、CU(Coding Unit)、LCU(Largest Coding Unit)、CTB(Coding Tree Block)、CTU(Coding Tree Unit)、変換ブロック、サブブロック、マクロブロック、タイル、またはスライス等、任意の部分領域(処理単位)が含まれるものとする。
 また、このようなブロックのサイズを指定するに当たって、直接的にブロックサイズを指定するだけでなく、間接的にブロックサイズを指定するようにしてもよい。例えばサイズを識別する識別情報を用いてブロックサイズを指定するようにしてもよい。また、例えば、基準となるブロック(例えばLCUやSCU等)のサイズとの比または差分によってブロックサイズを指定するようにしてもよい。例えば、シンタックス要素等としてブロックサイズを指定する情報を伝送する場合に、その情報として、上述のような間接的にサイズを指定する情報を用いるようにしてもよい。このようにすることにより、その情報の情報量を低減させることができ、符号化効率を向上させることができる場合もある。また、このブロックサイズの指定には、ブロックサイズの範囲の指定(例えば、許容されるブロックサイズの範囲の指定等)も含む。
 また、本明細書において、符号化とは、画像をビットストリームに変換する全体の処理だけではなく、一部の処理も含む。例えば、予測処理、直交変換、量子化、算術符号化等を包括した処理を含むだけではなく、量子化と算術符号化とを総称した処理、予測処理と量子化と算術符号化とを包括した処理、などを含む。同様に、復号とは、ビットストリームを画像に変換する全体の処理だけではなく、一部の処理も含む。例えば、逆算術復号、逆量子化、逆直交変換、予測処理等を包括した処理を含むだけではなく、逆算術復号と逆量子化とを包括した処理、逆算術復号と逆量子化と予測処理とを包括した処理、などを含む。
  <1-2.適応直交変換識別子のコンテキスト符号化・コンテキスト復号>
 従来、画像符号化・復号において、適応直交変換(MTS(Multiple Transform Selection))に関するモード情報として、適応直交変換識別子mts_idxがシグナリング(符号化・復号)された。適応直交変換識別子mts_idxの符号化には、以下のようなコンテキストを用いたコンテキスト符号化が適用された。
 まず、適応直交変換識別子mts_idxは、図1のAに示される表のように、トランケート・ユーナリ符号(TU(Truncated Unary))により2値化されてビン列binsが得られる。なお、TU符号は、ライスパラメータcRiceParam = 0としたトランケート・ライス符号(TR(Truncated Rice))と等価である。
 次に、そのTRにより得られたビン列binsの各binIdx(何番目のbinかを示すインデックス)に対応するコンテキスト変数ctxを参照して、算術符号化が行われる。コンテキスト変数ctxを識別するインデックスをctxInc(またはctxIdx)と称する。
 具体的には、図1のBに示される表のように、ビン列1番目(binIdx = 0)のビンに対して、CTUに対するCUの4分木による分割の深さを表すCQT分割深度cqtDepthの値と1対1に対応するコンテキスト変数ctxが割り当てられる。図1のBの例では、ビン列1番目(binIdx = 0)に対応するコンテキストインデックスctxIncには、CQT分割深度cqtDepthと5の内の小さい方が設定される(ctxInc = min(cqtDepth, 5))。つまり、分割深度に応じて適応直交変換における0,1の出方(頻度)が変わる可能性があるので、効率を良くするために、それに対応してコンテキストも可変とされている。
 また、ビン列binsの2番目乃至4番目のビン(binIdx = 1...3)に対しては、各binIdxと1対1に対応のコンテキスト変数ctx(図1のBの例の場合、ctxInc = 6...8)が割り当てられる。
 なお、適応直交変換識別子mts_idxのビン列binsの各binは、図2のAに示される表のように、変換タイプに対応するフラグとして解釈することができる。この例の場合、1番目のビン(binIdx = 0)の値は、変換タイプがDCT2xDCT2であるか否かを示すフラグ(0がYes、1がNoを示す)に対応し、2番目のビン(binIdx = 1)の値は、変換タイプがDST7xDST7であるか否かを示すフラグ(0がYes、1がNoを示す)に対応し、3番目のビン(binIdx = 2)の値は、変換タイプがDCT8xDST7であるか否かを示すフラグ(0がYes、1がNoを示す)に対応し、4番目のビン(binIdx = 3)の値は、変換タイプがDST7xDCT8であるか否かを示すフラグ(0がYes、1がNoを示す)に対応する。
 適応直交変換識別子mts_idxの符号化データの復号は、このような符号化に対応する方法で行われた。つまり、コンテキストを用いたコンテキスト復号が適用された。
 しかしながら、このようなコンテキスト符号化やコンテキスト復号の場合、処理の負荷が増大するおそれがあった。
 例えば、特定のCQT分割深度cqtDepthの値のときには、適応直交変換識別子mts_idxが発生しない。そのため、全く利用されないコンテキスト変数ctxが存在し、そのコンテキスト変数ctxのためにメモリ使用量が不要に増大するおそれがあった(処理に必要なメモリ容量が増大するおそれがあった)。
 例えば、CU分割が全て4分木で行われる場合、CTUサイズ=128x128のときの各CQT分割深度cqtDepthに対応するCUサイズは、図2のBに示される表の通りである。これに対して、適応直交変換は32x32より大きいブロックでは適用されないため、128x128のCUと64x64のCUでは、適応直交変換識別子mts_idxは発生しない。したがって、適応直交変換識別子mts_idxのビン列binsの1ビン目に対応するコンテキスト変数ctxの中で、ctxInc=0...1は、全く利用されない。つまり、これらのコンテキスト変数ctxのためにメモリ使用量が不要に増大するおそれがあった。
 そこで、画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、予め定められた所定のコンテキスト変数を割り当ててコンテキスト符号化する。
 このようにすることにより、適応直交変換識別子のビン列に割り当てるコンテキストの数の増大を抑制することができるので、メモリ使用量の増大を抑制し、符号化処理や復号処理の負荷の増大を抑制することができる。
 また、画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、ブロックサイズに関するパラメータに基づくコンテキスト変数を割り当ててコンテキスト符号化する。
 このようにすることにより、適応直交変換識別子のビン列に割り当てるコンテキストの数の増大を抑制することができるので、メモリ使用量の増大を抑制し、符号化処理や復号処理の負荷の増大を抑制することができる。
  <1-3.バイパス符号化>
 また、変換タイプの選択率は大きい順に、DCT(Discrete Cosine Transform)2xDCT2、DST(Discrete Sine Transform)7xDST7、DCT8xDST7、DST7xDCT8、DCT8xDCT8となる。つまり、各変換タイプの選択率は一律ではない。そのため、全ての変換タイプについて同様にコンテキスト変数ctxを割り当てるのは非効率であり、コンテキスト符号化ビンの総数が不要に増大するおそれがあった。上述のように、適応直交変換識別子mts_idxのビン列binsの各binは、変換タイプに対応するフラグとして解釈することができる。つまり、ビン列binsの各ビンに対して同様にコンテキスト変数ctxを割り当てるのは非効率であり、コンテキスト符号化ビンの総数が不要に増大するおそれがあった。
 このようにコンテキスト符号化ビンの総数が増大することにより、CABAC(Context-based Adaptive Binary Arithmetic Code)の処理量(スループット)が増大するおそれがあった。
 そこで、選択率が比較的低い変換タイプに対応するビンに対してバイパス符号化を適用する。このようにすることにより、符号化効率の低下を抑制しながら、コンテキスト符号化ビンの数の増大を抑制し、CABACの処理量(スループット)の増大を抑制することができる。つまり、符号化処理や復号処理の負荷の増大を抑制することができる。
 <2.第1の実施の形態>
  <2-1.適応直交変換識別子の符号化>
 本実施の形態においては、図1のBに示される表のように行われていた、画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の各ビンへのコンテキスト変数の割り当て(方法0)を、以下のように行う。
 つまり、そのビン列の1ビン目に対して、予め定められた所定のコンテキスト変数(固定の(1対1対応の)コンテキスト変数)ctxを割り当て、コンテキスト符号化する(方法1)。
 例えば、図3のAに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、予め定められた所定のコンテキスト変数(コンテキスト変数ctxを識別するためのインデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の2ビン目乃至4ビン目に対してバイパス符号化を行ってもよい(方法1-1)。
 図3のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はインデックスctxInc = A0が割り当てられてコンテキスト符号化され、2ビン目乃至4ビン目(binIdx = 1...3)は、それぞれ、バイパス符号化(bypass)される。
 また、例えば、図3のBに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目および2ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の3ビン目および4ビン目に対してバイパス符号化を行ってもよい(方法1-2)。
 図3のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はインデックスctxInc = A0が割り当てられてコンテキスト符号化され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト符号化され、3ビン目および4ビン目(binIdx = 2...3)は、それぞれ、バイパス符号化(bypass)される。
 さらに、例えば、図4のAに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目乃至3ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の4ビン目に対してバイパス符号化を行ってもよい(方法1-3)。
 図4のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はインデックスctxInc = A0が割り当てられてコンテキスト符号化され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト符号化され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト符号化され、4ビン目(binIdx = 3)はバイパス符号化(bypass)される。
 さらに、例えば、図4のBに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目乃至4ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト符号化してもよい(方法1-4)。
 図4のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はインデックスctxInc = A0が割り当てられてコンテキスト符号化され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト符号化され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト符号化され、4ビン目(binIdx = 3)はインデックスctxInc = B3が割り当てられてコンテキスト符号化される。
 なお、図3および図4の各表において、インデックスA0, B1, B2, B3には、重複しないユニークな値が設定される。
 これらの各方法のコンテキスト数、コンテキスト符号化ビン数、およびバイパス符号化ビン数の例を図5の表に示す。例えば、方法0の場合、コンテキスト数は9、コンテキスト符号化ビン数は4、バイパス符号化ビン数は0であった。これに対して、方法1-1の場合、コンテキスト数は1、コンテキスト符号化ビン数は1、バイパス符号化ビン数は3となる。また、方法1-2の場合、コンテキスト数は2、コンテキスト符号化ビン数は2、バイパス符号化ビン数は2となる。さらに、方法1-3の場合、コンテキスト数は3、コンテキスト符号化ビン数は3、バイパス符号化ビン数は1となる。また、方法1-4の場合、コンテキスト数は4、コンテキスト符号化ビン数は4、バイパス符号化ビン数は0となる。
 このように、方法1-1乃至方法1-4のいずれの場合も、符号化に必要なコンテキスト数を、方法0の場合よりも低減させることができる。つまり、方法1を適用することにより、1ビン目(binIdx = 0)に割り当てていたコンテキスト数を低減させることができる。したがって、メモリ使用量の増大を抑制することができる。
 また、方法1-1乃至方法1-3のいずれの場合も、符号化に必要なコンテキスト符号化ビン数を、方法0の場合よりも低減させることができる。なお、方法1-4の場合、符号化に必要なコンテキスト符号化ビン数は、方法0の場合と同等である。つまり、方法1を適用することにより、選択率が比較的低い変換タイプに対応するビンに対してバイパス符号化を適用することができる。したがって、符号化効率の低下を抑制しながら、コンテキスト符号化ビンの数の増大を抑制し、処理量(スループット)の増大を抑制することができる。
 以上のように、方法1を適用することにより、符号化処理の負荷の増大を抑制することができる。
  <2-2.適応直交変換識別子の復号>
 復号の場合も同様に、図1のBに示される表のように行われていた、画像復号における逆適応直交変換のモードを示す、2値化された適応直交変換識別子のビン列の各ビンへのコンテキスト変数の割り当て(方法0)を、以下のように行う。
 つまり、そのビン列の1ビン目に対して、予め定められた所定のコンテキスト変数(固定の(1対1対応の)コンテキスト変数)ctxを割り当て、コンテキスト復号する(方法1)。
 例えば、図3のAに示される表のように、2値化された適応直交変換識別子のビン列の1ビン目に対して、予め定められた所定のコンテキスト変数(コンテキスト変数ctxを識別するためのインデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の2ビン目乃至4ビン目に対してバイパス復号を行ってもよい(方法1-1)。
 図3のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はインデックスctxInc = A0が割り当てられてコンテキスト復号され、2ビン目乃至4ビン目(binIdx = 1...3)は、それぞれ、バイパス復号(bypass)される。
 また、例えば、図3のBに示される表のように、2値化された適応直交変換識別子のビン列の1ビン目および2ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の3ビン目および4ビン目に対してバイパス復号を行ってもよい(方法1-2)。
 図3のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はインデックスctxInc = A0が割り当てられてコンテキスト復号され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト復号され、3ビン目および4ビン目(binIdx = 2...3)は、それぞれ、バイパス復号(bypass)される。
 さらに、例えば、図4のAに示される表のように、2値化された適応直交変換識別子のビン列の1ビン目乃至3ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の4ビン目に対してバイパス復号を行ってもよい(方法1-3)。
 図4のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はインデックスctxInc = A0が割り当てられてコンテキスト復号され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト復号され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト復号され、4ビン目(binIdx = 3)はバイパス復号(bypass)される。
 さらに、例えば、図4のBに示される表のように、2値化された適応直交変換識別子のビン列の1ビン目乃至4ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト復号してもよい(方法1-4)。
 図4のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はインデックスctxInc = A0が割り当てられてコンテキスト復号され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト復号され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト復号され、4ビン目(binIdx = 3)はインデックスctxInc = B3が割り当てられてコンテキスト復号される。
 なお、復号の場合も符号化の場合と同様に、図3および図4の各表において、インデックスA0, B1, B2, B3には、重複しないユニークな値が設定される。
 これらの各方法のコンテキスト数、コンテキスト符号化ビン数、およびバイパス符号化ビン数は、符号化の場合(図5)と同様である。
 このように、方法1-1乃至方法1-4のいずれの場合も、復号に必要なコンテキスト数を、方法0の場合よりも低減させることができる。つまり、方法1を適用することにより、1ビン目(binIdx = 0)に割り当てていたコンテキスト数を低減させることができる。したがって、メモリ使用量の増大を抑制することができる。
 また、方法1-1乃至方法1-3のいずれの場合も、復号に必要なコンテキスト符号化ビン数を、方法0の場合よりも低減させることができる。なお、方法1-4の場合、復号に必要なコンテキスト符号化ビン数は、方法0の場合と同等である。つまり、方法1を適用することにより、選択率が比較的低い変換タイプに対応するビンに対してバイパス復号を適用することができる。したがって、符号化効率の低下を抑制しながら、コンテキスト符号化ビンの数の増大を抑制し、処理量(スループット)の増大を抑制することができる。
 以上のように、方法1を適用することにより、復号処理の負荷の増大を抑制することができる。
  <2-3.符号化側>
   <画像符号化装置>
 次に、符号化側について説明する。図6は、本技術を適用した画像処理装置の一態様である画像符号化装置の構成の一例を示すブロック図である。図6に示される画像符号化装置100は、動画像の画像データを符号化する装置である。例えば、画像符号化装置100は、非特許文献1乃至非特許文献10のいずれかに記載の符号化方式で動画像の画像データを符号化する。
 なお、図6においては、処理部(ブロック)やデータの流れ等の主なものを示しており、図6に示されるものが全てとは限らない。つまり、画像符号化装置100において、図6においてブロックとして示されていない処理部が存在したり、図6において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
 図6に示されるように画像符号化装置100は、制御部101、並べ替えバッファ111、演算部112、直交変換部113、量子化部114、符号化部115、蓄積バッファ116、逆量子化部117、逆直交変換部118、演算部119、インループフィルタ部120、フレームメモリ121、予測部122、およびレート制御部123を有する。
    <制御部>
 制御部101は、外部、または予め指定された処理単位のブロックサイズに基づいて、並べ替えバッファ111により保持されている動画像データを処理単位のブロック(CU, PU, 変換ブロックなど)へ分割する。また、制御部101は、各ブロックへ供給する符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfo等)を、例えば、RDO(Rate-Distortion Optimization)に基づいて、決定する。
 これらの符号化パラメータの詳細については後述する。制御部101は、以上のような符号化パラメータを決定すると、それを各ブロックへ供給する。具体的には、以下の通りである。
 ヘッダ情報Hinfoは、各ブロックに供給される。
 予測モード情報Pinfoは、符号化部115と予測部122とに供給される。
 変換情報Tinfoは、符号化部115、直交変換部113、量子化部114、逆量子化部117、および逆直交変換部118に供給される。
 フィルタ情報Finfoは、インループフィルタ部120に供給される。
    <並べ替えバッファ>
 画像符号化装置100には、動画像データの各フィールド(入力画像)がその再生順(表示順)に入力される。並べ替えバッファ111は、各入力画像をその再生順(表示順)に取得し、保持(記憶)する。並べ替えバッファ111は、制御部101の制御に基づいて、その入力画像を符号化順(復号順)に並べ替えたり、処理単位のブロックに分割したりする。並べ替えバッファ111は、処理後の各入力画像を演算部112に供給する。また、並べ替えバッファ111は、その各入力画像(元画像)を、予測部122やインループフィルタ部120にも供給する。
    <演算部>
 演算部112は、処理単位のブロックに対応する画像I、および予測部122より供給される予測画像Pを入力とし、画像Iから予測画像Pを以下の式に示されるように減算して、予測残差Dを導出し、それを直交変換部113に供給する。
 D = I - P
    <直交変換部>
 直交変換部113は、演算部112から供給される予測残差Dと、制御部101から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、予測残差Dに対して直交変換を行い、変換係数Coeffを導出する。なお、直交変換部113は、直交変換のタイプ(変換係数)を適応的に選択する適応直交変換を行うことができる。直交変換部113は、その得られた変換係数Coeffを量子化部114に供給する。
    <量子化部>
 量子化部114は、直交変換部113から供給される変換係数Coeffと、制御部101から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数Coeffをスケーリング(量子化)する。なお、この量子化のレートは、レート制御部123により制御される。量子化部114は、このような量子化により得られた量子化後の変換係数、すなわち量子化変換係数レベルlevelを、符号化部115および逆量子化部117に供給する。
    <符号化部>
 符号化部115は、量子化部114から供給された量子化変換係数レベルlevelと、制御部101から供給される各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)と、インループフィルタ部120から供給されるフィルタ係数等のフィルタに関する情報と、予測部122から供給される最適な予測モードに関する情報とを入力とする。符号化部115は、量子化変換係数レベルlevelを可変長符号化(例えば、算術符号化)し、ビット列(符号化データ)を生成する。
 また、符号化部115は、その量子化変換係数レベルlevelから残差情報Rinfoを導出し、残差情報Rinfoを符号化し、ビット列を生成する。
 さらに、符号化部115は、インループフィルタ部120から供給されるフィルタに関する情報をフィルタ情報Finfoに含め、予測部122から供給される最適な予測モードに関する情報を予測モード情報Pinfoに含める。そして、符号化部115は、上述した各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)を符号化し、ビット列を生成する。
 また、符号化部115は、以上のように生成された各種情報のビット列を多重化し、符号化データを生成する。符号化部115は、その符号化データを蓄積バッファ116に供給する。
    <蓄積バッファ>
 蓄積バッファ116は、符号化部115において得られた符号化データを、一時的に保持する。蓄積バッファ116は、所定のタイミングにおいて、保持している符号化データを、例えばビットストリーム等として画像符号化装置100の外部に出力する。例えば、この符号化データは、任意の記録媒体、任意の伝送媒体、任意の情報処理装置等を介して復号側に伝送される。すなわち、蓄積バッファ116は、符号化データ(ビットストリーム)を伝送する伝送部でもある。
    <逆量子化部>
 逆量子化部117は、逆量子化に関する処理を行う。例えば、逆量子化部117は、量子化部114から供給される量子化変換係数レベルlevelと、制御部101から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、量子化変換係数レベルlevelの値をスケーリング(逆量子化)する。なお、この逆量子化は、量子化部114において行われる量子化の逆処理である。
 逆量子化部117は、このような逆量子化により得られた変換係数Coeff_IQを、逆直交変換部118に供給する。なお、逆直交変換部118は、復号側の逆直交変換部(後述する)と同様であるので、逆量子化部117については、復号側について行う説明(後述する)を適用することができる。
   <逆直交変換部>
 逆直交変換部118は、逆直交変換に関する処理を行う。例えば、逆直交変換部118は、逆量子化部117から供給される変換係数Coeff_IQと、制御部101から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆直交変換を行い、予測残差D'を導出する。なお、この逆直交変換は、直交変換部113において行われる直交変換の逆処理である。つまり、逆直交変換部118は、逆直交変換のタイプ(変換係数)を適応的に選択する適応逆直交変換を行うことができる。
 逆直交変換部118は、このような逆直交変換により得られた予測残差D'を演算部119に供給する。なお、逆直交変換部118は、復号側の逆直交変換部(後述する)と同様であるので、逆直交変換部118については、復号側について行う説明(後述する)を適用することができる。
    <演算部>
 演算部119は、逆直交変換部118から供給される予測残差D'と、予測部122から供給される予測画像Pとを入力とする。演算部119は、その予測残差D'と、その予測残差D'に対応する予測画像Pとを加算し、局所復号画像Rlocalを導出する。演算部119は、導出した局所復号画像Rlocalをインループフィルタ部120およびフレームメモリ121に供給する。
    <インループフィルタ部>
 インループフィルタ部120は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部120は、演算部119から供給される局所復号画像Rlocalと、制御部101から供給されるフィルタ情報Finfoと、並べ替えバッファ111から供給される入力画像(元画像)とを入力とする。なお、インループフィルタ部120に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。例えば、必要に応じて、予測モード、動き情報、符号量目標値、量子化パラメータQP、ピクチャタイプ、ブロック(CU、CTU等)の情報等がインループフィルタ部120に入力されるようにしてもよい。
 インループフィルタ部120は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。インループフィルタ部120は、必要に応じて入力画像(元画像)や、その他の入力情報もそのフィルタ処理に用いる。
 例えば、インループフィルタ部120は、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
 もちろん、インループフィルタ部120が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部120がウィーナーフィルタ等を適用するようにしてもよい。
 インループフィルタ部120は、フィルタ処理された局所復号画像Rlocalをフレームメモリ121に供給する。なお、例えばフィルタ係数等のフィルタに関する情報を復号側に伝送する場合、インループフィルタ部120は、そのフィルタに関する情報を符号化部115に供給する。
    <フレームメモリ>
 フレームメモリ121は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ121は、演算部119から供給される局所復号画像Rlocalや、インループフィルタ部120から供給されるフィルタ処理された局所復号画像Rlocalを入力とし、それを保持(記憶)する。また、フレームメモリ121は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(フレームメモリ121内のバッファへ格納する)。フレームメモリ121は、予測部122の要求に応じて、その復号画像R(またはその一部)を予測部122に供給する。
    <予測部>
 予測部122は、予測画像の生成に関する処理を行う。例えば、予測部122は、制御部101から供給される予測モード情報Pinfoと、並べ替えバッファ111から供給される入力画像(元画像)と、フレームメモリ121から読み出す復号画像R(またはその一部)を入力とする。予測部122は、予測モード情報Pinfoや入力画像(元画像)を用い、インター予測やイントラ予測等の予測処理を行い、復号画像Rを参照画像として参照して予測を行い、その予測結果に基づいて動き補償処理を行い、予測画像Pを生成する。予測部122は、生成した予測画像Pを演算部112および演算部119に供給する。また、予測部122は、以上の処理により選択した予測モード、すなわち最適な予測モードに関する情報を、必要に応じて符号化部115に供給する。
    <レート制御部>
 レート制御部123は、レート制御に関する処理を行う。例えば、レート制御部123は、蓄積バッファ116に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部114の量子化動作のレートを制御する。
 なお、これらの処理部(制御部101、並べ替えバッファ111乃至レート制御部123)は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
   <符号化部>
 図7は、図6の符号化部115の主な構成例を示すブロック図である。図7に示されるように、符号化部115は、2値化部131、選択部132、コンテキスト設定部133、コンテキスト符号化部134、およびバイパス符号化部135を有する。
 なお、ここでは、適応直交変換識別子の符号化について説明するが、符号化部115は、上述のように、他の符号化パラメータや残差情報Rinfo等の符号化も行う。符号化部115は、<2-1.適応直交変換識別子の符号化>において説明した方法1を適用して適応直交変換識別子の符号化を行う。
 2値化部131は、適応直交変換識別子の2値化に関する処理を行う。例えば、2値化部131は、制御部101より供給される適応直交変換識別子mts_idxを取得する。また、2値化部131は、その適応直交変換識別子をトランケート・ユーナリ符号(またはトランケート・ライス符号)により2値化し、そのビン列を生成する。さらに、2値化部131は、生成したビン列を選択部132に供給する。
 選択部132は、適応直交変換識別子のビン列の各ビンの供給先の選択に関する処理を行う。例えば、選択部132は、2値化部131から供給される適応直交変換識別子のビン列を取得する。
 また、選択部132は、取得した適応直交変換識別子のビン列の各ビンについて、その供給先をコンテキスト設定部133にするか、バイパス符号化部135にするかを選択する。選択部132は、<2-1.適応直交変換識別子の符号化>において上述した方法1に従って、その選択を行う。例えば、選択部132は、方法1-1(つまり図3のAに示される表)に従って、その選択を行ってもよい。また、選択部132は、方法1-2(つまり図3のBに示される表)に従って、その選択を行ってもよい。さらに、選択部132は、方法1-3(つまり図4のAに示される表)に従って、その選択を行ってもよい。また、選択部132は、方法1-4(つまり図4のBに示される表)に従って、その選択を行ってもよい。
 コンテキスト変数(インデックスctxInc)を割り当ててコンテキスト符号化する場合、選択部132は、そのビンをコンテキスト設定部133に供給する。バイパス符号化する場合、選択部132は、そのビンをバイパス符号化部135に供給する。
 コンテキスト設定部133は、コンテキストの設定に関する処理を行う。例えば、コンテキスト設定部133は、選択部132から供給されるビンを取得する。コンテキスト設定部133は、そのビンに対してコンテキスト変数(インデックスctxInc)を割り当てる。コンテキスト設定部133は、<2-1.適応直交変換識別子の符号化>において上述した方法1に従って、その割り当てを行う。例えば、コンテキスト設定部133は、方法1-1(つまり図3のAに示される表)に従って、その割り当てを行ってもよい。また、コンテキスト設定部133は、方法1-2(つまり図3のBに示される表)に従って、その割り当てを行ってもよい。さらに、コンテキスト設定部133は、方法1-3(つまり図4のAに示される表)に従って、その割り当てを行ってもよい。また、コンテキスト設定部133は、方法1-4(つまり図4のBに示される表)に従って、その割り当てを行ってもよい。
 また、コンテキスト設定部133は、コンテキスト符号化部134から符号化結果を取得することができる。コンテキスト設定部133は、その符号化結果を用いてコンテキスト変数(インデックスctxInc)を適宜更新することができる。コンテキスト設定部133は、このように導出したコンテキスト変数(インデックスctxInc)をコンテキスト符号化部134に供給する。
 コンテキスト符号化部134は、算術符号化に関する処理を行う。例えば、コンテキスト符号化部134は、コンテキスト設定部133から供給されるコンテキスト変数(インデックスctxInc)を取得する。また、コンテキスト符号化部134は、そのコンテキスト変数(インデックスctxInc)を用いて算術符号化を行う。つまり、コンテキスト符号化を行う。さらに、コンテキスト符号化部134は、その符号化結果を符号化データとして蓄積バッファ116に供給する。
 バイパス符号化部135は、バイパス符号化に関する処理を行う。例えば、バイパス符号化部135は、選択部132から供給されるビンを取得する。バイパス符号化部135は、そのビンをバイパス符号化(算術符号化)する。バイパス符号化部135は、その符号化結果を符号化データとして蓄積バッファ116に供給する。
 以上のように各処理部(2値化部131乃至バイパス符号化部135)が処理を行うことにより、符号化部115は、方法1(例えば方法1-1乃至方法1-4のいずれか)を適用して適応直交変換識別子を符号化することができる。したがって、メモリ使用量の増大を抑制することができる。また、処理量(スループット)の増大を抑制することができる。つまり、符号化処理の負荷の増大を抑制することができる。
   <画像符号化処理の流れ>
 次に、以上のような構成の画像符号化装置100により実行される画像符号化処理の流れの例を、図8のフローチャートを参照して説明する。
 画像符号化処理が開始されると、ステップS101において、並べ替えバッファ111は、制御部101に制御されて、入力された動画像データのフレームの順を表示順から符号化順に並べ替える。
 ステップS102において、制御部101は、並べ替えバッファ111が保持する入力画像に対して、処理単位を設定する(ブロック分割を行う)。
 ステップS103において、制御部101は、並べ替えバッファ111が保持する入力画像についての符号化パラメータを決定(設定)する。
 ステップS104において、予測部122は、予測処理を行い、最適な予測モードの予測画像等を生成する。例えば、この予測処理において、予測部122は、イントラ予測を行って最適なイントラ予測モードの予測画像等を生成し、インター予測を行って最適なインター予測モードの予測画像等を生成し、それらの中から、コスト関数値等に基づいて最適な予測モードを選択する。
 ステップS105において、演算部112は、入力画像と、ステップS104の予測処理により選択された最適なモードの予測画像との差分を演算する。つまり、演算部112は、入力画像と予測画像との予測残差Dを生成する。このようにして求められた予測残差Dは、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
 ステップS106において、直交変換部113は、ステップS105の処理により生成された予測残差Dに対する直交変換処理を行い、変換係数Coeffを導出する。
 ステップS107において、量子化部114は、制御部101により算出された量子化パラメータを用いる等して、ステップS106の処理により得られた変換係数Coeffを量子化し、量子化変換係数レベルlevelを導出する。
 ステップS108において、逆量子化部117は、ステップS107の処理により生成された量子化変換係数レベルlevelを、そのステップS107の量子化の特性に対応する特性で逆量子化し、変換係数Coeff_IQを導出する。
 ステップS109において、逆直交変換部118は、ステップS108の処理により得られた変換係数Coeff_IQを、ステップS106の直交変換処理に対応する方法で逆直交変換し、予測残差D'を導出する。なお、この逆直交変換処理は、復号側において行われる逆直交変換処理(後述する)と同様であるので、このステップS109の逆直交変換処理については、復号側について行う説明(後述する)を適用することができる。
 ステップS110において、演算部119は、ステップS109の処理により導出された予測残差D'に、ステップS104の予測処理により得られた予測画像を加算することにより、局所的に復号された復号画像を生成する。
 ステップS111において、インループフィルタ部120は、ステップS110の処理により導出された、局所的に復号された復号画像に対して、インループフィルタ処理を行う。
 ステップS112において、フレームメモリ121は、ステップS110の処理により導出された、局所的に復号された復号画像や、ステップS111においてフィルタ処理された、局所的に復号された復号画像を記憶する。
 ステップS113において、符号化部115は、ステップS107の処理により得られた量子化変換係数レベルlevelを符号化する。例えば、符号化部115は、画像に関する情報である量子化変換係数レベルlevelを、算術符号化等により符号化し、符号化データを生成する。また、このとき、符号化部115は、各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo)を符号化する。さらに、符号化部115は、量子化変換係数レベルlevelから残差情報RInfoを導出し、その残差情報RInfoを符号化する。
 ステップS114において、蓄積バッファ116は、このようにして得られた符号化データを蓄積し、例えばビットストリームとして、それを画像符号化装置100の外部に出力する。このビットストリームは、例えば、伝送路や記録媒体を介して復号側に伝送される。また、レート制御部123は、必要に応じてレート制御を行う。
 ステップS114の処理が終了すると、画像符号化処理が終了する。
   <符号化処理の流れ>
 図8のステップS113の符号化処理において、符号化部115は、適応直交変換識別子mts_idxの符号化を行う。その際、符号化部115は、<2-1.適応直交変換識別子の符号化>において説明した方法1を適用して適応直交変換識別子の符号化を行う。その適応直交変換識別子mts_idxの符号化の流れの例を、図9のフローチャートを参照して説明する。
 符号化処理が開始されると、符号化部115の2値化部131は、ステップS131において、適応直交変換識別子mts_idxをトランケート・ユーナリ符号(またはトランケート・ライス符号)により2値化し、そのビン列を生成する。
 ステップS132において、選択部132は、そのビン列の1ビン目(binIdx = 0)を処理対象とする。この場合、選択部132は、そのビンの供給先としてコンテキスト設定部133を選択する(つまり、コンテキスト符号化を選択する)。例えば、選択部132は、図3および図4に示される表のいずれかに従って(つまり、方法1-1乃至方法1-4のいずれかを適用し)、このビンの符号化方法としてコンテキスト符号化を選択する。
 ステップS133において、コンテキスト設定部133は、そのビンに対して、予め定められた所定のコンテキスト変数ctx(インデックスctxInc)を割り当てる。そして、コンテキスト符号化部134は、そのコンテキスト変数を用いて算術符号化を行う。つまり、コンテキスト符号化を行う。
 ステップS134において、選択部132は、そのビン列の2番目以降のビンの内、未処理のビンを処理対象とする。ステップS135において、選択部132は、その処理対象のビンをバイパス符号化するか否かを判定する。例えば、選択部132は、図3および図4に示される表のいずれかに従って(つまり、方法1-1乃至方法1-4のいずれかを適用し)、処理対象のビンをバイパス符号化するか否かを判定する。
 バイパス符号化すると判定された場合、処理はステップS136に進む。つまり、この場合、選択部132は、ビンの供給先としてバイパス符号化部135を選択する。ステップS136において、バイパス符号化部135は、その処理対象のビンをバイパス符号化(算術符号化)する。ステップS136の処理が終了すると、処理はステップS138に進む。
 また、ステップS135において、バイパス符号化を行わない(コンテキスト符号化を行う)と判定された場合、処理はステップS137に進む。つまり、この場合、選択部132は、ビンの供給先としてコンテキスト設定部133を選択する。ステップS137において、コンテキスト設定部133は、そのビンに対して、予め定められた所定のコンテキスト変数ctx(インデックスctxInc)を割り当てる。そして、コンテキスト符号化部134は、そのコンテキスト変数を用いて算術符号化を行う。つまり、コンテキスト符号化を行う。ステップS137の処理が終了すると、処理はステップS138に進む。
 ステップS138において、符号化部115は、適応直交変換識別子mts_idxの符号化を終了するか否かを判定する。終了しないと判定された場合、処理はステップS134に戻り、それ以降の処理が繰り返される。また、ステップS138において、終了すると判定された場合、符号化処理が終了する。
 このように各処理を実行することにより、符号化部115は、方法1(例えば方法1-1乃至方法1-4のいずれか)を適用して適応直交変換識別子を符号化することができる。したがって、メモリ使用量の増大を抑制することができる。また、処理量(スループット)の増大を抑制することができる。つまり、符号化処理の負荷の増大を抑制することができる。
  <2-4.復号側>
   <画像復号装置>
 次に、復号側について説明する。図10は、本技術を適用した画像処理装置の一態様である画像復号装置の構成の一例を示すブロック図である。図10に示される画像復号装置200は、動画像の符号化データを符号化する装置である。例えば、画像復号装置200は、非特許文献1乃至非特許文献10のいずれかに記載の復号方式で符号化データを復号し、動画像データを生成する。例えば、画像復号装置200は、上述の画像符号化装置100により生成された符号化データ(ビットストリーム)を復号し、動画像データを生成する。
 なお、図10においては、処理部やデータの流れ等の主なものを示しており、図10に示されるものが全てとは限らない。つまり、画像復号装置200において、図10においてブロックとして示されていない処理部が存在したり、図10において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
 図10において、画像復号装置200は、蓄積バッファ211、復号部212、逆量子化部213、逆直交変換部214、演算部215、インループフィルタ部216、並べ替えバッファ217、フレームメモリ218、および予測部219を有する。なお、予測部219は、不図示のイントラ予測部、およびインター予測部を有する。
    <蓄積バッファ>
 蓄積バッファ211は、画像復号装置200に入力されたビットストリームを取得し、保持(記憶)する。蓄積バッファ211は、所定のタイミングにおいて、または、所定の条件が整う等した場合、蓄積しているビットストリームを復号部212に供給する。
    <復号部>
 復号部212は、画像の復号に関する処理を行う。例えば、復号部212は、蓄積バッファ211から供給されるビットストリームを入力とし、シンタックステーブルの定義に沿って、そのビット列から、各シンタックス要素のシンタックス値を可変長復号し、パラメータを導出する。
 シンタックス要素およびシンタックス要素のシンタックス値から導出されるパラメータには、例えば、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、残差情報Rinfo、フィルタ情報Finfoなどの情報が含まれる。つまり、復号部212は、ビットストリームから、これらの情報をパースする(解析して取得する)。これらの情報について以下に説明する。
     <ヘッダ情報Hinfo>
 ヘッダ情報Hinfoは、例えば、VPS(Video Parameter Set)/SPS(Sequence Parameter Set)/PPS(Picture Parameter Set)/SH(スライスヘッダ)などのヘッダ情報を含む。ヘッダ情報Hinfoには、例えば、画像サイズ(横幅PicWidth、縦幅PicHeight)、ビット深度(輝度bitDepthY, 色差bitDepthC)、色差アレイタイプChromaArrayType、CUサイズの最大値MaxCUSize/最小値MinCUSize、4分木分割(Quad-tree分割ともいう)の最大深度MaxQTDepth/最小深度MinQTDepth、2分木分割(Binary-tree分割)の最大深度MaxBTDepth/最小深度MinBTDepth、変換スキップブロックの最大値MaxTSSize(最大変換スキップブロックサイズともいう)、各符号化ツールのオンオフフラグ(有効フラグともいう)などを規定する情報が含まれる。
 例えば、ヘッダ情報Hinfoに含まれる符号化ツールのオンオフフラグとしては、以下に示す変換、量子化処理に関わるオンオフフラグがある。なお、符号化ツールのオンオフフラグは、該符号化ツールに関わるシンタックスが符号化データ中に存在するか否かを示すフラグとも解釈することができる。また、オンオフフラグの値が1(真)の場合、該符号化ツールが使用可能であることを示し、オンオフフラグの値が0(偽)の場合、該符号化ツールが使用不可であることを示す。なお、フラグ値の解釈は逆であってもよい。
 コンポーネント間予測有効フラグ(ccp_enabled_flag):コンポーネント間予測(CCP(Cross-Component Prediction),CC予測とも称する)が使用可能であるか否かを示すフラグ情報である。例えば、このフラグ情報が「1」(真)の場合、使用可能であることが示され、「0」(偽)の場合、使用不可であることが示される。
 なお、このCCPは、コンポーネント間線形予測(CCLMまたはCCLMP)とも称する。
     <予測モード情報Pinfo>
 予測モード情報Pinfoには、例えば、処理対象PB(予測ブロック)のサイズ情報PBSize(予測ブロックサイズ)、イントラ予測モード情報IPinfo、動き予測情報MVinfo等の情報が含まれる。
 イントラ予測モード情報IPinfoには、例えば、JCTVC-W1005, 7.3.8.5 Coding Unit syntax中のprev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode、およびそのシンタックスから導出される輝度イントラ予測モードIntraPredModeY等が含まれる。
 また、イントラ予測モード情報IPinfoには、例えば、コンポーネント間予測フラグ(ccp_flag(cclmp_flag))、多クラス線形予測モードフラグ(mclm_flag)、色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)、色差MPM識別子(chroma_mpm_idx)、および、これらのシンタックスから導出される輝度イントラ予測モード(IntraPredModeC)等が含まれる。
 コンポーネント間予測フラグ(ccp_flag(cclmp_flag))は、コンポーネント間線形予測を適用するか否かを示すフラグ情報である。例えば、ccp_flag==1のとき、コンポーネント間予測を適用することを示し、ccp_flag==0のとき、コンポーネント間予測を適用しないことを示す。
 多クラス線形予測モードフラグ(mclm_flag)は、線形予測のモードに関する情報(線形予測モード情報)である。より具体的には、多クラス線形予測モードフラグ(mclm_flag)は、多クラス線形予測モードにするか否かを示すフラグ情報である。例えば、「0」の場合、1クラスモード(単一クラスモード)(例えばCCLMP)であることを示し、「1」の場合、2クラスモード(多クラスモード)(例えばMCLMP)であることを示す。
 色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)は、色差コンポーネントの画素位置のタイプ(色差サンプル位置タイプとも称する)を識別する識別子である。例えば色フォーマットに関する情報である色差アレイタイプ(ChromaArrayType)が420形式を示す場合、色差サンプル位置タイプ識別子は、以下の式のような割り当て方となる。
chroma_sample_loc_type_idx == 0:Type2
chroma_sample_loc_type_idx == 1:Type3
chroma_sample_loc_type_idx == 2:Type0
chroma_sample_loc_type_idx == 3:Type1
 なお、この色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)は、色差コンポーネントの画素位置に関する情報(chroma_sample_loc_info())として(に格納されて)伝送される。
 色差MPM識別子(chroma_mpm_idx)は、色差イントラ予測モード候補リスト(intraPredModeCandListC)の中のどの予測モード候補を色差イントラ予測モードとして指定するかを表す識別子である。
 動き予測情報MVinfoには、例えば、merge_idx, merge_flag, inter_pred_idc, ref_idx_LX, mvp_lX_flag, X={0,1}, mvd等の情報が含まれる(例えば、JCTVC-W1005, 7.3.8.6 Prediction Unit Syntaxを参照)。
 もちろん、予測モード情報Pinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
     <変換情報Tinfo>
 変換情報Tinfoには、例えば、以下の情報が含まれる。もちろん、変換情報Tinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
  処理対象変換ブロックの横幅サイズTBWSizeおよび縦幅TBHSize(または、2を底とする各TBWSize、TBHSizeの対数値log2TBWSize、log2TBHSizeであってもよい)。
  変換スキップフラグ(transform_skip_flag):(逆)プライマリ変換および(逆)セカンダリ変換をスキップか否かを示すフラグである。
  スキャン識別子(scanIdx)
  セカンダリ変換識別子(st_idx)
  適応直交変換識別子(mts_idx)
  量子化パラメータ(qp)
  量子化マトリックス(scaling_matrix(例えば、JCTVC-W1005, 7.3.4 Scaling list data syntax))
     <残差情報Rinfo>
 残差情報Rinfo(例えば、JCTVC-W1005の7.3.8.11 Residual Coding syntaxを参照)には、例えば以下のシンタックスが含まれる。
  cbf(coded_block_flag):残差データ有無フラグ
  last_sig_coeff_x_pos:ラスト非ゼロ変換係数X座標
  last_sig_coeff_y_pos:ラスト非ゼロ変換係数Y座標
  coded_sub_block_flag:サブブロック非ゼロ変換係数有無フラグ
  sig_coeff_flag:非ゼロ変換係数有無フラグ
  gr1_flag:非ゼロ変換係数のレベルが1より大きいかを示すフラグ(GR1フラグとも呼ぶ)
  gr2_flag:非ゼロ変換係数のレベルが2より大きいかを示すフラグ(GR2フラグとも呼ぶ)
  sign_flag:非ゼロ変換係数の正負を示す符号(サイン符号とも呼ぶ)
  coeff_abs_level_remaining:非ゼロ変換係数の残余レベル(非ゼロ変換係数残余レベルとも呼ぶ)
など。
 もちろん、残差情報Rinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
     <フィルタ情報Finfo>
 フィルタ情報Finfoには、例えば、以下に示す各フィルタ処理に関する制御情報が含まれる。
  デブロッキングフィルタ(DBF)に関する制御情報
  画素適応オフセット(SAO)に関する制御情報
  適応ループフィルタ(ALF)に関する制御情報
  その他の線形・非線形フィルタに関する制御情報
 より具体的には、例えば、各フィルタを適用するピクチャや、ピクチャ内の領域を指定する情報や、CU単位のフィルタOn/Off制御情報、スライス、タイルの境界に関するフィルタOn/Off制御情報などが含まれる。もちろん、フィルタ情報Finfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
 復号部212の説明に戻る。復号部212は、残差情報Rinfoを参照して、各変換ブロック内の各係数位置の量子化変換係数レベルlevelを導出する。復号部212は、その量子化変換係数レベルlevelを、逆量子化部213に供給する。
 また、復号部212は、パースしたヘッダ情報Hinfo、予測モード情報Pinfo、量子化変換係数レベルlevel、変換情報Tinfo、フィルタ情報Finfoを各ブロックへ供給する。具体的には以下の通りである。
  ヘッダ情報Hinfoは、逆量子化部213、逆直交変換部214、予測部219、インループフィルタ部216に供給される。
  予測モード情報Pinfoは、逆量子化部213および予測部219に供給される。
  変換情報Tinfoは、逆量子化部213および逆直交変換部214に供給される。
  フィルタ情報Finfoは、インループフィルタ部216に供給される。
 もちろん、上述の例は一例であり、この例に限定されない。例えば、各符号化パラメータが任意の処理部に供給されるようにしてもよい。また、その他の情報が、任意の処理部に供給されるようにしてもよい。
    <逆量子化部>
 逆量子化部213は、少なくとも、逆量子化に関する処理を行うために必要な構成を有する。例えば、逆量子化部213は、復号部212から供給される変換情報Tinfoおよび量子化変換係数レベルlevelを入力とし、その変換情報Tinfoに基づいて、量子化変換係数レベルlevelの値をスケーリング(逆量子化)し、逆量子化後の変換係数Coeff_IQを導出する。
 なお、この逆量子化は、画像符号化装置100の量子化部114による量子化の逆処理として行われる。また、この逆量子化は、画像符号化装置100の逆量子化部117による逆量子化と同様の処理である。つまり、画像符号化装置100の逆量子化部117は、逆量子化部213と同様の処理(逆量子化)を行う。
 逆量子化部213は、導出した変換係数Coeff_IQを逆直交変換部214に供給する。
    <逆直交変換部>
 逆直交変換部214は、逆直交変換に関する処理を行う。例えば、逆直交変換部214は、逆量子化部213から供給される変換係数Coeff_IQ、および、復号部212から供給される変換情報Tinfoを入力とし、その変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆直交変換処理を行い、予測残差D'を導出する。
 なお、この逆直交変換は、画像符号化装置100の直交変換部113による直交変換の逆処理として行われる。また、この逆直交変換は、画像符号化装置100の逆直交変換部118による逆直交変換と同様の処理である。つまり、画像符号化装置100の逆直交変換部118は、逆直交変換部214と同様の処理(逆直交変換)を行う。
 逆直交変換部214は、導出した予測残差D'を演算部215に供給する。
    <演算部>
 演算部215は、画像に関する情報の加算に関する処理を行う。例えば、演算部215は、逆直交変換部214から供給される予測残差D'と、予測部219から供給される予測画像Pとを入力とする。演算部215は、以下の式に示されるように、予測残差D'とその予測残差D'に対応する予測画像P(予測信号)とを加算し、局所復号画像Rlocalを導出する。
Rlocal = D' + P
 演算部215は、導出した局所復号画像Rlocalを、インループフィルタ部216およびフレームメモリ218に供給する。
    <インループフィルタ部>
 インループフィルタ部216は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部216は、演算部215から供給される局所復号画像Rlocalと、復号部212から供給されるフィルタ情報Finfoとを入力とする。なお、インループフィルタ部216に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。
 インループフィルタ部216は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。
 例えば、インループフィルタ部216は、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
 インループフィルタ部216は、符号化側(例えば画像符号化装置100のインループフィルタ部120)により行われたフィルタ処理に対応するフィルタ処理を行う。もちろん、インループフィルタ部216が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部216がウィーナーフィルタ等を適用するようにしてもよい。
 インループフィルタ部216は、フィルタ処理された局所復号画像Rlocalを並べ替えバッファ217およびフレームメモリ218に供給する。
    <並べ替えバッファ>
 並べ替えバッファ217は、インループフィルタ部216から供給された局所復号画像Rlocalを入力とし、それを保持(記憶)する。並べ替えバッファ217は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(バッファ内に格納する)。並べ替えバッファ217は、得られた復号画像Rを、復号順から再生順に並べ替える。並べ替えバッファ217は、並べ替えた復号画像R群を動画像データとして画像復号装置200の外部に出力する。
    <フレームメモリ>
 フレームメモリ218は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ218は、演算部215より供給される局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ218内のバッファへ格納する。
 また、フレームメモリ218は、インループフィルタ部216から供給される、インループフィルタ処理された局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ218内のバッファへ格納する。フレームメモリ218は、適宜、その記憶している復号画像R(またはその一部)を参照画像として予測部219に供給する。
 なお、フレームメモリ218が、復号画像の生成に係るヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなどを記憶するようにしても良い。
    <予測部>
 予測部219は、予測画像の生成に関する処理を行う。例えば、予測部219は、復号部212から供給される予測モード情報Pinfoを入力とし、その予測モード情報Pinfoによって指定される予測方法により予測を行い、予測画像Pを導出する。その導出の際、予測部219は、その予測モード情報Pinfoによって指定される、フレームメモリ218に格納されたフィルタ前またはフィルタ後の復号画像R(またはその一部)を、参照画像として利用する。予測部219は、導出した予測画像Pを、演算部215に供給する。
 なお、これらの処理部(蓄積バッファ211乃至予測部219)は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
   <復号部>
 図11は、図10の復号部212の主な構成例を示すブロック図である。図11に示されるように、復号部212は、選択部231、コンテキスト設定部232、コンテキスト復号部233、バイパス復号部234、および逆2値化部235を有する。
 なお、ここでは、適応直交変換識別子の符号化データの復号について説明するが、復号部212は、上述のように、他の符号化パラメータや残差情報Rinfo等の符号化データの復号も行う。復号部212は、<2-2.適応直交変換識別子の復号>において説明した方法1を適用して適応直交変換識別子の符号化データの復号を行う。
 選択部231は、2値化された適応直交変換識別子のビン列の各ビンの符号化データの供給先の選択に関する処理を行う。例えば、選択部231は、蓄積バッファ211から供給される適応直交変換識別子のビン列の符号化データを取得する。
 また、選択部231は、取得した適応直交変換識別子のビン列の各ビンの符号化データについて、その供給先をコンテキスト設定部232にするか、バイパス復号部234にするかを選択する。選択部231は、<2-2.適応直交変換識別子の復号>において上述した方法1に従って、その選択を行う。例えば、選択部231は、方法1-1(つまり図3のAに示される表)に従って、その選択を行ってもよい。また、選択部231は、方法1-2(つまり図3のBに示される表)に従って、その選択を行ってもよい。さらに、選択部231は、方法1-3(つまり図4のAに示される表)に従って、その選択を行ってもよい。また、選択部231は、方法1-4(つまり図4のBに示される表)に従って、その選択を行ってもよい。
 コンテキスト変数(インデックスctxInc)を割り当ててコンテキスト復号する場合、選択部231は、そのビンの符号化データをコンテキスト設定部232に供給する。バイパス復号する場合、選択部231は、そのビンをバイパス復号部234に供給する。
 コンテキスト設定部232は、コンテキストの設定に関する処理を行う。例えば、コンテキスト設定部232は、選択部231から供給されるビンの符号化データを取得する。コンテキスト設定部232は、そのビンに対してコンテキスト変数(インデックスctxInc)を割り当てる。コンテキスト設定部232は、<2-2.適応直交変換識別子の復号>において上述した方法1に従って、その割り当てを行う。例えば、コンテキスト設定部232は、方法1-1(つまり図3のAに示される表)に従って、その割り当てを行ってもよい。また、コンテキスト設定部232は、方法1-2(つまり図3のBに示される表)に従って、その割り当てを行ってもよい。さらに、コンテキスト設定部232は、方法1-3(つまり図4のAに示される表)に従って、その割り当てを行ってもよい。また、コンテキスト設定部232は、方法1-4(つまり図4のBに示される表)に従って、その割り当てを行ってもよい。
 また、コンテキスト設定部232は、コンテキスト復号部233から復号結果を取得することができる。コンテキスト設定部232は、その復号結果を用いてコンテキスト変数(インデックスctxInc)を適宜更新することができる。コンテキスト設定部232は、このように導出したコンテキスト変数(インデックスctxInc)をコンテキスト復号部233に供給する。
 コンテキスト復号部233は、算術復号に関する処理を行う。例えば、コンテキスト復号部233は、コンテキスト設定部232から供給されるコンテキスト変数(インデックスctxInc)を取得する。また、コンテキスト復号部233は、そのコンテキスト変数(インデックスctxInc)を用いて算術復号する。つまり、コンテキスト復号を行う。さらに、コンテキスト復号部233は、その復号結果、すなわち、適応直交変換識別子のビン列の処理対象のビンを逆2値化部235に供給する。
 バイパス復号部234は、バイパス復号に関する処理を行う。例えば、バイパス復号部234は、選択部231から供給されるビンの符号化データを取得する。バイパス復号部234は、そのビンの符号化データをバイパス復号(算術復号)する。バイパス復号部234は、その復号結果、すなわち、適応直交変換識別子のビン列の処理対象のビンを逆2値化部235に供給する。
 逆2値化部235は、適応直交変換識別子のビン列の逆2値化(多値化とも称する)に関する処理を行う。例えば、逆2値化部235は、コンテキスト復号部233やバイパス復号部234から供給される適応直交変換識別子のビン列を取得する。逆2値化部235は、取得したビン列を逆2値化し、適応直交変換識別子mts_idxを導出する。この逆2値化は、2値化部131による2値化の逆処理である。つまり、逆2値化部235は、トランケート・ユーナリ符号(またはトランケート・ライス符号)を用いて逆2値化を行う。逆2値化部235は、導出した適応直交変換識別子mts_idxをTinfoとして逆直交変換部214に供給する。逆直交変換部214は、この適応直交変換識別子mts_idxに基づいて適宜適応直交変換を行う。
 以上のように各処理部(選択部231乃至逆2値化部235)が処理を行うことにより、復号部212は、方法1(例えば方法1-1乃至方法1-4のいずれか)を適用して適応直交変換識別子の符号化データを復号することができる。したがって、メモリ使用量の増大を抑制することができる。また、処理量(スループット)の増大を抑制することができる。つまり、復号処理の負荷の増大を抑制することができる。
  <画像復号処理の流れ>
 次に、以上のような構成の画像復号装置200により実行される各処理の流れについて説明する。最初に、図12のフローチャートを参照して、画像復号処理の流れの例を説明する。
 画像復号処理が開始されると、蓄積バッファ211は、ステップS201において、画像復号装置200の外部から供給される符号化データ(ビットストリーム)を取得して保持する(蓄積する)。
 ステップS202において、復号部212は、その符号化データ(ビットストリーム)を復号し、量子化変換係数レベルlevelを得る。また、復号部212は、この復号により、符号化データ(ビットストリーム)から各種符号化パラメータをパースする(解析して取得する)。
 ステップS203において、逆量子化部213は、ステップS202の処理により得られた量子化変換係数レベルlevelに対して、符号化側で行われた量子化の逆処理である逆量子化を行い、変換係数Coeff_IQを得る。
 ステップS204において、逆直交変換部214は、ステップS203において得られた変換係数Coeff_IQに対して、符号化側で行われた直交変換処理の逆処理である逆直交変換処理を行い、予測残差D'を得る。
 ステップS205において、予測部219は、ステップS202においてパースされた情報に基づいて、符号化側より指定される予測方法で予測処理を実行し、フレームメモリ218に記憶されている参照画像を参照する等して、予測画像Pを生成する。
 ステップS206において、演算部215は、ステップS204において得られた予測残差D'と、ステップS205において得られた予測画像Pとを加算し、局所復号画像Rlocalを導出する。
 ステップS207において、インループフィルタ部216は、ステップS206の処理により得られた局所復号画像Rlocalに対して、インループフィルタ処理を行う。
 ステップS208において、並べ替えバッファ217は、ステップS207の処理により得られたフィルタ処理された局所復号画像Rlocalを用いて復号画像Rを導出し、その復号画像R群の順序を復号順から再生順に並べ替える。再生順に並べ替えられた復号画像R群は、動画像として画像復号装置200の外部に出力される。
 また、ステップS209において、フレームメモリ218は、ステップS206の処理により得られた局所復号画像Rlocal、および、ステップS207の処理により得られたフィルタ処理後の局所復号画像Rlocalの内、少なくとも一方を記憶する。
 ステップS209の処理が終了すると、画像復号処理が終了する。
   <復号処理の流れ>
 図12のステップS202の復号処理において、復号部212は、適応直交変換識別子mts_idxの符号化データの復号を行う。その際、復号部212は、<2-2.適応直交変換識別子の復号>において説明した方法1を適用して適応直交変換識別子の符号化データの復号を行う。その適応直交変換識別子mts_idxの符号化データの復号の流れの例を、図13のフローチャートを参照して説明する。
 復号処理が開始されると、復号部212の選択部231は、ステップS231において、適応直交変換識別子mts_idxのビン列の1ビン目(binIdx = 0)を処理対象とする。この場合、選択部231は、そのビンの供給先としてコンテキスト設定部232を選択する(つまり、コンテキスト復号を選択する)。例えば、選択部231は、図3および図4に示される表のいずれかに従って(つまり、方法1-1乃至方法1-4のいずれかを適用し)、このビンの復号方法としてコンテキスト復号を選択する。
 ステップS232において、コンテキスト設定部232は、そのビンに対して、予め定められた所定のコンテキスト変数ctx(インデックスctxInc)を割り当てる。そして、コンテキスト復号部233は、そのコンテキスト変数を用いて算術復号を行う。つまり、コンテキスト復号を行う。
 ステップS233において、選択部231は、そのビン列の2番目以降のビンの内、未処理のビンを処理対象とする。ステップS234において、選択部231は、その処理対象のビンをバイパス復号するか否かを判定する。例えば、選択部231は、図3および図4に示される表のいずれかに従って(つまり、方法1-1乃至方法1-4のいずれかを適用し)、処理対象のビンの符号化データをバイパス復号するか否かを判定する。
 バイパス復号すると判定された場合、処理はステップS235に進む。つまり、この場合、選択部231は、ビンの符号化データの供給先としてバイパス復号部234を選択する。ステップS235において、バイパス復号部234は、その処理対象のビンの符号化データをバイパス復号する。ステップS235の処理が終了すると、処理はステップS237に進む。
 また、ステップS234において、バイパス復号を行わない(コンテキスト復号を行う)と判定された場合、処理はステップS236に進む。つまり、この場合、選択部231は、ビンの符号化データの供給先としてコンテキスト設定部232を選択する。ステップS236において、コンテキスト設定部232は、そのビンに対して、予め定められた所定のコンテキスト変数ctx(インデックスctxInc)を割り当てる。そして、コンテキスト復号部233は、そのコンテキスト変数を用いて算術復号を行う。つまり、コンテキスト復号を行う。ステップS236の処理が終了すると、処理はステップS237に進む。
 ステップS237において、逆2値化部235は、トランケート・ユーナリ符号(またはトランケート・ライス符号)を用いてビン列を逆2値化し、適応直交変換識別子mts_idxを導出する。
 ステップS238において、復号部212は、適応直交変換識別子mts_idxの復号を終了するか否かを判定する。終了しないと判定された場合、処理はステップS233に戻り、それ以降の処理が繰り返される。また、ステップS238において、終了すると判定された場合、復号処理が終了する。
 このように各処理を実行することにより、復号部212は、方法1(例えば方法1-1乃至方法1-4のいずれか)を適用して適応直交変換識別子の符号化データを復号することができる。したがって、メモリ使用量の増大を抑制することができる。また、処理量(スループット)の増大を抑制することができる。つまり、復号処理の負荷の増大を抑制することができる。
 <3.第2の実施の形態>
  <3-1.適応直交変換識別子の符号化>
 本実施の形態においては、図1のBに示される表のように行われていた、画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の各ビンへのコンテキスト変数の割り当て(方法0)を、以下のように行う。
 つまり、画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、ブロックサイズに関するパラメータに基づくコンテキスト変数を割り当ててコンテキスト符号化する。
 より具体的には、このブロックサイズに関するパラメータを、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差とする。つまり、画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差に基づくコンテキスト変数を割り当ててコンテキスト符号化する(方法2)。
 例えば、図14のAに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値(log2W)、および、垂直方向の変換ブロックサイズの対数値(log2H)の内の長い方(max(log2W, log2H))と、適応直交変換を適用可能な最小変換ブロックサイズの対数値(log2MinMtsSize)との差分(max(log2W, log2H) - log2MinMtsSize)に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の2ビン目乃至4ビン目に対してバイパス符号化を行ってもよい(方法2-1)。
 図14のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその差分(max(log2W, log2H) - log2MinMtsSize)に基づくインデックスctxIncが割り当てられてコンテキスト符号化され、2ビン目乃至4ビン目(binIdx = 1...3)は、それぞれ、バイパス符号化(bypass)される。
 また、例えば、図14のBに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分(max(log2W, log2H) - log2MinMtsSize)に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の2ビン目に対して、予め定められた所定のコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の3ビン目および4ビン目に対してバイパス符号化を行ってもよい(方法2-2)。
 図14のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその差分(max(log2W, log2H) - log2MinMtsSize)に基づくインデックスctxIncが割り当てられてコンテキスト符号化され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト符号化され、3ビン目および4ビン目(binIdx = 2...3)は、それぞれ、バイパス符号化(bypass)される。
 さらに、例えば、図15のAに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分(max(log2W, log2H) - log2MinMtsSize)に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の2ビン目および3ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の4ビン目に対してバイパス符号化を行ってもよい(方法2-3)。
 図15のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその差分(max(log2W, log2H) - log2MinMtsSize)に基づくインデックスctxIncが割り当てられてコンテキスト符号化され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト符号化され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト符号化され、4ビン目(binIdx = 3)はバイパス符号化(bypass)される。
 さらに、例えば、図15のBに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分(max(log2W, log2H) - log2MinMtsSize)に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の2ビン目乃至4ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト符号化してもよい(方法2-4)。
 図15のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその差分(max(log2W, log2H) - log2MinMtsSize)に基づくインデックスctxIncが割り当てられてコンテキスト符号化され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト符号化され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト符号化され、4ビン目(binIdx = 3)はインデックスctxInc = B3が割り当てられてコンテキスト符号化される。
 なお、図14および図15の各表において、インデックスB1, B2, B3には、重複しないユニークな値が設定される。
 これらの各方法のコンテキスト数、コンテキスト符号化ビン数、およびバイパス符号化ビン数の例を図16の表に示す。例えば、方法0の場合、コンテキスト数は9、コンテキスト符号化ビン数は4、バイパス符号化ビン数は0であった。これに対して、方法2-1の場合、コンテキスト数は4、コンテキスト符号化ビン数は1、バイパス符号化ビン数は3となる。また、方法2-2の場合、コンテキスト数は5、コンテキスト符号化ビン数は2、バイパス符号化ビン数は2となる。さらに、方法2-3の場合、コンテキスト数は6、コンテキスト符号化ビン数は3、バイパス符号化ビン数は1となる。また、方法2-4の場合、コンテキスト数は7、コンテキスト符号化ビン数は4、バイパス符号化ビン数は0となる。
 このように、方法2-1乃至方法2-4のいずれの場合も、符号化に必要なコンテキスト数を、方法0の場合よりも低減させることができる。つまり、方法2を適用することにより、1ビン目(binIdx = 0)に割り当てていたコンテキスト数を低減させることができる。したがって、メモリ使用量の増大を抑制することができる。
 また、方法2-1乃至方法2-3のいずれの場合も、符号化に必要なコンテキスト符号化ビン数を、方法0の場合よりも低減させることができる。なお、方法2-4の場合、符号化に必要なコンテキスト符号化ビン数は、方法0の場合と同等である。つまり、方法2を適用することにより、選択率が比較的低い変換タイプに対応するビンに対してバイパス符号化を適用することができる。したがって、符号化効率の低下を抑制しながら、コンテキスト符号化ビンの数の増大を抑制し、処理量(スループット)の増大を抑制することができる。
 以上のように、方法2を適用することにより、符号化処理の負荷の増大を抑制することができる。
  <3-2.適応直交変換識別子の復号>
 復号の場合も同様に、図1のBに示される表のように行われていた、画像復号における逆適応直交変換のモードを示す、2値化された適応直交変換識別子のビン列の各ビンへのコンテキスト変数の割り当て(方法0)を、以下のように行う。
 つまり、2値化された適応直交変換識別子ビン列の1ビン目に対して、ブロックサイズに関するパラメータに基づくコンテキスト変数を割り当ててコンテキスト符号化する。
 より具体的には、このブロックサイズに関するパラメータを、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差とする。つまり、2値化された適応直交変換識別子のビン列の1ビン目に対して、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差に基づくコンテキスト変数を割り当ててコンテキスト復号する(方法2)。
 例えば、図14のAに示される表のように、2値化された適応直交変換識別子のビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値(log2W)、および、垂直方向の変換ブロックサイズの対数値(log2H)の内の長い方(max(log2W, log2H))と、適応直交変換を適用可能な最小変換ブロックサイズの対数値(log2MinMtsSize)との差分(max(log2W, log2H) - log2MinMtsSize)に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の2ビン目乃至4ビン目に対してバイパス復号を行ってもよい(方法2-1)。
 図14のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその差分(max(log2W, log2H) - log2MinMtsSize)に基づくインデックスctxIncが割り当てられてコンテキスト復号され、2ビン目乃至4ビン目(binIdx = 1...3)は、それぞれ、バイパス復号(bypass)される。
 また、例えば、図14のBに示される表のように、2値化された適応直交変換識別子のビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分(max(log2W, log2H) - log2MinMtsSize)に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の2ビン目に対して、予め定められた所定のコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の3ビン目および4ビン目に対してバイパス復号を行ってもよい(方法2-2)。
 図14のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその差分(max(log2W, log2H) - log2MinMtsSize)に基づくインデックスctxIncが割り当てられてコンテキスト復号され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト復号され、3ビン目および4ビン目(binIdx = 2...3)は、それぞれ、バイパス復号(bypass)される。
 さらに、例えば、図15のAに示される表のように、2値化された適応直交変換識別子のビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分(max(log2W, log2H) - log2MinMtsSize)に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の2ビン目および3ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の4ビン目に対してバイパス復号を行ってもよい(方法2-3)。
 図15のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその差分(max(log2W, log2H) - log2MinMtsSize)に基づくインデックスctxIncが割り当てられてコンテキスト復号され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト復号され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト復号され、4ビン目(binIdx = 3)はバイパス復号(bypass)される。
 さらに、例えば、図15のBに示される表のように、2値化された適応直交変換識別子のビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分(max(log2W, log2H) - log2MinMtsSize)に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の2ビン目乃至4ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト復号してもよい(方法2-4)。
 図15のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその差分(max(log2W, log2H) - log2MinMtsSize)に基づくインデックスctxIncが割り当てられてコンテキスト復号され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト復号され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト復号され、4ビン目(binIdx = 3)はインデックスctxInc = B3が割り当てられてコンテキスト復号される。
 なお、復号の場合も符号化の場合と同様に、図14および図15の各表において、インデックスB1, B2, B3には、重複しないユニークな値が設定される。
 これらの各方法のコンテキスト数、コンテキスト符号化ビン数、およびバイパス符号化ビン数は、符号化の場合(図16)と同様である。
 このように、方法2-1乃至方法2-4のいずれの場合も、復号に必要なコンテキスト数を、方法0の場合よりも低減させることができる。つまり、方法2を適用することにより、1ビン目(binIdx = 0)に割り当てていたコンテキスト数を低減させることができる。したがって、メモリ使用量の増大を抑制することができる。
 また、方法2-1乃至方法2-3のいずれの場合も、復号に必要なコンテキスト符号化ビン数を、方法0の場合よりも低減させることができる。なお、方法2-4の場合、復号に必要なコンテキスト符号化ビン数は、方法0の場合と同等である。つまり、方法2を適用することにより、選択率が比較的低い変換タイプに対応するビンに対してバイパス復号を適用することができる。したがって、符号化効率の低下を抑制しながら、コンテキスト符号化ビンの数の増大を抑制し、処理量(スループット)の増大を抑制することができる。
 以上のように、方法2を適用することにより、復号処理の負荷の増大を抑制することができる。
  <3-3.符号化側>
   <構成>
 次に、符号化側について説明する。この場合の符号化側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像符号化装置100は、図6を参照して説明した構成と同様の構成を有する。また、この場合の符号化部115は、図7を参照して説明した構成と同様の構成を有する。
   <符号化処理の流れ>
 また、この場合の画像符号化装置100は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像符号化装置100により実行される画像符号化処理は、図8のフローチャートを参照して説明した場合と同様の流れで行われる。
 この場合の符号化部115により実行される、適応直交変換識別子を符号化する符号化処理の流れの例を、図17のフローチャートを参照して説明する。
 この符号化処理において、ステップS301およびステップS302の各処理は、図9のステップS131およびステップS132の各処理と同様に実行される。つまり、この場合、選択部132は、そのビンの供給先としてコンテキスト設定部133を選択する(つまり、コンテキスト符号化を選択する)。例えば、選択部132は、図14および図15に示される表のいずれかに従って(つまり、方法2-1乃至方法2-4のいずれかを適用し)、このビンの符号化方法としてコンテキスト符号化を選択する。
 ステップS303において、コンテキスト設定部133は、そのビンに対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分(max(log2W, log2H) - log2MinMtsSize)に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当てる。そして、コンテキスト符号化部134は、そのコンテキスト変数を用いて算術符号化を行う。つまり、コンテキスト符号化を行う。
 ステップS304乃至ステップS308の各処理は、図9のステップS134乃至ステップS138の各処理と同様に実行される。ステップS308において、終了すると判定された場合、符号化処理が終了する。
 このように各処理を実行することにより、符号化部115は、方法2(例えば方法2-1乃至方法2-4のいずれか)を適用して適応直交変換識別子を符号化することができる。したがって、メモリ使用量の増大を抑制することができる。また、処理量(スループット)の増大を抑制することができる。つまり、符号化処理の負荷の増大を抑制することができる。
  <3-4.復号側>
   <構成>
 次に、復号側について説明する。この場合の復号側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像復号装置200は、図10を参照して説明した構成と同様の構成を有する。また、この場合の復号部212は、図11を参照して説明した構成と同様の構成を有する。
   <復号処理の流れ>
 また、この場合の画像復号装置200は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像復号装置200により実行される画像復号処理は、図12のフローチャートを参照して説明した場合と同様の流れで行われる。
 この場合の復号部212により実行される、適応直交変換識別子の符号化データを復号する復号処理の流れの例を、図18のフローチャートを参照して説明する。
 この復号処理において、ステップS321の処理は、図13のステップS231の処理と同様に実行される。つまり、この場合、選択部231は、そのビンの供給先としてコンテキスト設定部232を選択する(つまり、コンテキスト復号を選択する)。例えば、選択部231は、図14および図15に示される表のいずれかに従って(つまり、方法2-1乃至方法2-4のいずれかを適用し)、このビンの復号方法としてコンテキスト復号を選択する。
 ステップS322において、コンテキスト設定部232は、そのビンに対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分(max(log2W, log2H) - log2MinMtsSize)に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当てる。そして、コンテキスト復号部233は、そのコンテキスト変数を用いて算術復号を行う。つまり、コンテキスト復号を行う。
 ステップS323乃至ステップS328の各処理は、図13のステップS233乃至ステップS238の各処理と同様に実行される。ステップS328において、終了すると判定された場合、復号処理が終了する。
 このように各処理を実行することにより、復号部212は、方法2(例えば方法2-1乃至方法2-4のいずれか)を適用して適応直交変換識別子の符号化データを復号することができる。したがって、メモリ使用量の増大を抑制することができる。また、処理量(スループット)の増大を抑制することができる。つまり、復号処理の負荷の増大を抑制することができる。
 <4.第3の実施の形態>
  <4-1.適応直交変換識別子の符号化>
 本実施の形態においては、図1のBに示される表のように行われていた、画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の各ビンへのコンテキスト変数の割り当て(方法0)を、以下のように行う。
 つまり、画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、ブロックサイズに関するパラメータに基づくコンテキスト変数を割り当ててコンテキスト符号化する。
 より具体的には、このブロックサイズに関するパラメータを、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差と、所定の閾値との内の最小値とする。つまり、画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差と、所定の閾値との内の小さい方の値に基づくコンテキスト変数を割り当ててコンテキスト符号化する(方法3)。
 なお、この閾値THの値は任意である。この閾値を、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差の最大値よりも小さい値にすることによって、方法2の場合に比べてコンテキスト数を低減させることができる。したがって、メモリ使用量を低減させることができる。
 例えば、図19のAに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値(log2W)、および、垂直方向の変換ブロックサイズの対数値(log2H)の内の長い方(max(log2W, log2H))と、適応直交変換を適用可能な最小変換ブロックサイズの対数値(log2MinMtsSize)との差分(max(log2W, log2H) - log2MinMtsSize)と、所定の閾値(TH)との内の小さい方の値(min(max(log2W, log2H) - log2MinMtsSize, TH))に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の2ビン目乃至4ビン目に対してバイパス符号化を行ってもよい(方法3-1)。
 図19のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその最小値(min(max(log2W, log2H) - log2MinMtsSize, TH))に基づくインデックスctxIncが割り当てられてコンテキスト符号化され、2ビン目乃至4ビン目(binIdx = 1...3)は、それぞれ、バイパス符号化(bypass)される。
 また、例えば、図19のBに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分と、所定の閾値との内の小さい方の値(min(max(log2W, log2H) - log2MinMtsSize, TH))に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の2ビン目に対して、予め定められた所定のコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の3ビン目および4ビン目に対してバイパス符号化を行ってもよい(方法3-2)。
 図19のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその最小値(min(max(log2W, log2H) - log2MinMtsSize, TH))に基づくインデックスctxIncが割り当てられてコンテキスト符号化され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト符号化され、3ビン目および4ビン目(binIdx = 2...3)は、それぞれ、バイパス符号化(bypass)される。
 さらに、例えば、図20のAに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分と、所定の閾値との内の小さい方の値(min(max(log2W, log2H) - log2MinMtsSize, TH))に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の2ビン目および3ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の4ビン目に対してバイパス符号化を行ってもよい(方法3-3)。
 図20のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその最小値(min(max(log2W, log2H) - log2MinMtsSize, TH))に基づくインデックスctxIncが割り当てられてコンテキスト符号化され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト符号化され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト符号化され、4ビン目(binIdx = 3)はバイパス符号化(bypass)される。
 さらに、例えば、図20のBに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分と、所定の閾値との内の小さい方の値(min(max(log2W, log2H) - log2MinMtsSize, TH))に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の2ビン目乃至4ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト符号化してもよい(方法3-4)。
 図20のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその最小値(min(max(log2W, log2H) - log2MinMtsSize, TH))に基づくインデックスctxIncが割り当てられてコンテキスト符号化され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト符号化され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト符号化され、4ビン目(binIdx = 3)はインデックスctxInc = B3が割り当てられてコンテキスト符号化される。
 なお、図19および図20の各表において、インデックスB1, B2, B3には、重複しないユニークな値が設定される。
 これらの各方法のコンテキスト数、コンテキスト符号化ビン数、およびバイパス符号化ビン数の例を図21に示す。図21のAに示される表は、閾値TH = 2とした場合の例を示す。この例において、例えば、方法0の場合、コンテキスト数は9、コンテキスト符号化ビン数は4、バイパス符号化ビン数は0であった。これに対して、方法3-1の場合、コンテキスト数は3、コンテキスト符号化ビン数は1、バイパス符号化ビン数は3となる。また、方法3-2の場合、コンテキスト数は4、コンテキスト符号化ビン数は2、バイパス符号化ビン数は2となる。さらに、方法3-3の場合、コンテキスト数は5、コンテキスト符号化ビン数は3、バイパス符号化ビン数は1となる。また、方法3-4の場合、コンテキスト数は6、コンテキスト符号化ビン数は4、バイパス符号化ビン数は0となる。
 また、図21のBに示される表は、閾値TH = 1とした場合の例を示す。この例において、方法3-1の場合、コンテキスト数は2となる。また、方法3-2の場合、コンテキスト数は3となる。さらに、方法3-3の場合、コンテキスト数は4となる。また、方法3-4の場合、コンテキスト数は5となる。
 このように、方法3-1乃至方法3-4のいずれの場合も、符号化に必要なコンテキスト数を、方法0の場合よりも低減させることができる。つまり、方法3を適用することにより、1ビン目(binIdx = 0)に割り当てていたコンテキスト数を低減させることができる。したがって、メモリ使用量の増大を抑制することができる。
 また、方法3-1乃至方法3-3のいずれの場合も、符号化に必要なコンテキスト符号化ビン数を、方法0の場合よりも低減させることができる。なお、方法3-4の場合、符号化に必要なコンテキスト符号化ビン数は、方法0の場合と同等である。つまり、方法3を適用することにより、選択率が比較的低い変換タイプに対応するビンに対してバイパス符号化を適用することができる。したがって、符号化効率の低下を抑制しながら、コンテキスト符号化ビンの数の増大を抑制し、処理量(スループット)の増大を抑制することができる。
 以上のように、方法3を適用することにより、符号化処理の負荷の増大を抑制することができる。
  <4-2.適応直交変換識別子の復号>
 復号の場合も同様に、図1のBに示される表のように行われていた、画像復号における逆適応直交変換のモードを示す、2値化された適応直交変換識別子のビン列の各ビンへのコンテキスト変数の割り当て(方法0)を、以下のように行う。
 つまり、2値化された適応直交変換識別子ビン列の1ビン目に対して、ブロックサイズに関するパラメータに基づくコンテキスト変数を割り当ててコンテキスト符号化する。
 より具体的には、このブロックサイズに関するパラメータを、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差と、所定の閾値との内の最小値とする。つまり、2値化された適応直交変換識別子のビン列の1ビン目に対して、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差と、所定の閾値との内の小さい方の値に基づくコンテキスト変数を割り当ててコンテキスト復号する(方法3)。
 なお、符号化の場合と同様に、この閾値THの値は任意である。この閾値を、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差の最大値よりも小さい値にすることによって、方法2の場合に比べてコンテキスト数を低減させることができる。したがって、メモリ使用量を低減させることができる。
 例えば、図19のAに示される表のように、2値化された適応直交変換識別子のビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値(log2W)、および、垂直方向の変換ブロックサイズの対数値(log2H)の内の長い方(max(log2W, log2H))と、適応直交変換を適用可能な最小変換ブロックサイズの対数値(log2MinMtsSize)との差分(max(log2W, log2H) - log2MinMtsSize)と、所定の閾値(TH)との内の小さい方の値(min(max(log2W, log2H) - log2MinMtsSize, TH))に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の2ビン目乃至4ビン目に対してバイパス復号を行ってもよい(方法3-1)。
 図19のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその最小値(min(max(log2W, log2H) - log2MinMtsSize, TH))に基づくインデックスctxIncが割り当てられてコンテキスト復号され、2ビン目乃至4ビン目(binIdx = 1...3)は、それぞれ、バイパス復号(bypass)される。
 また、例えば、図19のBに示される表のように、2値化された適応直交変換識別子のビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分と、所定の閾値との内の小さい方の値(min(max(log2W, log2H) - log2MinMtsSize, TH))に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の2ビン目に対して、予め定められた所定のコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の3ビン目および4ビン目に対してバイパス復号を行ってもよい(方法3-2)。
 図19のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその最小値(min(max(log2W, log2H) - log2MinMtsSize, TH))に基づくインデックスctxIncが割り当てられてコンテキスト復号され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト復号され、3ビン目および4ビン目(binIdx = 2...3)は、それぞれ、バイパス復号(bypass)される。
 さらに、例えば、図20のAに示される表のように、2値化された適応直交変換識別子のビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分と、所定の閾値との内の小さい方の値(min(max(log2W, log2H) - log2MinMtsSize, TH))に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の2ビン目および3ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の4ビン目に対してバイパス復号を行ってもよい(方法3-3)。
 図20のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその最小値(min(max(log2W, log2H) - log2MinMtsSize, TH))に基づくインデックスctxIncが割り当てられてコンテキスト復号され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト復号され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト復号され、4ビン目(binIdx = 3)はバイパス復号(bypass)される。
 さらに、例えば、図20のBに示される表のように、2値化された適応直交変換識別子のビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分と、所定の閾値との内の小さい方の値(min(max(log2W, log2H) - log2MinMtsSize, TH))に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の2ビン目乃至4ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト復号してもよい(方法3-4)。
 図20のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその最小値(min(max(log2W, log2H) - log2MinMtsSize, TH))に基づくインデックスctxIncが割り当てられてコンテキスト復号され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト復号され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト復号され、4ビン目(binIdx = 3)はインデックスctxInc = B3が割り当てられてコンテキスト復号される。
 なお、復号の場合も符号化の場合と同様に、図19および図20の各表において、インデックスB1, B2, B3には、重複しないユニークな値が設定される。
 これらの各方法のコンテキスト数、コンテキスト符号化ビン数、およびバイパス符号化ビン数は、符号化の場合(図21のAおよび図21のB)と同様である。
 このように、方法3-1乃至方法3-4のいずれの場合も、復号に必要なコンテキスト数を、方法0の場合よりも低減させることができる。つまり、方法3を適用することにより、1ビン目(binIdx = 0)に割り当てていたコンテキスト数を低減させることができる。したがって、メモリ使用量の増大を抑制することができる。
 また、方法3-1乃至方法3-3のいずれの場合も、復号に必要なコンテキスト符号化ビン数を、方法0の場合よりも低減させることができる。なお、方法3-4の場合、復号に必要なコンテキスト符号化ビン数は、方法0の場合と同等である。つまり、方法3を適用することにより、選択率が比較的低い変換タイプに対応するビンに対してバイパス復号を適用することができる。したがって、符号化効率の低下を抑制しながら、コンテキスト符号化ビンの数の増大を抑制し、処理量(スループット)の増大を抑制することができる。
 以上のように、方法3を適用することにより、復号処理の負荷の増大を抑制することができる。
  <4-3.符号化側>
   <構成>
 次に、符号化側について説明する。この場合の符号化側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像符号化装置100は、図6を参照して説明した構成と同様の構成を有する。また、この場合の符号化部115は、図7を参照して説明した構成と同様の構成を有する。
   <符号化処理の流れ>
 また、この場合の画像符号化装置100は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像符号化装置100により実行される画像符号化処理は、図8のフローチャートを参照して説明した場合と同様の流れで行われる。
 この場合の符号化部115により実行される、適応直交変換識別子を符号化する符号化処理の流れの例を、図22のフローチャートを参照して説明する。
 この符号化処理において、ステップS351およびステップS352の各処理は、図9のステップS131およびステップS132の各処理と同様に実行される。つまり、この場合、選択部132は、そのビンの供給先としてコンテキスト設定部133を選択する(つまり、コンテキスト符号化を選択する)。例えば、選択部132は、図19および図20に示される表のいずれかに従って(つまり、方法3-1乃至方法3-4のいずれかを適用し)、このビンの符号化方法としてコンテキスト符号化を選択する。
 ステップS353において、コンテキスト設定部133は、そのビンに対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分と、所定の閾値との最小値(min(max(log2W, log2H) - log2MinMtsSize, TH))に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当てる。そして、コンテキスト符号化部134は、そのコンテキスト変数を用いて算術符号化を行う。つまり、コンテキスト符号化を行う。
 ステップS354乃至ステップS358の各処理は、図9のステップS134乃至ステップS138の各処理と同様に実行される。ステップS358において、終了すると判定された場合、符号化処理が終了する。
 このように各処理を実行することにより、符号化部115は、方法3(例えば方法3-1乃至方法3-4のいずれか)を適用して適応直交変換識別子を符号化することができる。したがって、メモリ使用量の増大を抑制することができる。また、処理量(スループット)の増大を抑制することができる。つまり、符号化処理の負荷の増大を抑制することができる。
  <4-4.復号側>
   <構成>
 次に、復号側について説明する。この場合の復号側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像復号装置200は、図10を参照して説明した構成と同様の構成を有する。また、この場合の復号部212は、図11を参照して説明した構成と同様の構成を有する。
   <復号処理の流れ>
 また、この場合の画像復号装置200は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像復号装置200により実行される画像復号処理は、図12のフローチャートを参照して説明した場合と同様の流れで行われる。
 この場合の復号部212により実行される、適応直交変換識別子の符号化データを復号する復号処理の流れの例を、図23のフローチャートを参照して説明する。
 この復号処理において、ステップS371の処理は、図13のステップS231の処理と同様に実行される。つまり、この場合、選択部231は、そのビンの供給先としてコンテキスト設定部232を選択する(つまり、コンテキスト復号を選択する)。例えば、選択部231は、図19および図20に示される表のいずれかに従って(つまり、方法3-1乃至方法3-4のいずれかを適用し)、このビンの復号方法としてコンテキスト復号を選択する。
 ステップS372において、コンテキスト設定部232は、そのビンに対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分と、所定の閾値との最小値(min(max(log2W, log2H) - log2MinMtsSize, TH))に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当てる。そして、コンテキスト復号部233は、そのコンテキスト変数を用いて算術復号を行う。つまり、コンテキスト復号を行う。
 ステップS373乃至ステップS378の各処理は、図13のステップS233乃至ステップS238の各処理と同様に実行される。ステップS378において、終了すると判定された場合、復号処理が終了する。
 このように各処理を実行することにより、復号部212は、方法3(例えば方法3-1乃至方法3-4のいずれか)を適用して適応直交変換識別子の符号化データを復号することができる。したがって、メモリ使用量の増大を抑制することができる。また、処理量(スループット)の増大を抑制することができる。つまり、復号処理の負荷の増大を抑制することができる。
 <5.第4の実施の形態>
  <5-1.適応直交変換識別子の符号化>
 本実施の形態においては、図1のBに示される表のように行われていた、画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の各ビンへのコンテキスト変数の割り当て(方法0)を、以下のように行う。
 つまり、画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、ブロックサイズに関するパラメータに基づくコンテキスト変数を割り当ててコンテキスト符号化する。
 より具体的には、このブロックサイズに関するパラメータを、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差と、所定の閾値との内の最小値を、右ビットシフトした結果とする。つまり、画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差と所定の閾値との内の最小値を右ビットシフトした結果に基づくコンテキスト変数を割り当ててコンテキスト符号化する(方法4)。
 なお、この閾値THの値は任意である。この閾値を、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差の最大値よりも小さい値にすることによって、方法2の場合に比べてコンテキスト数を低減させることができる。また、右ビットシフトのシフト量であるスケールパラメータshiftの値は任意である。この方法4の場合、さらに、その最小値を右ビットシフトするので、方法3の場合に比べてコンテキスト数を低減させることができる。したがって、メモリ使用量を低減させることができる。
 例えば、図24のAに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値(log2W)、および、垂直方向の変換ブロックサイズの対数値(log2H)の内の長い方(max(log2W, log2H))と、適応直交変換を適用可能な最小変換ブロックサイズの対数値(log2MinMtsSize)との差分(max(log2W, log2H) - log2MinMtsSize)と所定の閾値(TH)との内の小さい方の値(min(max(log2W, log2H) - log2MinMtsSize, TH))を右ビットシフトした結果(min(max(log2W, log2H) - log2MinMtsSize, TH) >> shift)に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の2ビン目乃至4ビン目に対してバイパス符号化を行ってもよい(方法4-1)。
 図24のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその右ビットシフトの結果(min(max(log2W, log2H) - log2MinMtsSize, TH) >> shift)に基づくインデックスctxIncが割り当てられてコンテキスト符号化され、2ビン目乃至4ビン目(binIdx = 1...3)は、それぞれ、バイパス符号化(bypass)される。
 また、例えば、図24のBに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分と、所定の閾値との内の小さい方の値を右ビットシフトした結果(min(max(log2W, log2H) - log2MinMtsSize, TH) >> shift)に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の2ビン目に対して、予め定められた所定のコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の3ビン目および4ビン目に対してバイパス符号化を行ってもよい(方法4-2)。
 図24のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその右ビットシフトの結果(min(max(log2W, log2H) - log2MinMtsSize, TH) >> shift)に基づくインデックスctxIncが割り当てられてコンテキスト符号化され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト符号化され、3ビン目および4ビン目(binIdx = 2...3)は、それぞれ、バイパス符号化(bypass)される。
 さらに、例えば、図25のAに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分と、所定の閾値との内の小さい方の値を右ビットシフトした結果(min(max(log2W, log2H) - log2MinMtsSize, TH) >> shift)に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の2ビン目および3ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の4ビン目に対してバイパス符号化を行ってもよい(方法4-3)。
 図25のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその右ビットシフトの結果(min(max(log2W, log2H) - log2MinMtsSize, TH) >> shift)に基づくインデックスctxIncが割り当てられてコンテキスト符号化され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト符号化され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト符号化され、4ビン目(binIdx = 3)はバイパス符号化(bypass)される。
 さらに、例えば、図25のBに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分と、所定の閾値との内の小さい方の値を右ビットシフトした結果(min(max(log2W, log2H) - log2MinMtsSize, TH) >> shift)に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の2ビン目乃至4ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト符号化してもよい(方法4-4)。
 図25のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその右ビットシフトの結果(min(max(log2W, log2H) - log2MinMtsSize, TH) >> shift)に基づくインデックスctxIncが割り当てられてコンテキスト符号化され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト符号化され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト符号化され、4ビン目(binIdx = 3)はインデックスctxInc = B3が割り当てられてコンテキスト符号化される。
 なお、図24および図25の各表において、インデックスB1, B2, B3には、重複しないユニークな値が設定される。
 これらの各方法のコンテキスト数、コンテキスト符号化ビン数、およびバイパス符号化ビン数の例を図26に示す。図26に示される表は、閾値TH = 2とし、スケールパラメータ(右ビットシフトのシフト量)shift = 1とした場合の例を示す。この例において、例えば、方法0の場合、コンテキスト数は9、コンテキスト符号化ビン数は4、バイパス符号化ビン数は0であった。これに対して、方法4-1の場合、コンテキスト数は2、コンテキスト符号化ビン数は1、バイパス符号化ビン数は3となる。また、方法4-2の場合、コンテキスト数は3、コンテキスト符号化ビン数は2、バイパス符号化ビン数は2となる。さらに、方法4-3の場合、コンテキスト数は4、コンテキスト符号化ビン数は3、バイパス符号化ビン数は1となる。また、方法4-4の場合、コンテキスト数は5、コンテキスト符号化ビン数は4、バイパス符号化ビン数は0となる。
 このように、方法4-1乃至方法4-4のいずれの場合も、符号化に必要なコンテキスト数を、方法0の場合よりも低減させることができる。つまり、方法4を適用することにより、1ビン目(binIdx = 0)に割り当てていたコンテキスト数を低減させることができる。したがって、メモリ使用量の増大を抑制することができる。
 また、方法4-1乃至方法4-3のいずれの場合も、符号化に必要なコンテキスト符号化ビン数を、方法0の場合よりも低減させることができる。なお、方法4-4の場合、符号化に必要なコンテキスト符号化ビン数は、方法0の場合と同等である。つまり、方法4を適用することにより、選択率が比較的低い変換タイプに対応するビンに対してバイパス符号化を適用することができる。したがって、符号化効率の低下を抑制しながら、コンテキスト符号化ビンの数の増大を抑制し、処理量(スループット)の増大を抑制することができる。
 以上のように、方法4を適用することにより、符号化処理の負荷の増大を抑制することができる。
  <5-2.適応直交変換識別子の復号>
 復号の場合も同様に、図1のBに示される表のように行われていた、画像復号における逆適応直交変換のモードを示す、2値化された適応直交変換識別子のビン列の各ビンへのコンテキスト変数の割り当て(方法0)を、以下のように行う。
 つまり、2値化された適応直交変換識別子ビン列の1ビン目に対して、ブロックサイズに関するパラメータに基づくコンテキスト変数を割り当ててコンテキスト符号化する。
 より具体的には、このブロックサイズに関するパラメータを、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差と、所定の閾値との内の最小値を、右ビットシフトした結果とする。つまり、2値化された適応直交変換識別子のビン列の1ビン目に対して、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差と、所定の閾値との内の最小値を右ビットシフトした結果に基づくコンテキスト変数を割り当ててコンテキスト復号する(方法4)。
 なお、符号化の場合と同様に、この閾値THの値は任意である。この閾値を、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差の最大値よりも小さい値にすることによって、方法2の場合に比べてコンテキスト数を低減させることができる。また、右ビットシフトのシフト量であるスケールパラメータshiftの値は任意である。この方法4の場合、さらに、その最小値を右ビットシフトするので、方法3の場合に比べてコンテキスト数を低減させることができる。したがって、メモリ使用量を低減させることができる。
 例えば、図24のAに示される表のように、2値化された適応直交変換識別子のビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値(log2W)、および、垂直方向の変換ブロックサイズの対数値(log2H)の内の長い方(max(log2W, log2H))と、適応直交変換を適用可能な最小変換ブロックサイズの対数値(log2MinMtsSize)との差分(max(log2W, log2H) - log2MinMtsSize)と、所定の閾値(TH)との内の小さい方の値(min(max(log2W, log2H) - log2MinMtsSize, TH))を右ビットシフトした結果(min(max(log2W, log2H) - log2MinMtsSize, TH) >> shift)に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の2ビン目乃至4ビン目に対してバイパス復号を行ってもよい(方法4-1)。
 図24のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその右ビットシフトの結果(min(max(log2W, log2H) - log2MinMtsSize, TH) >> shift)に基づくインデックスctxIncが割り当てられてコンテキスト復号され、2ビン目乃至4ビン目(binIdx = 1...3)は、それぞれ、バイパス復号(bypass)される。
 また、例えば、図24のBに示される表のように、2値化された適応直交変換識別子のビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分と、所定の閾値との内の小さい方の値を右ビットシフトした結果(min(max(log2W, log2H) - log2MinMtsSize, TH) >> shift)に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の2ビン目に対して、予め定められた所定のコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の3ビン目および4ビン目に対してバイパス復号を行ってもよい(方法4-2)。
 図24のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその右ビットシフトの結果(min(max(log2W, log2H) - log2MinMtsSize, TH) >> shift)に基づくインデックスctxIncが割り当てられてコンテキスト復号され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト復号され、3ビン目および4ビン目(binIdx = 2...3)は、それぞれ、バイパス復号(bypass)される。
 さらに、例えば、図25のAに示される表のように、2値化された適応直交変換識別子のビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分と、所定の閾値との内の小さい方の値を右ビットシフトした結果(min(max(log2W, log2H) - log2MinMtsSize, TH) >> shift)に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の2ビン目および3ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の4ビン目に対してバイパス復号を行ってもよい(方法4-3)。
 図25のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその右ビットシフトの結果(min(max(log2W, log2H) - log2MinMtsSize, TH) >> shift)に基づくインデックスctxIncが割り当てられてコンテキスト復号され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト復号され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト復号され、4ビン目(binIdx = 3)はバイパス復号(bypass)される。
 さらに、例えば、図25のBに示される表のように、2値化された適応直交変換識別子のビン列の1ビン目に対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と、適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分と、所定の閾値との内の小さい方の値を右ビットシフトした結果(min(max(log2W, log2H) - log2MinMtsSize, TH) >> shift)に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の2ビン目乃至4ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト復号してもよい(方法4-4)。
 図25のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はその右ビットシフトの結果(min(max(log2W, log2H) - log2MinMtsSize, TH) >> shift)に基づくインデックスctxIncが割り当てられてコンテキスト復号され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト復号され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト復号され、4ビン目(binIdx = 3)はインデックスctxInc = B3が割り当てられてコンテキスト復号される。
 なお、復号の場合も符号化の場合と同様に、図24および図25の各表において、インデックスB1, B2, B3には、重複しないユニークな値が設定される。
 これらの各方法のコンテキスト数、コンテキスト符号化ビン数、およびバイパス符号化ビン数は、符号化の場合(図26)と同様である。
 このように、方法4-1乃至方法4-4のいずれの場合も、復号に必要なコンテキスト数を、方法0の場合よりも低減させることができる。つまり、方法4を適用することにより、1ビン目(binIdx = 0)に割り当てていたコンテキスト数を低減させることができる。したがって、メモリ使用量の増大を抑制することができる。
 また、方法4-1乃至方法4-3のいずれの場合も、復号に必要なコンテキスト符号化ビン数を、方法0の場合よりも低減させることができる。なお、方法4-4の場合、復号に必要なコンテキスト符号化ビン数は、方法0の場合と同等である。つまり、方法4を適用することにより、選択率が比較的低い変換タイプに対応するビンに対してバイパス復号を適用することができる。したがって、符号化効率の低下を抑制しながら、コンテキスト符号化ビンの数の増大を抑制し、処理量(スループット)の増大を抑制することができる。
 以上のように、方法4を適用することにより、復号処理の負荷の増大を抑制することができる。
  <5-3.符号化側>
   <構成>
 次に、符号化側について説明する。この場合の符号化側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像符号化装置100は、図6を参照して説明した構成と同様の構成を有する。また、この場合の符号化部115は、図7を参照して説明した構成と同様の構成を有する。
   <符号化処理の流れ>
 また、この場合の画像符号化装置100は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像符号化装置100により実行される画像符号化処理は、図8のフローチャートを参照して説明した場合と同様の流れで行われる。
 この場合の符号化部115により実行される、適応直交変換識別子を符号化する符号化処理の流れの例を、図27のフローチャートを参照して説明する。
 この符号化処理において、ステップS401およびステップS402の各処理は、図9のステップS131およびステップS132の各処理と同様に実行される。つまり、この場合、選択部132は、そのビンの供給先としてコンテキスト設定部133を選択する(つまり、コンテキスト符号化を選択する)。例えば、選択部132は、図24および図25に示される表のいずれかに従って(つまり、方法4-1乃至方法4-4のいずれかを適用し)、このビンの符号化方法としてコンテキスト符号化を選択する。
 ステップS403において、コンテキスト設定部133は、そのビンに対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分と所定の閾値との最小値を、スケールパラメータshiftで右ビットシフトした結果(min(max(log2W, log2H) - log2MinMtsSize, TH) >> shift)に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当てる。そして、コンテキスト符号化部134は、そのコンテキスト変数を用いて算術符号化を行う。つまり、コンテキスト符号化を行う。
 ステップS404乃至ステップS408の各処理は、図9のステップS134乃至ステップS138の各処理と同様に実行される。ステップS408において、終了すると判定された場合、符号化処理が終了する。
 このように各処理を実行することにより、符号化部115は、方法4(例えば方法4-1乃至方法4-4のいずれか)を適用して適応直交変換識別子を符号化することができる。したがって、メモリ使用量の増大を抑制することができる。また、処理量(スループット)の増大を抑制することができる。つまり、符号化処理の負荷の増大を抑制することができる。
  <5-4.復号側>
   <構成>
 次に、復号側について説明する。この場合の復号側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像復号装置200は、図10を参照して説明した構成と同様の構成を有する。また、この場合の復号部212は、図11を参照して説明した構成と同様の構成を有する。
   <復号処理の流れ>
 また、この場合の画像復号装置200は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像復号装置200により実行される画像復号処理は、図12のフローチャートを参照して説明した場合と同様の流れで行われる。
 この場合の復号部212により実行される、適応直交変換識別子の符号化データを復号する復号処理の流れの例を、図28のフローチャートを参照して説明する。
 この復号処理において、ステップS421の処理は、図13のステップS231の処理と同様に実行される。つまり、この場合、選択部231は、そのビンの供給先としてコンテキスト設定部232を選択する(つまり、コンテキスト復号を選択する)。例えば、選択部231は、図24および図25に示される表のいずれかに従って(つまり、方法4-1乃至方法4-4のいずれかを適用し)、このビンの復号方法としてコンテキスト復号を選択する。
 ステップS422において、コンテキスト設定部232は、そのビンに対して、水平方向の変換ブロックサイズの対数値および垂直方向の変換ブロックサイズの対数値の内の長い方と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差分と所定の閾値との最小値を、スケールパラメータshiftで右ビットシフトした結果(min(max(log2W, log2H) - log2MinMtsSize, TH) >> shift)に基づいて、コンテキスト変数ctx(インデックスctxInc)を割り当てる。そして、コンテキスト復号部233は、そのコンテキスト変数を用いて算術復号を行う。つまり、コンテキスト復号を行う。
 ステップS423乃至ステップS428の各処理は、図13のステップS233乃至ステップS238の各処理と同様に実行される。ステップS428において、終了すると判定された場合、復号処理が終了する。
 このように各処理を実行することにより、復号部212は、方法4(例えば方法4-1乃至方法4-4のいずれか)を適用して適応直交変換識別子の符号化データを復号することができる。したがって、メモリ使用量の増大を抑制することができる。また、処理量(スループット)の増大を抑制することができる。つまり、復号処理の負荷の増大を抑制することができる。
 <6.第5の実施の形態>
  <6-1.適応直交変換識別子の符号化>
 本実施の形態においては、図1のBに示される表のように行われていた、画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の各ビンへのコンテキスト変数の割り当て(方法0)を、以下のように行う。
 つまり、画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、ブロックサイズに関するパラメータに基づくコンテキスト変数を割り当ててコンテキスト符号化する。
 より具体的には、そのブロックサイズに関するパラメータが所定の閾値以上であるか否かに応じたコンテキスト変数を割り当ててコンテキスト符号化する(方法5)。
 例えば、図29のAに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、ブロックサイズに関するパラメータ(S)が所定の閾値(TH)以上であるか否か(S < TH?)に応じてコンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の2ビン目乃至4ビン目に対してバイパス符号化を行ってもよい(方法5-1)。
 図29のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)は、ブロックサイズに関するパラメータが所定の閾値未満である場合(S < TH)、インデックスctxInc = A0が割り当てられてコンテキスト符号化され、ブロックサイズに関するパラメータが所定の閾値以上である場合(S ≧ TH)、インデックスctxInc = A1が割り当てられてコンテキスト符号化される。また、2ビン目乃至4ビン目(binIdx = 1...3)は、それぞれ、バイパス符号化(bypass)される。
 また、例えば、図29のBに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、ブロックサイズに関するパラメータが所定の閾値以上であるか否か(S < TH?)に応じてコンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の2ビン目に対して、予め定められた所定のコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の3ビン目および4ビン目に対してバイパス符号化を行ってもよい(方法5-2)。
 図29のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)は、ブロックサイズに関するパラメータが所定の閾値未満である場合(S < TH)、インデックスctxInc = A0が割り当てられてコンテキスト符号化され、ブロックサイズに関するパラメータが所定の閾値以上である場合(S ≧ TH)、インデックスctxInc = A1が割り当てられてコンテキスト符号化され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト符号化され、3ビン目および4ビン目(binIdx = 2...3)は、それぞれ、バイパス符号化(bypass)される。
 さらに、例えば、図30のAに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、ブロックサイズに関するパラメータが所定の閾値以上であるか否か(S < TH?)に応じてコンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の2ビン目および3ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の4ビン目に対してバイパス符号化を行ってもよい(方法5-3)。
 図30のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)は、ブロックサイズに関するパラメータが所定の閾値未満である場合(S < TH)、インデックスctxInc = A0が割り当てられてコンテキスト符号化され、ブロックサイズに関するパラメータが所定の閾値以上である場合(S ≧ TH)、インデックスctxInc = A1が割り当てられてコンテキスト符号化され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト符号化され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト符号化され、4ビン目(binIdx = 3)はバイパス符号化(bypass)される。
 さらに、例えば、図30のBに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、ブロックサイズに関するパラメータが所定の閾値以上であるか否か(S < TH?)に応じてコンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の2ビン目乃至4ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト符号化してもよい(方法5-4)。
 図30のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)は、ブロックサイズに関するパラメータが所定の閾値未満である場合(S < TH)、インデックスctxInc = A0が割り当てられてコンテキスト符号化され、ブロックサイズに関するパラメータが所定の閾値以上である場合(S ≧ TH)、インデックスctxInc = A1が割り当てられてコンテキスト符号化され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト符号化され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト符号化され、4ビン目(binIdx = 3)はインデックスctxInc = B3が割り当てられてコンテキスト符号化される。
 なお、図29および図30の各表において、インデックスA0, A1, B1, B2, B3には、重複しないユニークな値が設定される。
 なお、パラメータSは、ブロックサイズに関するものであればどのようなパラメータであってもよい。
 例えば、パラメータSは、変換ブロックの横幅tbWidthと縦幅tbHeightの積、つまり変換ブロックの面積であってもよい。
  S = tbWidth * tbHeight
 また、パラメータSは、変換ブロックの横幅tbWidthの対数値と縦幅tbHeightの対数値の和、つまり変換ブロックの面積の対数値であってもよい。
  S = log2(tbWidth) + log2(tbHeight)
 さらに、パラメータSは、変換ブロックの横幅tbWidthと縦幅tbHeightの最大値、つまり変換ブロックの長辺のサイズであってもよい。
  S = max(tbWidth, tbHeight)
 また、パラメータSは、変換ブロックの横幅tbWidthと縦幅tbHeightの最小値、つまり変換ブロックの短辺のサイズであってもよい。
  S = min(tbWidth, tbHeight)
 さらに、パラメータSは、変換ブロックの横幅tbWidthの対数値と縦幅tbHeightの対数値の最大値、つまり変換ブロックの長辺のサイズの対数値であってもよい。
  S = max(log2(tbWidth), log2(tbHeight))
 また、パラメータSは、変換ブロックの横幅tbWidthの対数値と縦幅tbHeightの対数値の最小値、つまり変換ブロックの短辺のサイズの対数値であってもよい。
  S = min(log2(tbWidth), log2(tbHeight))
 さらに、パラメータSは、CTUの面積に対する符号化ブロックの面積の比cbSubDivであってもよい。このCTUの面積に対する符号化ブロックの面積の比cbSubDivの値の例を図31の表に示す。
  S = cbSubDiv
 また、パラメータSは、CTUの面積に対する符号化ブロックの面積の比cbSubDivをスケールパラメータshiftの分右ビットシフトした結果であってもよい。なお、このスケールパラメータshiftは、CTUのブロックサイズの対数値と最大変換ブロックサイズの対数値との差であってもよい。また、最大変換ブロックサイズの対数値が5であってもよい。
  S = cbSubDiv >> shift
  shift = (log2CTUSize - log2MaxTsSize)
  log2MaxTsSize = 5
 さらに、パラメータSは、変換ブロックの横幅tbWidthの対数値と縦幅tbHeightの対数値の差の絶対値であってもよい。
  S = abs(log2(tbWidth) - log2(tbHeight))
 これらの各方法のコンテキスト数、コンテキスト符号化ビン数、およびバイパス符号化ビン数の例を図32に示す。この例において、例えば、方法0の場合、コンテキスト数は9、コンテキスト符号化ビン数は4、バイパス符号化ビン数は0であった。これに対して、方法5-1の場合、コンテキスト数は2、コンテキスト符号化ビン数は1、バイパス符号化ビン数は3となる。また、方法5-2の場合、コンテキスト数は3、コンテキスト符号化ビン数は2、バイパス符号化ビン数は2となる。さらに、方法5-3の場合、コンテキスト数は4、コンテキスト符号化ビン数は3、バイパス符号化ビン数は1となる。また、方法5-4の場合、コンテキスト数は5、コンテキスト符号化ビン数は4、バイパス符号化ビン数は0となる。
 このように、方法5-1乃至方法5-4のいずれの場合も、符号化に必要なコンテキスト数を、方法0の場合よりも低減させることができる。つまり、方法5を適用することにより、1ビン目(binIdx = 0)に割り当てていたコンテキスト数を低減させることができる。したがって、メモリ使用量の増大を抑制することができる。
 また、方法5-1乃至方法5-3のいずれの場合も、符号化に必要なコンテキスト符号化ビン数を、方法0の場合よりも低減させることができる。なお、方法5-4の場合、符号化に必要なコンテキスト符号化ビン数は、方法0の場合と同等である。つまり、方法5を適用することにより、選択率が比較的低い変換タイプに対応するビンに対してバイパス符号化を適用することができる。したがって、符号化効率の低下を抑制しながら、コンテキスト符号化ビンの数の増大を抑制し、処理量(スループット)の増大を抑制することができる。
 以上のように、方法5を適用することにより、符号化処理の負荷の増大を抑制することができる。
  <6-2.適応直交変換識別子の復号>
 復号の場合も同様に、図1のBに示される表のように行われていた、画像復号における逆適応直交変換のモードを示す、2値化された適応直交変換識別子のビン列の各ビンへのコンテキスト変数の割り当て(方法0)を、以下のように行う。
 つまり、2値化された適応直交変換識別子ビン列の1ビン目に対して、ブロックサイズに関するパラメータに基づくコンテキスト変数を割り当ててコンテキスト符号化する。
 より具体的には、そのブロックサイズに関するパラメータが所定の閾値以上であるか否かに応じたコンテキスト変数を割り当ててコンテキスト復号する(方法5)。
 例えば、図29のAに示される表のように、2値化された適応直交変換識別子のビン列の1ビン目に対して、ブロックサイズに関するパラメータ(S)が所定の閾値(TH)以上であるか否か(S < TH?)に応じてコンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の2ビン目乃至4ビン目に対してバイパス復号を行ってもよい(方法5-1)。
 図29のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)は、ブロックサイズに関するパラメータが所定の閾値未満である場合(S < TH)、インデックスctxInc = A0が割り当てられてコンテキスト復号され、ブロックサイズに関するパラメータが所定の閾値以上である場合(S ≧ TH)、インデックスctxInc = A1が割り当てられてコンテキスト復号される。また、2ビン目乃至4ビン目(binIdx = 1...3)は、それぞれ、バイパス復号(bypass)される。
 また、例えば、図29のBに示される表のように、2値化された適応直交変換識別子のビン列の1ビン目に対して、ブロックサイズに関するパラメータが所定の閾値以上であるか否か(S < TH?)に応じてコンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の2ビン目に対して、予め定められた所定のコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の3ビン目および4ビン目に対してバイパス復号を行ってもよい(方法5-2)。
 図29のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)は、ブロックサイズに関するパラメータが所定の閾値未満である場合(S < TH)、インデックスctxInc = A0が割り当てられてコンテキスト復号され、ブロックサイズに関するパラメータが所定の閾値以上である場合(S ≧ TH)、インデックスctxInc = A1が割り当てられてコンテキスト復号される。また、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト復号され、3ビン目および4ビン目(binIdx = 2...3)は、それぞれ、バイパス復号(bypass)される。
 さらに、例えば、図30のAに示される表のように、2値化された適応直交変換識別子のビン列の1ビン目に対して、ブロックサイズに関するパラメータが所定の閾値以上であるか否か(S < TH?)に応じてコンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の2ビン目および3ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の4ビン目に対してバイパス復号を行ってもよい(方法5-3)。
 図30のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)は、ブロックサイズに関するパラメータが所定の閾値未満である場合(S < TH)、インデックスctxInc = A0が割り当てられてコンテキスト復号され、ブロックサイズに関するパラメータが所定の閾値以上である場合(S ≧ TH)、インデックスctxInc = A1が割り当てられてコンテキスト復号される。また、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト復号され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト復号され、4ビン目(binIdx = 3)はバイパス復号(bypass)される。
 さらに、例えば、図30のBに示される表のように、2値化された適応直交変換識別子のビン列の1ビン目に対して、ブロックサイズに関するパラメータが所定の閾値以上であるか否か(S < TH?)に応じてコンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の2ビン目乃至4ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト復号してもよい(方法5-4)。
 図25のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)は、ブロックサイズに関するパラメータが所定の閾値未満である場合(S < TH)、インデックスctxInc = A0が割り当てられてコンテキスト復号され、ブロックサイズに関するパラメータが所定の閾値以上である場合(S ≧ TH)、インデックスctxInc = A1が割り当てられてコンテキスト復号される。また、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト復号され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト復号され、4ビン目(binIdx = 3)はインデックスctxInc = B3が割り当てられてコンテキスト復号される。
 なお、復号の場合も符号化の場合と同様に、図29および図30の各表において、インデックスA0, A1, B1, B2, B3には、重複しないユニークな値が設定される。
 また、復号の場合も符号化の場合と同様に、パラメータSは、ブロックサイズに関するものであればどのようなパラメータであってもよい。例えば、<6-1.適応直交変換識別子の符号化>において説明した各種方法により、パラメータSを導出することができるようにしてもよい。
 これらの各方法のコンテキスト数、コンテキスト符号化ビン数、およびバイパス符号化ビン数は、符号化の場合(図32)と同様である。
 このように、方法5-1乃至方法5-4のいずれの場合も、復号に必要なコンテキスト数を、方法0の場合よりも低減させることができる。つまり、方法5を適用することにより、1ビン目(binIdx = 0)に割り当てていたコンテキスト数を低減させることができる。したがって、メモリ使用量の増大を抑制することができる。
 また、方法5-1乃至方法5-3のいずれの場合も、復号に必要なコンテキスト符号化ビン数を、方法0の場合よりも低減させることができる。なお、方法5-4の場合、復号に必要なコンテキスト符号化ビン数は、方法0の場合と同等である。つまり、方法5を適用することにより、選択率が比較的低い変換タイプに対応するビンに対してバイパス復号を適用することができる。したがって、符号化効率の低下を抑制しながら、コンテキスト符号化ビンの数の増大を抑制し、処理量(スループット)の増大を抑制することができる。
 以上のように、方法5を適用することにより、復号処理の負荷の増大を抑制することができる。
  <6-3.符号化側>
   <構成>
 次に、符号化側について説明する。この場合の符号化側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像符号化装置100は、図6を参照して説明した構成と同様の構成を有する。また、この場合の符号化部115は、図7を参照して説明した構成と同様の構成を有する。
   <符号化処理の流れ>
 また、この場合の画像符号化装置100は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像符号化装置100により実行される画像符号化処理は、図8のフローチャートを参照して説明した場合と同様の流れで行われる。
 この場合の符号化部115により実行される、適応直交変換識別子を符号化する符号化処理の流れの例を、図33のフローチャートを参照して説明する。
 この符号化処理において、ステップS451およびステップS452の各処理は、図9のステップS131およびステップS132の各処理と同様に実行される。つまり、この場合、選択部132は、そのビンの供給先としてコンテキスト設定部133を選択する(つまり、コンテキスト符号化を選択する)。例えば、選択部132は、図29および図30に示される表のいずれかに従って(つまり、方法5-1乃至方法5-4のいずれかを適用し)、このビンの符号化方法としてコンテキスト符号化を選択する。
 ステップS453において、コンテキスト設定部133は、そのビンに対して、そのブロックサイズに関するパラメータ(S)が所定の閾値(TH)以上であるか否か(S < TH?)に応じてコンテキスト変数ctx(インデックスctxInc)を割り当てる。
 例えば、ブロックサイズに関するパラメータが所定の閾値未満である場合(S < TH)、コンテキスト設定部133は、そのビンに対して、インデックスctxInc = A0を割り当てる。また、ブロックサイズに関するパラメータが所定の閾値以上である場合(S ≧ TH)、コンテキスト設定部133は、そのビンに対して、インデックスctxInc = A1を割り当てる。
 そして、コンテキスト符号化部134は、そのコンテキスト変数を用いて算術符号化を行う。つまり、コンテキスト符号化を行う。
 ステップS454乃至ステップS458の各処理は、図9のステップS134乃至ステップS138の各処理と同様に実行される。ステップS408において、終了すると判定された場合、符号化処理が終了する。
 このように各処理を実行することにより、符号化部115は、方法5(例えば方法5-1乃至方法5-4のいずれか)を適用して適応直交変換識別子を符号化することができる。したがって、メモリ使用量の増大を抑制することができる。また、処理量(スループット)の増大を抑制することができる。つまり、符号化処理の負荷の増大を抑制することができる。
  <6-4.復号側>
   <構成>
 次に、復号側について説明する。この場合の復号側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像復号装置200は、図10を参照して説明した構成と同様の構成を有する。また、この場合の復号部212は、図11を参照して説明した構成と同様の構成を有する。
   <復号処理の流れ>
 また、この場合の画像復号装置200は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像復号装置200により実行される画像復号処理は、図12のフローチャートを参照して説明した場合と同様の流れで行われる。
 この場合の復号部212により実行される、適応直交変換識別子の符号化データを復号する復号処理の流れの例を、図34のフローチャートを参照して説明する。
 この復号処理において、ステップS471の処理は、図13のステップS231の処理と同様に実行される。つまり、この場合、選択部231は、そのビンの供給先としてコンテキスト設定部232を選択する(つまり、コンテキスト復号を選択する)。例えば、選択部231は、図29および図30に示される表のいずれかに従って(つまり、方法5-1乃至方法5-4のいずれかを適用し)、このビンの復号方法としてコンテキスト復号を選択する。
 ステップS472において、コンテキスト設定部232は、そのビンに対して、そのブロックサイズに関するパラメータ(S)が所定の閾値(TH)以上であるか否か(S < TH?)に応じてコンテキスト変数ctx(インデックスctxInc)を割り当てる。
 例えば、ブロックサイズに関するパラメータが所定の閾値未満である場合(S < TH)、コンテキスト設定部232は、そのビンに対して、インデックスctxInc = A0を割り当てる。また、ブロックサイズに関するパラメータが所定の閾値以上である場合(S ≧ TH)、コンテキスト設定部232は、そのビンに対して、インデックスctxInc = A1を割り当てる。
 そして、コンテキスト復号部233は、そのコンテキスト変数を用いて算術復号を行う。つまり、コンテキスト復号を行う。
 ステップS473乃至ステップS478の各処理は、図13のステップS233乃至ステップS238の各処理と同様に実行される。ステップS478において、終了すると判定された場合、復号処理が終了する。
 このように各処理を実行することにより、復号部212は、方法5(例えば方法5-1乃至方法5-4のいずれか)を適用して適応直交変換識別子の符号化データを復号することができる。したがって、メモリ使用量の増大を抑制することができる。また、処理量(スループット)の増大を抑制することができる。つまり、復号処理の負荷の増大を抑制することができる。
 <7.第6の実施の形態>
  <7-1.適応直交変換識別子の符号化>
 本実施の形態においては、図2のAに示される表のように行われていた、画像符号化における適応直交変換のモードを示す適応直交変換識別子の2値化(方法0)を、以下のように行う。
 つまり、適応直交変換識別子を、変換タイプDCT2xDCT2以外か否かを示す1ビン(1ビット)とその他の変換タイプを示す2ビン(2ビット)により構成されるビン列に2値化して符号化する(方法6)。
 例えば、図35のAに示される表のように、適応直交変換識別子の変換タイプがDCT2xDCT2の場合、1ビン(=0)のビン列に2値化し、適応直交変換識別子の変換タイプがDCT2xDCT2以外の場合、3ビンのビン列に2値化する。
 図35のAの例の場合、適応直交変換識別子mts_idx = 0は、変換タイプがDCT2xDCT2であることを示すビン列「0」に2値化されて符号化される。また、適応直交変換識別子mts_idx = 1は、変換タイプがDCT2xDCT2以外であり、かつ、DST7xDST7であることを示すビン列「100」に2値化されて符号化される。さらに、適応直交変換識別子mts_idx = 2は、変換タイプがDCT2xDCT2以外であり、かつ、DCT8xDST7であることを示すビン列「101」に2値化されて符号化される。また、適応直交変換識別子mts_idx = 3は、変換タイプがDCT2xDCT2以外であり、かつ、DST7xDCT8であることを示すビン列「110」に2値化されて符号化される。さらに、適応直交変換識別子mts_idx = 4は、変換タイプがDCT2xDCT2以外であり、かつ、DCT8xDCT8であることを示すビン列「111」に2値化されて符号化される。
 このように2値化することにより、ビン列の長さ(ビン長)を最大3ビンにすることができる。図2のAの例(方法0)の場合、ビン列の長さ(ビン長)は最大4ビンであったので、方法6を適用することにより、1ビン短くすることができる。
 なお、このビン列は、図35のBに示される表のように、変換タイプDCT2xDCT2以外であるか否かを示す1ビンのプレフィックス部と、その他の変換タイプを示す2ビンのサフィックス部に分けて2値化してもよい。
 また、この方法6による2値化により生成された適応直交変換識別子のビン列の各ビンには、上述した方法0乃至方法5のいずれの方法でコンテキストを割り当て符号化してもよい。
 例えば、図36のAに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、予め定められた所定のコンテキスト変数ctx(インデックスctxInc)、すなわち、固定の(1対1に対応する)コンテキスト変数ctxを割り当ててコンテキスト符号化し、そのビン列の2ビン目および3ビン目に対してバイパス符号化を行ってもよい(方法1-1)。
 図36のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はインデックスctxInc = A0が割り当てられてコンテキスト符号化され、2ビン目および3ビン目(binIdx = 1...2)は、それぞれ、バイパス符号化(bypass)される。
 また、例えば、図36のBに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目および2ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の3ビン目に対してバイパス符号化を行ってもよい(方法1-2)。
 図36のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はインデックスctxInc = A0が割り当てられてコンテキスト符号化され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト符号化され、3ビン目(binIdx = 2)は、バイパス符号化(bypass)される。
 さらに、例えば、図36のCに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目乃至3ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト符号化してもよい(方法1-3)。
 図36のCの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はインデックスctxInc = A0が割り当てられてコンテキスト符号化され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト符号化され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト符号化される。
 なお、図36の各表において、インデックスA0, B1, B2には、重複しないユニークな値が設定される。
 これらの各方法のコンテキスト数、コンテキスト符号化ビン数、バイパス符号化ビン数、およびワーストケース時のビン長の例を図37の表に示す。例えば、方法0の場合、ワーストケース時のビン長は4である。したがって、コンテキスト数は9、コンテキスト符号化ビン数は4、バイパス符号化ビン数は0であった。これに対して、方法6と方法1-1を組み合わせた場合(方法6-1)、ワーストケース時のビン長は3である。したがって、コンテキスト数は2、コンテキスト符号化ビン数は1、バイパス符号化ビン数は2となる。また、方法6と方法1-2を組み合わせた場合(方法6-2)、ワーストケース時のビン長は3である。したがって、コンテキスト数は3、コンテキスト符号化ビン数は2、バイパス符号化ビン数は1となる。さらに、方法6と方法1-3を組み合わせた場合(方法6-3)、ワーストケース時のビン長は3である。したがって、コンテキスト数は4、コンテキスト符号化ビン数は3、バイパス符号化ビン数は0となる。
 このように、方法6-1乃至方法6-3のいずれの場合も、符号化に必要なコンテキスト数を、方法0の場合よりも低減させることができる。つまり、方法6を適用することにより、ワーストケース時のビン長を低減させ、さらに、方法1を適用することにより、1ビン目(binIdx = 0)に割り当てていたコンテキスト数を低減させることができる。したがって、メモリ使用量の増大を抑制することができる。
 また、方法6-1乃至方法6-3のいずれの場合も、符号化に必要なコンテキスト符号化ビン数を、方法0の場合よりも低減させることができる。つまり、方法6を適用することにより、ワーストケース時のビン長を低減させ、さらに、方法1を適用することにより、選択率が比較的低い変換タイプに対応するビンに対してバイパス符号化を適用することができる。したがって、符号化効率の低下を抑制しながら、コンテキスト符号化ビンの数の増大を抑制し、処理量(スループット)の増大を抑制することができる。
 なお、方法6に対して、方法1の代わりに他の方法(例えば方法2乃至方法5のいずれか)を組み合わせることにより、方法6の効果と、それらの方法の効果とを組み合わせることができる。したがって、いずれの場合も、メモリ使用量や処理量(スループット)の増大を抑制することができる。
 以上のように、方法6を適用することにより、符号化処理の負荷の増大を抑制することができる。
  <7-2.適応直交変換識別子の復号>
 本実施の形態においては、図2のAに示される表のように行われていた、画像復号における逆適応直交変換のモードを示す適応直交変換識別子の逆2値化(方法0)を、以下のように行う。
 つまり、復号して得られる、変換タイプDCT2xDCT2以外か否かを示す1ビン(1ビット)とその他の変換タイプを示す2ビン(2ビット)により構成されるビン列を逆2値化して適応直交変換識別子を導出する(方法6)。
 例えば、図35のAに示される表のように、1ビン(=0)のビン列を逆2値化して変換タイプがDCT2xDCT2の適応直交変換識別子を導出し、3ビンのビン列を逆2値化して変換タイプがDCT2xDCT2以外の適応直交変換識別子を導出する。
 図35のAの例の場合、符号化データが復号されて得られるビン列「0」が逆2値化されて、変換タイプがDCT2xDCT2であることを示す適応直交変換識別子mts_idx = 0が導出される。また、符号化データが復号されて得られるビン列「100」が逆2値化されて、変換タイプがDCT2xDCT2以外であり、かつ、DST7xDST7であることを示す適応直交変換識別子mts_idx = 1が導出される。さらに、符号化データが復号されて得られるビン列「101」が逆2値化されて、変換タイプがDCT2xDCT2以外であり、かつ、DCT8xDST7であることを示す適応直交変換識別子mts_idx = 2が導出される。また、符号化データが復号されて得られるビン列「110」が逆2値化されて、変換タイプがDCT2xDCT2以外であり、かつ、DST7xDCT8であることを示す適応直交変換識別子mts_idx = 3が導出される。さらに、符号化データが復号されて得られるビン列「111」が逆2値化されて、変換タイプがDCT2xDCT2以外であり、かつ、DCT8xDCT8であることを示す適応直交変換識別子mts_idx = 4が導出される。
 このように逆2値化することにより、ビン列の長さ(ビン長)を最大3ビンにすることができる。図2のAの例(方法0)の場合、ビン列の長さ(ビン長)は最大4ビンであったので、方法6を適用することにより、1ビン短くすることができる。
 なお、このビン列は、図35のBに示される表のように、変換タイプDCT2xDCT2以外であるか否かを示す1ビンのプレフィックス部と、その他の変換タイプを示す2ビンのサフィックス部に分けて逆2値化してもよい。
 また、この方法6の逆2値化を適用する場合、ビン列の各ビンには、上述した方法0乃至方法5のいずれかの方法でコンテキストを割り当て復号してもよい。
 例えば、図36のAに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、予め定められた所定のコンテキスト変数ctx(インデックスctxInc)、すなわち、固定の(1対1に対応する)コンテキスト変数ctxを割り当ててコンテキスト復号し、そのビン列の2ビン目および3ビン目に対してバイパス復号を行ってもよい(方法1-1)。
 図36のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はインデックスctxInc = A0が割り当てられてコンテキスト復号され、2ビン目および3ビン目(binIdx = 1...2)は、それぞれ、バイパス復号(bypass)される。
 また、例えば、図36のBに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目および2ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の3ビン目に対してバイパス復号を行ってもよい(方法1-2)。
 図36のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はインデックスctxInc = A0が割り当てられてコンテキスト復号され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト復号され、3ビン目(binIdx = 2)は、バイパス復号(bypass)される。
 さらに、例えば、図36のCに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目乃至3ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト復号してもよい(方法1-3)。
 図36のCの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)はインデックスctxInc = A0が割り当てられてコンテキスト復号され、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト復号され、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト復号される。
 なお、図36の各表において、インデックスA0, B1, B2には、重複しないユニークな値が設定される。
 これらの各方法のコンテキスト数、コンテキスト符号化ビン数、バイパス符号化ビン数、およびワーストケース時のビン長は、符号化の場合(図37)と同様である。
 このように、方法6-1乃至方法6-3のいずれの場合も、復号に必要なコンテキスト数を、方法0の場合よりも低減させることができる。つまり、方法6を適用することにより、ワーストケース時のビン長を低減させ、さらに、方法1を適用することにより、1ビン目(binIdx = 0)に割り当てていたコンテキスト数を低減させることができる。したがって、メモリ使用量の増大を抑制することができる。
 また、方法6-1乃至方法6-3のいずれの場合も、復号に必要なコンテキスト符号化ビン数を、方法0の場合よりも低減させることができる。つまり、方法6を適用することにより、ワーストケース時のビン長を低減させ、さらに、方法1を適用することにより、選択率が比較的低い変換タイプに対応するビンに対してバイパス復号を適用することができる。したがって、符号化効率の低下を抑制しながら、コンテキスト符号化ビンの数の増大を抑制し、処理量(スループット)の増大を抑制することができる。
 なお、方法6に対して、方法1の代わりに他の方法(例えば方法2乃至方法5のいずれか)を組み合わせることにより、方法6の効果と、それらの方法の効果とを組み合わせることができる。したがって、いずれの場合も、メモリ使用量や処理量(スループット)の増大を抑制することができる。
 以上のように、方法6を適用することにより、復号処理の負荷の増大を抑制することができる。
  <7-3.符号化側>
   <構成>
 次に、符号化側について説明する。この場合の符号化側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像符号化装置100は、図6を参照して説明した構成と同様の構成を有する。また、この場合の符号化部115は、図7を参照して説明した構成と同様の構成を有する。
   <符号化処理の流れ>
 また、この場合の画像符号化装置100は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像符号化装置100により実行される画像符号化処理は、図8のフローチャートを参照して説明した場合と同様の流れで行われる。
 この場合の符号化部115により実行される、適応直交変換識別子を符号化する符号化処理の流れの例を、図38のフローチャートを参照して説明する。
 符号化処理が開始されると、符号化部115の2値化部131は、ステップS501において、適応直交変換識別子mts_idxを、変換タイプDCT2xDCT2以外であるか否かを示す1ビン(1ビット)とその他の変換タイプを示す2ビン(2ビット)により構成されるビン列に2値化する。
 ステップS502乃至ステップS508の各処理は、図9のステップS132乃至ステップS138の各処理と同様に実行される。
 このように各処理を実行することにより、符号化部115は、方法6を適用して適応直交変換識別子を2値化し、方法1(例えば方法1-1乃至方法1-3のいずれか)を適用してそのビン列を符号化することができる。したがって、メモリ使用量の増大を抑制することができる。また、処理量(スループット)の増大を抑制することができる。つまり、符号化処理の負荷の増大を抑制することができる。
  <7-4.復号側>
   <構成>
 次に、復号側について説明する。この場合の復号側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像復号装置200は、図10を参照して説明した構成と同様の構成を有する。また、この場合の復号部212は、図11を参照して説明した構成と同様の構成を有する。
   <復号処理の流れ>
 また、この場合の画像復号装置200は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像復号装置200により実行される画像復号処理は、図12のフローチャートを参照して説明した場合と同様の流れで行われる。
 この場合の復号部212により実行される、適応直交変換識別子の符号化データを復号する復号処理の流れの例を、図39のフローチャートを参照して説明する。
 この復号処理において、ステップS521乃至ステップS526の各処理は、図13のステップS231乃至ステップS236の各処理と同様に実行される。
 ステップS527において、逆2値化部235は、変換タイプDCT2xDCT2以外であるか否かを示す1ビン(1ビット)とその他の変換タイプを示す2ビン(2ビット)により構成されるビン列を逆2値化し、適応直交変換識別子mts_idxを導出する。
 ステップS528において、復号部212は、適応直交変換識別子mts_idxの復号を終了するか否かを判定する。終了しないと判定された場合、処理はステップS523に戻り、それ以降の処理が繰り返される。また、ステップS528において、終了すると判定された場合、復号処理が終了する。
 このように各処理を実行することにより、復号部212は、方法1(例えば方法1-1乃至方法1-3のいずれか)を適用して適応直交変換識別子の符号化データを復号し、そのビン列を導出することができる。また、復号部212は、方法6を適用して、そのビン列を逆2値化し、適応直交変換識別子を導出することができる。したがって、メモリ使用量の増大を抑制することができる。また、処理量(スループット)の増大を抑制することができる。つまり、復号処理の負荷の増大を抑制することができる。
 <8.第7の実施の形態>
  <8-1.変換スキップフラグおよび適応直交変換識別子の符号化>
 非特許文献1に記載の方法の場合、変換スキップを適用するか否かを示す変換スキップフラグtransform_skip_flagや適応直交変換識別子tu_mits_idxは、輝度限定(4:2:0フォーマット限定)であった。
 そこで、クロマアレイタイプが1より大きい場合(つまり、色差フォーマットが4:2:2または4:4:4の場合)、色差成分においても、変換スキップや適応直交変換を適用することができるように、コンポーネントID(cIdx)毎に、変換スキップフラグや適応直交変換識別子をシグナリング(符号化・復号)する(方法7)。
 その場合の、変換ユニット(transform_unit)のシンタックスの例を図40に示す。図40に示されるように、このシンタックスの上から17行目、20行目、23行目(グレー地の行)に示されるように、輝度(Y)、色差(Cb)、色差(Cr)毎に変換モード(transform_mode)がシグナリングされる。この場合の、変換モード(transform_mode)のシンタックスの例を図41に示す。図41に示されるように、このシンタックスの上から5行目(グレー地の行)において、変換スキップフラグtransform_skip_flag[x0][y0][cIdx]がシグナリングされる。また、このシンタックスの上から8行目(グレー地の行)において、適応直交変換識別子tu_mts_idx[x0][y0][cIdx]がシグナリングされる。つまり、変換スキップフラグおよび適応直交変換識別子がコンポーネントID(cIdx)毎にシグナリングされる。
 このようにすることにより、色差フォーマット4:2:0よりも情報量の多い色差フォーマット4:2:2や4:4:4の色差に対して、適応直交変換の適用を制御することができる。したがって、符号化効率の低下を抑制することができる。
 そして、その場合において、適応直交変換識別子を2値化したビン列の1ビン目(binIdx = 0)に対して、変換ブロックのコンポーネントID(cIdx)が0であるか否かに応じてコンテキスト変数ctxを割り当て、コンテキスト符号化してもよい。
 例えば、図42のAに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、変換ブロックのコンポーネントID(cIdx)が0であるか否か((cIdx == 0)?)に応じてコンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の2ビン目乃至4ビン目に対してバイパス符号化を行ってもよい(方法7-1)。
 図42のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)は、変換ブロックのコンポーネントID(cIdx)が0である場合(cIdx == 0)、インデックスctxInc = A0が割り当てられてコンテキスト符号化され、変換ブロックのコンポーネントID(cIdx)が0でない場合(cIdx > 0)、インデックスctxInc = A1が割り当てられてコンテキスト符号化される。また、2ビン目乃至4ビン目(binIdx = 1...3)は、それぞれ、バイパス符号化(bypass)される。
 また、例えば、図42のBに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、変換ブロックのコンポーネントID(cIdx)が0であるか否か((cIdx == 0)?)に応じてコンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の2ビン目に対して、予め定められた所定のコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト符号化し、3ビン目および4ビン目に対してバイパス符号化を行ってもよい(方法7-2)。
 図42のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)は、変換ブロックのコンポーネントID(cIdx)が0である場合(cIdx == 0)、インデックスctxInc = A0が割り当てられてコンテキスト符号化され、変換ブロックのコンポーネントID(cIdx)が0でない場合(cIdx > 0)、インデックスctxInc = A1が割り当てられてコンテキスト符号化される。また、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト符号化される。さらに、3ビン目および4ビン目(binIdx = 2...3)は、それぞれ、バイパス符号化(bypass)される。
 さらに、例えば、図43のAに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、変換ブロックのコンポーネントID(cIdx)が0であるか否か((cIdx == 0)?)に応じてコンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の2ビン目および3ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト符号化し、4ビン目に対してバイパス符号化を行ってもよい(方法7-3)。
 図43のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)は、変換ブロックのコンポーネントID(cIdx)が0である場合(cIdx == 0)、インデックスctxInc = A0が割り当てられてコンテキスト符号化され、変換ブロックのコンポーネントID(cIdx)が0でない場合(cIdx > 0)、インデックスctxInc = A1が割り当てられてコンテキスト符号化される。また、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト符号化される。さらに、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト符号化される。また、4ビン目(binIdx = 3)は、バイパス符号化(bypass)される。
 また、例えば、図43のBに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、変換ブロックのコンポーネントID(cIdx)が0であるか否か((cIdx == 0)?)に応じてコンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト符号化し、そのビン列の2ビン目乃至4ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト符号化してもよい(方法7-4)。
 図43のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)は、変換ブロックのコンポーネントID(cIdx)が0である場合(cIdx == 0)、インデックスctxInc = A0が割り当てられてコンテキスト符号化され、変換ブロックのコンポーネントID(cIdx)が0でない場合(cIdx > 0)、インデックスctxInc = A1が割り当てられてコンテキスト符号化される。また、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト符号化される。さらに、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト符号化される。また、4ビン目(binIdx = 3)はインデックスctxInc = B3が割り当てられてコンテキスト符号化される。
 なお、図42および図43の各表において、インデックスA0, A1, B1, B2, B3には、重複しないユニークな値が設定される。
 これらの各方法のコンテキスト数、コンテキスト符号化ビン数、およびバイパス符号化ビン数の例を図44の表に示す。例えば、方法0の場合、コンテキスト数は9、コンテキスト符号化ビン数は4、バイパス符号化ビン数は0であった。これに対して、方法7-1の場合、コンテキスト数は2、コンテキスト符号化ビン数は1、バイパス符号化ビン数は3となる。また、方法7-2の場合、コンテキスト数は3、コンテキスト符号化ビン数は2、バイパス符号化ビン数は2となる。さらに、方法7-3の場合、コンテキスト数は4、コンテキスト符号化ビン数は3、バイパス符号化ビン数は1となる。また、方法7-4の場合、コンテキスト数は5、コンテキスト符号化ビン数は4、バイパス符号化ビン数は0となる。
 このように、方法7-1乃至方法7-4のいずれの場合も、符号化に必要なコンテキスト数を、方法0の場合よりも低減させることができる。つまり、方法7を適用することにより、1ビン目(binIdx = 0)に割り当てていたコンテキスト数を低減させることができる。したがって、メモリ使用量の増大を抑制することができる。
 また、方法7-1乃至方法7-3のいずれの場合も、符号化に必要なコンテキスト符号化ビン数を、方法0の場合よりも低減させることができる。なお、方法7-4の場合、符号化に必要なコンテキスト符号化ビン数は、方法0の場合と同等である。つまり、方法7を適用することにより、選択率が比較的低い変換タイプに対応するビンに対してバイパス符号化を適用することができる。したがって、符号化効率の低下を抑制しながら、コンテキスト符号化ビンの数の増大を抑制し、処理量(スループット)の増大を抑制することができる。
 そして上述したように、色差フォーマット4:2:0よりも情報量の多い色差フォーマット4:2:2や4:4:4の色差に対して、適応直交変換の適用を制御することができる。したがって、符号化効率の低下を抑制することができる。
 以上のように、方法7を適用することにより、符号化処理の負荷の増大を抑制することができる。
 なお、色コンポーネントID(cIdx)の代わりに、treeType毎に、変換スキップや適応直交変換の制御パラメータをシグナリング(符号化)してもよい。つまり、各制御パラメータの[cIdx]を[treeType]に置き換えればよい。
 また、上述した適応直交変換識別子mts_idxのビン列の各ビンに対するコンテキスト変数の割り当て方法は、直交変換等に関連する他のシンタックス要素にも適用することができる。例えば、セカンダリ変換識別子st_idxや変換スキップフラグts_flagに対しても適用することができる。
  <8-2.変換スキップフラグおよび適応直交変換識別子の復号>
 復号の場合も同様に、クロマアレイタイプが1より大きい場合(つまり、色差フォーマットが4:2:2または4:4:4の場合)、色差成分においても、変換スキップや適応直交変換を適用することができるように、コンポーネントID(cIdx)毎に、変換スキップフラグや適応直交変換識別子をシグナリング(復号)する(方法7)。
 その場合の、変換ユニット(transform_unit)のシンタックスの例を図40に示す。図40に示されるように、このシンタックスの上から17行目、20行目、23行目(グレー地の行)に示されるように、輝度(Y)、色差(Cb)、色差(Cr)毎に変換モード(transform_mode)がシグナリングされる。この場合の、変換モード(transform_mode)のシンタックスの例を図41に示す。図41に示されるように、このシンタックスの上から5行目(グレー地の行)において、変換スキップフラグtransform_skip_flag[x0][y0][cIdx]がシグナリングされる。また、このシンタックスの上から8行目(グレー地の行)において、適応直交変換識別子tu_mts_idx[x0][y0][cIdx]がシグナリングされる。つまり、変換スキップフラグおよび適応直交変換識別子がコンポーネントID(cIdx)毎にシグナリングされる。
 このようにすることにより、色差フォーマット4:2:0よりも情報量の多い色差フォーマット4:2:2や4:4:4の色差に対しても、逆適応直交変換の適用を制御することができる。したがって、符号化効率の低下を抑制することができる。
 そして、その場合において、2値化された適応直交変換識別子のビン列の1ビン目(binIdx = 0)に対して、変換ブロックのコンポーネントID(cIdx)が0であるか否かに応じてコンテキスト変数ctxを割り当て、コンテキスト復号してもよい。
 例えば、図42のAに示される表のように、2値化された適応直交変換識別子のビン列の1ビン目に対して、変換ブロックのコンポーネントID(cIdx)が0であるか否か((cIdx == 0)?)に応じてコンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の2ビン目乃至4ビン目に対してバイパス復号を行ってもよい(方法7-1)。
 図42のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)は、変換ブロックのコンポーネントID(cIdx)が0である場合(cIdx == 0)、インデックスctxInc = A0が割り当てられてコンテキスト復号され、変換ブロックのコンポーネントID(cIdx)が0でない場合(cIdx > 0)、インデックスctxInc = A1が割り当てられてコンテキスト復号される。また、2ビン目乃至4ビン目(binIdx = 1...3)は、それぞれ、バイパス復号(bypass)される。
 また、例えば、図42のBに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、変換ブロックのコンポーネントID(cIdx)が0であるか否か((cIdx == 0)?)に応じてコンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の2ビン目に対して、予め定められた所定のコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト復号し、3ビン目および4ビン目に対してバイパス復号を行ってもよい(方法7-2)。
 図42のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)は、変換ブロックのコンポーネントID(cIdx)が0である場合(cIdx == 0)、インデックスctxInc = A0が割り当てられてコンテキスト復号され、変換ブロックのコンポーネントID(cIdx)が0でない場合(cIdx > 0)、インデックスctxInc = A1が割り当てられてコンテキスト復号される。また、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト復号される。さらに、3ビン目および4ビン目(binIdx = 2...3)は、それぞれ、バイパス復号(bypass)される。
 さらに、例えば、図43のAに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、変換ブロックのコンポーネントID(cIdx)が0であるか否か((cIdx == 0)?)に応じてコンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の2ビン目および3ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト復号し、4ビン目に対してバイパス復号を行ってもよい(方法7-3)。
 図43のAの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)は、変換ブロックのコンポーネントID(cIdx)が0である場合(cIdx == 0)、インデックスctxInc = A0が割り当てられてコンテキスト復号され、変換ブロックのコンポーネントID(cIdx)が0でない場合(cIdx > 0)、インデックスctxInc = A1が割り当てられてコンテキスト復号される。また、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト復号される。さらに、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト復号される。また、4ビン目(binIdx = 3)は、バイパス復号(bypass)される。
 また、例えば、図43のBに示される表のように、適応直交変換識別子を2値化したビン列の1ビン目に対して、変換ブロックのコンポーネントID(cIdx)が0であるか否か((cIdx == 0)?)に応じてコンテキスト変数ctx(インデックスctxInc)を割り当ててコンテキスト復号し、そのビン列の2ビン目乃至4ビン目に対して、予め定められた互いに異なるコンテキスト変数(インデックスctxInc)を割り当ててコンテキスト復号してもよい(方法7-4)。
 図43のBの例の場合、適応直交変換識別子のビン列の1ビン目(binIdx = 0)は、変換ブロックのコンポーネントID(cIdx)が0である場合(cIdx == 0)、インデックスctxInc = A0が割り当てられてコンテキスト復号され、変換ブロックのコンポーネントID(cIdx)が0でない場合(cIdx > 0)、インデックスctxInc = A1が割り当てられてコンテキスト復号される。また、2ビン目(binIdx = 1)はインデックスctxInc = B1が割り当てられてコンテキスト復号される。さらに、3ビン目(binIdx = 2)はインデックスctxInc = B2が割り当てられてコンテキスト復号される。また、4ビン目(binIdx = 3)はインデックスctxInc = B3が割り当てられてコンテキスト復号される。
 なお、図42および図43の各表において、インデックスA0, A1, B1, B2, B3には、重複しないユニークな値が設定される。
 これらの各方法のコンテキスト数、コンテキスト符号化ビン数、およびバイパス符号化ビン数は、符号化の場合(図44)と同様である。
 このように、方法7-1乃至方法7-4のいずれの場合も、復号に必要なコンテキスト数を、方法0の場合よりも低減させることができる。つまり、方法7を適用することにより、1ビン目(binIdx = 0)に割り当てていたコンテキスト数を低減させることができる。したがって、メモリ使用量の増大を抑制することができる。
 また、方法7-1乃至方法7-3のいずれの場合も、復号に必要なコンテキスト符号化ビン数を、方法0の場合よりも低減させることができる。なお、方法7-4の場合、復号に必要なコンテキスト符号化ビン数は、方法0の場合と同等である。つまり、方法7を適用することにより、選択率が比較的低い変換タイプに対応するビンに対してバイパス復号を適用することができる。したがって、符号化効率の低下を抑制しながら、コンテキスト符号化ビンの数の増大を抑制し、処理量(スループット)の増大を抑制することができる。
 そして上述したように、色差フォーマット4:2:0よりも情報量の多い色差フォーマット4:2:2や4:4:4の色差に対して、逆適応直交変換の適用を制御することができる。したがって、符号化効率の低下を抑制することができる。
 以上のように、方法7を適用することにより、復号処理の負荷の増大を抑制することができる。
 なお、色コンポーネントID(cIdx)の代わりに、treeType毎に、変換スキップや適応直交変換の制御パラメータをシグナリング(復号)してもよい。つまり、各制御パラメータの[cIdx]を[treeType]に置き換えればよい。
 また、上述した適応直交変換識別子mts_idxのビン列の各ビンに対するコンテキスト変数の割り当て方法は、直交変換等に関連する他のシンタックス要素にも適用することができる。例えば、セカンダリ変換識別子st_idxや変換スキップフラグts_flagに対しても適用することができる。
  <8-3.符号化側>
   <構成>
 次に、符号化側について説明する。この場合の符号化側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像符号化装置100は、図6を参照して説明した構成と同様の構成を有する。また、この場合の符号化部115は、図7を参照して説明した構成と同様の構成を有する。
   <符号化処理の流れ>
 また、この場合の画像符号化装置100は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像符号化装置100により実行される画像符号化処理は、図8のフローチャートを参照して説明した場合と同様の流れで行われる。
 この場合の符号化部115により実行される、適応直交変換識別子を符号化する符号化処理の流れの例を、図45のフローチャートを参照して説明する。
 この符号化処理において、ステップS551およびステップS552の各処理は、図9のステップS131およびステップS132の各処理と同様に実行される。つまり、この場合、選択部132は、そのビンの供給先としてコンテキスト設定部133を選択する(つまり、コンテキスト符号化を選択する)。例えば、選択部132は、図42および図43に示される表のいずれかに従って(つまり、方法7-1乃至方法7-4のいずれかを適用し)、このビンの符号化方法としてコンテキスト符号化を選択する。
 ステップS553において、コンテキスト設定部133は、そのビンに対して、コンポーネントが輝度(Y)であるか否か((cIdx == 0)?)に応じてコンテキスト変数ctx(インデックスctxInc)を割り当てる。
 例えば、コンポーネントが輝度(Y)である場合(cIdx == 0)、コンテキスト設定部133は、そのビンに対して、インデックスctxInc = A0を割り当てる。また、コンポーネントが輝度(Y)でない場合(cIdx > 0)、コンテキスト設定部133は、そのビンに対して、インデックスctxInc = A1を割り当てる。
 そして、コンテキスト符号化部134は、そのコンテキスト変数を用いて算術符号化を行う。つまり、コンテキスト符号化を行う。
 ステップS554乃至ステップS558の各処理は、図9のステップS134乃至ステップS138の各処理と同様に実行される。ステップS558において、終了すると判定された場合、符号化処理が終了する。
 このように各処理を実行することにより、符号化部115は、方法7(例えば方法7-1乃至方法7-4のいずれか)を適用して適応直交変換識別子を符号化することができる。したがって、メモリ使用量の増大を抑制することができる。また、処理量(スループット)の増大を抑制することができる。つまり、符号化処理の負荷の増大を抑制することができる。
  <8-4.復号側>
   <構成>
 次に、復号側について説明する。この場合の復号側の構成は、第1の実施の形態の場合と同様である。つまり、この場合の画像復号装置200は、図10を参照して説明した構成と同様の構成を有する。また、この場合の復号部212は、図11を参照して説明した構成と同様の構成を有する。
   <復号処理の流れ>
 また、この場合の画像復号装置200は、第1の実施の形態の場合と基本的に同様の処理を行う。つまり、この場合の画像復号装置200により実行される画像復号処理は、図12のフローチャートを参照して説明した場合と同様の流れで行われる。
 この場合の復号部212により実行される、適応直交変換識別子の符号化データを復号する復号処理の流れの例を、図46のフローチャートを参照して説明する。
 この復号処理において、ステップS571の処理は、図13のステップS231の処理と同様に実行される。つまり、この場合、選択部231は、そのビンの供給先としてコンテキスト設定部232を選択する(つまり、コンテキスト復号を選択する)。例えば、選択部231は、図42および図43に示される表のいずれかに従って(つまり、方法7-1乃至方法7-4のいずれかを適用し)、このビンの復号方法としてコンテキスト復号を選択する。
 ステップS572において、コンテキスト設定部232は、そのビンに対して、コンポーネントが輝度(Y)であるか否か((cIdx == 0)?)に応じてコンテキスト変数ctx(インデックスctxInc)を割り当てる。
 例えば、コンポーネントが輝度(Y)である場合(cIdx == 0)、コンテキスト設定部232は、そのビンに対して、インデックスctxInc = A0を割り当てる。また、コンポーネントが輝度(Y)でない場合(cIdx > 0)、コンテキスト設定部232は、そのビンに対して、インデックスctxInc = A1を割り当てる。
 そして、コンテキスト復号部233は、そのコンテキスト変数を用いて算術復号を行う。つまり、コンテキスト復号を行う。
 ステップS573乃至ステップS578の各処理は、図13のステップS233乃至ステップS238の各処理と同様に実行される。ステップS578において、終了すると判定された場合、復号処理が終了する。
 このように各処理を実行することにより、復号部212は、方法7(例えば方法7-1乃至方法7-4のいずれか)を適用して適応直交変換識別子の符号化データを復号することができる。したがって、メモリ使用量の増大を抑制することができる。また、処理量(スループット)の増大を抑制することができる。つまり、復号処理の負荷の増大を抑制することができる。
 <9.付記>
  <組み合わせ>
 以上の各実施の形態において説明した本技術は、矛盾が生じない限り、他の任意の実施の形態において説明した本技術と組み合わせて適用することができる。
  <コンピュータ>
 上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
 図47は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
 図47に示されるコンピュータ800において、CPU(Central Processing Unit)801、ROM(Read Only Memory)802、RAM(Random Access Memory)803は、バス804を介して相互に接続されている。
 バス804にはまた、入出力インタフェース810も接続されている。入出力インタフェース810には、入力部811、出力部812、記憶部813、通信部814、およびドライブ815が接続されている。
 入力部811は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部812は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部813は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部814は、例えば、ネットワークインタフェースよりなる。ドライブ815は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア821を駆動する。
 以上のように構成されるコンピュータでは、CPU801が、例えば、記憶部813に記憶されているプログラムを、入出力インタフェース810およびバス804を介して、RAM803にロードして実行することにより、上述した一連の処理が行われる。RAM803にはまた、CPU801が各種の処理を実行する上において必要なデータなども適宜記憶される。
 コンピュータが実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア821に記録して適用することができる。その場合、プログラムは、リムーバブルメディア821をドライブ815に装着することにより、入出力インタフェース810を介して、記憶部813にインストールすることができる。
 また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部814で受信し、記憶部813にインストールすることができる。
 その他、このプログラムは、ROM802や記憶部813に、あらかじめインストールしておくこともできる。
  <情報・処理の単位>
 以上において説明した各種情報が設定されるデータ単位や、各種処理が対象とするデータ単位は、それぞれ任意であり上述した例に限定されない。例えば、これらの情報や処理が、それぞれ、TU(Transform Unit)、TB(Transform Block)、PU(Prediction Unit)、PB(Prediction Block)、CU(Coding Unit)、LCU(Largest Coding Unit)、サブブロック、ブロック、タイル、スライス、ピクチャ、シーケンス、またはコンポーネント毎に設定されるようにしてもよいし、それらのデータ単位のデータを対象とするようにしてもよい。もちろん、このデータ単位は、情報や処理毎に設定され得るものであり、全ての情報や処理のデータ単位が統一されている必要はない。なお、これらの情報の格納場所は任意であり、上述したデータ単位のヘッダやパラメータセット等に格納されるようにしてもよい。また、複数個所に格納されるようにしてもよい。
  <制御情報>
 以上の各実施の形態において説明した本技術に関する制御情報を符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可(または禁止)するか否かを制御する制御情報(例えばenabled_flag)を伝送するようにしてもよい。また、例えば、上述した本技術を適用する対象(または適用しない対象)を示す制御情報(例えばpresent_flag)を伝送するようにしてもよい。例えば、本技術を適用する(または、適用を許可若しくは禁止する)ブロックサイズ(上限若しくは下限、またはその両方)、フレーム、コンポーネント、またはレイヤ等を指定する制御情報を伝送するようにしてもよい。
  <本技術の適用対象>
 本技術は、任意の画像符号化・復号方式に適用することができる。つまり、上述した本技術と矛盾しない限り、変換(逆変換)、量子化(逆量子化)、符号化(復号)、予測等、画像符号化・復号に関する各種処理の仕様は任意であり、上述した例に限定されない。また、上述した本技術と矛盾しない限り、これらの処理の内の一部を省略してもよい。
 また本技術は、複数の視点(ビュー(view))の画像を含む多視点画像の符号化・復号を行う多視点画像符号化・復号システムに適用することができる。その場合、各視点(ビュー(view))の符号化・復号において、本技術を適用するようにすればよい。
 さらに本技術は、所定のパラメータについてスケーラビリティ(scalability)機能を有するように複数レイヤ化(階層化)された階層画像の符号化・復号を行う階層画像符号化(スケーラブル符号化)・復号システムに適用することができる。その場合、各階層(レイヤ)の符号化・復号において、本技術を適用するようにすればよい。
 また、以上においては、本技術の適用例として、画像符号化装置100および画像復号装置200について説明したが、本技術は、任意の構成に適用することができる。
 例えば、本技術は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信などにおける送信機や受信機(例えばテレビジョン受像機や携帯電話機)、または、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録したり、これら記憶媒体から画像を再生したりする装置(例えばハードディスクレコーダやカメラ)などの、様々な電子機器に応用され得る。
 また、例えば、本技術は、システムLSI(Large Scale Integration)等としてのプロセッサ(例えばビデオプロセッサ)、複数のプロセッサ等を用いるモジュール(例えばビデオモジュール)、複数のモジュール等を用いるユニット(例えばビデオユニット)、または、ユニットにさらにその他の機能を付加したセット(例えばビデオセット)等、装置の一部の構成として実施することもできる。
 また、例えば、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。例えば、本技術を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングとして実施するようにしてもよい。例えば、コンピュータ、AV(Audio Visual)機器、携帯型情報処理端末、IoT(Internet of Things)デバイス等の任意の端末に対して、画像(動画像)に関するサービスを提供するクラウドサービスにおいて本技術を実施するようにしてもよい。
 なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
  <本技術を適用可能な分野・用途>
 本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
 例えば、本技術は、観賞用コンテンツ等の提供の用に供されるシステムやデバイスに適用することができる。また、例えば、本技術は、交通状況の監理や自動運転制御等、交通の用に供されるシステムやデバイスにも適用することができる。さらに、例えば、本技術は、セキュリティの用に供されるシステムやデバイスにも適用することができる。また、例えば、本技術は、機械等の自動制御の用に供されるシステムやデバイスに適用することができる。さらに、例えば、本技術は、農業や畜産業の用に供されるシステムやデバイスにも適用することができる。また、本技術は、例えば火山、森林、海洋等の自然の状態や野生生物等を監視するシステムやデバイスにも適用することができる。さらに、例えば、本技術は、スポーツの用に供されるシステムやデバイスにも適用することができる。
  <その他>
 なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
 また、符号化データ(ビットストリーム)に関する各種情報(メタデータ等)は、符号化データに関連づけられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(または同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
 なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。
 また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
 例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
 また、例えば、上述したプログラムは、任意の装置において実行されるようにしてもよい。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
 また、例えば、1つのフローチャートの各ステップを、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。さらに、1つのステップに複数の処理が含まれる場合、その複数の処理を、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
 また、例えば、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
 また、例えば、本技術に関する複数の技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
 なお、本技術は以下のような構成も取ることができる。
 (1) 画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、予め定められた所定のコンテキスト変数を割り当ててコンテキスト符号化する符号化部
 を備える画像処理装置。
 (2) 前記符号化部は、前記ビン列の1ビン目乃至4ビン目に対して、予め定められた互いに異なるコンテキスト変数を割り当ててコンテキスト符号化する
 (1)に記載の画像処理装置。
 (3) 前記符号化部は、前記ビン列の1ビン目乃至3ビン目に対して、予め定められた互いに異なるコンテキスト変数を割り当ててコンテキスト符号化し、前記ビン列の4ビン目に対してバイパス符号化を行う
 (1)に記載の画像処理装置。
 (4) 前記符号化部は、前記ビン列の1ビン目および2ビン目に対して、予め定められた互いに異なるコンテキスト変数を割り当ててコンテキスト符号化し、前記ビン列の3ビン目および4ビン目に対してバイパス符号化を行う
 (1)に記載の画像処理装置。
 (5) 前記符号化部は、前記ビン列の1ビン目に対して、予め定められた所定のコンテキスト変数を割り当ててコンテキスト符号化し、前記ビン列の2ビン目乃至4ビン目に対してバイパス符号化を行う
 (1)に記載の画像処理装置。
 (6) 前記符号化部は、前記適応直交変換識別子を、変換タイプDCT2xDCT2以外か否かを示す1ビットとその他の変換タイプを示す2ビットにより構成されるビン列に2値化して符号化する
 (1)乃至(5)のいずれかに記載の画像処理装置。
 (7) 画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、予め定められた所定のコンテキスト変数を割り当ててコンテキスト符号化する
 画像処理方法。
 (8) 画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、ブロックサイズに関するパラメータに基づくコンテキスト変数を割り当ててコンテキスト符号化する符号化部
 を備える画像処理装置。
 (9) 前記ブロックサイズに関するパラメータは、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差である
 (8)に記載の画像処理装置。
 (10) 前記ブロックサイズに関するパラメータは、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差と、所定の閾値との内の最小値である
 (8)に記載の画像処理装置。
 (11) 前記ブロックサイズに関するパラメータは、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差と、所定の閾値との内の最小値を、右ビットシフトした結果である
 (8)に記載の画像処理装置。
 (12) 前記符号化部は、前記ブロックサイズに関するパラメータが所定の閾値以上であるか否かに応じたコンテキスト変数を割り当ててコンテキスト符号化する
 (8)に記載の画像処理装置。
 (13) 前記符号化部は、前記適応直交変換識別子を、変換タイプDCT2xDCT2以外か否かを示す1ビットとその他の変換タイプを示す2ビットにより構成されるビン列に2値化して符号化する
 (8)乃至(12)のいずれかに記載の画像処理装置。
 (14) 前記符号化部は、前記適応直交変換識別子をコンポーネント毎に2値化して符号化する
 (8)に記載の画像処理装置。
 (15) 画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、ブロックサイズに関するパラメータに基づくコンテキスト変数を割り当ててコンテキスト符号化する
 画像処理方法。
 100 画像符号化装置, 115 符号化部, 131 2値化部, 132 選択部, 133 コンテキスト設定部, 134 コンテキスト符号化部, 135 バイパス符号化部, 200 画像復号装置, 212 復号部, 231 選択部, 232 コンテキスト設定部, 233 コンテキスト復号部, 234 バイパス復号部, 235 逆2値化部

Claims (15)

  1.  画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、予め定められた所定のコンテキスト変数を割り当ててコンテキスト符号化する符号化部
     を備える画像処理装置。
  2.  前記符号化部は、前記ビン列の1ビン目乃至4ビン目に対して、予め定められた互いに異なるコンテキスト変数を割り当ててコンテキスト符号化する
     請求項1に記載の画像処理装置。
  3.  前記符号化部は、前記ビン列の1ビン目乃至3ビン目に対して、予め定められた互いに異なるコンテキスト変数を割り当ててコンテキスト符号化し、前記ビン列の4ビン目に対してバイパス符号化を行う
     請求項1に記載の画像処理装置。
  4.  前記符号化部は、前記ビン列の1ビン目および2ビン目に対して、予め定められた互いに異なるコンテキスト変数を割り当ててコンテキスト符号化し、前記ビン列の3ビン目および4ビン目に対してバイパス符号化を行う
     請求項1に記載の画像処理装置。
  5.  前記符号化部は、前記ビン列の1ビン目に対して、予め定められた所定のコンテキスト変数を割り当ててコンテキスト符号化し、前記ビン列の2ビン目乃至4ビン目に対してバイパス符号化を行う
     請求項1に記載の画像処理装置。
  6.  前記符号化部は、前記適応直交変換識別子を、変換タイプDCT2xDCT2以外か否かを示す1ビットとその他の変換タイプを示す2ビットにより構成されるビン列に2値化して符号化する
     請求項1に記載の画像処理装置。
  7.  画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、予め定められた所定のコンテキスト変数を割り当ててコンテキスト符号化する
     画像処理方法。
  8.  画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、ブロックサイズに関するパラメータに基づくコンテキスト変数を割り当ててコンテキスト符号化する符号化部
     を備える画像処理装置。
  9.  前記ブロックサイズに関するパラメータは、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差である
     請求項8に記載の画像処理装置。
  10.  前記ブロックサイズに関するパラメータは、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差と、所定の閾値との内の最小値である
     請求項8に記載の画像処理装置。
  11.  前記ブロックサイズに関するパラメータは、変換ブロックの長辺の対数値と適応直交変換を適用可能な最小変換ブロックサイズの対数値との差と、所定の閾値との内の最小値を、右ビットシフトした結果である
     請求項8に記載の画像処理装置。
  12.  前記符号化部は、前記ブロックサイズに関するパラメータが所定の閾値以上であるか否かに応じたコンテキスト変数を割り当ててコンテキスト符号化する
     請求項8に記載の画像処理装置。
  13.  前記符号化部は、前記適応直交変換識別子を、変換タイプDCT2xDCT2以外か否かを示す1ビットとその他の変換タイプを示す2ビットにより構成されるビン列に2値化して符号化する
     請求項8に記載の画像処理装置。
  14.  前記符号化部は、前記適応直交変換識別子をコンポーネント毎に2値化して符号化する
     請求項8に記載の画像処理装置。
  15.  画像符号化における適応直交変換のモードを示す適応直交変換識別子を2値化したビン列の1ビン目に対して、ブロックサイズに関するパラメータに基づくコンテキスト変数を割り当ててコンテキスト符号化する
     画像処理方法。
PCT/JP2020/018617 2019-06-19 2020-05-08 画像処理装置および方法 WO2020255578A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
EP20827816.8A EP3989563A4 (en) 2019-06-19 2020-05-08 IMAGE PROCESSING DEVICE AND METHOD
KR1020217039759A KR20220021486A (ko) 2019-06-19 2020-05-08 화상 처리 장치 및 방법
JP2021527441A JP7494850B2 (ja) 2019-06-19 2020-05-08 画像処理装置および方法
US17/606,460 US11973948B2 (en) 2019-06-19 2020-05-08 Image processing device and method
CN202080042943.4A CN113940072A (zh) 2019-06-19 2020-05-08 图像处理装置和方法
US18/430,668 US20240171746A1 (en) 2019-06-19 2024-02-02 Image processing device and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962863396P 2019-06-19 2019-06-19
US62/863,396 2019-06-19

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US17/606,460 A-371-Of-International US11973948B2 (en) 2019-06-19 2020-05-08 Image processing device and method
US18/430,668 Continuation US20240171746A1 (en) 2019-06-19 2024-02-02 Image processing device and method

Publications (1)

Publication Number Publication Date
WO2020255578A1 true WO2020255578A1 (ja) 2020-12-24

Family

ID=74037231

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/018617 WO2020255578A1 (ja) 2019-06-19 2020-05-08 画像処理装置および方法

Country Status (6)

Country Link
US (2) US11973948B2 (ja)
EP (1) EP3989563A4 (ja)
KR (1) KR20220021486A (ja)
CN (1) CN113940072A (ja)
TW (1) TW202116067A (ja)
WO (1) WO2020255578A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11924471B2 (en) * 2020-11-12 2024-03-05 Qualcomm Incorporated Context-based transform index signaling in video coding

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0506394A2 (en) * 1991-03-29 1992-09-30 Sony Corporation Coding apparatus for digital signals
JP3185413B2 (ja) * 1992-11-25 2001-07-09 ソニー株式会社 直交変換演算並びに逆直交変換演算方法及びその装置、ディジタル信号符号化及び/又は復号化装置
KR100627597B1 (ko) * 2002-04-26 2006-09-25 가부시키가이샤 엔티티 도코모 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법, 화상 복호 방법, 화상 부호화 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 화상 복호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
EP2081386A1 (en) * 2008-01-18 2009-07-22 Panasonic Corporation High precision edge prediction for intracoding
US8913666B2 (en) * 2010-10-01 2014-12-16 Qualcomm Incorporated Entropy coding coefficients using a joint context model
JP5664762B2 (ja) * 2011-03-17 2015-02-04 富士通株式会社 動画像復号方法、動画像符号化方法、動画像復号装置及び動画像復号プログラム
JP6822470B2 (ja) 2016-05-13 2021-01-27 ソニー株式会社 画像処理装置および方法
EP3270595A1 (en) * 2016-07-15 2018-01-17 Thomson Licensing Method and apparatus for last coefficient coding for adaptive transform based video compression
US10827186B2 (en) * 2016-08-25 2020-11-03 Intel Corporation Method and system of video coding with context decoding and reconstruction bypass
US10554977B2 (en) * 2017-02-10 2020-02-04 Intel Corporation Method and system of high throughput arithmetic entropy coding for video coding
WO2019188466A1 (ja) * 2018-03-30 2019-10-03 ソニー株式会社 画像処理装置および方法

Non-Patent Citations (16)

* Cited by examiner, † Cited by third party
Title
"Advanced video coding for generic audiovisual services", RECOMMENDATION ITU-T H.264 (04/2017, April 2017 (2017-04-01)
"High efficiency video coding", RECOMMENDATION ITU-T H.265 (12/2016, December 2016 (2016-12-01)
BENJAMIN BROSS ET AL.: "Versatile Video Coding (Draft 4", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, JVET-M1001-V1, 13TH MEETING, 1 February 2019 (2019-02-01), Marrakech, MA, pages 43 - 47,76-78,217-229, XP030202562 *
BENJAMIN BROSS ET AL.: "Versatile Video Coding (Draft 5)", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, JVET-N1001-V8, 14TH MEETING, 11 June 2019 (2019-06-11), Geneva, CH, pages 308 - 320 , 327-330, XP030205561 *
BENJAMIN BROSSJIANLE CHENSHAN LIU: "Versatile Video Coding (Draft 5", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 14TH MEETING: GENEVA, CH, 19 March 2019 (2019-03-19)
BROSSJ. CHENS. LIU: "Versatile Video Coding (Draft 3", JVET-L1001, JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 12TH MEETING: MACAU, CN, 3 October 2018 (2018-10-03)
C. ROSEWARNE ET AL.: "CE6-related: RST binarization", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, JVET-N0105- V2, 14TH MEETING, March 2019 (2019-03-01), Geneva, CH, pages 1 - 3, XP030202630 *
C. ROSEWARNEJ. GAN: "CE6-related: RST binarization", JVET-N0105-V2, JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 14TH MEETING: GENEVA, CH, 19 March 2019 (2019-03-19)
CHENE. ALSHINAG. J. SULLIVANJ.-R. OHMJ. BOYCE: "Algorithm Description of Joint Exploration Test Model (JEM7", JOINT VIDEO EXPLORATION TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 7TH MEETING: TORINO, IT, 13 July 2017 (2017-07-13)
J. CHENY. YES. KIM: "Algorithm description for Versatile Video Coding and Test Model 3 (VTM 3", JVET-L1002, JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 12TH MEETING: MACAU, CN, 3 October 2018 (2018-10-03)
JIANLE CHENYAN YESEUNG HWAN KIM: "Algorithm description for Versatile Video Coding and Test Model 5 (VTM 5", JVET-N1002-V2, JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 14TH MEETING: GENEVA, CH, 19 March 2019 (2019-03-19)
MEHDI SALEHIFAR ET AL.: "CE 6-1.1 (a,b): Selection of MTS Candidates", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, JVET-L0292-V3, 12TH MEETING, October 2018 (2018-10-01), Macao, CN, pages 1 - 6, XP030193733 *
MISCHA SIEKMANNMARTIN WINKENHEIKO SCHWARZDETLEV MARPE: "CE6 - related: Simplification of the Reduced Secondary Transform", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 14TH MEETING: GENEVA, CH, 19 March 2019 (2019-03-19)
MOONMO KOOJAEHYUN LIMMEHDI SALEHIFARSEUNG HWAN KIM: "CE6: Reduced Secondary Transform (RST) (CE6-3.1", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 14TH MEETING: GENEVA, CH, 19 March 2019 (2019-03-19)
See also references of EP3989563A4
TAKESHI TSUKUBA ET AL.: "Non-CE6: Context modeling for MTS index coding", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/ WG 11, JVET-00354-V2, 15TH MEETING, July 2019 (2019-07-01), Gothenburg, SE, pages 1 - 4, XP030216772 *

Also Published As

Publication number Publication date
EP3989563A4 (en) 2022-12-07
EP3989563A1 (en) 2022-04-27
US11973948B2 (en) 2024-04-30
US20220201305A1 (en) 2022-06-23
JPWO2020255578A1 (ja) 2020-12-24
CN113940072A (zh) 2022-01-14
US20240171746A1 (en) 2024-05-23
KR20220021486A (ko) 2022-02-22
TW202116067A (zh) 2021-04-16

Similar Documents

Publication Publication Date Title
WO2021125309A1 (ja) 画像処理装置および方法
WO2021039650A1 (ja) 画像処理装置および方法
US20240171746A1 (en) Image processing device and method
JP2024023856A (ja) 画像処理装置および方法
US20230179779A1 (en) Image processing device and method
WO2020100672A1 (ja) 画像処理装置および方法
WO2021100588A1 (ja) 画像処理装置および方法
WO2021117500A1 (ja) 画像処理装置、ビットストリーム生成方法、係数データ生成方法、および量子化係数生成方法
JPWO2019159697A1 (ja) 画像処理装置および方法
WO2022044845A1 (ja) 画像処理装置および方法
WO2020184314A1 (ja) 画像処理装置および方法
JP7494850B2 (ja) 画像処理装置および方法
WO2021045187A1 (ja) 画像処理装置および方法
JP2022002352A (ja) 画像処理装置および方法
WO2021117866A1 (ja) 画像処理装置および方法
JP7494858B2 (ja) 画像処理装置および方法
WO2021149812A1 (ja) 画像処理装置および方法
US20220086489A1 (en) Image processing apparatus and method
JP2022028089A (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: 20827816

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021527441

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020827816

Country of ref document: EP

Effective date: 20220119