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

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

Info

Publication number
WO2022202157A1
WO2022202157A1 PCT/JP2022/008741 JP2022008741W WO2022202157A1 WO 2022202157 A1 WO2022202157 A1 WO 2022202157A1 JP 2022008741 W JP2022008741 W JP 2022008741W WO 2022202157 A1 WO2022202157 A1 WO 2022202157A1
Authority
WO
WIPO (PCT)
Prior art keywords
encoding
remccbs
context
unit
image
Prior art date
Application number
PCT/JP2022/008741
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 CN202280021955.8A priority Critical patent/CN117044202A/zh
Priority to JP2023508868A priority patent/JPWO2022202157A1/ja
Priority to US18/281,574 priority patent/US20240163437A1/en
Publication of WO2022202157A1 publication Critical patent/WO2022202157A1/ja

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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/184Methods 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 bits, e.g. of the compressed video stream
    • 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
    • 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 method, and more particularly to an image processing device and method capable of suppressing an increase in the processing amount of encoding and decoding.
  • Non-Patent Document 1 Conventionally, an encoding method has been proposed in which a prediction residual of a moving image is derived, coefficient-transformed, quantized, and encoded (see, for example, Non-Patent Document 1 and Non-Patent Document 2).
  • CABAC Context-based Adaptive Binary Arithmetic Code
  • a method has been proposed that simplifies encoding and decoding of bypass encoding bins (see, for example, Non-Patent Document 3).
  • the present disclosure has been made in view of such circumstances, and is intended to suppress an increase in the processing amount of encoding and decoding.
  • An image processing device includes a context encoding bin maximum number setting unit that sets a value according to the bit depth of an image as the maximum number of context encoding bins generated in encoding or decoding the image. It is an image processing device provided.
  • An image processing method is an image processing method that sets a value according to the bit depth of an image as the maximum number of context encoding bins generated in encoding or decoding the image.
  • An image processing apparatus provides context encoding maximum number setting for setting the maximum number of context encoding bins generated in image encoding or decoding according to a control flag indicating a processing speed mode. and an image processing apparatus.
  • An image processing method is an image processing method that sets the maximum number of context-encoding bins generated in image encoding or decoding according to a control flag indicating a processing speed mode.
  • a value corresponding to the bit depth of the image is set as the maximum number of context encoding bins generated in encoding or decoding of the image.
  • the maximum number of context encoding bins generated in image encoding or decoding is set according to the control flag indicating the processing speed mode.
  • FIG. 10 is a diagram for explaining the amount of coding bins generated;
  • FIG. 10 is a diagram illustrating a method of controlling the number of context-encoding bins;
  • FIG. 4 is a block diagram showing a main configuration example of a RemCcbs setting device;
  • FIG. 11 is a flowchart showing an example of the flow of RemCcbs setting processing;
  • FIG. 4 is a diagram illustrating bit depth and the number of context encoding bins;
  • FIG. 4 is a block diagram showing a main configuration example of a RemCcbs setting device;
  • FIG. 11 is a flowchart showing an example of the flow of RemCcbs setting processing;
  • FIG. 4 is a block diagram showing a main configuration example of a RemCcbs setting device;
  • FIG. 11 is a flowchart showing an example of the flow of RemCcbs setting processing;
  • FIG. It is a block diagram which shows the main structural examples of an image coding apparatus.
  • 3 is a block diagram showing a main configuration example of an encoding unit;
  • FIG. 11 shows an example of syntax for TS residual coding mode;
  • FIG. 11 shows an example of syntax for Non-TS residual coding mode;
  • 4 is a flowchart showing an example of the flow of image encoding processing;
  • 4 is a flowchart showing an example of the flow of encoding processing;
  • It is a block diagram which shows the main structural examples of an image decoding apparatus.
  • FIG. 4 is a flowchart showing an example of the flow of image decoding processing
  • 10 is a flowchart showing an example of the flow of decoding processing
  • 3 is a block diagram showing a main configuration example of an encoding unit
  • FIG. 4 is a flowchart showing an example of the flow of image encoding processing
  • 4 is a flowchart showing an example of the flow of encoding processing
  • 2 is a block diagram showing a main configuration example of a decoding unit
  • FIG. 10 is a flowchart showing an example of the flow of decoding processing
  • 3 is a block diagram showing a main configuration example of an encoding unit
  • FIG. 10 is a flowchart showing an example of the flow of decoding processing
  • 3 is a block diagram showing a main configuration example of an encoding unit
  • FIG. 10 is a flowchart showing an example of the flow of decoding processing
  • 3 is a block diagram showing a main configuration example of an encoding unit
  • FIG. 10 is a flow
  • FIG. 4 is a flowchart showing an example of the flow of image encoding processing
  • 4 is a flowchart showing an example of the flow of encoding processing
  • 2 is a block diagram showing a main configuration example of a decoding unit
  • FIG. 10 is a flowchart showing an example of the flow of decoding processing
  • It is a block diagram which shows the main structural examples of a computer.
  • the scope disclosed in the present technology is not limited to the contents described in the embodiments, but also the contents described in the following non-patent documents that are publicly known at the time of filing and the following non-patent documents that are referred to. It also includes the contents of other literature that has been published.
  • Non-Patent Document 1 (above)
  • Non-Patent Document 2 (above)
  • Non-Patent Document 3 (above)
  • Non-Patent Document 4 Recommendation ITU-T H.264 (04/2017) "Advanced video coding for generic audiovisual services", April 2017
  • Non-Patent Document 5 Recommendation ITU-T H.265 (02/18) "High efficiency video coding", February 2018
  • the content described in the non-patent literature mentioned above is also the basis for determining the support requirements.
  • Quad-Tree Block Structure and QTBT (Quad Tree Plus Binary Tree) Block Structure described in the above non-patent literature are not directly described in the examples, they are within the scope of disclosure of the present technology, shall meet the support requirements of the claims.
  • technical terms such as Parsing, Syntax, and Semantics are also within the scope of disclosure of the present technology even if they are not directly described in the embodiments, and meet the support requirements for a range of
  • the term "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 a picture unless otherwise specified. Its size, shape, characteristics, etc. are not limited.
  • the "block” includes 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), sub-blocks, macro-blocks, tiles, or slices.
  • the block size may be specified not only directly but also indirectly.
  • the block size may be specified using identification information that identifies the size.
  • the block size may be designated by a ratio or a difference from the size of a reference block (for example, LCU or SCU).
  • a reference block for example, LCU or SCU.
  • the above-mentioned information indirectly specifying a size may be used as the information. By doing so, the information amount of the information can be reduced, and the coding efficiency can be improved in some cases.
  • This block size specification also includes block size range specification (for example, block size range specification, etc.).
  • encoding includes not only the entire process of converting an image into (a bitstream of) encoded data, but also part of the process. For example, it not only includes prediction processing, orthogonal transformation, quantization, arithmetic coding, etc., but also includes quantization and arithmetic coding, prediction processing, quantization, and arithmetic coding. processing, etc.
  • decoding includes not only the entire process of converting (a bitstream of) coded data into an image, but also part of the process.
  • processing not only includes processing that includes inverse arithmetic decoding, inverse quantization, inverse orthogonal transformation, prediction processing, etc., but also processing that includes inverse arithmetic decoding and inverse quantization, inverse arithmetic decoding, inverse quantization, and prediction processing. and processing including
  • decoding of an image means decoding (a bitstream of) encoded data obtained by encoding an image using a decoding method corresponding to the encoding method.
  • CABAC Context-based Adaptive Binary Arithmetic Code
  • VVC Very Video Coding
  • VVC the following parameters are set for the amount of context coding bins generated per transform block.
  • RemCcbs is a parameter for controlling (limiting) the amount of context coding bins generated, and indicates the allowable remaining number of context coding bins for each transform block.
  • the remaining number of allowed context-encoding bins indicates the remaining number of allowed occurrences of context-encoding bins. For example, each time a context coding bin occurs in image encoding or decoding, that bin number is subtracted from RemCcbs. Then, when this RemCcbs becomes less than a threshold value (for example, less than 4), context encoding or its decoding ends. That is, the initial value of RemCcbs indicates the maximum number of context coding bins allowed, and the current value of RemCcbs indicates the remaining number of coding bins allowed at that time. Note that when RemCcbs becomes less than the threshold, the encoding (decoding) of the image in the transform block is switched from context encoding to a simpler encoding method (for example, bypass encoding).
  • log2(x) indicates a function that returns the logarithm of the input value x with a base of 2.
  • TbWidth is a parameter indicating the horizontal width of the transform block.
  • TbHeight is a parameter indicating the vertical width of the transform block.
  • ctxBinSampleRatioBase is a parameter that indicates a reference value for the maximum number of context-encoding bins at a coefficient group (also called CG (Coef. Group)) level in a transform block.
  • the value of this ctxBinSampleRatioBase is arbitrary. For example, in VVC Ver.1, the value of ctxBinSampleRatioBase is 28.
  • the table shown in FIG. 1 shows the average number of context-encoded bins (ctx bins/CoefGroup) generated in CG units and the number of bypass-encoded bins (ep bins/ CoefGroup) is shown for each QP (quantization parameter).
  • the number of context encoding bins and the number of bypass encoding bins are shown for each of sequence group A and sequence group B.
  • Sequence group A is a sequence group that is difficult to encode and has many encoding bins
  • sequence group B is a sequence group that is easier to encode than sequence group A and has fewer encoding bins. .
  • Non-Patent Document 3 a method has been proposed that simplifies the encoding and decoding of bypass encoding bins.
  • this method it is difficult to suppress an increase in the amount of context-encoded bin processing.
  • encoding and decoding processes are more complicated for context-encoded bins than for bypass-encoded bins. Therefore, from the viewpoint of reducing the amount of processing, it is also important to suppress an increase in the amount of processing for context-encoding bins.
  • the image processing device may include a context encoding bin maximum number setting unit that sets a value according to the bit depth of the image as the maximum number of context encoding bins generated in encoding or decoding the image.
  • a value corresponding to the bit depth of the image may be set as the maximum number of context coding bins that occur in encoding or decoding of the image. That is, a parameter indicating the maximum number of context coding bins to be applied in encoding or decoding an image may be set based on the bit depth of that image.
  • the maximum number of context-encoding bins is determined according to the number of context-encoding bins depending on the bit depth, as described in the second row from the top of the table shown in FIG. may be set (Method 1-1).
  • the maximum number of context encoding bins setting unit sets the number of context encoding bins depending on the bit depth based on the bit depth of the image, and the number of context encoding bins depending on the bit depth.
  • a maximum number of context-encoding bins may be set based on .
  • the context coding bin maximum number setting unit may set the context coding bin number corresponding to the block to be processed based on the block size of the block to be processed and the number of context coding bins depending on the bit depth. You can set a maximum number of That is, the number of context-encoding bins and the maximum number of context-encoding bins depending on the bit depth may be set for each block, which is the processing unit of encoding and decoding.
  • This block may be a data unit corresponding to a partial area of an image to be coded or decoded.
  • this block may be a transform block that is a unit of processing for coefficient transforms applied in encoding an image (or inverse coefficient transforms applied in decoding an image).
  • FIG. 3 is a block diagram showing an example of a configuration of a RemCcbs setting device, which is one aspect of an image processing device to which the present technology is applied.
  • the RemCcbs setting device 100 shown in FIG. 3 is a device for setting RemCcbs, which is a parameter for controlling (limiting) the amount of context coding bins generated when encoding an image using CABAC.
  • RemCcbs indicates the remaining number of permissible context-coding bins per transform block, and its initial value indicates the maximum number of permissible context-coding bins (also referred to as the maximum number of context-coding bins). Therefore, the RemCcbs setting device 100 can also be said to be a context coding bin maximum number setting unit.
  • the RemCcbs setting device 100 can set RemCcbs for each CABAC processing unit.
  • CABAC can treat arbitrary data units as processing units.
  • the CABAC processing unit is a transform block, and the RemCcbs initial value setting unit 102 sets RemCcbs for each transform block.
  • FIG. 3 shows main elements such as processing units and data flow, and what is shown in FIG. 3 is not necessarily all.
  • the RemCcbs setting device 100 may have processing units not shown as blocks in FIG.
  • the RemCcbs setting device 100 may have processes and data flows not shown as arrows or the like in FIG.
  • the RemCcbs setting device 100 has a ctxBinSampleRatio (bitDepth) setting section 101 and a RemCcbs initial value setting section .
  • the ctxBinSampleRatio(bitDepth) setting unit 101 performs processing related to setting ctxBinSampleRatio(bitDepth), which is a parameter indicating the number of context encoding bins depending on the bit depth.
  • the ctxBinSampleRatio(bitDepth) setting unit 101 acquires bitDepth, which is a parameter indicating the bit depth of an image to be encoded (or decoded), supplied from the outside of the RemCcbs setting device 100 .
  • the ctxBinSampleRatio(bitDepth) setting unit 101 sets ctxBinSampleRatio(bitDepth) using the acquired bitDepth. That is, the ctxBinSampleRatio(bitDepth) setting unit 101 sets the number of context encoding bins depending on the bit depth based on the bit depth of the image to be encoded (or decoded).
  • the ctxBinSampleRatio(bitDepth) setting unit 101 may set ctxBinSampleRatio(bitDepth) based on this bit depth and other arbitrary parameters.
  • the ctxBinSampleRatio(bitDepth) setting unit 101 sets ctxBinSampleRatio(bitDepth) based on the bit depth of an image to be encoded (or decoded) and ctxBinSampleRatioBase, which is a parameter indicating the reference value of the number of context encoding bins. May be set.
  • the ctxBinSampleRatio (bitDepth) setting unit 101 may acquire bitDepth and ctxBinSampleRatioBase supplied from the outside of the RemCcbs setting device 100 . Then, the ctxBinSampleRatio(bitDepth) setting unit 101 may set ctxBinSampleRatio(bitDepth) using the acquired bitDepth and ctxBinSampleRatioBase.
  • the ctxBinSampleRatio(bitDepth) setting unit 101 supplies the set ctxBinSampleRatio(bitDepth) to the RemCcbs initial value setting unit 102 .
  • the RemCcbs initial value setting unit 102 performs processing related to setting the initial value of RemCcbs. For example, the RemCcbs initial value setting unit 102 acquires ctxBinSampleRatio(bitDepth) supplied from the ctxBinSampleRatio(bitDepth) setting unit 101 .
  • the RemCcbs initial value setting unit 102 uses the acquired ctxBinSampleRatio(bitDepth) to set the initial value of RemCcbs (maximum number of context encoding bins generated in image encoding or decoding) corresponding to the CABAC processing target block. do. That is, the RemCcbs initial value setting unit 102 sets the initial value of RemCcbs based on the bit depth of the image. In other words, the RemCcbs initial value setting unit 102 sets a value corresponding to the bit depth of the image as the initial value of RemCcbs. For example, the RemCcbs initial value setting unit 102 may set the initial value of RemCcbs based on the number of context coding bins depending on the bit depth.
  • the RemCcbs initial value setting unit 102 may set the initial value of RemCcbs based on this ctxBinSampleRatio(bitDepth) and other arbitrary parameters.
  • the RemCcbs initial value setting unit 102 may set the initial value of RemCcbs corresponding to the block to be processed based on the block size of the block to be processed and the number of context coding bins depending on the bit depth. .
  • the RemCcbs setting device 100 acquires ctxBinSampleRatio (bitDepth) supplied from the ctxBinSampleRatio (bitDepth) setting unit 101, and further acquires TbWidth and TbHeight of the block to be processed, which are supplied from outside the RemCcbs setting device 100.
  • TbWidth is a parameter indicating the horizontal width of the transform block.
  • TbHeight is a parameter indicating the vertical width of the transform block. That is, TbWidth and TbHeight indicate the block size of the block to be processed (transformed block).
  • the RemCcbs initial value setting unit 102 may use the acquired ctxBinSampleRatio(bitDepth), TbWidth, and TbHeight to set the initial value of RemCcbs corresponding to the block to be processed.
  • the RemCcbs initial value setting unit 102 outputs the set initial value of RemCcbs to the outside of the RemCcbs setting device 100 (for example, a subsequent processing unit).
  • the RemCcbs setting device 100 can control the amount of context encoding bins generated. Therefore, the RemCcbs setting device 100 can suppress an increase in the processing amount of encoding and decoding. For example, the RemCcbs setting device 100 can suppress an increase in the processing amount of CABAC in encoding and decoding images with high bit depth and high bit rate.
  • RemCcbs setting device 100 can suppress an increase in the total number of context-encoding bins and the number of bypass-encoding bins, by suppressing the amount of context-encoding bins generated. . In other words, the RemCcbs setting device 100 can suppress an increase in the total processing amount of CABAC.
  • the ctxBinSampleRatio (bitDepth) setting unit 101 of the RemCcbs setting device 100 is based on the bit depth (bitDepth) of the image to be encoded (or decoded).
  • Set the parameter ctxBinSampleRatio(bitDepth) that indicates the number of context encoding bins to use.
  • the ctxBinSampleRatio(bitDepth) setting unit 101 may set ctxBinSampleRatio(bitDepth) based on this bit depth and other arbitrary parameters. For example, the ctxBinSampleRatio(bitDepth) setting unit 101 sets ctxBinSampleRatio( bitDepth) may be set.
  • step S102 the RemCcbs initial value setting unit 102 of the RemCcbs setting device 100 sets the initial value of RemCcbs based on ctxBinSampleRatio(bitDepth) set in step S101. That is, the RemCcbs initial value setting unit 102 sets the initial value of the number of remaining allowable context coding bins based on the bit depth of the image. In other words, the RemCcbs initial value setting unit 102 sets a value corresponding to the bit depth of the image as the maximum number of context coding bins generated in encoding or decoding the image.
  • the RemCcbs initial value setting unit 102 may set the initial value of RemCcbs based on this ctxBinSampleRatio(bitDepth) and other arbitrary parameters.
  • the RemCcbs initial value setting unit 102 corresponds to the block to be processed based on the block size (TbWidth and TbHeight) of the block to be processed and the number of context encoding bins (ctxBinSampleRatio(bitDepth)) that depends on the bit depth. You may set the initial value of RemCcbs to
  • the RemCcbs setting process ends.
  • the RemCcbs setting device 100 can control the amount of generated context coding bin numbers. Therefore, the RemCcbs setting device 100 can suppress an increase in the processing amount of encoding and decoding.
  • the RemCcbs setting device 100 can suppress an increase in the processing amount of CABAC in encoding and decoding images with high bit depth and high bit rate.
  • RemCcbs setting device 100 can suppress an increase in the total number of context-encoding bins and the number of bypass-encoding bins, by suppressing the amount of context-encoding bins generated. . In other words, the RemCcbs setting device 100 can suppress an increase in the total processing amount of CABAC.
  • the resulting value may be set as the number of context coding bins depending on the bit depth (method 1-1-1).
  • the context encoding bin maximum number setting unit divides a value corresponding to the bit depth of the image from the reference value of the number of context encoding bins, and sets the value to the number of context encoding bins depending on the bit depth.
  • the ctxBinSampleRatio(bitDepth) setting unit 101 may derive ctxBinSampleRatio(bitDepth) using Equation (3) below.
  • the ctxBinSampleRatio(bitDepth) setting unit 101 bit-shifts ctxBinSampleRatioBase to the right by the larger value of the value obtained by subtracting 10 from the bit depth (bitDepth) and “0”, and shifts the value to Let ctxBinSampleRatio(bitDepth). That is, when the bit depth is greater than 10 bits, ctxBinSampleRatio(bitDepth) setting section 101 sets ctxBinSampleRatio(bitDepth) to a smaller value as the bit depth increases.
  • the resulting value may be set as the number of context coding bins depending on the bit depth (method 1-1-2).
  • the context encoding bin maximum number setting unit subtracts a value corresponding to the bit depth of the image from the reference value for the number of context encoding bins, and sets the value to the number of context encoding bins depending on the bit depth.
  • the ctxBinSampleRatio(bitDepth) setting unit 101 may derive ctxBinSampleRatio(bitDepth) using Equation (4) below.
  • a is an arbitrary constant.
  • the ctxBinSampleRatio(bitDepth) setting unit 101 subtracts from ctxBinSampleRatioBase a times the larger value of the value obtained by subtracting 10 from the bit depth (bitDepth) and “0”, and sets the value to ctxBinSampleRatio(bitDepth ). That is, when the bit depth is greater than 10 bits, ctxBinSampleRatio(bitDepth) setting section 101 sets ctxBinSampleRatio(bitDepth) to a smaller value as the bit depth increases.
  • ctxBinSampleRatio(bitDepth) setting section 101 sets ctxBinSampleRatio(bitDepth) to a smaller value as the bit depth increases.
  • the maximum number of context encoding bins setting unit may set a value according to the bit depth of the image as the number of context encoding bins depending on the bit depth.
  • the ctxBinSampleRatio(bitDepth) setting unit 101 may derive ctxBinSampleRatio(bitDepth) using Equation (5) below.
  • ctxBinSampleRatioBase2 is a parameter that indicates a reference value (second reference value) for the number of context-encoding bins at the CG level, which is smaller than ctxBinSampleRatioBase (first reference value).
  • the ctxBinSampleRatio(bitDepth) setting unit 101 sets ctxBinSampleRatio(first reference value) to ctxBinSampleRatio(bitDepth) when the image bit depth is 10 bits or less, and sets ctxBinSampleRatioBase2 to ctxBinSampleRatio(bitDepth) when the image bit depth is greater than 10 bits.
  • (second reference value) be ctxBinSampleRatio(bitDepth).
  • the ctxBinSampleRatio(bitDepth) setting unit 101 sets ctxBinSampleRatio(bitDepth) to a value smaller than when the bit depth is 10 bits or less when the bit depth is greater than 10 bits.
  • ctxBinSampleRatioBase2 can be any value as long as it is smaller than ctxBinSampleRatioBase.
  • the graph shown in FIG. 5 shows an example of the value of ctxBinSampleRatio(bitDepth) according to these derivation methods.
  • line 131 shows example values of ctxBinSampleRatio(bitDepth) derived by applying equation (3) above.
  • Line 132 shows example values of ctxBinSampleRatio(bitDepth) derived by applying equation (4) above.
  • Line 133 shows example values of ctxBinSampleRatio(bitDepth) derived by applying equation (5) above.
  • derivation methods described above which of the derivation methods described above is the most suitable depends on the required image quality and contents. Either of these derivation methods may be selectively applied. For example, the derivation method may be selected based on arbitrary conditions (for example, required image quality, contents, etc.). Alternatively, an instruction to select a derivation method from a user, an application, or the like may be received, and the derivation method may be applied according to the instruction. Further, derivation methods other than the above examples may be used as options (candidates). Also, the number of options (candidates) is arbitrary.
  • Method 1-1 it is possible to control whether or not to apply Method 1-1. Therefore, also in this case, it is possible to control the amount of generated context encoding bins, and to suppress an increase in the processing amount of encoding and decoding. For example, it is possible to suppress an increase in the processing amount of CABAC in encoding and decoding images with high bit depth and high bit rate.
  • the maximum number of context encoding bins setting unit sets the number of context encoding bins dependent on the bit depth based on the bit depth of the image, Sets the maximum number of context-encoding bins based on the number of context-encoding bins dependent on its bit depth, and if the control flag is false, the maximum number of context-encoding bins based on the base value for the number of context-encoding bins may be set.
  • Method 1-1 when Method 1-1 is applied, any of Methods 1-1-1 to 1-1-3 may be applied.
  • FIG. 6 is a block diagram showing a main configuration example of the RemCcbs setting device 100 in this case.
  • FIG. 6 shows main components such as processing units and data flow, and the components shown in FIG. 6 are not necessarily all.
  • the RemCcbs setting device 100 may have processing units not shown as blocks in FIG.
  • the RemCcbs setting device 100 may have processes and data flows not shown as arrows or the like in FIG.
  • the RemCcbs setting device 100 has a ctxBinSampleRatio setting section 151 and a RemCcbs initial value setting section 152 .
  • the ctxBinSampleRatio setting unit 151 performs processing related to setting ctxBinSampleRatio, which is a parameter indicating the number of context encoding bins. For example, the ctxBinSampleRatio setting unit 151 acquires ctxBinSampleRatioBase and bitDepth supplied from outside the RemCcbs setting device 100 . The ctxBinSampleRatio setting unit 151 also acquires an execution control flag supplied from outside the RemCcbs setting device 100 . This execution control flag is a control flag that indicates whether to set the maximum number of context coding bins depending on the bit depth. That is, the execution control flag is a flag indicating whether to apply the present technology.
  • the ctxBinSampleRatio setting unit 151 determines how to set ctxBinSampleRatio based on the execution control flag. For example, when the execution control flag is true (for example, 1), the ctxBinSampleRatio setting unit 151 may set ctxBinSampleRatio based on the acquired bitDepth.
  • the ctxBinSampleRatio setting unit 151 may set the number of context encoding bins (ctxBinSampleRatio(bitDepth)) depending on the bit depth based on the bit depth (bitDepth) of the image, and set it as the ctxBinSampleRatio. At that time, the ctxBinSampleRatio setting unit 151 may further set ctxBinSampleRatio(bitDepth) using any other parameter (for example, ctxBinSampleRatioBase).
  • the derivation method of ctxBinSampleRatio(bitDepth) is arbitrary. For example, the ctxBinSampleRatio setting unit 151 may derive ctxBinSampleRatio(bitDepth) using any one of Equations (3) to (5) described above.
  • the ctxBinSampleRatio setting unit 151 may set ctxBinSampleRatio based on the acquired ctxBinSampleRatioBase without depending on bitDepth. For example, the ctxBinSampleRatio setting unit 151 may set the acquired ctxBinSampleRatioBase as ctxBinSampleRatio. In the following description, it is assumed that ctxBinSampleRatioBase is set to ctxBinSampleRatio when the execution control flag is false.
  • the ctxBinSampleRatio setting unit 151 supplies the ctxBinSampleRatio (ctxBinSampleRatio (bitDepth) or ctxBinSampleRatioBase) set as described above to the RemCcbs initial value setting unit 152 .
  • the RemCcbs initial value setting unit 152 performs processing related to setting the initial value of RemCcbs. For example, the RemCcbs initial value setting unit 152 acquires ctxBinSampleRatio (ctxBinSampleRatio(bitDepth) or ctxBinSampleRatioBase) supplied from the ctxBinSampleRatio setting unit 151 .
  • the RemCcbs initial value setting unit 152 uses the acquired ctxBinSampleRatio to set the initial value of RemCcbs (maximum number of context encoding bins generated in image encoding or decoding). For example, when the execution control flag is true, the RemCcbs initial value setting unit 152 may use ctxBinSampleRatio(bitDepth) to set the initial value of RemCcbs.
  • the method of deriving the initial value of RemCcbs is arbitrary.
  • the RemCcbs initial value setting unit 152 may derive the initial value of RemCcbs using Equation (2) described above.
  • the RemCcbs initial value setting unit 152 may use ctxBinSampleRatioBase to set the initial value of RemCcbs.
  • the method of deriving the initial value of RemCcbs is arbitrary.
  • the RemCcbs initial value setting unit 152 may derive the initial value of RemCcbs using Equation (1) described above.
  • the RemCcbs initial value setting unit 152 may set the initial value of RemCcbs based on ctxBinSampleRatio and other arbitrary parameters. For example, the RemCcbs initial value setting unit 152 may set the initial value of RemCcbs corresponding to the block to be processed based on the block size and execution control flag of the block to be processed.
  • the RemCcbs initial value setting unit 152 acquires ctxBinSampleRatio (bitDepth) supplied from the ctxBinSampleRatio setting unit 151, and furthermore, the processing target block supplied from outside the RemCcbs setting device 100 You may get the TbWidth and TbHeight of Then, the RemCcbs initial value setting unit 152 may use the acquired ctxBinSampleRatio(bitDepth), TbWidth, and TbHeight to set the initial value of RemCcbs corresponding to the block to be processed.
  • the RemCcbs initial value setting unit 152 acquires ctxBinSampleRatioBase supplied from the ctxBinSampleRatio setting unit 151, and furthermore, TbWidth and TbWidth of the processing target block supplied from outside the RemCcbs setting device 100. You may get TbHeight. Then, the RemCcbs initial value setting unit 152 may use the acquired ctxBinSampleRatioBase, TbWidth, and TbHeight to set the initial value of RemCcbs corresponding to the block to be processed.
  • the RemCcbs initial value setting unit 152 outputs the set initial value of RemCcbs to the outside of the RemCcbs setting device 100 (for example, a subsequent processing unit).
  • the RemCcbs setting device 100 can control the amount of context encoding bins generated using the execution control flag. Therefore, in this case as well, the RemCcbs setting device 100 can suppress an increase in the processing amount of encoding and decoding. For example, the RemCcbs setting device 100 can suppress an increase in the processing amount of CABAC in encoding and decoding images with high bit depth and high bit rate.
  • the ctxBinSampleRatio setting unit 151 of the RemCcbs setting device 100 determines whether or not the execution control flag is true in step S151. If it is determined that the execution control flag is true, the process proceeds to step S152.
  • step S152 the ctxBinSampleRatio setting unit 151 applies method 1-1 described above, sets ctxBinSampleRatio(bitDepth) based on the bit depth, and sets ctxBinSampleRatio(bitDepth) as ctxBinSampleRatio.
  • the ctxBinSampleRatio setting unit 151 may set ctxBinSampleRatio(bitDepth) based on the bit depth and other arbitrary parameters.
  • the ctxBinSampleRatio setting unit 151 may set ctxBinSampleRatio(bitDepth) based on bitDepth and ctxBinSampleRatioBase. At that time, the ctxBinSampleRatio setting unit 151 may derive ctxBinSampleRatio(bitDepth) using, for example, one of the above-described formulas (3) to (5).
  • step S152 ends, the process proceeds to step S154.
  • step S151 determines whether the execution control flag is false. If it is determined in step S151 that the execution control flag is false, the process proceeds to step S153.
  • step S153 the ctxBinSampleRatio setting unit 151 sets ctxBinSampleRatioBase as ctxBinSampleRatio.
  • step S154 the RemCcbs initial value setting unit 152 sets the RemCcbs initial value of the block to be processed based on the ctxBinSampleRatio (ctxBinSampleRatio(bitDepth) or ctxBinSampleRatioBase) set in step S152 or S153.
  • the RemCcbs initial value setting unit 152 sets the initial value of the number of allowable context coding bin remainders based on the bit depth of the image. In other words, in this case, the RemCcbs initial value setting unit 152 sets a value corresponding to the bit depth of the image as the maximum number of context coding bins generated in encoding or decoding of the image.
  • the RemCcbs initial value setting unit 152 sets the initial value of the remaining number of allowable context encoding bins based on the reference value of the number of context encoding bins. In other words, in this case, the RemCcbs initial value setting unit 152 sets a value corresponding to the reference value of the number of context-encoding bins as the maximum number of context-encoding bins generated in the encoding or decoding of the image.
  • the RemCcbs initial value setting unit 152 may set the initial value of RemCcbs based on ctxBinSampleRatio and other arbitrary parameters. For example, the RemCcbs initial value setting unit 152 may set the initial value of RemCcbs corresponding to the block to be processed based on the block size and execution control flag of the block to be processed.
  • the RemCcbs initial value setting unit 152 sets the block size (TbWidth and TbHeight) of the block to be processed and the number of context encoding bins (ctxBinSampleRatio(bitDepth)) depending on the bit depth. may be used to set the initial value of RemCcbs corresponding to the block to be processed. At that time, the RemCcbs initial value setting unit 152 may derive the RemCcbs initial value using, for example, Equation (2) described above.
  • the RemCcbs initial value setting unit 152 determines the processing target block based on the block size (TbWidth and TbHeight) of the processing target block and the reference value (ctxBinSampleRatioBase) of the number of context encoding bins. You may set the initial value of RemCcbs corresponding to the block. At that time, the RemCcbs initial value setting unit 152 may derive the RemCcbs initial value using, for example, Equation (1) described above. When the process of step S154 ends, the RemCcbs setting process ends.
  • the RemCcbs setting device 100 can use the execution control flag to control the amount of context encoding bins generated. Therefore, in this case as well, the RemCcbs setting device 100 can suppress an increase in the processing amount of encoding and decoding. For example, the RemCcbs setting device 100 can suppress an increase in the processing amount of CABAC in encoding and decoding images with high bit depth and high bit rate.
  • the maximum number of context encoding bins may be set according to processing speed control (Method 2).
  • a control flag indicating the CABAC processing speed mode may be transmitted from the encoding side to the decoding side, and the maximum number of context encoding bins may be set according to the control flag.
  • This control flag may be flag information that takes any value.
  • this control flag may indicate that CABAC is performed in normal speed mode when false (eg, 0) and CABAC is performed in fast mode when true (eg, 1).
  • High-speed mode is an operating mode that requires less processing time than normal-speed mode.
  • the image processing device may include a context-encoding bin maximum number setting unit that sets the maximum number of context-encoding bins generated in image encoding or decoding according to such a control flag.
  • a control flag indicating the maximum number of context coding bins applied in encoding or decoding an image may be set based on a control flag indicating the processing speed mode.
  • the maximum number of context encoding bins setting unit sets the maximum number of context encoding bins based on the first reference value. You may That is, when image encoding and decoding are performed in normal processing time, the context encoding maximum number of bins setting unit sets the first reference value for normal speed mode to the reference value for the number of context encoding bins at the CG level. value and uses that first reference value to set the maximum number of context-encoding bins.
  • the context coding max bin setter determines the may set the maximum number of context coding bins. That is, when image encoding or decoding is performed in a shorter time than usual, the context encoding maximum number of bins setting unit sets the second reference value for the high-speed mode, that is, a value smaller than the first reference value. may be set as the reference value for the number of context-encoding bins at the CG level, and the second reference value may be used to set the maximum number of context-encoding bins.
  • control flag indicates the high-speed mode
  • the amount of context-encoding bins generated is suppressed more than in the normal-speed mode, and encoding and decoding can be performed at a higher speed.
  • the control flag indicates the high speed mode
  • this control flag can also be said to be a flag (also referred to as a reference value control flag) that controls the value of the reference value for the number of context encoding bins at the CG level. That is, when method 2 is applied, the reference value control flag may be transmitted from the encoding side to the decoding side as shown in the bottom row of the table in FIG. Then, a reference value for the number of context-encoding bins may be set according to the reference value control flag. Then, the maximum number of context-encoding bins may be set according to the reference value of the number of context-encoding bins according to the reference value control flag (method 2-1).
  • a flag also referred to as a reference value control flag
  • the maximum number of context encoding bins setting unit sets the maximum number of context encoding bins corresponding to the target block based on the block size of the target block and this control flag (reference value control flag).
  • FIG. 8 is a block diagram showing a main configuration example of the RemCcbs setting device 100 in this case.
  • FIG. 8 shows main components such as processing units and data flow, and the components shown in FIG. 8 are not necessarily all of them.
  • the RemCcbs setting device 100 may have processing units not shown as blocks in FIG.
  • the RemCcbs setting device 100 may have processes and data flows not shown as arrows or the like in FIG.
  • the RemCcbs setting device 100 has a ctxBinSampleRatio setting section 181 and a RemCcbs initial value setting section 182 .
  • the ctxBinSampleRatio setting unit 181 performs processing related to setting ctxBinSampleRatio, which is a parameter indicating the number of context encoding bins. For example, the ctxBinSampleRatio setting unit 181 sets ctxBinSampleRatioBase1 (the first reference value for the number of context encoding bins at the CG level) and ctxBinSampleRatioBase2 (the second reference value for the number of context encoding bins at the CG level) supplied from the outside of the RemCcbs setting device 100. standard value).
  • ctxBinSampleRatioBase2 takes a smaller value than ctxBinSampleRatioBase1.
  • the ctxBinSampleRatio setting unit 181 acquires the reference value control flag supplied from the outside of the RemCcbs setting device 100 .
  • This reference value control flag is a control flag that controls the reference value of the number of context encoding bins at the CG level.
  • the ctxBinSampleRatio setting unit 181 sets the value of ctxBinSampleRatio based on the reference value control flag. For example, when the reference value control flag is false (for example, 0), the ctxBinSampleRatio setting unit 181 may set ctxBinSampleRatio using the acquired ctxBinSampleRatioBase1. This ctxBinSampleRatio setting method is arbitrary as long as ctxBinSampleRatioBase1 is used.
  • the ctxBinSampleRatio setting unit 181 may set the acquired ctxBinSampleRatioBase1 as ctxBinSampleRatio.
  • ctxBinSampleRatioBase1 is set to ctxBinSampleRatio when the reference value control flag is false.
  • the ctxBinSampleRatio setting unit 181 may use the acquired ctxBinSampleRatioBase2 to set ctxBinSampleRatio.
  • This ctxBinSampleRatio setting method is arbitrary as long as ctxBinSampleRatioBase2 is used.
  • the ctxBinSampleRatio setting unit 181 may set the acquired ctxBinSampleRatioBase2 as ctxBinSampleRatio. In the following description, it is assumed that ctxBinSampleRatioBase2 is set to ctxBinSampleRatio when the reference value control flag is false.
  • the ctxBinSampleRatio setting unit 181 supplies the ctxBinSampleRatio (ctxBinSampleRatioBase1 or ctxBinSampleRatioBase2) set as described above to the RemCcbs initial value setting unit 182 .
  • the RemCcbs initial value setting unit 182 performs processing related to setting the initial value of RemCcbs. For example, the RemCcbs initial value setting unit 182 acquires ctxBinSampleRatio (ctxBinSampleRatioBase1 or ctxBinSampleRatioBase2) supplied from the ctxBinSampleRatio setting unit 181 .
  • ctxBinSampleRatioBase1 or ctxBinSampleRatioBase2 supplied from the ctxBinSampleRatio setting unit 181 .
  • the RemCcbs initial value setting unit 182 uses the acquired ctxBinSampleRatio to set the initial value of RemCcbs (maximum number of context encoding bins generated in image encoding or decoding). That is, the RemCcbs initial value setting unit 182 sets the initial value of RemCcbs according to the control flag (reference value control flag) indicating the processing speed mode. In other words, the RemCcbs initial value setting unit 182 sets a value according to the control flag indicating the processing speed mode as the initial value of RemCcbs.
  • the RemCcbs initial value setting unit 182 may use the acquired ctxBinSampleRatioBase1 (first reference value) to set the initial value of RemCcbs. Further, when the reference value control flag is true, the RemCcbs initial value setting unit 182 may set the initial value of RemCcbs using the acquired ctxBinSampleRatioBase2 (second reference value).
  • the method of deriving the initial value of this RemCcbs is arbitrary. For example, the RemCcbs initial value setting unit 182 may derive the initial value of RemCcbs using Equation (1) described above.
  • the RemCcbs initial value setting unit 182 may set the initial value of RemCcbs based on ctxBinSampleRatio and other arbitrary parameters. For example, the RemCcbs initial value setting unit 182 may set the initial value of RemCcbs corresponding to the block to be processed based on the block size of the block to be processed and the reference value control flag.
  • the RemCcbs initial value setting unit 182 acquires ctxBinSampleRatioBase1 (first reference value) supplied from the ctxBinSampleRatio setting unit 181, Alternatively, the TbWidth and TbHeight of the block to be processed may be obtained. Then, the RemCcbs initial value setting unit 182 may use the acquired ctxBinSampleRatioBase1, TbWidth, and TbHeight to set the initial value of RemCcbs corresponding to the block to be processed.
  • the RemCcbs initial value setting unit 182 acquires ctxBinSampleRatioBase2 (second reference value) supplied from the ctxBinSampleRatio setting unit 181, Alternatively, the TbWidth and TbHeight of the block to be processed may be obtained. Then, the RemCcbs initial value setting unit 182 may use the acquired ctxBinSampleRatioBase2, TbWidth, and TbHeight to set the initial value of RemCcbs corresponding to the block to be processed.
  • the RemCcbs initial value setting unit 182 outputs the set initial value of RemCcbs to the outside of the RemCcbs setting device 100 (for example, a subsequent processing unit).
  • the RemCcbs setting device 100 can control the amount of generated context encoding bin numbers using the reference value control flag. . That is, the RemCcbs setting device 100 can control the amount of context-encoding bins generated in accordance with CABAC processing speed control. Therefore, in this case as well, the RemCcbs setting device 100 can suppress an increase in the processing amount of encoding and decoding. For example, the RemCcbs setting device 100 can suppress an increase in the processing amount of CABAC in encoding and decoding images with high bit depth and high bit rate.
  • the ctxBinSampleRatio setting unit 181 of the RemCcbs setting device 100 determines whether or not the reference value control flag is true in step S181. If it is determined that the reference value control flag is true, the process proceeds to step S182.
  • step S182 the ctxBinSampleRatio setting unit 181 sets ctxBinSampleRatioBase2 as ctxBinSampleRatio.
  • step S184 the process proceeds to step S184.
  • step S181 determines whether the reference value control flag is false. If it is determined in step S181 that the reference value control flag is false, the process proceeds to step S183.
  • step S183 the ctxBinSampleRatio setting unit 181 sets ctxBinSampleRatioBase1 as ctxBinSampleRatio.
  • step S183 ends, the process proceeds to step S184.
  • step S184 the RemCcbs initial value setting unit 182 sets the RemCcbs initial value corresponding to the block to be processed based on the ctxBinSampleRatio (ctxBinSampleRatioBase1 or ctxBinSampleRatioBase2) set in step S182 or S183.
  • ctxBinSampleRatioBase1 or ctxBinSampleRatioBase2 set in step S182 or S183.
  • the RemCcbs initial value setting unit 182 sets the initial value of the remaining number of allowable context coding bins based on the reference value control flag. In other words, the RemCcbs initial value setting unit 182 sets a value according to the reference value control flag as the maximum number of context coding bins generated in coding or decoding of the image.
  • the RemCcbs initial value setting unit 182 may set the initial value of RemCcbs based on ctxBinSampleRatio and other arbitrary parameters. For example, the RemCcbs initial value setting unit 182 may set the initial value of RemCcbs corresponding to the block to be processed based on the block size of the block to be processed and the reference value control flag.
  • the RemCcbs initial value setting unit 182 based on the block size (TbWidth and TbHeight) of the block to be processed and the reference value (ctxBinSampleRatioBase1 or ctxBinSampleRatioBase2) of the number of context encoding bins according to the reference value control flag, You may set the initial value of RemCcbs corresponding to the block.
  • the RemCcbs initial value setting unit 182 may derive the RemCcbs initial value using, for example, the above-described formula (1).
  • the RemCcbs setting process ends.
  • the RemCcbs setting device 100 can use the reference value control flag to control the amount of context encoding bins generated. That is, the RemCcbs setting device 100 can control the amount of context-encoding bins generated in accordance with CABAC processing speed control. Therefore, in this case as well, the RemCcbs setting device 100 can suppress an increase in the processing amount of encoding and decoding. For example, the RemCcbs setting device 100 can suppress an increase in the processing amount of CABAC in encoding and decoding images with high bit depth and high bit rate.
  • Image encoding method to which RemCcbs is applied may be any encoding method using context, and is not limited to CABAC described above as an example.
  • FIG. 10 is a block diagram showing an example of the configuration of an image encoding device, which is one aspect of an image processing device to which the present technology is applied.
  • An image encoding device 300 shown in FIG. 10 is a device that encodes image data of a moving image.
  • the image encoding device 300 can encode image data of a moving image using the encoding method described in any of the non-patent documents mentioned above.
  • FIG. 10 shows main components such as processing units (blocks) and data flow, and what is shown in FIG. 10 is not necessarily all.
  • the image encoding device 300 may have processing units not shown as blocks in FIG.
  • the image encoding device 300 may have processes and data flows not indicated by arrows or the like in FIG.
  • the image encoding device 300 includes a control unit 301, a rearrangement buffer 311, a calculation unit 312, an orthogonal transformation unit 313, a quantization unit 314, an encoding unit 315, an accumulation buffer 316, an inverse quantization unit 317 , an inverse orthogonal transform unit 318 , a calculation unit 319 , an in-loop filter unit 320 , a frame memory 321 , a prediction unit 322 and a rate control unit 323 .
  • the control unit 301 divides the moving image data held by the rearrangement buffer 311 into processing unit blocks (CU, PU, transform block, etc.) based on an external or pre-specified processing unit block size. .
  • the control unit 301 determines coding parameters (header information Hinfo, prediction mode information Pinfo, transform information Tinfo, filter information Finfo, etc.) to be supplied to each block, for example, based on RDO (Rate-Distortion Optimization). do.
  • control unit 301 After determining the encoding parameters as described above, the control unit 301 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 encoding section 315 and the prediction section 322 .
  • the transform information Tinfo is supplied to the encoding unit 315 , the orthogonal transform unit 313 , the quantization unit 314 , the inverse quantization unit 317 and the inverse orthogonal transform unit 318 .
  • the filter information Finfo is supplied to the in-loop filter section 320 .
  • Each field (input image) of moving image data is input to the image encoding device 300 in the order of reproduction (display order).
  • the rearrangement buffer 311 acquires and holds (stores) each input image in its reproduction order (display order).
  • the rearrangement buffer 311 rearranges the input image in encoding order (decoding order) or divides the input image into processing unit blocks under the control of the control unit 301 .
  • the rearrangement buffer 311 supplies each processed input image to the calculation unit 312 .
  • the rearrangement buffer 311 also supplies each input image (original image) to the prediction unit 322 and the in-loop filter unit 320 .
  • the calculation unit 312 receives the image I corresponding to the block of the processing unit and the prediction image P supplied from the prediction unit 322, subtracts the prediction image P from the image I as shown in the following formula, and predicts A residual D is derived and supplied to the orthogonal transform section 313 .
  • the orthogonal transform unit 313 receives the prediction residual D supplied from the calculation unit 312 and the transform information Tinfo supplied from the control unit 301, and performs orthogonal transform on the prediction residual D based on the transform information Tinfo. Perform the transform and derive the transform coefficient Coeff. For example, the orthogonal transform unit 313 performs primary transform on the prediction residual D to generate primary transform coefficients, performs secondary transform on the primary transform coefficients based on the ST identifier, and generates secondary transform coefficients. do. The orthogonal transform unit 313 supplies the obtained secondary transform coefficients to the quantization unit 314 as transform coefficients Coeff.
  • the orthogonal transform unit 313 is not limited to orthogonal transform, and can perform arbitrary coefficient transform. That is, the transform coefficient Coeff may be derived by subjecting the prediction residual D to any coefficient transform. Therefore, the orthogonal transform section 313 can also be said to be a coefficient transform section.
  • the quantization unit 314 receives the transform coefficient Coeff supplied from the orthogonal transform unit 313 and the transform information Tinfo supplied from the control unit 301, and scales (quantizes) the transform coefficient Coeff based on the transform information Tinfo. )do. Note that the rate of this quantization is controlled by the rate control section 323 .
  • the quantization section 314 supplies the quantization coefficient level (also referred to as quantization coefficient qcoeff), which is the level value of the transform coefficient quantized in this way, to the encoding section 315 and the inverse quantization section 317 .
  • the encoding unit 315 receives the quantization coefficient level supplied from the quantization unit 314 and various encoding parameters supplied from the control unit 301 (header information Hinfo, prediction mode information Pinfo, transform information Tinfo, filter information Finfo, etc.). , information on filters such as filter coefficients supplied from the in-loop filter unit 320 and information on the optimum prediction mode supplied from the prediction unit 322 are input.
  • the coding unit 315 performs variable length coding (for example, arithmetic coding) on the quantized coefficient level to generate a bit string (coded data).
  • the encoding unit 315 includes information about the filter supplied from the in-loop filter unit 320 in the filter information Finfo, and includes information about the optimum prediction mode supplied from the prediction unit 322 in the prediction mode information Pinfo. Then, the encoding unit 315 encodes the above-described various encoding parameters (header information Hinfo, prediction mode information Pinfo, transform information Tinfo, filter information Finfo, etc.) to generate a bit string.
  • the encoding unit 315 multiplexes the bit strings (encoded data) of various information generated as described above to generate a bit stream of the encoded data.
  • the encoder 315 supplies the bitstream to the accumulation buffer 316 .
  • the accumulation buffer 316 temporarily holds the bitstream of the encoded data obtained by the encoding unit 315 .
  • the accumulation buffer 316 outputs the bitstream of the encoded data it holds to the outside of the image encoding device 300 at a predetermined timing. For example, this bitstream is transmitted to the decoding side via any recording medium, any transmission medium, any information processing device, or the like. That is, the accumulation buffer 316 is also a transmission unit that transmits a bitstream (encoded data).
  • the inverse quantization unit 317 performs processing related to inverse quantization. For example, the inverse quantization unit 317 receives the quantization coefficient level supplied from the quantization unit 314 and the transformation information Tinfo supplied from the control unit 301, and calculates the quantization coefficient level based on the transformation information Tinfo. Scale (inverse quantize) the value of . Note that this inverse quantization is inverse processing of the quantization performed in the quantization section 314 . The inverse quantization unit 317 supplies the transform coefficient Coeff_IQ obtained by such inverse quantization to the inverse orthogonal transform unit 318 .
  • the inverse orthogonal transform unit 318 performs processing related to inverse orthogonal transform. For example, the inverse orthogonal transform unit 318 receives the transform coefficient Coeff_IQ supplied from the inverse quantization unit 317 and the transform information Tinfo supplied from the control unit 301, and transforms the transform coefficient Coeff_IQ based on the transform information Tinfo. Then, an inverse orthogonal transform is performed to derive a prediction residual D'. This inverse orthogonal transform is an inverse process of the orthogonal transform performed in the orthogonal transform section 313 . The inverse orthogonal transformation unit 318 supplies the prediction residual D′ obtained by such inverse orthogonal transformation to the calculation unit 319 .
  • the inverse orthogonal transformation unit 318 performs the inverse processing of the processing performed by the orthogonal transformation unit 313 .
  • the inverse orthogonal transform section 318 can perform arbitrary inverse coefficient transform, not limited to inverse orthogonal transform.
  • This inverse coefficient transform is inverse processing of the coefficient transform executed by the orthogonal transform unit 313 . That is, the prediction residual D' may be derived by performing any inverse coefficient transform on the transform coefficient Coeff_IQ. Therefore, the inverse orthogonal transform section 318 can also be said to be an inverse coefficient transform section.
  • the calculation unit 319 receives the prediction residual D′ supplied from the inverse orthogonal transform unit 318 and the predicted image P supplied from the prediction unit 322 .
  • the calculation unit 319 adds the prediction residual D' and the prediction image P corresponding to the prediction residual D' to derive a local decoded image Rlocal.
  • the calculation unit 319 supplies the derived local decoded image Rlocal to the in-loop filter unit 320 and the frame memory 321 .
  • the in-loop filter unit 320 performs processing related to in-loop filtering.
  • the in-loop filter unit 320 converts the local decoded image Rlocal supplied from the calculation unit 319, the filter information Finfo supplied from the control unit 301, and the input image (original image) supplied from the rearrangement buffer 311 to Input.
  • the information input to the in-loop filter unit 320 is arbitrary, and information other than these information may be input. For example, if necessary, prediction mode, motion information, code amount target value, quantization parameter QP, picture type, block (CU, CTU, etc.) information and the like may be input to the in-loop filter unit 320. good.
  • the in-loop filter unit 320 appropriately performs filtering on the local decoded image Rlocal based on the filter information Finfo.
  • the in-loop filter unit 320 also uses the input image (original image) and other input information for the filtering process as necessary.
  • the in-loop filter unit 320 includes, as described in Non-Patent Document 11, a bilateral filter, a deblocking filter (DBF (DeBlocking Filter)), an adaptive offset filter (SAO (Sample Adaptive Offset)), and an adaptive loop filter Four in-loop filters (ALF (Adaptive Loop Filter)) are applied in this order. Which filter to apply and in what order are optional and can be selected as appropriate.
  • DPF DeBlocking Filter
  • SAO Sample Adaptive Offset
  • ALF adaptive Loop Filter
  • the filtering process performed by the in-loop filtering unit 320 is arbitrary and is not limited to the above example.
  • the in-loop filter unit 320 may apply a Wiener filter or the like.
  • the in-loop filter unit 320 supplies the filtered locally decoded image Rlocal to the frame memory 321 .
  • the in-loop filter unit 320 supplies the filter-related information to the encoding unit 315 .
  • the frame memory 321 performs processing related to storage of image-related data. For example, the frame memory 321 receives the local decoded image Rlocal supplied from the calculation unit 319 and the filtered local decoded image Rlocal supplied from the in-loop filter unit 320, and holds (stores) them. The frame memory 321 also uses the local decoded image Rlocal to reconstruct and store the decoded image R for each picture (stores it in the buffer within the frame memory 321). The frame memory 321 supplies the decoded image R (or part thereof) to the prediction section 322 in response to a request from the prediction section 322 .
  • the prediction unit 322 performs processing related to prediction image generation.
  • the prediction unit 322 uses prediction mode information Pinfo supplied from the control unit 301, an input image (original image) supplied from the rearrangement buffer 311, and a decoded image R (or part thereof) read from the frame memory 321. is input.
  • the prediction unit 322 performs prediction processing such as inter prediction and intra prediction using prediction mode information Pinfo and an input image (original image), performs prediction with reference to the decoded image R as a reference image, and based on the prediction result motion compensation processing to generate a predicted image P.
  • the prediction unit 322 supplies the generated predicted image P to the calculation units 312 and 319 .
  • the prediction unit 322 supplies the prediction mode selected by the above process, that is, information about the optimum prediction mode to the encoding unit 315 as necessary.
  • the rate control unit 323 performs processing related to rate control. For example, the rate control unit 323 controls the quantization operation rate of the quantization unit 314 based on the code amount of the encoded data accumulated in the accumulation buffer 316 so that overflow or underflow does not occur.
  • each processing unit may be configured by a logic circuit that implements the above processing.
  • each processing unit may have, for example, a CPU, ROM, RAM, etc., and may implement the above-described processing by executing a program using them.
  • each processing unit may have both configurations, implement some of the above-described processes by a logic circuit, and implement others by executing a program.
  • the configuration of each processing unit may be independent of each other. , and another processing unit may implement the above-described processing by executing both the logic circuit and the program.
  • Suppression of the Number of Context-Encoding Bins> may be applied.
  • the method 1-1 of the present technology may be applied to the image coding device 300.
  • FIG. 11 is a block diagram showing a main configuration example of the encoding section 315 in that case.
  • encoding section 315 in this case has selection section 351 , TS residual encoding section 352 , and non-TS residual encoding section 353 .
  • the selection unit 351 performs processing related to control of the operation mode of the encoding unit 315 .
  • the selection unit 351 acquires the quantization coefficient level (quantization coefficient qcoeff) supplied from the quantization unit 314 .
  • the selection unit 351 also acquires transform_skip_flag[xTbY][yTbY][cIdx] and cIdx supplied from the control unit 301 .
  • transform_skip_flag[xTbY][yTbY][cIdx] is a transform skip flag indicating whether to skip (omit) the coefficient transform performed by the orthogonal transform unit 313 (the inverse coefficient transform performed by the inverse orthogonal transform unit 318). is. For example, when transform_skip_flag is true (for example, 1), the orthogonal transform unit 313 skips the coefficient transform for the prediction residual D. Also, the inverse orthogonal transform unit 318 skips the inverse coefficient transform for the transform coefficient Coeff_IQ. On the other hand, when transform_skip_flag is false (for example, 0), the orthogonal transform unit 313 performs coefficient transform on the prediction residual D to generate a transform coefficient Coeff. Also, the inverse orthogonal transform unit 318 performs inverse coefficient transform on the transform coefficient Coeff_IQ to generate a prediction residual D'.
  • cIdx is a component identifier for identifying components such as luminance components and color
  • the selection unit 351 determines whether transform skip has been performed based on transform_skip_flag[xTbY][yTbY][cIdx] and cIdx, and based on the determination result, sets the quantization coefficient level to the TS residual coding mode. or non-TS residual coding mode.
  • the TS residual coding mode is a mode for coding the quantized coefficient level when coefficient transform is skipped in orthogonal transform section 313 .
  • the non-TS residual coding mode is a mode for coding the quantized coefficient level when coefficient transform is performed in orthogonal transform section 313 .
  • the selection unit 351 When determining that the coefficient transform has been skipped, the selection unit 351 supplies the quantized coefficient level to the TS residual encoding unit 352 . When determining that the coefficient transform has been performed, the selection unit 351 supplies the quantized coefficient level to the non-TS residual encoding unit 353 .
  • the selection unit 351 uses an MTS (multiple transform selection) identifier (mts_idx[xTbY][yTbY][cIdx]), which is an identifier related to primary transformation, instead of transform_skip_flag, to determine whether or not transformation skipping has been performed. You can judge.
  • the selection unit 351 may determine whether or not a transform skip has been performed based on transform mode information, which is information about the mode of coefficient transform processing performed by the orthogonal transform unit 313, and cIdx. This transform mode information includes transform_skip_flag and mts_idx.
  • the TS residual coding unit 352 executes processing related to coding in the TS residual coding mode. For example, the TS residual encoding unit 352 acquires the quantized coefficient level supplied from the selection unit 351 . The TS residual encoding unit 352 encodes the acquired quantized coefficient level in the TS residual encoding mode.
  • the TS residual encoding section 352 has a RemCcbs setting section 361 .
  • the RemCcbs setting unit 361 sets the initial value of RemCcbs.
  • the TS residual encoding unit 352 encodes the acquired quantized coefficient level using the RemCcbs.
  • TS residual encoding section 352 bypass-encodes the syntax (abs_remainder, coeff_sign_flag) related to the level value of the transform coefficient (that is, the quantization coefficient level) (Fig. Medium, Pass3).
  • sig_coeff_flag is a flag that indicates whether the level of the transform coefficient corresponding to the flag (that is, the quantization coefficient level) is 0 or not. For example, if sig_coeff_flag is true (eg, 1), it indicates that the corresponding quantization coefficient level is not zero. If sig_coeff_flag is false (eg, 0), it indicates that the corresponding quantized coefficient level is 0. Also, coeff_sign_flag is a flag that specifies the sign of the level of the corresponding transform coefficient (that is, the quantization coefficient level). For example, if coeff_sign_flag is false (eg, 0), it indicates that the corresponding quantized coefficient level is positive.
  • abs_level_gtx_flag[j] is a flag that specifies whether the absolute value of the level of the corresponding transform coefficient (that is, the quantization coefficient level) is greater than (j ⁇ 1)+1.
  • par_level_flag is a flag that specifies the parity of the level of the corresponding transform coefficient (that is, the quantization coefficient level).
  • abs_remainder is a parameter indicating the residual absolute value of the corresponding level of the transform coefficient coded with the Golomb-Rice code (that is, the quantized coefficient level coded with the Golomb-Rice code).
  • the TS residual encoding unit 352 subtracts the number of context-encoded bins generated by context-encoding the quantized coefficient level from RemCcbs (the number of allowed context-encoded bin residues). Then, when RemCcbs becomes less than the threshold ( ⁇ 4), the TS residual coding unit 352 performs bypass coding on subsequent quantized coefficient levels as described above.
  • the Non-TS residual coding unit 353 executes processing related to coding in the Non-TS residual coding mode. For example, the Non-TS residual encoding unit 353 acquires the quantization coefficient level supplied from the selection unit 351 . The Non-TS residual encoding unit 353 encodes the acquired quantized coefficient level in the Non-TS residual encoding mode. Non-TS residual encoding section 353 has RemCcbs setting section 362 . The RemCcbs setting unit 362 sets the initial value of RemCcbs. The Non-TS residual encoding unit 353 encodes the acquired quantized coefficient level using the RemCcbs.
  • FIG. 13 is a diagram showing an example of syntax for the Non-TS residual coding mode.
  • the Non-TS residual encoding unit 353 uses syntax (sig_coeff_flag, abs_level_gtx_flag[j], par_level_flag, etc.) are context-encoded (Pass1 in the figure).
  • the Non-TS residual encoding unit 353 bypasses the syntax (abs_remainder, dec_abs_level, coeff_sign_flag) regarding the level value of the transform coefficient (that is, the quantization coefficient level). (Pass2 and Pass3 in the figure).
  • dec_abs_level is a parameter that indicates the intermediate value coded with the Golomb-Rice code.
  • the Non-TS residual encoding unit 353 subtracts the number of context-encoded bins generated by context-encoding the quantized coefficient level from RemCcbs (the number of allowed context-encoded bin residues). Then, when RemCcbs becomes less than the threshold ( ⁇ 4), the Non-TS residual coding unit 353 performs bypass coding on subsequent quantized coefficient levels as described above.
  • the encoding unit 315 also encodes information other than the quantization coefficient level.
  • the encoding unit 315 encodes transform mode information (eg, transform skip flag, MTS identifier, etc.).
  • the encoding unit 315 also includes RemCcbs setting information (for example, reference value for the number of context encoding bins (ctxBinSampleRatioBase), image bit depth (bitDepth), transform block size (TbWidth, TbHeight ) etc.).
  • the encoding unit 315 encodes various other encoding parameters (header information Hinfo, prediction mode information Pinfo, transform information Tinfo, filter information Finfo, etc.).
  • the coding unit 315 multiplexes the obtained coded data with the coded data generated by the TS residual coding unit 352 or the non-TS residual coding unit 353 to generate a bitstream, and stores it in the accumulation buffer. 316.
  • encoding (decoding) can be omitted by prearranging a reference value for the number of context encoding bins between the encoder and the decoder.
  • the unit for encoding (decoding) the RemCcbs setting information (in particular, the reference value for the number of context encoding bins) can be set in any unit within a feasible range. or a higher-order processing unit (CU unit, CTU unit, slice unit, tile unit, picture unit, sequence unit).
  • method 1-1 of the present technology described above may be applied to the RemCcbs setting unit 361 and the RemCcbs setting unit 362.
  • the RemCcbs setting unit 361 and the RemCcbs setting unit 362 may have the same configuration as the RemCcbs setting device 100 shown in FIG. 3 and perform the same processing to set the initial value of RemCcbs.
  • the RemCcbs setting unit 361 and the RemCcbs setting unit 362 acquire bitDepth, which is a parameter indicating the bit depth of the image to be encoded, supplied from the control unit 301 .
  • RemCcbs setting section 361 and RemCcbs setting section 362 then use the bitDepth to set the number of context encoding bins (ctxBinSampleRatio(bitDepth)) that depends on the bit depth.
  • RemCcbs setting section 361 and RemCcbs setting section 362 set the initial value of RemCcbs using the ctxBinSampleRatio(bitDepth).
  • the RemCcbs setting unit 361 and RemCcbs setting unit 362 may set ctxBinSampleRatio(bitDepth) based on bitDepth and other arbitrary parameters.
  • the RemCcbs setting unit 361 and the RemCcbs setting unit 362 acquire the reference value (ctxBinSampleRatioBase) of the number of context encoding bins supplied from the control unit 301, and set ctxBinSampleRatio(bitDepth) using the bitDepth described above and its ctxBinSampleRatioBase. You may
  • the RemCcbs setting unit 361 and RemCcbs setting unit 362 may set the initial value of RemCcbs based on ctxBinSampleRatio(bitDepth) and other arbitrary parameters.
  • the RemCcbs setting unit 361 and RemCcbs setting unit 362 acquire the block size (TbWidth and TbHeight) of the block to be processed supplied from the control unit 301, and use the above-mentioned ctxBinSampleRatio (bitDepth) and its TbWidth and TbHeight , the initial value of RemCcbs corresponding to the block to be processed may be set.
  • the RemCcbs setting unit 361 and the RemCcbs setting unit 362 may apply any one of methods 1-1-1 to 1-1-3 to set the initial value of RemCcbs.
  • the RemCcbs setting section 361 and the RemCcbs setting section 362 may set the initial value of RemCcbs by applying any of Equation (2) and Equations (3) to (5).
  • Coding section 315 uses the initial value of RemCcbs set in this way by RemCcbs setting section 361 and RemCcbs setting section 362 (the (maximum number) to encode the image (quantized coefficients level) (in TS residual coding mode or Non-TS residual coding mode). That is, the encoding unit 315 context-encodes the image (quantization coefficient level) using the maximum number of context encoding bins set by the RemCcbs setting unit 361 and the RemCcbs setting unit 362 by applying the present technology. That is, the encoding unit 315 can also be said to be an image encoding unit.
  • the encoding unit 315 can suppress an increase in the amount of encoding processing.
  • the encoding unit 315 can suppress an increase in the CABAC processing amount in encoding an image with a high bit depth and high bit rate.
  • RemCcbs setting section 361 and RemCcbs setting section 362 suppress the amount of generated context-encoding bins, thereby suppressing an increase in the total number of context-encoded bins and the number of bypass-encoded bins. can be suppressed. Therefore, the encoding unit 315 can suppress an increase in the total processing amount of CABAC.
  • the image encoding device 300 can suppress an increase in the amount of encoding processing.
  • step S301 the rearrangement buffer 311 is controlled by the control unit 301 to rearrange the frames of the input moving image data from the display order to the encoding order.
  • step S302 the control unit 301 sets a processing unit (divides into blocks) for the input image held by the rearrangement buffer 311.
  • step S ⁇ b>303 the control unit 301 determines (sets) encoding parameters for the input image held by the rearrangement buffer 311 .
  • step S304 the prediction unit 322 performs prediction processing to generate a predicted image or the like in the optimum prediction mode. For example, in this prediction process, the prediction unit 322 performs intra prediction to generate a predicted image or the like in an optimal intra prediction mode, performs inter prediction to generate a predicted image or the like in an optimal inter prediction mode, and From among them, the optimum prediction mode is selected based on the cost function value and the like.
  • step S305 the calculation unit 312 calculates the difference between the input image and the prediction image of the optimum mode selected by the prediction processing in step S304. That is, the calculation unit 312 generates a prediction residual D between the input image and the predicted image.
  • the prediction residual D obtained in this manner has a reduced data amount compared to 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 S306 the orthogonal transform unit 313 performs orthogonal transform processing on the prediction residual D generated by the processing in step S305 to derive the transform coefficient Coeff.
  • step S307 the quantization unit 314 quantizes the transform coefficient Coeff obtained by the processing in step S306, such as by using the quantization parameter calculated by the control unit 301, and derives the quantization coefficient level.
  • step S308 the inverse quantization unit 317 inversely quantizes the quantization coefficient level generated by the processing of step S307 with the characteristic corresponding to the quantization characteristic of step S307, and derives the transform coefficient Coeff_IQ.
  • step S309 the inverse orthogonal transform unit 318 inverse orthogonally transforms the transform coefficient Coeff_IQ obtained by the process of step S308 by a method corresponding to the orthogonal transform process of step S306, and derives the prediction residual D'.
  • step S310 the calculation unit 319 adds the predicted image obtained by the prediction process of step S304 to the prediction residual D' derived by the process of step S309, thereby obtaining a locally decoded decoded image. Generate.
  • step S311 the in-loop filter unit 320 performs in-loop filtering on the locally decoded decoded image derived by the process of step S310.
  • step S312 the frame memory 321 stores the locally decoded decoded image derived by the process of step S310 and the locally decoded decoded image filtered in step S311.
  • step S313 the encoding unit 315 executes encoding processing, encodes the quantization coefficient level and various encoding parameters obtained by the processing in step S307, and generates a bitstream of encoded data.
  • step S314 the accumulation buffer 316 accumulates the bitstream obtained in step S313 and outputs it to the outside of the image encoding device 300.
  • This bitstream is transmitted to the decoding side via, for example, a transmission path or a recording medium.
  • the rate control unit 323 performs rate control as necessary.
  • step S314 ends, the image encoding process ends.
  • the encoding unit 315 encodes transform mode information (transform_skip_flag, mts_idx, etc.) in step S351 of FIG.
  • step S352 the encoding unit 315 encodes the RemCcbs setting information (ctxBinSampleRatioBase, bitDepth, TbWidth, TbHeight, etc.). Furthermore, the encoding unit 315 encodes information other than the quantization coefficient level, such as various encoding parameters.
  • step S353 the selection unit 351 determines whether or not to encode the quantized coefficient level (syntax regarding the quantized coefficient level) in the TS residual coding mode based on the transform mode information and the like. If it is determined to apply the TS residual coding mode, the process proceeds to step S354.
  • step S354 the RemCcbs setting unit 361 executes RemCcbs setting processing and sets (the initial value of) RemCcbs.
  • step S355 the TS residual coding unit 352 uses (the initial value of) RemCcbs obtained in step S354 to encode the quantization coefficient level in the TS residual coding mode.
  • the process of step S355 ends, the encoding process ends, and the process returns to FIG.
  • step S353 of FIG. 15 determines whether the TS residual coding mode is not applied (that is, the Non-TS residual coding mode is applied). If it is determined in step S353 of FIG. 15 that the TS residual coding mode is not applied (that is, the Non-TS residual coding mode is applied), the process proceeds to step S356.
  • step S356 the RemCcbs setting unit 362 executes RemCcbs setting processing and sets (the initial value of) RemCcbs.
  • step S357 the Non-TS residual encoding unit 353 uses (the initial value of) RemCcbs obtained in step S356 to encode the quantization coefficient level in the Non-TS residual encoding mode.
  • the process of step S357 ends, the encoding process ends and the process returns to FIG.
  • the above-described method 1-1 of the present technology may be applied to the RemCcbs setting processing executed in steps S354 and S356 of such encoding processing.
  • this RemCcbs setting process may be executed according to the flow described with reference to the flowchart of FIG.
  • the RemCcbs setting unit 361 and RemCcbs setting unit 362 may apply any one of methods 1-1-1 to 1-1-3 to set the initial value of RemCcbs.
  • the RemCcbs setting section 361 and the RemCcbs setting section 362 may set the initial value of RemCcbs by applying any of Equation (2) and Equations (3) to (5).
  • the encoding unit 315 can suppress an increase in the amount of encoding processing.
  • the encoding unit 315 can suppress an increase in the CABAC processing amount in encoding an image with a high bit depth and high bit rate.
  • RemCcbs setting section 361 and RemCcbs setting section 362 suppress the amount of generated context-encoding bins, thereby suppressing an increase in the total number of context-encoded bins and the number of bypass-encoded bins. can be suppressed. Therefore, the encoding unit 315 can suppress an increase in the total processing amount of CABAC.
  • the image encoding device 300 can suppress an increase in the amount of encoding processing.
  • FIG. 16 is a block diagram showing an example of a configuration of an image decoding device, which is one aspect of an image processing device to which the present technology is applied.
  • the image decoding device 400 shown in FIG. 16 is a device that encodes encoded data of moving images.
  • the image decoding device 400 can decode the encoded data using the decoding method described in any of the above non-patent documents.
  • the image decoding device 400 decodes the encoded data (bitstream) generated by the image encoding device 300 described above.
  • FIG. 16 shows main elements such as processing units (blocks) and data flow, and what is shown in FIG. 16 is not necessarily all.
  • the image decoding device 400 may have processing units not shown as blocks in FIG.
  • the image decoding device 400 may have processes and data flows not indicated by arrows or the like in FIG.
  • the image decoding device 400 includes an accumulation buffer 411, a decoding unit 412, an inverse quantization unit 413, an inverse orthogonal transform unit 414, a calculation unit 415, an in-loop filter unit 416, a rearrangement buffer 417, a frame memory 418, and A prediction unit 419 is provided.
  • the prediction unit 419 includes an intra prediction unit, an inter prediction unit, and the like (not shown).
  • the image decoding device 400 is a device for generating moving image data by decoding encoded data (bitstream).
  • the accumulation buffer 411 acquires and holds (stores) the bitstream input to the image decoding device 400 .
  • the accumulation buffer 411 supplies the accumulated bitstream to the decoding unit 412 at predetermined timing or when predetermined conditions are met.
  • the decoding unit 412 performs processing related to image decoding. For example, the decoding unit 412 receives the bitstream supplied from the accumulation buffer 411, and according to the definition of the syntax table, variable-length decodes the syntax value of each syntax element from the bitstream, and derives the parameters. do.
  • Parameters derived from syntax elements and syntax values of syntax elements include information such as header information Hinfo, prediction mode information Pinfo, transformation information Tinfo, and filter information Finfo. That is, the decoding unit 412 parses (analyzes and acquires) these pieces of information from the bitstream. These pieces of information are described below.
  • the 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 (horizontal width PicWidth, vertical width PicHeight), bit depth (luminance bitDepthY, color difference bitDepthC), color difference array type ChromaArrayType, maximum value MaxCUSize/minimum value MinCUSize of CU size, quadtree division ( Quad-tree partition) maximum depth MaxQTDepth/minimum depth MinQTDepth, binary-tree partition maximum depth MaxBTDepth/minimum depth MinBTDepth, transform skip block maximum value MaxTSSize (also called maximum transform skip block size) ), an on/off flag (also called a valid flag) of each coding tool, and other information.
  • image size horizontal width PicWidth, vertical width PicHeight
  • bit depth luminance bitDepthY, color
  • the on/off flags of the encoding tool included in the header information Hinfo include the following on/off flags related to transform and quantization processing.
  • the on/off flag of an encoding tool can also be interpreted as a flag indicating whether or not syntax related to the encoding tool exists in the encoded 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. show. Note that 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 referred to as 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 PSize (prediction block size) of the target PB (prediction block) to be processed, intra prediction mode information IPinfo, motion prediction information MVinfo, and the like.
  • the 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 luminance intra prediction mode IntraPredModeY derived from the syntax.
  • the intra prediction mode information IPinfo includes, for example, an inter-component prediction flag (ccp_flag (cclmp_flag)), a multi-class linear prediction mode flag (mclm_flag), a chrominance sample location type identifier (chroma_sample_loc_type_idx), a chrominance MPM identifier (chroma_mpm_idx), and , a luminance intra prediction mode (IntraPredModeC) derived from these syntaxes, and the like.
  • ccp_flag cclmp_flag
  • mclm_flag multi-class linear prediction mode flag
  • chroma_sample_loc_type_idx chrominance MPM identifier
  • chroma_mpm_idx chrominance MPM identifier
  • the multi-class linear prediction mode flag (mclm_flag) is information about the linear prediction mode (linear prediction mode information). More specifically, the multi-class linear prediction mode flag (mclm_flag) is flag information indicating whether to set the multi-class linear prediction mode. For example, "0" indicates a 1-class mode (single-class mode) (eg, CCLMP), and "1" indicates a 2-class mode (multi-class mode) (eg, MCLMP). .
  • a chrominance sample position type identifier (chroma_sample_loc_type_idx) is an identifier that identifies the type of pixel position of the chrominance component (also referred to as the chrominance sample position type). For example, when the chrominance array type (ChromaArrayType), which is information about the color format, indicates the 420 format, the chrominance sample position type identifier is assigned according to the following formula.
  • this chrominance sample position type identifier (chroma_sample_loc_type_idx) is transmitted (stored in) as information (chroma_sample_loc_info( )) on the pixel position of the chrominance component.
  • the chrominance MPM identifier (chroma_mpm_idx) is an identifier that indicates which prediction mode candidate in the chrominance intra prediction mode candidate list (intraPredModeCandListC) is designated as the chrominance 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 these information may be included.
  • Transform skip flag (transform_skip_flag (also called ts_flag))
  • ScanIdx quantization parameter (qp) quantization matrix (scaling_matrix (e.g. JCTVC-W1005, 7.3.4 Scaling list data syntax))
  • log2TBWSize and log2TBHSize may be included in the conversion information Tinfo instead of TBWSize and TBHSize.
  • log2TBWSize is the base 2 logarithm of TBWSize.
  • log2TBHSize is the base 2 logarithm of TBHSize.
  • the transform skip flag is a flag indicating whether to skip the inverse coefficient transform (inverse primary transform and inverse secondary transform).
  • the filter information Finfo includes, for example, control information regarding each filtering process described below.
  • 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/nonlinear filters
  • filter information Finfo is arbitrary, and information other than these information may be included.
  • the decoding unit 412 derives the quantization coefficient level by referring to the syntax regarding the quantization coefficient level obtained by decoding the bitstream.
  • the decoding unit 412 supplies the quantized coefficient level to the inverse quantization unit 413 .
  • the decoding unit 412 supplies coding parameters such as parsed header information Hinfo, prediction mode information Pinfo, transform information Tinfo, and filter information Finfo to each block.
  • the decoding unit 412 supplies the header information Hinfo to the inverse quantization unit 413 , the inverse orthogonal transform unit 414 , the prediction unit 419 and the in-loop filter unit 416 .
  • the decoding unit 412 also supplies the prediction mode information Pinfo to the inverse quantization unit 413 and the prediction unit 419 .
  • the decoding unit 412 also supplies the transform information Tinfo to the inverse quantization unit 413 and the inverse orthogonal transform unit 414 .
  • the decoding unit 412 also supplies the filter information Finfo to the in-loop filter unit 416 .
  • each encoding parameter may be supplied to any processing unit.
  • other information may be supplied to any processing unit.
  • the inverse quantization unit 413 has at least a configuration necessary for performing processing related to inverse quantization. For example, the inverse quantization unit 413 receives the transformation information Tinfo and the quantization coefficient level supplied from the decoding unit 412, and scales (inverse quantizes) the value of the quantization coefficient level based on the transformation information Tinfo. , to derive the transform coefficients Coeff_IQ after inverse quantization. The inverse quantization unit 413 supplies the derived transform coefficient Coeff_IQ to the inverse orthogonal transform unit 414 .
  • this inverse quantization is performed as inverse processing of the quantization by the quantization unit 314 of the image encoding device 300. Also, this inverse quantization is the same processing as the inverse quantization by the inverse quantization unit 317 of the image encoding device 300 . That is, the inverse quantization unit 317 of the image encoding device 300 performs the same processing (inverse quantization) as the inverse quantization unit 413 does.
  • the inverse orthogonal transform unit 414 performs processing related to inverse orthogonal transform. For example, the inverse orthogonal transform unit 414 receives the transform coefficient Coeff_IQ supplied from the inverse quantization unit 413 and the transform information Tinfo supplied from the decoding unit 412, and transforms the transform coefficient Coeff_IQ based on the transform information Tinfo. An inverse orthogonal transform process is performed on this to derive a prediction residual D'. For example, the inverse orthogonal transform unit 414 performs inverse secondary transform on transform coefficient Coeff_IQ based on the ST identifier to generate primary transform coefficients, performs primary transform on the primary transform coefficients, and predicts residual D '. The inverse orthogonal transform unit 414 supplies the derived prediction residual D′ to the calculation unit 415 .
  • this inverse orthogonal transformation is performed as inverse processing of the orthogonal transformation by the orthogonal transformation unit 313 of the image encoding device 300 .
  • this inverse orthogonal transform is the same process as the inverse orthogonal transform by the inverse orthogonal transform unit 318 of the image encoding device 300 . That is, the inverse orthogonal transform unit 318 of the image encoding device 300 performs the same processing (inverse orthogonal transform) as the inverse orthogonal transform unit 414 does.
  • the inverse orthogonal transform unit 414 can perform arbitrary inverse coefficient transform, not limited to inverse orthogonal transform, like the inverse orthogonal transform unit 318 of the image encoding device 300 .
  • This inverse coefficient transform is inverse processing of the coefficient transform executed by the orthogonal transform unit 313 of the image encoding device 300 . That is, the prediction residual D' may be derived by performing any inverse coefficient transform on the transform coefficient Coeff_IQ. Therefore, the inverse orthogonal transform unit 414 can also be said to be an inverse coefficient transform unit.
  • the calculation unit 415 performs processing related to addition of information regarding images. For example, the calculation unit 415 receives the prediction residual D′ supplied from the inverse orthogonal transform unit 414 and the prediction image P supplied from the prediction unit 419 . The calculation unit 415 adds the prediction residual D' and the prediction image P (prediction signal) corresponding to the prediction residual D' to derive the local decoded image Rlocal, as shown in the following equation. The calculation unit 415 supplies the derived local decoded image Rlocal to the in-loop filter unit 416 and the frame memory 418 .
  • the in-loop filter unit 416 performs processing related to in-loop filtering. For example, the in-loop filter unit 416 receives the local decoded image Rlocal supplied from the calculation unit 415 and the filter information Finfo supplied from the decoding unit 412 .
  • the information input to the in-loop filter unit 416 is arbitrary, and information other than these information may be input.
  • the in-loop filter unit 416 appropriately performs filtering on the local decoded image Rlocal based on the filter information Finfo.
  • the in-loop filter unit 416 includes, as described in Non-Patent Document 11, a bilateral filter, a deblocking filter (DBF (DeBlocking Filter)), an adaptive offset filter (SAO (Sample Adaptive Offset)), and an adaptive loop filter Four in-loop filters (ALF (Adaptive Loop Filter)) are applied in this order. Which filter to apply and in what order are optional and can be selected as appropriate.
  • DPF DeBlocking Filter
  • SAO Sample Adaptive Offset
  • ALF adaptive Loop Filter
  • the in-loop filter unit 416 performs filter processing corresponding to the filter processing performed by the encoding side (for example, the in-loop filter unit 320 of the image encoding device 300).
  • the filtering process performed by the in-loop filtering unit 416 is arbitrary and is not limited to the above example.
  • the in-loop filter unit 416 may apply a Wiener filter or the like.
  • the in-loop filter unit 416 supplies the filtered locally decoded image Rlocal to the rearrangement buffer 417 and the frame memory 418 .
  • the rearrangement buffer 417 receives the local decoded image Rlocal supplied from the in-loop filter unit 416 and holds (stores) it.
  • the rearrangement buffer 417 reconstructs the decoded image R for each picture using the local decoded image Rlocal and holds it (stores it in the buffer).
  • the rearrangement buffer 417 rearranges the obtained decoded images R from decoding order to reproduction order.
  • the rearrangement buffer 417 outputs the rearranged R group of decoded images to the outside of the image decoding device 400 as moving image data.
  • the frame memory 418 performs processing related to storage of data regarding images. For example, the frame memory 418 receives the local decoded image Rlocal supplied from the calculation unit 415, reconstructs the decoded image R for each picture, and stores the reconstructed image in the buffer within the frame memory 418.
  • the frame memory 418 receives the in-loop filtered local decoded image Rlocal supplied from the in-loop filter unit 416, reconstructs the decoded image R for each picture unit, and stores the buffer in the frame memory 418. store to The frame memory 418 appropriately supplies the stored decoded image R (or part thereof) to the prediction unit 419 as a reference image.
  • the frame memory 418 may store header information Hinfo, prediction mode information Pinfo, transform information Tinfo, filter information Finfo, etc. related to generation of decoded images.
  • the prediction unit 419 performs processing related to prediction image generation. For example, the prediction unit 419 receives the prediction mode information Pinfo supplied from the decoding unit 412, performs prediction using the prediction method specified by the prediction mode information Pinfo, and derives the prediction image P. In the derivation, the prediction unit 419 uses the pre-filter or post-filter decoded image R (or part thereof) stored in the frame memory 418 specified by the prediction mode information Pinfo as a reference image. The prediction unit 419 supplies the derived prediction image P to the calculation unit 415 .
  • each processing unit may be configured by a logic circuit that implements the above processing.
  • each processing unit may have, for example, a CPU, ROM, RAM, etc., and may implement the above-described processing by executing a program using them.
  • each processing unit may have both configurations, implement some of the above-described processes by a logic circuit, and implement others by executing a program.
  • the configuration of each processing unit may be independent of each other.
  • another processing unit may implement the above-described processing by executing both the logic circuit and the program.
  • FIG. 17 is a block diagram showing a main configuration example of the decoding unit 412 in that case.
  • decoding section 412 in this case has selection section 451 , TS residual decoding section 452 , and non-TS residual decoding section 453 .
  • the decoding unit 412 acquires the bitstream supplied from the accumulation buffer 411 .
  • the decoding unit 412 variable-length decodes the syntax value of each syntax element from the bit stream of the bitstream according to the definition of the syntax table, and derives parameters other than the quantization coefficient level.
  • the decoding unit 412 decodes the bitstream, transform mode information (eg, transform skip flag, MTS identifier, etc.) and RemCcbs setting information (eg, reference value for the number of context encoding bins (ctxBinSampleRatioBase), image bit depth (bitDepth), transform block size (TbWidth, TbHeight), etc.).
  • the decoding unit 412 decodes the bitstream and generates various other encoding parameters (header information Hinfo, prediction mode information Pinfo, transformation information Tinfo, filter information Finfo, etc.).
  • the selection unit 451 performs processing related to control of the operation mode of the decoding unit 412 . For example, the selection unit 451 acquires the bitstream acquired by the decoding unit 412 . Further, the selection unit 451 selects transform mode information (for example, a transform skip flag (transform_skip_flag[xTbY][yTbY][cIdx])) and a component identifier (cIdx) obtained by parsing the bitstream by the decoding unit 412. get.
  • transform mode information for example, a transform skip flag (transform_skip_flag[xTbY][yTbY][cIdx])
  • cIdx component identifier
  • the selection unit 451 determines whether or not a transform skip has been performed during encoding, and based on the determination result, determines the quantization coefficient level. Select whether to decode encoded data in TS residual coding mode or non-TS residual coding mode.
  • the TS residual coding mode is a mode for decoding the coded data of the quantized coefficient level generated by skipping the coefficient transform.
  • the non-TS residual coding mode is a mode for decoding the coded data of the quantized coefficient level generated by executing the coefficient transform.
  • transform_skip_flag true (for example, 1)
  • the selection unit 451 determines that the coefficient transform was skipped during encoding, and supplies the encoded data of the quantized coefficient level to the TS residual decoding unit 452 .
  • transform_skip_flag false (for example, 0)
  • the selection unit 451 determines that coefficient transformation has been performed during encoding, and supplies the encoded data of the quantized coefficient level to the non-TS residual decoding unit 453 .
  • the selection unit 451 may use the MTS identifier (mts_idx[xTbY][yTbY][cIdx]) instead of transform_skip_flag to determine whether transform skipping has been performed during encoding. Additionally, the selection unit 451 may determine whether or not a transform skip has been performed during encoding based on the transform mode information and cIdx. This transform mode information includes transform_skip_flag and mts_idx.
  • the TS residual decoding unit 452 executes processing related to decoding in the TS residual coding mode. For example, the TS residual decoding unit 452 acquires encoded data of the quantization coefficient level supplied from the selection unit 451 . The TS residual decoding unit 452 decodes the acquired encoded data of the quantized coefficient level in the TS residual coding mode to generate the quantized coefficient level.
  • TS residual decoding section 452 has RemCcbs setting section 461 . The RemCcbs setting unit 461 sets the initial value of RemCcbs. The TS residual decoding unit 452 decodes the encoded data of the acquired quantized coefficient level using the RemCcbs to generate the quantized coefficient level.
  • TS residual decoding section 452 uses syntax (sig_coeff_flag, coeff_sign_flag, abs_level_gtx_flag [j], par_level_flag, etc.) are context-decoded (Pass1 and Pass2 in the figure).
  • the TS residual decoding unit 452 bypass-decodes the encoded data of the syntax (abs_remainder, coeff_sign_flag) regarding the level value of the transform coefficient (that is, the quantization coefficient level). (Pass 3 in the figure).
  • the TS residual decoding unit 452 subtracts the number of context-encoding bins generated by context-decoding the encoded data of the quantization coefficient level from RemCcbs (allowable context-encoding bin remaining number). Then, when RemCcbs becomes less than the threshold value ( ⁇ 4), the TS residual decoding unit 452 bypass-decodes the encoded data of the subsequent quantization coefficient level as described above.
  • the Non-TS residual decoding unit 453 executes processing related to decoding in the Non-TS residual coding mode. For example, the Non-TS residual decoding unit 453 acquires encoded data of the quantization coefficient level supplied from the selection unit 451 . The non-TS residual decoding unit 453 decodes the acquired encoded data of the quantized coefficient level in the non-TS residual coding mode to generate the quantized coefficient level.
  • Non-TS residual decoding section 453 has RemCcbs setting section 462 . The RemCcbs setting unit 462 sets the initial value of RemCcbs. The non-TS residual decoding unit 453 decodes the encoded data of the quantized coefficient level obtained using the RemCcbs to generate the quantized coefficient level.
  • the Non-TS residual decoding unit 453 uses syntax (sig_coeff_flag, abs_level_gtx_flag [j], par_level_flag, etc.) is context-decoded (Pass1 in the figure).
  • the Non-TS residual decoding unit 453 uses the syntax (abs_remainder, dec_abs_level, coeff_sign_flag) coded data for the level value of the transform coefficient (that is, the quantization coefficient level). bypass decryption (Pass2 and Pass3 in the figure).
  • the Non-TS residual decoding unit 453 subtracts the number of context-encoded bins generated by context-decoding the encoded data of the quantization coefficient level from RemCcbs (the remaining number of allowed context-encoded bins). Then, when RemCcbs becomes less than the threshold value ( ⁇ 4), the Non-TS residual decoding unit 453 bypass-decodes the encoded data of the subsequent quantization coefficient level as described above.
  • the decoding unit 412 supplies the quantization coefficient level generated by the TS residual decoding unit 452 or the Non-TS residual decoding unit 453 to the inverse quantization unit 413 . Also, the decoding unit 412 supplies information other than the quantization coefficient level obtained by decoding the bitstream (for example, header information Hinfo, prediction mode information Pinfo, transform information Tinfo, filter information Finfo, etc.) to an arbitrary block. do.
  • information other than the quantization coefficient level obtained by decoding the bitstream for example, header information Hinfo, prediction mode information Pinfo, transform information Tinfo, filter information Finfo, etc.
  • the TS residual decoding unit 452 When the TS residual decoding unit 452 performs decoding in the TS residual coding mode, that is, when the transform_skip_flag is true (for example, 1), the inverse coefficient transform for the transform coefficient Coeff_IQ by the inverse orthogonal transform unit 414 is skipped. be done.
  • the transform_skip_flag when decoding is performed in the Non-TS residual coding mode by the Non-TS residual decoding unit 453, that is, when transform_skip_flag is false (for example, 0), the transform coefficients by the inverse orthogonal transform unit 414 An inverse coefficient transform is performed on Coeff_IQ to produce a prediction residual D'.
  • method 1-1 of the present technology described above may be applied to the RemCcbs setting unit 461 and the RemCcbs setting unit 462.
  • the RemCcbs setting unit 461 and the RemCcbs setting unit 462 may have the same configuration as the RemCcbs setting device 100 shown in FIG. 3 and perform the same processing to set the initial value of RemCcbs.
  • the RemCcbs setting unit 461 and the RemCcbs setting unit 462 acquire the bit depth (bitDepth) of the encoding target image obtained by decoding the bitstream by the decoding unit 412 . Then, RemCcbs setting section 461 and RemCcbs setting section 462 use the bitDepth to set the number of context encoding bins (ctxBinSampleRatio(bitDepth)) that depends on the bit depth. Then, the RemCcbs setting section 461 and RemCcbs setting section 462 set the initial value of RemCcbs using the ctxBinSampleRatio(bitDepth).
  • the RemCcbs setting section 461 and RemCcbs setting section 462 may set ctxBinSampleRatio(bitDepth) based on bitDepth and other arbitrary parameters.
  • the RemCcbs setting unit 461 and the RemCcbs setting unit 462 may acquire the reference value (ctxBinSampleRatioBase) of the number of context encoding bins, and set ctxBinSampleRatio(bitDepth) using the bitDepth described above and its ctxBinSampleRatioBase.
  • this ctxBinSampleRatioBase may be predetermined (the same value as the encoding side (image encoding device 300)), or may be included in the bitstream transmitted from the encoding side (image encoding device 300). It may be
  • the RemCcbs setting unit 461 and RemCcbs setting unit 462 may set the initial value of RemCcbs based on the ctxBinSampleRatio(bitDepth) set in this way and other arbitrary parameters.
  • the RemCcbs setting unit 461 and the RemCcbs setting unit 462 acquire the block size (TbWidth and TbHeight) of the processing target block obtained by decoding the bitstream by the decoding unit 412, and obtain the above ctxBinSampleRatio (bitDepth) and The TbWidth and TbHeight may be used to set the initial value of RemCcbs corresponding to the block to be processed.
  • the RemCcbs setting unit 461 and the RemCcbs setting unit 462 may apply any one of methods 1-1-1 to 1-1-3 to set the initial value of RemCcbs.
  • the RemCcbs setting section 461 and the RemCcbs setting section 462 may set the initial value of RemCcbs by applying any one of Equation (2) and Equations (3) to (5).
  • Decoding section 412 (TS residual decoding section 452 and Non-TS residual decoding section 453) sets the initial value of RemCcbs (maximum number of context coding bins) set in this manner by RemCcbs setting section 461 and RemCcbs setting section 462. is used to decode the coded data of the image (quantized coefficient level) (in TS residual coding mode or Non-TS residual coding mode). That is, the decoding unit 412 uses the maximum number of context encoding bins set by the RemCcbs setting unit 461 and the RemCcbs setting unit 462 by applying the present technology to context-decode the bitstream in which the image is context-encoded, Generate an image (quantized coefficient level). That is, the decoding unit 412 can also be said to be an image decoding unit.
  • the decoding unit 412 can suppress an increase in the processing amount of decoding.
  • the decoding unit 412 can suppress an increase in the processing amount of CABAC in decoding a high bit depth/high bit rate image.
  • RemCcbs setting section 461 and RemCcbs setting section 462 suppress the amount of generated context-encoding bins, thereby suppressing an increase in the total number of context-encoded bins and the number of bypass-encoded bins. can be suppressed. Therefore, the decoding unit 412 can suppress an increase in the total processing amount of CABAC.
  • the image decoding device 400 can suppress an increase in the processing amount of decoding.
  • the accumulation buffer 411 acquires and holds (accumulates) encoded data (bitstream) supplied from the outside of the image decoding device 400 in step S401.
  • step S402 the decoding unit 412 performs decoding processing, decodes the encoded data (bitstream), and obtains the quantization coefficient level. Also, the decoding unit 412 parses (analyzes and acquires) various coding parameters from the coded data (bitstream) by this decoding.
  • step S403 the inverse quantization unit 413 performs inverse quantization, which is an inverse process of the quantization performed on the encoding side, on the quantized coefficient level obtained by the process of step S402, and converts the transform coefficient Coeff_IQ into a transform coefficient Coeff_IQ.
  • step S404 the inverse orthogonal transform unit 414 performs inverse orthogonal transform processing, which is the reverse processing of the orthogonal transform processing performed on the encoding side, on the transform coefficient Coeff_IQ obtained in step S403, and predictive residual D ' get.
  • step S405 the prediction unit 419 executes prediction processing using a prediction method specified by the encoding side based on the information parsed in step S402, and refers to the reference image stored in the frame memory 418. to generate a predicted image P.
  • step S406 the calculation unit 415 adds the prediction residual D' obtained in step S404 and the prediction image P obtained in step S405 to derive the local decoded image Rlocal.
  • step S407 the in-loop filtering unit 416 performs in-loop filtering on the locally decoded image Rlocal obtained by the processing in step S406.
  • step S408 the rearrangement buffer 417 derives the decoded image R using the filtered local decoded image Rlocal obtained by the process of step S407, and rearranges the order of the decoded image R group from the decoding order to the reproduction order. change.
  • the group of decoded images R rearranged in order of reproduction is output to the outside of the image decoding device 400 as a moving image.
  • the frame memory 418 stores at least one of the local decoded image Rlocal obtained by the process of step S406 and the filtered local decoded image Rlocal obtained by the process of step S407. .
  • step S409 ends, the image decoding process ends.
  • the decoding unit 412 decodes the bitstream and generates transform mode information (transform_skip_flag, mts_idx, etc.) in step S451 of FIG.
  • step S452 the decoding unit 412 decodes the bitstream and generates RemCcbs setting information (ctxBinSampleRatioBase, bitDepth, TbWidth, TbHeight, etc.). Furthermore, the decoding unit 412 decodes the bitstream and generates information other than the quantization coefficient level, such as various encoding parameters.
  • the selection unit 451 may determine to decode in the TS residual encoding mode. . In that case, when the MTS identifier does not indicate skipping of the primary transform during encoding, the selection unit 451 determines to decode in the Non-TS residual encoding mode.
  • step S454 If it is determined to apply the TS residual coding mode, the process proceeds to step S454.
  • step S454 the RemCcbs setting unit 461 executes RemCcbs setting processing and sets (the initial value of) RemCcbs.
  • step S455 the TS residual decoding unit 452 uses (the initial value of) RemCcbs obtained in step S454 to decode the encoded data of the quantization coefficient level in the TS residual coding mode.
  • the decoding process ends and the process returns to FIG.
  • step S453 determines whether the TS residual coding mode is not applied (that is, the Non-TS residual coding mode is applied). If it is determined in step S453 in FIG. 19 that the TS residual coding mode is not applied (that is, the Non-TS residual coding mode is applied), the process proceeds to step S456.
  • step S456 the RemCcbs setting unit 462 executes RemCcbs setting processing and sets (the initial value of) RemCcbs.
  • step S457 the Non-TS residual decoding unit 453 uses (the initial value of) RemCcbs obtained in step S456 to decode the encoded data of the quantization coefficient level in the non-TS residual coding mode.
  • the decoding process ends and the process returns to FIG.
  • the above-described method 1-1 of the present technology may be applied to the RemCcbs setting processing executed in steps S454 and S456 of such decoding processing.
  • this RemCcbs setting process may be executed according to the flow described with reference to the flowchart of FIG.
  • the RemCcbs setting unit 461 and RemCcbs setting unit 462 may apply any one of methods 1-1-1 to 1-1-3 to set the initial value of RemCcbs.
  • the RemCcbs setting section 461 and the RemCcbs setting section 462 may set the initial value of RemCcbs by applying any one of Equation (2) and Equations (3) to (5).
  • the decoding unit 412 can suppress an increase in the processing amount of decoding.
  • the decoding unit 412 can suppress an increase in the processing amount of CABAC in decoding a high bit depth/high bit rate image.
  • RemCcbs setting section 461 and RemCcbs setting section 462 suppress the amount of generated context-encoding bins, thereby suppressing an increase in the total number of context-encoded bins and the number of bypass-encoded bins. can be suppressed. Therefore, the decoding unit 412 can suppress an increase in the total processing amount of CABAC.
  • the image decoding device 400 can suppress an increase in the amount of decoding processing.
  • FIG. 20 is a block diagram showing a main configuration example of the control section 301 and the encoding section 315 in that case.
  • the control unit 301 has an execution control flag generation unit 511 in this case.
  • encoding section 315 has selection section 351 , TS residual encoding section 352 , non-TS residual encoding section 353 , and execution control flag encoding section 512 .
  • the execution control flag generation unit 511 performs ⁇ 2.
  • the execution control flag described in ⁇ execution control flag>, etc. in Suppressing the Number of Context Encoding Bins> is generated.
  • the execution control flag generator 511 supplies the generated execution control flag to the encoder 315 .
  • the execution control flag generator 511 may supply the generated execution control flag to the execution control flag encoder 512 .
  • the execution control flag generation unit 511 may also supply the generated execution control flags to the RemCcbs setting unit 361 and the RemCcbs setting unit 362 .
  • This execution control flag is a flag that indicates whether or not to apply this technology. For example, if this execution control flag is true, Method 1 (Method 1-1) of the present technology is applied, and the maximum number of context encoding bins is set according to the number of context encoding bins depending on the bit depth. Also, when this execution control flag is false, method 1 (method 1-1) of the present technology is not applied, and the maximum number of context-encoding bins is set according to the reference value of the number of context-encoding bins.
  • the execution control flag generation unit 511 may generate this execution control flag based on arbitrary information. For example, the execution control flag generation unit 511 may generate the execution control flag based on the image to be encoded or parameters related to the image. Also, the execution control flag generation unit 511 may generate the execution control flag based on an instruction from the outside of the image encoding device 300, such as a user or an application.
  • the execution control flag encoding unit 512 performs processing related to encoding of execution control flags. For example, the execution control flag encoding unit 512 acquires the execution control flag supplied from the execution control flag generation unit 511 . Also, the execution control flag encoding unit 512 encodes the acquired execution control flag to generate the encoded data. The encoded data of the execution control flag is stored in the bit stream of encoded data such as the quantization coefficient level by the encoding unit 315 .
  • the selection unit 351, the TS residual coding unit 352, and the Non-TS residual coding unit 353 perform the same processing as in FIG. That is, based on transform_skip_flag[xTbY][yTbY][cIdx] and cIdx, the selection unit 351 encodes the quantization coefficient level in the TS residual coding mode or in the Non-TS residual coding mode. select whether to convert The TS residual encoding unit 352 encodes the quantized coefficient level in TS residual encoding mode. The Non-TS residual encoding unit 353 encodes the quantized coefficient level in Non-TS residual encoding mode.
  • the TS residual encoding unit 352 has a RemCcbs setting unit 361.
  • the RemCcbs setting unit 361 basically performs the same processing as in FIG. That is, the RemCcbs setting unit 361 sets the initial value of RemCcbs, and the TS residual encoding unit 352 encodes the acquired quantization coefficient level using the RemCcbs.
  • Non-TS residual encoding section 353 has RemCcbs setting section 362 .
  • the RemCcbs setting unit 362 basically performs the same processing as in FIG. That is, the RemCcbs setting unit 362 sets the initial value of RemCcbs, and the Non-TS residual encoding unit 353 encodes the acquired quantization coefficient level using the RemCcbs.
  • the method 1-1-4 of the present technology described above may be applied to such RemCcbs setting unit 361 and RemCcbs setting unit 362. That is, when the execution control flag is true, the RemCcbs setting unit 361 and the RemCcbs setting unit 362 set the number of context encoding bins that depend on the bit depth based on the bit depth of the image, and The maximum number of context encoding bins may be set based on the number of encoding bins, and if the run control flag is false, the maximum number of context encoding bins may be set based on a reference value for the number of context encoding bins.
  • the RemCcbs setting unit 361 and the RemCcbs setting unit 362 may have the same configuration as the RemCcbs setting device 100 shown in FIG. 6 and perform the same processing to set the initial value of RemCcbs.
  • the RemCcbs setting section 361 and RemCcbs setting section 362 acquire the execution control flag supplied from the execution control flag generation section 511 . Then, the RemCcbs setting section 361 and RemCcbs setting section 362 determine the setting method of ctxBinSampleRatio based on the execution control flag.
  • the RemCcbs setting unit 361 and RemCcbs setting unit 362 set the number of context encoding bins (ctxBinSampleRatio(bitDepth)) depending on the bit depth. That is, the RemCcbs setting unit 361 and RemCcbs setting unit 362 acquire the bitDepth supplied from the control unit 301, and use the bitDepth to set the number of context encoding bins (ctxBinSampleRatio(bitDepth)) that depends on the bit depth. Then, RemCcbs setting section 361 and RemCcbs setting section 362 set the initial value of RemCcbs using the ctxBinSampleRatio(bitDepth).
  • the execution control flag is true (eg, 1)
  • the RemCcbs setting unit 361 and RemCcbs setting unit 362 set the number of context encoding bins (ctxBinSampleRatio(bitDepth
  • the RemCcbs setting section 361 and RemCcbs setting section 362 may set ctxBinSampleRatio(bitDepth) based on bitDepth and any other parameter.
  • the RemCcbs setting unit 361 and the RemCcbs setting unit 362 acquire the reference value (ctxBinSampleRatioBase) of the number of context encoding bins supplied from the control unit 301, and set ctxBinSampleRatio(bitDepth) using the bitDepth described above and its ctxBinSampleRatioBase. You may
  • the RemCcbs setting unit 361 and the RemCcbs setting unit 362 may set the initial value of RemCcbs based on ctxBinSampleRatio(bitDepth) and other arbitrary parameters.
  • the RemCcbs setting unit 361 and RemCcbs setting unit 362 acquire the block size (TbWidth and TbHeight) of the block to be processed supplied from the control unit 301, and use the above-mentioned ctxBinSampleRatio (bitDepth) and its TbWidth and TbHeight , the initial value of RemCcbs corresponding to the block to be processed may be set.
  • the RemCcbs setting unit 361 and the RemCcbs setting unit 362 may apply any one of methods 1-1-1 to 1-1-3 to set the initial value of RemCcbs.
  • the RemCcbs setting section 361 and the RemCcbs setting section 362 may set the initial value of RemCcbs by applying any of Equation (2) and Equations (3) to (5).
  • the RemCcbs setting section 361 and RemCcbs setting section 362 set the number of context encoding bins (ctxBinSampleRatio) independent of bitDepth. That is, the RemCcbs setting unit 361 and RemCcbs setting unit 362 acquire the reference value (ctxBinSampleRatioBase) of the number of context-encoding bins supplied from the control unit 301, and set the acquired ctxBinSampleRatioBase as ctxBinSampleRatio.
  • RemCcbs setting section 361 and RemCcbs setting section 362 set the initial value of RemCcbs using the ctxBinSampleRatio (that is, ctxBinSampleRatioBase).
  • the RemCcbs setting section 361 and RemCcbs setting section 362 may set the initial value of RemCcbs based on ctxBinSampleRatio and other arbitrary parameters.
  • the RemCcbs setting unit 361 and the RemCcbs setting unit 362 acquire the block size (TbWidth and TbHeight) of the block to be processed supplied from the control unit 301, and set the above-mentioned ctxBinSampleRatio (that is, ctxBinSampleRatioBase) and its TbWidth and TbHeight. may be used to set the initial value of RemCcbs corresponding to the block to be processed.
  • Coding section 315 uses the initial value of RemCcbs set in this way by RemCcbs setting section 361 and RemCcbs setting section 362 (the (maximum number) to encode the image (quantized coefficients level) (in TS residual coding mode or Non-TS residual coding mode). That is, the encoding unit 315 context-encodes the image (quantization coefficient level) using the maximum number of context encoding bins set by the RemCcbs setting unit 361 and the RemCcbs setting unit 362 by applying the present technology. In other words, the encoding unit 315 can also be said to be an image encoding unit in this case as well.
  • the encoding unit 315 can suppress an increase in the amount of encoding processing.
  • the encoding unit 315 can suppress an increase in the CABAC processing amount in encoding an image with a high bit depth and high bit rate.
  • RemCcbs setting section 361 and RemCcbs setting section 362 suppress the amount of context-encoding bins generated in this case as well, so that the total number of context-encoding bins and bypass-encoding bins is generated. An increase in the amount can be suppressed. Therefore, the encoding unit 315 can suppress an increase in the total processing amount of CABAC.
  • the image encoding device 300 can suppress an increase in the amount of encoding processing.
  • steps S501 and S502 are executed in the same manner as the processes of steps S301 and S302 of FIG.
  • step S503 the execution control flag generation unit 511 generates an execution control flag.
  • step S504 to step S515 is executed in the same manner as each process from step S303 to step S314 in FIG.
  • step S515 ends, the image encoding process ends.
  • steps S551 and S552 of FIG. 22 are executed in the same manner as the processes of steps S351 and S352 of FIG.
  • step S553 the execution control flag encoding unit 512 encodes the execution control flag generated in step S503 of FIG.
  • step S554 to step S558 is executed in the same manner as each process from step S353 to step S357 in FIG.
  • step S556 or step S558 ends, the encoding process ends and the process returns to FIG.
  • Method 1-1-4 of the present technology described above may be applied to the RemCcbs setting process executed in steps S555 and S557 of such encoding process.
  • this RemCcbs setting process may be executed according to the flow described with reference to the flowchart of FIG.
  • the RemCcbs setting unit 361 and RemCcbs setting unit 362 may apply any one of methods 1-1-1 to 1-1-3 to set the initial value of RemCcbs.
  • the RemCcbs setting section 361 and the RemCcbs setting section 362 may set the initial value of RemCcbs by applying any of Equation (2) and Equations (3) to (5).
  • the encoding unit 315 can suppress an increase in the amount of encoding processing.
  • the encoding unit 315 can suppress an increase in the CABAC processing amount in encoding an image with a high bit depth and high bit rate.
  • RemCcbs setting section 361 and RemCcbs setting section 362 suppress the amount of context-encoding bins generated in this case as well, so that the total number of context-encoding bins and bypass-encoding bins is generated. An increase in the amount can be suppressed. Therefore, the encoding unit 315 can suppress an increase in the total processing amount of CABAC.
  • the image encoding device 300 can suppress an increase in the amount of encoding processing.
  • FIG. 23 is a block diagram showing a main configuration example of the decoding unit 412 in that case.
  • decoding section 412 has selection section 451 , TS residual decoding section 452 , non-TS residual decoding section 453 , and execution control flag decoding section 611 .
  • the execution control flag decoding unit 611 decodes the bitstream, ⁇ 2.
  • the execution control flag described in ⁇ execution control flag>, etc. in Suppressing the Number of Context Encoding Bins> is generated.
  • the execution control flag decoding unit 611 supplies the generated execution control flags to the RemCcbs setting unit 461 and RemCcbs setting unit 462 .
  • the selection unit 451, the TS residual decoding unit 452, and the Non-TS residual decoding unit 453 perform the same processing as in FIG. That is, based on transform_skip_flag[xTbY][yTbY][cIdx] and cIdx, the selection unit 451 decodes the encoded data of the quantization coefficient level in the TS residual coding mode or non-TS residual coding. Select the decoding mode.
  • the TS residual decoding unit 452 decodes the encoded data of the quantized coefficient level in the TS residual coding mode.
  • the non-TS residual decoding unit 453 decodes the encoded data of the quantized coefficient level in the non-TS residual coding mode.
  • the TS residual decoding unit 452 has a RemCcbs setting unit 461.
  • the RemCcbs setting unit 461 basically performs the same processing as in FIG. That is, the RemCcbs setting unit 461 sets the initial value of RemCcbs, and the TS residual decoding unit 452 decodes the coded data of the acquired quantization coefficient level using the RemCcbs.
  • Non-TS residual decoding section 453 has RemCcbs setting section 462 .
  • the RemCcbs setting unit 462 basically performs the same processing as in FIG. That is, the RemCcbs setting unit 462 sets the initial value of RemCcbs, and the Non-TS residual decoding unit 453 decodes the encoded data of the acquired quantization coefficient level using the RemCcbs.
  • the method 1-1-4 of the present technology described above may be applied to such RemCcbs setting unit 461 and RemCcbs setting unit 462. That is, when the execution control flag is true, the RemCcbs setting unit 461 and the RemCcbs setting unit 462 set the number of context encoding bins depending on the bit depth based on the bit depth of the image, and The maximum number of context encoding bins may be set based on the number of encoding bins, and if the run control flag is false, the maximum number of context encoding bins may be set based on a reference value for the number of context encoding bins.
  • the RemCcbs setting unit 461 and the RemCcbs setting unit 462 may have a configuration similar to that of the RemCcbs setting device 100 shown in FIG. 6, perform similar processing, and set the initial value of RemCcbs.
  • the RemCcbs setting section 461 and RemCcbs setting section 462 acquire the execution control flag supplied from the execution control flag decoding section 611 . Then, the RemCcbs setting section 461 and RemCcbs setting section 462 determine the setting method of ctxBinSampleRatio based on the execution control flag. The method is the same as in RemCcbs setting section 361 and RemCcbs setting section 362 (FIG. 20). For example, when the execution control flag is true (for example, 1), the RemCcbs setting unit 461 and RemCcbs setting unit 462 apply any one of methods 1-1-1 to 1-1-3 to set the initial value of RemCcbs. May be set. For example, the RemCcbs setting section 461 and the RemCcbs setting section 462 may set the initial value of RemCcbs by applying any one of Equation (2) and Equations (3) to (5).
  • Decoding section 412 (TS residual decoding section 452 and Non-TS residual decoding section 453) sets the initial value of RemCcbs (maximum number of context coding bins) set in this manner by RemCcbs setting section 461 and RemCcbs setting section 462. is used to decode the coded data of the image (quantized coefficient level) (in TS residual coding mode or Non-TS residual coding mode). That is, the decoding unit 412 context-decodes the encoded data of the image (quantization coefficient level) using the maximum number of context encoding bins set by the RemCcbs setting unit 461 and the RemCcbs setting unit 462 by applying the present technology. . In other words, the decoding unit 412 can also be said to be an image decoding unit in this case as well.
  • the decoding unit 412 can suppress an increase in the processing amount of decoding.
  • the decoding unit 412 can suppress an increase in the processing amount of CABAC in decoding a high bit depth/high bit rate image.
  • RemCcbs setting section 461 and RemCcbs setting section 462 suppress the amount of context-encoding bins generated in this case as well, so that the total number of context-encoding bins and bypass-encoding bins is generated. An increase in the amount can be suppressed. Therefore, the decoding unit 412 can suppress an increase in the total processing amount of CABAC.
  • the image decoding device 400 can suppress an increase in the processing amount of decoding.
  • steps S651 and S652 of FIG. 24 are executed in the same manner as the processes of steps S451 and S452 of FIG.
  • step S653 the execution control flag decoding unit 611 decodes the bitstream and generates execution control flags.
  • step S654 to step S658 is executed in the same manner as each process from step S453 to step S457 in FIG.
  • step S656 or step S658 ends, the decoding process ends and the process returns to FIG.
  • Method 1-1-4 of the present technology described above may be applied to the RemCcbs setting processing executed in steps S655 and S657 of such decoding processing.
  • this RemCcbs setting process may be executed according to the flow described with reference to the flowchart of FIG.
  • the RemCcbs setting unit 461 and RemCcbs setting unit 462 may apply any one of methods 1-1-1 to 1-1-3 to set the initial value of RemCcbs.
  • the RemCcbs setting section 461 and the RemCcbs setting section 462 may set the initial value of RemCcbs by applying any one of Equation (2) and Equations (3) to (5).
  • the decoding unit 412 can suppress an increase in the processing amount of decoding.
  • the decoding unit 412 can suppress an increase in the processing amount of CABAC in decoding a high bit depth/high bit rate image.
  • RemCcbs setting section 461 and RemCcbs setting section 462 suppress the amount of context-encoding bins generated in this case as well, so that the total number of context-encoding bins and bypass-encoding bins is generated. An increase in the amount can be suppressed. Therefore, the decoding unit 412 can suppress an increase in the total processing amount of CABAC.
  • the image decoding device 400 can suppress an increase in the amount of decoding processing.
  • FIG. 25 is a block diagram showing a main configuration example of the control section 301 and the encoding section 315 in that case. As shown in FIG. 25 , in this case, the control section 301 has a reference value control flag generation section 711 . Encoding section 315 also includes selection section 351 , TS residual encoding section 352 , non-TS residual encoding section 353 , and reference value control flag encoding section 712 .
  • the reference value control flag generation unit 711 has ⁇ 2.
  • the reference value control flag described in ⁇ Reference value control flag>, etc. in Suppression of number of context encoding bins is generated.
  • the reference value control flag generator 711 supplies the generated reference value control flag to the encoder 315 .
  • the reference value control flag generator 711 may supply the generated reference value control flag to the reference value control flag encoder 712 .
  • the reference value control flag generating section 711 may supply the generated reference value control flag to the RemCcbs setting section 361 and the RemCcbs setting section 362 .
  • This reference value control flag is a flag that controls the value of the reference value for the number of context encoding bins at the CG level. For example, if this reference value control flag is true (e.g., 1), ctxBinSampleRatioBase1 (the first reference value for the number of context encoding bins at the CG level) is used to set the initial value of RemCcbs (context code generated in image encoding). (maximum number of matching bins) is set.
  • ctxBinSampleRatioBase2 (the second reference value for the number of context encoding bins at the CG level) is used to set the initial value of RemCcbs (context code generated in image encoding). (maximum number of matching bins) is set.
  • the reference value control flag generation unit 711 may generate this reference value control flag based on arbitrary information. For example, the reference value control flag generation unit 711 may generate the reference value control flag based on the image to be encoded or parameters related to the image. Also, the reference value control flag generation unit 711 may generate the reference value control flag based on an instruction from the outside of the image encoding device 300, such as a user or an application.
  • the reference value control flag encoding unit 712 performs processing related to encoding of the reference value control flag. For example, the reference value control flag encoding section 712 acquires the reference value control flag supplied from the reference value control flag generation section 711 . Also, the reference value control flag encoding unit 712 encodes the acquired reference value control flag to generate the encoded data. The encoded data of the reference value control flag is stored in the bit stream of encoded data such as the quantization coefficient level by the encoding unit 315 .
  • the selection unit 351, the TS residual coding unit 352, and the Non-TS residual coding unit 353 perform the same processing as in FIG. That is, based on transform_skip_flag[xTbY][yTbY][cIdx] and cIdx, the selection unit 351 encodes the quantization coefficient level in the TS residual coding mode or in the Non-TS residual coding mode. select whether to convert The TS residual encoding unit 352 encodes the quantized coefficient level in TS residual encoding mode. The Non-TS residual encoding unit 353 encodes the quantized coefficient level in Non-TS residual encoding mode.
  • the TS residual encoding unit 352 has a RemCcbs setting unit 361.
  • the RemCcbs setting unit 361 basically performs the same processing as in FIG. That is, the RemCcbs setting unit 361 sets the initial value of RemCcbs, and the TS residual encoding unit 352 encodes the acquired quantization coefficient level using the RemCcbs.
  • Non-TS residual encoding section 353 has RemCcbs setting section 362 .
  • the RemCcbs setting unit 362 basically performs the same processing as in FIG. That is, the RemCcbs setting unit 362 sets the initial value of RemCcbs, and the Non-TS residual encoding unit 353 encodes the acquired quantization coefficient level using the RemCcbs.
  • RemCcbs setting section 361 and RemCcbs setting section 362 may set the maximum number of context encoding bins according to processing speed control.
  • RemCcbs setting section 361 and RemCcbs setting section 362 may set the maximum number of context coding bins based on the reference value control flag.
  • the RemCcbs setting section 361 and the RemCcbs setting section 362 acquire the reference value control flag supplied from the reference value control flag generation section 711 . Then, RemCcbs setting section 361 and RemCcbs setting section 362 determine how to set the initial value of RemCcbs based on the reference value control flag.
  • the RemCcbs setting unit 361 and RemCcbs setting unit 362 set the initial value of RemCcbs based on ctxBinSampleRatioBase1.
  • the reference value control flag is true (for example, 1)
  • the RemCcbs setting unit 361 and the RemCcbs setting unit 362 set the initial value of RemCcbs based on ctxBinSampleRatioBase2.
  • the RemCcbs setting unit 361 and the RemCcbs setting unit 362 may have the same configuration as the RemCcbs setting device 100 shown in FIG. 8, perform the same processing, and set the initial value of RemCcbs.
  • RemCcbs setting section 361 and RemCcbs setting section 362 set the number of context encoding bins (ctxBinSampleRatio) independent of bitDepth based on the reference value (ctxBinSampleRatioBase1 or ctxBinSampleRatioBase2) selected according to the reference value control flag. good too.
  • the RemCcbs setting unit 361 and RemCcbs setting unit 362 may set ctxBinSampleRatioBase1 or ctxBinSampleRatioBase2 as ctxBinSampleRatio.
  • the RemCcbs setting section 361 and RemCcbs setting section 362 may use the ctxBinSampleRatio (ctxBinSampleRatioBase1 or ctxBinSampleRatioBase2) to set the initial value of RemCcbs.
  • the RemCcbs setting section 361 and the RemCcbs setting section 362 may derive the initial value of RemCcbs using Equation (1) described above.
  • the RemCcbs setting section 361 and RemCcbs setting section 362 may set the initial value of RemCcbs based on ctxBinSampleRatio and other arbitrary parameters.
  • the RemCcbs setting unit 361 and the RemCcbs setting unit 362 acquire the block size (TbWidth and TbHeight) of the processing target block supplied from the control unit 301, and set the above-mentioned ctxBinSampleRatio (ctxBinSampleRatioBase1 or ctxBinSampleRatioBase2) and its TbWidth and TbHeight. may be used to set the initial value of RemCcbs corresponding to the block to be processed.
  • Coding section 315 uses the initial value of RemCcbs set in this way by RemCcbs setting section 361 and RemCcbs setting section 362 (the (maximum number) to encode the image (quantized coefficients level) (in TS residual coding mode or Non-TS residual coding mode). That is, the encoding unit 315 context-encodes the image (quantization coefficient level) using the maximum number of context encoding bins set by the RemCcbs setting unit 361 and the RemCcbs setting unit 362 by applying the present technology. In other words, the encoding unit 315 can also be said to be an image encoding unit in this case as well.
  • RemCcbs setting section 361 and RemCcbs setting section 362 can control the amount of context coding bins generated using the reference value control flag.
  • the RemCcbs setting section 361 and the RemCcbs setting section 362 can control the amount of generated context coding bin numbers according to CABAC processing speed control. Therefore, the encoding unit 315 can suppress an increase in the amount of encoding processing. For example, the encoding unit 315 can suppress an increase in the CABAC processing amount in encoding an image with a high bit depth and high bit rate.
  • RemCcbs setting section 361 and RemCcbs setting section 362 reduce the amount of context-encoding bins generated in accordance with CABAC processing speed control, so that the total number of context-encoding bins and bypass-encoding bins is It is possible to suppress an increase in the number of bins generated. Therefore, the encoding unit 315 can suppress an increase in the total processing amount of CABAC.
  • the image encoding device 300 can suppress an increase in the amount of encoding processing.
  • steps S701 and S702 are executed in the same manner as the processes of steps S301 and S302 of FIG.
  • step S703 the reference value control flag generation unit 711 generates a reference value control flag.
  • step S704 to step S715 is executed in the same manner as each process from step S303 to step S314 in FIG.
  • step S715 ends, the image encoding process ends.
  • steps S751 and S752 of FIG. 27 are executed in the same manner as the processes of steps S351 and S352 of FIG.
  • step S753 the reference value control flag encoding unit 712 encodes the reference value control flag generated in step S703 of FIG.
  • step S754 to step S758 is executed in the same manner as each process from step S353 to step S357 in FIG.
  • step S756 or step S758 ends, the encoding process ends and the process returns to FIG.
  • Method 2 (or method 2-1) of the present technology described above may be applied to RemCcbs setting processing executed in steps S755 and S757 of such encoding processing.
  • this RemCcbs setting process may be executed according to the flow described with reference to the flowchart of FIG.
  • the RemCcbs setting unit 361 and RemCcbs setting unit 362 may select a reference value (ctxBinSampleRatioBase1 or ctxBinSampleRatioBase2) according to the reference value control flag, and use the reference value to derive the initial value of RemCcbs.
  • the RemCcbs setting section 361 and the RemCcbs setting section 362 may derive the initial value of RemCcbs using Equation (1) described above.
  • RemCcbs setting section 361 and RemCcbs setting section 362 can control the amount of context coding bins generated using the reference value control flag.
  • the RemCcbs setting section 361 and the RemCcbs setting section 362 can control the amount of generated context coding bin numbers according to CABAC processing speed control. Therefore, the encoding unit 315 can suppress an increase in the amount of encoding processing. For example, the encoding unit 315 can suppress an increase in the CABAC processing amount in encoding an image with a high bit depth and high bit rate.
  • RemCcbs setting section 361 and RemCcbs setting section 362 reduce the amount of context-encoding bins generated in accordance with CABAC processing speed control, so that the total number of context-encoding bins and bypass-encoding bins is It is possible to suppress an increase in the number of bins generated. Therefore, the encoding unit 315 can suppress an increase in the total processing amount of CABAC.
  • the image encoding device 300 can suppress an increase in the amount of encoding processing.
  • FIG. 28 is a block diagram showing a main configuration example of the decoding unit 412 in that case.
  • decoding section 412 has selection section 451 , TS residual decoding section 452 , non-TS residual decoding section 453 , and reference value control flag decoding section 811 .
  • the reference value control flag decoding unit 811 decodes the bitstream, and ⁇ 2.
  • the reference value control flag described in ⁇ Reference value control flag>, etc. in Suppression of number of context encoding bins is generated.
  • the reference value control flag decoding section 811 supplies the generated reference value control flag to the RemCcbs setting section 461 and the RemCcbs setting section 462 .
  • the selection unit 451, the TS residual decoding unit 452, and the Non-TS residual decoding unit 453 perform the same processing as in FIG. That is, based on transform_skip_flag[xTbY][yTbY][cIdx] and cIdx, the selection unit 451 decodes the encoded data of the quantization coefficient level in the TS residual coding mode or non-TS residual coding. Select the decoding mode.
  • the TS residual decoding unit 452 decodes the encoded data of the quantized coefficient level in the TS residual coding mode.
  • the non-TS residual decoding unit 453 decodes the encoded data of the quantized coefficient level in the non-TS residual coding mode.
  • the TS residual decoding unit 452 has a RemCcbs setting unit 461.
  • the RemCcbs setting unit 461 basically performs the same processing as in FIG. That is, the RemCcbs setting unit 461 sets the initial value of RemCcbs, and the TS residual decoding unit 452 decodes the coded data of the acquired quantization coefficient level using the RemCcbs.
  • Non-TS residual decoding section 453 has RemCcbs setting section 462 .
  • the RemCcbs setting unit 462 basically performs the same processing as in FIG. That is, the RemCcbs setting unit 462 sets the initial value of RemCcbs, and the Non-TS residual decoding unit 453 decodes the encoded data of the acquired quantization coefficient level using the RemCcbs.
  • RemCcbs setting unit 461 and RemCcbs setting unit 462 may set the maximum number of context encoding bins according to processing speed control.
  • RemCcbs setting section 461 and RemCcbs setting section 462 may set the maximum number of context coding bins based on the reference value control flag.
  • RemCcbs setting section 461 and the RemCcbs setting section 462 acquire the reference value control flag supplied from the reference value control flag decoding section 811 . Then, RemCcbs setting section 461 and RemCcbs setting section 462 determine how to set the initial value of RemCcbs based on the reference value control flag.
  • the RemCcbs setting unit 461 and RemCcbs setting unit 462 set the initial value of RemCcbs based on ctxBinSampleRatioBase1.
  • the reference value control flag is true (for example, 1)
  • the RemCcbs setting unit 461 and the RemCcbs setting unit 462 set the initial value of RemCcbs based on ctxBinSampleRatioBase2.
  • the RemCcbs setting unit 461 and the RemCcbs setting unit 462 may have a configuration similar to that of the RemCcbs setting device 100 shown in FIG. 8, perform similar processing, and set the initial value of RemCcbs.
  • RemCcbs setting section 461 and RemCcbs setting section 462 set the number of context encoding bins (ctxBinSampleRatio) independent of bitDepth based on the reference value (ctxBinSampleRatioBase1 or ctxBinSampleRatioBase2) selected according to the reference value control flag. good too.
  • the RemCcbs setting section 461 and the RemCcbs setting section 462 may set ctxBinSampleRatioBase1 or ctxBinSampleRatioBase2 as ctxBinSampleRatio.
  • the RemCcbs setting section 461 and RemCcbs setting section 462 may set the initial value of RemCcbs using the ctxBinSampleRatio (ctxBinSampleRatioBase1 or ctxBinSampleRatioBase2).
  • the RemCcbs setting section 461 and the RemCcbs setting section 462 may derive the initial value of RemCcbs using Equation (1) described above.
  • the RemCcbs setting section 461 and RemCcbs setting section 462 may set the initial value of RemCcbs based on ctxBinSampleRatio and other arbitrary parameters.
  • RemCcbs setting section 461 and RemCcbs setting section 462 acquire the block size (TbWidth and TbHeight) of the processing target block obtained by decoding the bitstream by decoding section 412, The TbWidth and TbHeight may be used to set the initial value of RemCcbs corresponding to the block to be processed.
  • Decoding section 412 (TS residual decoding section 452 and Non-TS residual decoding section 453) sets the initial value of RemCcbs (maximum number of context coding bins) set in this manner by RemCcbs setting section 461 and RemCcbs setting section 462. is used to decode the coded data of the image (quantized coefficient level) (in TS residual coding mode or Non-TS residual coding mode). That is, the decoding unit 412 context-decodes the encoded data of the image (quantization coefficient level) using the maximum number of context encoding bins set by the RemCcbs setting unit 461 and the RemCcbs setting unit 462 by applying the present technology. . In other words, the decoding unit 412 can also be said to be an image decoding unit in this case as well.
  • the RemCcbs setting section 461 and the RemCcbs setting section 462 can control the amount of generated context coding bin numbers using the reference value control flag.
  • the RemCcbs setting section 461 and the RemCcbs setting section 462 can control the amount of generated context coding bin numbers according to CABAC processing speed control. Therefore, the decoding unit 412 can suppress an increase in the processing amount of decoding. For example, the decoding unit 412 can suppress an increase in the processing amount of CABAC in decoding a high bit depth/high bit rate image.
  • RemCcbs setting section 461 and RemCcbs setting section 462 suppress the amount of context-encoding bins generated in accordance with CABAC processing speed control, so that the total number of context-encoding bins and the number of bypass-encoding bins is It is possible to suppress an increase in the number of bins generated. Therefore, the decoding unit 412 can suppress an increase in the total processing amount of CABAC.
  • the image decoding device 400 can suppress an increase in the amount of encoding processing.
  • Image encoding processing executed by the image decoding device 400 having the decoding unit 412 configured as shown in FIG. 28 is executed in the same flow as described with reference to the flowchart of FIG. 18 .
  • steps S851 and S852 of FIG. 29 are executed in the same manner as the processes of steps S451 and S452 of FIG.
  • step S853 the reference value control flag decoding unit 811 decodes the bitstream and generates a reference value control flag.
  • step S854 to step S858 is executed in the same manner as each process from step S453 to step S457 in FIG.
  • step S856 or step S858 ends, the decoding process ends and the process returns to FIG.
  • Method 2 (or method 2-1) of the present technology described above may be applied to the RemCcbs setting processing executed in steps S855 and S857 of such decoding processing.
  • this RemCcbs setting process may be executed according to the flow described with reference to the flowchart of FIG.
  • the RemCcbs setting unit 461 and the RemCcbs setting unit 462 may select a reference value (ctxBinSampleRatioBase1 or ctxBinSampleRatioBase2) according to the reference value control flag, and use the reference value to derive the initial value of RemCcbs.
  • the RemCcbs setting section 461 and the RemCcbs setting section 462 may derive the initial value of RemCcbs using Equation (1) described above.
  • the RemCcbs setting section 461 and the RemCcbs setting section 462 can control the amount of generated context coding bin numbers using the reference value control flag.
  • the RemCcbs setting section 461 and the RemCcbs setting section 462 can control the amount of generated context coding bin numbers according to CABAC processing speed control. Therefore, the decoding unit 412 can suppress an increase in the processing amount of decoding. For example, the decoding unit 412 can suppress an increase in the processing amount of CABAC in decoding a high bit depth/high bit rate image.
  • RemCcbs setting section 461 and RemCcbs setting section 462 suppress the amount of context-encoding bins generated in accordance with CABAC processing speed control, so that the total number of context-encoding bins and the number of bypass-encoding bins is It is possible to suppress an increase in the number of bins generated. Therefore, the decoding unit 412 can suppress an increase in the total processing amount of CABAC.
  • the image decoding device 400 can suppress an increase in the amount of decoding processing.
  • the series of processes described above can be executed by hardware or by software.
  • a program that constitutes the software is installed in the computer.
  • the computer includes, for example, a computer built into dedicated hardware and a general-purpose personal computer capable of executing various functions by installing various programs.
  • FIG. 30 is a block diagram showing an example of the hardware configuration of a computer that executes the series of processes described above by a program.
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • An input/output interface 910 is also connected to the bus 904 .
  • An input unit 911 , an output unit 912 , a storage unit 913 , a communication unit 914 and a drive 915 are connected to the input/output interface 910 .
  • the input unit 911 consists of, for example, a keyboard, mouse, microphone, touch panel, input terminal, and the like.
  • the output unit 912 includes, for example, a display, a speaker, an output terminal, and the like.
  • the storage unit 913 is composed of, for example, a hard disk, a RAM disk, a nonvolatile memory, or the like.
  • the communication unit 914 is composed of, for example, a network interface.
  • Drive 915 drives removable media 921 such as a magnetic disk, optical disk, magneto-optical disk, or semiconductor memory.
  • the CPU 901 loads, for example, a program stored in the storage unit 913 into the RAM 903 via the input/output interface 910 and the bus 904, and executes the above-described series of programs. is processed.
  • the RAM 903 also appropriately stores data necessary for the CPU 901 to execute various processes.
  • a program executed by a computer can be applied by being recorded on removable media 921 such as package media, for example.
  • the program can be installed in the storage unit 913 via the input/output interface 910 by loading the removable medium 921 into the drive 915 .
  • This 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 914 and installed in the storage unit 913 .
  • this program can be installed in the ROM 902 or the storage unit 913 in advance.
  • the present technology can be applied to any image encoding method or decoding method.
  • the specifications of various processes related to image encoding/decoding such as transformation (inverse transformation), quantization (inverse quantization), encoding (decoding), prediction, etc., are arbitrary. is not limited to the examples. Also, some of these processes may be omitted as long as they do not conflict with the present technology described above.
  • This technology can also be applied to a multi-view image coding system that encodes multi-view images including images of multiple viewpoints (views). Also, the present technology can be applied to a multi-view image decoding system that decodes encoded data of multi-view images including images of a plurality of viewpoints (views). In that case, the present technology may be applied to encoding and decoding of each viewpoint (view).
  • this technology can be applied to a hierarchical image coding (scalable coding) system that encodes a hierarchical image that is layered (hierarchized) in multiple layers so as to have a scalability function for a predetermined parameter.
  • the present technology can be applied to a layered image decoding (scalable decoding) system that decodes encoded data of layered images layered (layered) in multiple layers so as to have a scalability function for a predetermined parameter. can.
  • the present technology may be applied to encoding and decoding of each layer.
  • this technology can be applied to any configuration.
  • the present technology can be applied to transmitters and receivers (for example, television receivers and mobile phones) in cable broadcasting such as satellite broadcasting, 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.
  • the present technology includes a processor (e.g., video processor) as a system LSI (Large Scale Integration), etc., a module (e.g., video module) using a plurality of processors, etc., a unit (e.g., video unit) using a plurality of modules, etc.
  • a processor e.g., video processor
  • LSI Large Scale Integration
  • module e.g., video module
  • a unit e.g., video unit
  • it can be implemented as a part of the configuration of the device, such as a set (for example, a video set) in which other functions are added to the unit.
  • the present technology can also be applied to a network system configured by a plurality of devices.
  • the present technology may be implemented as cloud computing in which a plurality of devices share and jointly process via a network.
  • this technology is implemented in cloud services that provide image (moving image) services to arbitrary terminals such as computers, AV (Audio Visual) equipment, portable information processing terminals, and IoT (Internet of Things) devices. You may make it
  • a system means a set of multiple 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 single device housing a plurality of modules 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, and nature monitoring. . Moreover, its use is arbitrary.
  • this technology can be applied to systems and devices used to provide viewing content. Further, for example, the present technology can also be applied to systems and devices used for traffic, such as traffic condition supervision and automatic driving control. Further, for example, the technology can be applied to systems and devices that serve security purposes. Also, for example, the present technology can be applied to systems and devices used for automatic control of machines and the like. Furthermore, for example, the technology can be applied to systems and devices used in agriculture and animal husbandry. The present technology can also be applied to systems and devices that monitor natural conditions such as volcanoes, forests, oceans, and wildlife. Further, for example, the technology can be applied to systems and devices used for sports.
  • “flag” is information for identifying a plurality of states, not only information used for identifying two states of true (1) or false (0), Information that can identify the state is also included. Therefore, the value that this "flag” can take may be, for example, two values of 1/0, or three or more values. That is, the number of bits constituting this "flag” is arbitrary, and may be 1 bit or multiple bits.
  • the identification information (including the flag) is assumed not only to include the identification information in the bitstream, but also to include the difference information of the identification information with respect to certain reference information in the bitstream.
  • the "flag” and “identification information” include not only that information but also difference information with respect to reference information.
  • various types of information (metadata, etc.) related to the encoded data may be transmitted or recorded in any form as long as they are associated with the encoded data.
  • the term "associating" means, for example, making it possible to use (link) data of one side while processing the other data. That is, the data associated with each other may be collected as one piece of data, or may be individual pieces of data.
  • information associated with coded data (image) may be transmitted on a transmission path different from that of the coded data (image).
  • the information associated with the encoded data (image) may be recorded on a different recording medium (or another recording area of the same recording medium) than the encoded data (image). good.
  • this "association" may be a part of the data instead of the entire data. For example, an image and information corresponding to the image may be associated with each other in arbitrary units such as multiple frames, one frame, or a portion within a frame.
  • a configuration described as one device may be divided and configured as a plurality of devices (or processing units).
  • the configuration described above as a plurality of devices (or processing units) may be collectively configured as one device (or processing unit).
  • part of the configuration of one device (or processing unit) may be included in the configuration of another device (or other processing unit) as long as the configuration and operation of the system as a whole are substantially the same. .
  • the above-described program may be executed on any device.
  • the device should have the necessary functions (functional blocks, etc.) and be able to obtain the necessary information.
  • each step of one flowchart may be executed by one device, or may be executed by a plurality of devices.
  • the plurality of processes may be executed by one device, or may be shared by a plurality of devices.
  • a plurality of processes included in one step can also be executed as processes of a plurality of steps.
  • the processing described as multiple steps can also be collectively executed as one step.
  • the program executed by the computer may have the following characteristics.
  • the processing of the steps described in the program may be executed in chronological order according to the order described in this specification.
  • the processing of the step of writing the program may be executed in parallel.
  • the processing of the step of writing the program may be individually executed at necessary timing such as when called. That is, as long as there is no contradiction, the processing of each step may be executed in an order different from the order described above.
  • the processing of steps describing this program may be executed in parallel with the processing of other programs.
  • the processing of steps describing this program may be executed in combination with the processing of another program.
  • An image processing apparatus comprising: a context coding bin maximum number setting unit that sets a value according to the bit depth of an image as the maximum number of context coding bins generated in coding or decoding of the image.
  • the maximum number of context-encoding bins setting unit sets the number of context-encoding bins depending on the bit-depth based on the bit-depth of the image, and sets the number of context-encoding bins depending on the bit-depth.
  • the maximum number of context-encoding bins setting unit sets a value obtained by dividing a reference value for the number of context-encoding bins by a value corresponding to the bit depth of the image, to the number of context-encoding bins depending on the bit depth.
  • the context encoding bin maximum number setting unit sets a value obtained by subtracting a value corresponding to the bit depth of the image from a reference value of the number of context encoding bins to the number of context encoding bins depending on the bit depth.
  • the image processing device sets a value according to the bit depth of the image as the number of context encoding bins dependent on the bit depth.
  • the context coding bin maximum number setting unit sets the context coding bin corresponding to the processing target block based on the block size of the processing target block and the number of context encoding bins depending on the bit depth.
  • the image processing apparatus according to any one of (2) to (5), wherein the maximum number of is set.
  • the image processing device according to any one of (1) to (6), further comprising an image encoding unit that context-encodes the image using the maximum number of context-encoding bins.
  • a calculator that derives a prediction residual by subtracting a predicted image from the image and the image; a coefficient conversion unit that converts the prediction residual to derive a conversion coefficient; a quantizer that quantizes the transform coefficients to derive quantized coefficients,
  • the image processing device (7), wherein the image encoding unit context-encodes the quantized coefficients using the maximum number of context-encoding bins.
  • the image encoding unit encodes the quantized coefficients in a TS residual encoding mode or a non-TS residual encoding mode.
  • the image decoding unit context-decodes the bitstream using the maximum number of context-encoding bins to derive quantization coefficients; an inverse quantization unit that inversely quantizes the quantized coefficients to derive transform coefficients; an inverse coefficient transforming unit for inverse transforming the transform coefficients to derive a prediction residual;
  • the image processing device further comprising: an arithmetic unit that derives the image by adding a predicted image of the image to the prediction residual.
  • the image processing device decodes the bitstream in a TS residual coding mode or a non-TS residual coding mode.
  • the context coding bin maximum number setting unit sets a bit depth dependent context coding bin number based on the bit depth of the image, and setting the maximum number of context coding bins based on a number of context coding bins; and if the control flag is false, setting the maximum number of context coding bins based on a reference value for the number of context coding bins.
  • a control flag generator that generates the control flag; a control flag encoding unit that encodes the control flag;
  • the image processing device further comprising: an image encoding unit that context-encodes the image using the maximum number of context-encoding bins.
  • a control flag decoder that decodes a bitstream to derive the control flag;
  • the image processing device further comprising: an image decoding unit that context-decodes a bitstream in which the image is context-encoded using the maximum number of context-encoding bins.
  • An image processing method wherein a value corresponding to the bit depth of an image is set as the maximum number of context encoding bins generated in encoding or decoding of the image.
  • An image processing apparatus comprising: a context-encoding bin maximum number setting unit that sets the maximum number of context-encoding bins generated in image encoding or decoding in accordance with a control flag indicating a processing speed mode.
  • the maximum number of context encoding bins setting unit setting the maximum number of context coding bins based on a first criterion if the control flag indicates normal speed mode;
  • the image processing device according to (17), wherein if the control flag indicates a fast mode, the maximum number of context coding bins is set based on a second reference value smaller than the first reference value.
  • the context coding bin maximum number setting unit sets the maximum number of context coding bins corresponding to the processing target block based on the block size of the processing target block and the control flag. and the image processing device according to (18).
  • RemCcbs setting device 101 ctxBinSampleRatio (bitDepth) setting unit, 102 RemCcbs initial value setting unit, 151 ctxBinSampleRatio unit, 152 RemCcbs initial value setting unit, 181 ctxBinSampleRatio unit, 182 RemCcbs initial value setting unit, 300 Image encoding device, 301 Control Section, 315 Encoding Section, 351 Selection Section, 352 TS Residual Encoding Section, 352 Non-TS Residual Encoding Section, 361 RemCcbs Setting Section, 362 RemCcbs Setting Section, 400 Image Decoding Device, 412 Decoding Section, 451 Selection 452 TS residual decoding unit 452 Non-TS residual decoding unit 461 RemCcbs setting unit 462 RemCcbs setting unit 511 Execution control flag generation unit 512 Execution control flag encoding unit 611 Execution control flag decoding unit 711 reference value control

Landscapes

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

Abstract

本開示は、符号化や復号の処理量の増大を抑制することができるようにする画像処理装置および方法に関する。 画像のビット深度に応じた値を、その画像を可変長符号化して得られるコンテキスト符号化ビンの最大数として設定する。また、処理速度のモードを示す制御フラグに応じて、画像を可変長符号化して得られるコンテキスト符号化ビンの最大数を設定する。本開示は、例えば、画像処理装置、画像符号化装置、画像復号装置、送信装置、受信装置、送受信装置、情報処理装置、撮像装置、再生装置、電子機器、画像処理方法、または情報処理方法等に適用することができる。

Description

画像処理装置および方法
 本開示は、画像処理装置および方法に関し、特に、符号化や復号の処理量の増大を抑制することができるようにした画像処理装置および方法に関する。
 従来、動画像の予測残差を導出し、係数変換し、量子化して符号化する符号化方法が提案された(例えば、非特許文献1および非特許文献2参照)。このような画像符号化では、高ビット深度・高ビットレートの場合、より多くのコンテキスト符号化ビンやバイパス符号化ビンが発生するため、CABAC(Context-based Adaptive Binary Arithmetic Code)の処理量が増加するおそれがあった。そこで、CABACのスループットを改善するために、バイパス符号化ビンの符号化処理や復号処理を簡略化する方法が提案された(例えば、非特許文献3参照)。
Benjamin Bross, Jianle Chen, Shan Liu, "Versatile Video Coding (Draft 10)", JVET-T2001-v2, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29, version 1 - date 2020-10-27 Jianle Chen, Yan Ye, Seung Hwan Kim, "Algorithm description for Versatile Video Coding and Test Model 11 (VTM 11)", JVET-T2002-v1, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29, version 1 - date 2020-10-27 M. G. Sarwer, J. Chen, Y. Ye, R. -L. Liao, "AHG8: CABAC-bypass alignment for high bit-depth coding", JVET-U0069-v3, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29, version 3- date 2021-01-08
 しかしながら、この方法では、バイパス符号化ビンに対して符号化処理や復号処理がより複雑であるコンテキスト符号化ビンの処理量の増大を抑制することは困難であった。そのため、符号化や復号の処理量が増大するおそれがあった。
 本開示は、このような状況に鑑みてなされたものであり、符号化や復号の処理量の増大を抑制することができるようにするものである。
 本技術の一側面の画像処理装置は、画像のビット深度に応じた値を、前記画像の符号化または復号において発生するコンテキスト符号化ビンの最大数として設定するコンテキスト符号化ビン最大数設定部を備える画像処理装置である。
 本技術の一側面の画像処理方法は、画像のビット深度に応じた値を、前記画像の符号化または復号において発生するコンテキスト符号化ビンの最大数として設定する画像処理方法である。
 本技術の他の側面の画像処理装置は、処理速度のモードを示す制御フラグに応じて、画像の符号化または復号において発生するコンテキスト符号化ビンの最大数を設定するコンテキスト符号化ビン最大数設定部を備える画像処理装置である。
 本技術の他の側面の画像処理方法は、処理速度のモードを示す制御フラグに応じて、画像の符号化または復号において発生するコンテキスト符号化ビンの最大数を設定する画像処理方法である。
 本技術の一側面の画像処理装置および方法においては、画像のビット深度に応じた値が、その画像の符号化または復号において発生するコンテキスト符号化ビンの最大数として設定される。
 本技術の他の側面の画像処理装置および方法においては、処理速度のモードを示す制御フラグに応じて、画像の符号化または復号において発生するコンテキスト符号化ビンの最大数が設定される。
符号化ビンの発生量について説明する図である。 コンテキスト符号化ビン数の制御方法について説明する図である。 RemCcbs設定装置の主な構成例を示すブロック図である。 RemCcbs設定処理の流れの例を示すフローチャートである。 ビット深度とコンテキスト符号化ビン数について説明する図である。 RemCcbs設定装置の主な構成例を示すブロック図である。 RemCcbs設定処理の流れの例を示すフローチャートである。 RemCcbs設定装置の主な構成例を示すブロック図である。 RemCcbs設定処理の流れの例を示すフローチャートである。 画像符号化装置の主な構成例を示すブロック図である。 符号化部の主な構成例を示すブロック図である。 TS残差符号化モード用のシンタックスの例を示す図である。 Non-TS残差符号化モード用のシンタックスの例を示す図である。 画像符号化処理の流れの例を示すフローチャートである。 符号化処理の流れの例を示すフローチャートである。 画像復号装置の主な構成例を示すブロック図である。 復号部の主な構成例を示すブロック図である。 画像復号処理の流れの例を示すフローチャートである。 復号処理の流れの例を示すフローチャートである。 符号化部の主な構成例を示すブロック図である。 画像符号化処理の流れの例を示すフローチャートである。 符号化処理の流れの例を示すフローチャートである。 復号部の主な構成例を示すブロック図である。 復号処理の流れの例を示すフローチャートである。 符号化部の主な構成例を示すブロック図である。 画像符号化処理の流れの例を示すフローチャートである。 符号化処理の流れの例を示すフローチャートである。 復号部の主な構成例を示すブロック図である。 復号処理の流れの例を示すフローチャートである。 コンピュータの主な構成例を示すブロック図である。
 以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、以下の順序で説明する。
 1.CABAC
 2.コンテキスト符号化ビン数の抑制
 3.実施の形態
 4.付記
 <1.CABAC>
  <技術内容や技術用語をサポートする文献等>
 本技術で開示される範囲は、実施の形態に記載されている内容だけではなく、出願当時において公知である以下の非特許文献等に記載されている内容や以下の非特許文献において参照されている他の文献の内容等も含まれる。
 非特許文献1:(上述)
 非特許文献2:(上述)
 非特許文献3:(上述)
 非特許文献4:Recommendation ITU-T H.264 (04/2017) "Advanced video coding for generic audiovisual services", April 2017
 非特許文献5:Recommendation ITU-T H.265 (02/18) "High efficiency video coding", february 2018
 つまり、上述の非特許文献に記載されている内容もサポート要件を判断する際の根拠となる。例えば、上述の非特許文献に記載されている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に記載の画像符号化方式(以下、VVC(Versatile Video Coding)とも称する)では、CABAC(Context-based Adaptive Binary Arithmetic Code)が用いられる。CABACは、二値算術符号化および2値シンボルの生起確率を周囲のパラメータの状態(コンテキスト)に基づいて推定するコンテキスト適応処理を用いたエントロピー符号化手法である。
 VVCでは、変換ブロック単位のコンテキスト符号化ビン数の発生量に関して、以下のパラメータが設定されている。
Figure JPOXMLDOC01-appb-I000001
 ・・・(1)
 RemCcbsは、コンテキスト符号化ビンの発生量を制御(制限)するためのパラメータであり、変換ブロック単位の許容コンテキスト符号化ビン残数を示す。許容コンテキスト符号化ビン残数は、コンテキスト符号化ビンの許容される発生量の残数のことを示す。例えば、画像の符号化または復号においてコンテキスト符号化ビンが発生する毎にそのビン数がRemCcbsから減算される。そして、このRemCcbsが閾値未満(例えば4未満)になるとコンテキスト符号化またはその復号が終了する。つまり、RemCcbsの初期値は、許容されるコンテキスト符号化ビンの最大数を示し、現在のRemCcbsの値は、その時点で許容される符号化ビンの残数を示す。なお、RemCcbsが閾値未満になると、その変換ブロックにおける画像の符号化(復号)は、コンテキスト符号化からより処理が簡単な符号化方法(例えば、バイパス符号化)へ切り替えられて実施される。
 また、log2(x)は、2を底とする入力値xの対数を返す関数を示す。また、TbWidthは、変換ブロックの横幅を示すパラメータである。また、TbHeightは、変換ブロックの縦幅を示すパラメータである。また、ctxBinSampleRatioBaseは、変換ブロック内の係数グループ(CG(Coef. Group)とも称する)レベルのコンテキスト符号化ビン数の最大数の基準値を示すパラメータである。このctxBinSampleRatioBaseの値は任意である。例えばVVCのVer.1では、ctxBinSampleRatioBaseの値は28である。
 図1に示される表は、このようなCABACにおける、CG単位で発生する平均的なコンテキスト符号化ビン数(ctx bins/CoefGroup)と、そのCG単位で発生するバイパス符号化ビン数(ep bins/CoefGroup)を、QP(量子化パラメータ)毎に示している。図1に示される表においては、シーケンスグループ(Sequence Group)AとシーケンスグループBのそれぞれについて、コンテキスト符号化ビン数とバイパス符号化ビン数とが示されている。シーケンスグループAは、符号化が難しく、符号化ビンが多く発生するシーケンスグループであり、シーケンスグループBは、シーケンスグループAに比べて符号化が容易で、符号化ビンが少ないシーケンスグループであるとする。
 シーケンスグループAおよびシーケンスグループBのいずれにおいても、QP=12の場合よりもQP=-13(より高ビットレート)の方が、発生するコンテキスト符号化ビン数およびバイパス符号化ビン数は多い。シーケンスグループAのQP=-13の場合をシーケンスグループBのQP=12の場合とで発生量を比較すると、コンテキスト符号化ビン数は約15倍、バイパス符号化ビン数は約257倍となる。このように、高ビット深度・高ビットレートの符号化では、コンテキスト符号化ビンやバイパス符号化ビンの発生量が増大し、CABACの単位当たりの処理量が増大するおそれがあった。
 そこで、CABACのスループットを改善するために、バイパス符号化ビンの符号化処理や復号処理を簡略化する方法が提案された(例えば、非特許文献3参照)。しかしながら、この方法では、コンテキスト符号化ビンの処理量の増大を抑制することは困難であった。一般的に、バイパス符号化ビンに対してコンテキスト符号化ビンの方が、符号化処理や復号処理は複雑である。そのため、処理量削減の観点では、コンテキスト符号化ビンの処理量の増大を抑制することも重要である。
 <2.コンテキスト符号化ビン数の抑制>
  <コンテキスト符号化ビン発生量の制御>
 そこで、変換ブロックレベルのコンテキスト符号化ビンの発生量を制御する。例えば、図2に示される表の最上段に記載のように、ビット深度に応じてコンテキスト符号化ビン最大数をセットする(方法1)。このようにすることにより、ビット深度に応じてコンテキスト符号化ビン数の発生量を制御することができる。したがって、符号化や復号の処理量の増大を抑制することができる。例えば、高ビット深度・高ビットレートの符号化におけるCABACの処理量を軽減することができる。
 例えば、画像処理装置が、画像のビット深度に応じた値を、その画像の符号化または復号において発生するコンテキスト符号化ビンの最大数として設定するコンテキスト符号化ビン最大数設定部を備えてもよい。また、例えば、画像処理方法において、画像のビット深度に応じた値を、その画像の符号化または復号において発生するコンテキスト符号化ビンの最大数として設定してもよい。つまり、画像の符号化または復号において適用されるコンテキスト符号化ビンの最大数を示すパラメータが、その画像のビット深度に基づいて設定されてもよい。
 例えば、上述の方法1が適用される場合において、図2に示される表の上から2段目に記載のように、ビット深度に依存するコンテキスト符号化ビン数に応じてコンテキスト符号化ビン最大数をセットしてもよい(方法1-1)。
 例えば、画像処理装置において、コンテキスト符号化ビン最大数設定部が、画像のビット深度に基づいて、ビット深度に依存するコンテキスト符号化ビン数を設定し、そのビット深度に依存するコンテキスト符号化ビン数に基づいて、コンテキスト符号化ビンの最大数を設定してもよい。
 例えば、画像処理装置において、コンテキスト符号化ビン最大数設定部が、処理対象ブロックのブロックサイズとビット深度に依存するコンテキスト符号化ビン数とに基づいて、その処理対象ブロックに対応するコンテキスト符号化ビンの最大数を設定してもよい。つまり、ビット深度に依存するコンテキスト符号化ビン数やコンテキスト符号化ビンの最大数が、符号化および復号の処理単位であるブロック毎に設定されるようにしてもよい。このブロックは、符号化または復号の対象である画像の部分領域に相当するデータ単位であればよい。例えば、このブロックは、画像の符号化において適用される係数変換(または画像の復号において適用される逆係数変換)の処理単位である変換ブロックであってもよい。
  <RemCcbs設定装置>
 図3は、本技術を適用した画像処理装置の一態様であるRemCcbs設定装置の構成の一例を示すブロック図である。図3に示されるRemCcbs設定装置100は、CABACを用いて画像を符号化する際のコンテキスト符号化ビンの発生量を制御(制限)するためのパラメータであるRemCcbsを設定する装置である。
 上述したように、RemCcbsは、変換ブロック単位の許容コンテキスト符号化ビン残数を示し、その初期値は、許容されるコンテキスト符号化ビンの最大数(コンテキスト符号化ビン最大数とも称する)を示す。したがって、RemCcbs設定装置100は、コンテキスト符号化ビン最大数設定部とも言える。
 RemCcbs設定装置100は、CABACの処理単位毎にRemCcbsを設定することができる。CABACは任意のデータ単位を処理単位とし得る。以下においては、一例として、CABACの処理単位を変換ブロックとし、RemCcbs初期値設定部102は、その変換ブロック毎にRemCcbsを設定するものとして説明する。
 なお、図3においては、処理部やデータの流れ等の主なものを示しており、図3に示されるものが全てとは限らない。つまり、RemCcbs設定装置100が、図3においてブロックとして示されていない処理部を有してもよい。また、RemCcbs設定装置100が、図3において矢印等として示されていない処理やデータの流れを有してもよい。
 図3に示されるように、RemCcbs設定装置100は、ctxBinSampleRatio(bitDepth)設定部101およびRemCcbs初期値設定部102を有する。
 ctxBinSampleRatio(bitDepth)設定部101は、ビット深度に依存するコンテキスト符号化ビン数を示すパラメータであるctxBinSampleRatio(bitDepth)の設定に関する処理を行う。例えば、ctxBinSampleRatio(bitDepth)設定部101は、RemCcbs設定装置100の外部から供給される、符号化対象(または復号対象)の画像のビット深度を示すパラメータであるbitDepthを取得する。
 ctxBinSampleRatio(bitDepth)設定部101は、取得したbitDepthを用いてctxBinSampleRatio(bitDepth)を設定する。つまり、ctxBinSampleRatio(bitDepth)設定部101は、符号化対象(または復号対象)の画像のビット深度に基づいて、ビット深度に依存するコンテキスト符号化ビン数を設定する。
 その際、ctxBinSampleRatio(bitDepth)設定部101は、このビット深度とその他の任意のパラメータに基づいてctxBinSampleRatio(bitDepth)を設定してもよい。例えば、ctxBinSampleRatio(bitDepth)設定部101は、符号化対象(または復号対象)の画像のビット深度と、コンテキスト符号化ビン数の基準値を示すパラメータであるctxBinSampleRatioBaseとに基づいて、ctxBinSampleRatio(bitDepth)を設定してもよい。その場合、ctxBinSampleRatio(bitDepth)設定部101は、RemCcbs設定装置100の外部から供給されるbitDepthおよびctxBinSampleRatioBaseを取得してもよい。そして、ctxBinSampleRatio(bitDepth)設定部101は、取得したbitDepthおよびctxBinSampleRatioBaseを用いてctxBinSampleRatio(bitDepth)を設定してもよい。
 ctxBinSampleRatio(bitDepth)設定部101は、設定したctxBinSampleRatio(bitDepth)をRemCcbs初期値設定部102へ供給する。
 RemCcbs初期値設定部102は、RemCcbsの初期値の設定に関する処理を行う。例えば、RemCcbs初期値設定部102は、ctxBinSampleRatio(bitDepth)設定部101から供給されるctxBinSampleRatio(bitDepth)を取得する。
 RemCcbs初期値設定部102は、取得したctxBinSampleRatio(bitDepth)を用いて、CABACの処理対象ブロックに対応するRemCcbsの初期値(画像の符号化または復号において発生するコンテキスト符号化ビンの最大数)を設定する。つまり、RemCcbs初期値設定部102は、画像のビット深度に基づいてRemCcbsの初期値を設定する。換言するに、RemCcbs初期値設定部102は、画像のビット深度に応じた値を、RemCcbsの初期値として設定する。例えば、RemCcbs初期値設定部102は、ビット深度に依存するコンテキスト符号化ビン数に基づいてRemCcbsの初期値を設定してもよい。
 その際、RemCcbs初期値設定部102は、このctxBinSampleRatio(bitDepth)とその他の任意のパラメータに基づいてRemCcbsの初期値を設定してもよい。例えば、RemCcbs初期値設定部102は、処理対象ブロックのブロックサイズと、ビット深度に依存するコンテキスト符号化ビン数とに基づいて、その処理対象ブロックに対応するRemCcbsの初期値を設定してもよい。例えば、RemCcbs設定装置100は、ctxBinSampleRatio(bitDepth)設定部101から供給されるctxBinSampleRatio(bitDepth)を取得し、さらに、RemCcbs設定装置100の外部から供給される、処理対象ブロックのTbWidthおよびTbHeightを取得してもよい。上述したように、TbWidthは、変換ブロックの横幅を示すパラメータである。また、TbHeightは、変換ブロックの縦幅を示すパラメータである。つまり、TbWidthおよびTbHeightは、処理対象ブロック(変換ブロック)のブロックサイズを示す。そして、RemCcbs初期値設定部102は、取得したctxBinSampleRatio(bitDepth)、TbWidth、およびTbHeightを用いて、処理対象ブロックに対応するRemCcbsの初期値を設定してもよい。
 RemCcbs初期値設定部102は、設定したRemCcbsの初期値をRemCcbs設定装置100の外部(例えば後段の処理部)に出力する。
 このような構成を有し、各処理部が上述のような処理を行うことにより、RemCcbs設定装置100は、コンテキスト符号化ビン数の発生量を制御することができる。したがって、RemCcbs設定装置100は、符号化や復号の処理量の増大を抑制することができる。例えば、RemCcbs設定装置100は、高ビット深度・高ビットレートの画像の符号化や復号におけるCABACの処理量の増大を抑制することができる。
 換言するに、RemCcbs設定装置100は、コンテキスト符号化ビンの発生量を抑制することにより、コンテキスト符号化ビン数とバイパス符号化ビン数の合計のビン数の発生量の増大を抑制することができる。つまり、RemCcbs設定装置100は、CABACのトータルの処理量の増大を抑制することができる。
  <RemCcbs設定処理の流れ>
 このRemCcbs設定装置100により実行されるRemCcbs設定処理の流れの例を、図4のフローチャートを参照して説明する。
 RemCcbs設定処理が開始されると、RemCcbs設定装置100のctxBinSampleRatio(bitDepth)設定部101は、ステップS101において、符号化対象(または復号対象)の画像のビット深度(bitDepth)に基づいてビット深度に依存するコンテキスト符号化ビン数を示すパラメータであるctxBinSampleRatio(bitDepth)をセットする。その際、ctxBinSampleRatio(bitDepth)設定部101は、このビット深度とその他の任意のパラメータに基づいてctxBinSampleRatio(bitDepth)を設定してもよい。例えば、ctxBinSampleRatio(bitDepth)設定部101は、符号化対象(または復号対象)の画像のビット深度(bitDepth)と、コンテキスト符号化ビン数の基準値を示すパラメータであるctxBinSampleRatioBaseとに基づいて、ctxBinSampleRatio(bitDepth)を設定してもよい。
 ステップS102において、RemCcbs設定装置100のRemCcbs初期値設定部102は、ステップS101においてセットされたctxBinSampleRatio(bitDepth)に基づいて、RemCcbsの初期値をセットする。つまり、RemCcbs初期値設定部102は、画像のビット深度に基づいて、許容コンテキスト符号化ビン残数の初期値を設定する。換言するに、RemCcbs初期値設定部102は、画像のビット深度に応じた値を、その画像の符号化または復号において発生するコンテキスト符号化ビンの最大数として設定する。
 その際、RemCcbs初期値設定部102は、このctxBinSampleRatio(bitDepth)とその他の任意のパラメータに基づいてRemCcbsの初期値を設定してもよい。例えば、RemCcbs初期値設定部102は、処理対象ブロックのブロックサイズ(TbWidthおよびTbHeight)と、ビット深度に依存するコンテキスト符号化ビン数(ctxBinSampleRatio(bitDepth))とに基づいて、その処理対象ブロックに対応するRemCcbsの初期値を設定してもよい。
 ステップS102の処理が終了するとRemCcbs設定処理が終了する。このようにRemCcbs設定処理を実行することにより、RemCcbs設定装置100は、コンテキスト符号化ビン数の発生量を制御することができる。したがって、RemCcbs設定装置100は、符号化や復号の処理量の増大を抑制することができる。例えば、RemCcbs設定装置100は、高ビット深度・高ビットレートの画像の符号化や復号におけるCABACの処理量の増大を抑制することができる。
 換言するに、RemCcbs設定装置100は、コンテキスト符号化ビンの発生量を抑制することにより、コンテキスト符号化ビン数とバイパス符号化ビン数の合計のビン数の発生量の増大を抑制することができる。つまり、RemCcbs設定装置100は、CABACのトータルの処理量の増大を抑制することができる。
  <ctxBinSampleRatio(bitDepth)>
 上述したRemCcbsの初期値(つまり、コンテキスト符号化ビンの最大数)の導出方法は任意である。例えば、RemCcbs初期値設定部102が、以下の式(2)を用いてRemCcbsの初期値を導出してもよい。
Figure JPOXMLDOC01-appb-I000002
 ・・・(2)
 このctxBinSampleRatio(bitDepth)(つまり、ビット深度に依存するコンテキスト符号化ビン数)の導出方法は任意である。
 例えば、上述した方法1-1が適用される場合において、図2の表の上から3段目に示されるように、コンテキスト符号化ビン数の基準値から画像のビット深度に応じた値を除算した値を、ビット深度に依存するコンテキスト符号化ビン数としてセットしてもよい(方法1-1-1)。例えば、画像処理装置において、コンテキスト符号化ビン最大数設定部が、コンテキスト符号化ビン数の基準値から画像のビット深度に応じた値を除算した値を、ビット深度に依存するコンテキスト符号化ビン数として設定してもよい。例えば、ctxBinSampleRatio(bitDepth)設定部101が、以下の式(3)を用いてctxBinSampleRatio(bitDepth)を導出してもよい。
Figure JPOXMLDOC01-appb-I000003
 ・・・(3)
 この場合、ctxBinSampleRatio(bitDepth)設定部101は、ビット深度(bitDepth)から10を減算した値と「0」とのうちの大きい方の値の分、ctxBinSampleRatioBaseを右方向にビットシフトし、その値をctxBinSampleRatio(bitDepth)とする。つまり、ctxBinSampleRatio(bitDepth)設定部101は、ビット深度が10ビットよりも大きい場合、そのビット深度が増大する程ctxBinSampleRatio(bitDepth)をより小さい値に設定する。
 また、上述した方法1-1が適用される場合において、図2の表の上から4段目に示されるように、コンテキスト符号化ビン数の基準値から画像のビット深度に応じた値を減算した値を、ビット深度に依存するコンテキスト符号化ビン数としてセットしてもよい(方法1-1-2)。例えば、画像処理装置において、コンテキスト符号化ビン最大数設定部が、コンテキスト符号化ビン数の基準値から画像のビット深度に応じた値を減算した値を、ビット深度に依存するコンテキスト符号化ビン数として設定してもよい。例えば、ctxBinSampleRatio(bitDepth)設定部101が、以下の式(4)を用いてctxBinSampleRatio(bitDepth)を導出してもよい。
Figure JPOXMLDOC01-appb-I000004
 ・・・(4)
 式(4)において、aは任意の定数である。例えば、a=4としてもよい。この場合、ctxBinSampleRatio(bitDepth)設定部101は、ビット深度(bitDepth)から10を減算した値と「0」とのうちの大きい方の値のa倍をctxBinSampleRatioBaseから減算し、その値をctxBinSampleRatio(bitDepth)とする。つまり、ctxBinSampleRatio(bitDepth)設定部101は、ビット深度が10ビットよりも大きい場合、ビット深度が増大する程ctxBinSampleRatio(bitDepth)をより小さい値に設定する。つまり、ctxBinSampleRatio(bitDepth)設定部101は、ビット深度が10ビットよりも大きいとき、そのビット深度が増大する程ctxBinSampleRatio(bitDepth)をより小さい値に設定する。
 また、上述した方法1-1が適用される場合において、図2の表の上から5段目に示されるように、ビット深度に応じた値を、ビット深度に依存するコンテキスト符号化ビン数としてセットしてもよい(方法1-1-3)。例えば、画像処理装置において、コンテキスト符号化ビン最大数設定部が、画像のビット深度に応じた値を、ビット深度に依存するコンテキスト符号化ビン数として設定してもよい。例えば、ctxBinSampleRatio(bitDepth)設定部101が、以下の式(5)を用いてctxBinSampleRatio(bitDepth)を導出してもよい。
Figure JPOXMLDOC01-appb-I000005
 ・・・(5)
 式(5)において、ctxBinSampleRatioBase2は、ctxBinSampleRatioBase(第1の基準値)よりも小さい値の、CGレベルのコンテキスト符号化ビン数の基準値(第2の基準値)を示すパラメータである。この場合、ctxBinSampleRatio(bitDepth)設定部101は、画像のビット深度が10ビット以下の場合、ctxBinSampleRatioBase(第1の基準値)をctxBinSampleRatio(bitDepth)とし、画像のビット深度が10ビットより大きい場合、ctxBinSampleRatioBase2(第2の基準値)をctxBinSampleRatio(bitDepth)とする。つまり、ctxBinSampleRatio(bitDepth)設定部101は、ビット深度が10ビットよりも大きいとき、ctxBinSampleRatio(bitDepth)を、ビット深度が10ビット以下のときよりも小さい値に設定する。
 なお、ctxBinSampleRatioBase2は、ctxBinSampleRatioBaseよりも小さければどのような値であってもよい。例えば、ctxBinSampleRatioBase=28とし、ctxBinSampleRatioBase2=21としてもよい。
 図5に示されるグラフは、これらの導出方法によるctxBinSampleRatio(bitDepth)の値の例を示す。図5に示されるグラフにおいて、線131は、上述した式(3)を適用して導出されたctxBinSampleRatio(bitDepth)の値の例を示す。線132は、上述した式(4)を適用して導出されたctxBinSampleRatio(bitDepth)の値の例を示す。線133は、上述した式(5)を適用して導出されたctxBinSampleRatio(bitDepth)の値の例を示す。
 線131乃至線133により示されるように、ビット深度が10ビットより大きい場合、ctxBinSampleRatio(bitDepth)のビット深度毎の値は、その導出方法に応じて異なる。ただし、いずれの方法の場合も、ビット深度が10ビットより大きい場合、ctxBinSampleRatio(bitDepth)は、ビット深度が10ビット以下の場合よりも小さい値をとる。したがって、コンテキスト符号化ビン数の発生量を制御することができ、高ビット深度・高ビットレートの画像の符号化や復号におけるCABACの処理量の増大を抑制することができる。
 なお、上述した導出方法のいずれが最適であるかは、要求される画質やコンテンツの内容等による。これらの導出方法のいずれかを選択的に適用することができるようにしてもよい。例えば、任意の条件(例えば、要求される画質やコンテンツの内容等)に基づいて、導出方法を選択し得るようにしてもよい。また、ユーザやアプリケーション等による導出方法を選択する指示を受け付け、その指示に従って導出方法を適用してもよい。また、上述した例以外の導出方法を選択肢(候補)としてもよい。また、選択肢(候補)の数は任意である。
  <実行制御フラグ>
 上述した方法1-1が適用される場合において、図2の表の上から6段目に示されるように、上述した方法1-1を適用するか否かを示すフラグである実行制御フラグが符号化側から復号側に伝送されてもよい。そして、この実行制御フラグが真であるなら、ビット深度に依存するコンテキスト符号化ビン数に応じてコンテキスト符号化ビン最大数がセットされるようにしてもよい。つまりこの場合、上述した方法1が適用される。また、この実行制御フラグが偽であるなら、コンテキスト符号化ビン数の基準値に応じてコンテキスト符号化ビン最大数がセットされるようにしてもよい。つまりこの場合、上述した方法1が適用されない(方法1-1-4)。
 このようにすることにより、方法1-1を適用するか否かを制御することができる。したがって、この場合も、コンテキスト符号化ビン数の発生量を制御することができ、符号化や復号の処理量の増大を抑制することができる。例えば、高ビット深度・高ビットレートの画像の符号化や復号におけるCABACの処理量の増大を抑制することができる。
 例えば、画像処理装置において、コンテキスト符号化ビン最大数設定部が、制御フラグ(実行制御フラグ)が真の場合、画像のビット深度に基づいてビット深度に依存するコンテキスト符号化ビン数を設定し、そのビット深度に依存するコンテキスト符号化ビン数に基づいてコンテキスト符号化ビンの最大数を設定し、制御フラグが偽の場合、コンテキスト符号化ビン数の基準値に基づいてコンテキスト符号化ビンの最大数を設定するようにしてもよい。
 なお、上述したように、方法1-1が適用される場合、方法1-1-1乃至方法1-1-3のいずれかが適用されてもよい。
  <RemCcbs設定装置>
 図6は、この場合のRemCcbs設定装置100の主な構成例を示すブロック図である。なお、図6においては、処理部やデータの流れ等の主なものを示しており、図6に示されるものが全てとは限らない。つまり、RemCcbs設定装置100が、図6においてブロックとして示されていない処理部を有してもよい。また、RemCcbs設定装置100が、図6において矢印等として示されていない処理やデータの流れを有してもよい。
 図6の場合、RemCcbs設定装置100は、ctxBinSampleRatio設定部151およびRemCcbs初期値設定部152を有する。
 ctxBinSampleRatio設定部151は、コンテキスト符号化ビン数を示すパラメータであるctxBinSampleRatioの設定に関する処理を行う。例えば、ctxBinSampleRatio設定部151は、RemCcbs設定装置100の外部から供給されるctxBinSampleRatioBaseおよびbitDepthを取得する。また、ctxBinSampleRatio設定部151は、RemCcbs設定装置100の外部から供給される実行制御フラグを取得する。この実行制御フラグは、ビット深度に応じてコンテキスト符号化ビンの最大数を設定するか否かを示す制御フラグである。つまり、実行制御フラグは、本技術を適用するか否かを示すフラグである。
 ctxBinSampleRatio設定部151は、その実行制御フラグに基づいて、ctxBinSampleRatioの設定方法を決定する。例えば、実行制御フラグが真(例えば1)の場合、ctxBinSampleRatio設定部151は、取得したbitDepthに基づいてctxBinSampleRatioを設定してもよい。つまり、ctxBinSampleRatio設定部151は、画像のビット深度(bitDepth)に基づいて、ビット深度に依存するコンテキスト符号化ビン数(ctxBinSampleRatio(bitDepth))を設定し、それをctxBinSampleRatioとしてもよい。その際、ctxBinSampleRatio設定部151は、さらにその他の任意のパラメータ(例えばctxBinSampleRatioBase)を用いてctxBinSampleRatio(bitDepth)を設定してもよい。ctxBinSampleRatio(bitDepth)の導出方法は任意である。例えば、ctxBinSampleRatio設定部151は、上述した式(3)乃至式(5)のいずれかを用いてctxBinSampleRatio(bitDepth)を導出してもよい。
 これに対して、実行制御フラグが偽(例えば0)の場合、ctxBinSampleRatio設定部151は、bitDepthに依存せずに、取得したctxBinSampleRatioBaseに基づいてctxBinSampleRatioを設定してもよい。例えば、ctxBinSampleRatio設定部151は、取得したctxBinSampleRatioBaseをctxBinSampleRatioとして設定してもよい。以下においては、実行制御フラグが偽の場合、このctxBinSampleRatioBaseがctxBinSampleRatioとされるものとして説明する。
 ctxBinSampleRatio設定部151は、以上のように設定したctxBinSampleRatio(ctxBinSampleRatio(bitDepth)またはctxBinSampleRatioBase)をRemCcbs初期値設定部152へ供給する。
 RemCcbs初期値設定部152は、RemCcbsの初期値の設定に関する処理を行う。例えば、RemCcbs初期値設定部152は、ctxBinSampleRatio設定部151から供給されるctxBinSampleRatio(ctxBinSampleRatio(bitDepth)またはctxBinSampleRatioBase)を取得する。
 RemCcbs初期値設定部152は、取得したctxBinSampleRatioを用いて、RemCcbsの初期値(画像の符号化または復号において発生するコンテキスト符号化ビンの最大数)を設定する。例えば、実行制御フラグが真の場合、RemCcbs初期値設定部152は、ctxBinSampleRatio(bitDepth)を用いて、RemCcbsの初期値を設定してもよい。RemCcbsの初期値の導出方法は任意である。例えば、RemCcbs初期値設定部152は、上述した式(2)を用いてRemCcbsの初期値を導出してもよい。
 これに対して、実行制御フラグが偽の場合、RemCcbs初期値設定部152は、ctxBinSampleRatioBaseを用いて、RemCcbsの初期値を設定してもよい。RemCcbsの初期値の導出方法は任意である。例えば、RemCcbs初期値設定部152は、上述した式(1)を用いてRemCcbsの初期値を導出してもよい。
 このようなRemCcbsの初期値の設定の際、RemCcbs初期値設定部152は、ctxBinSampleRatioとその他の任意のパラメータに基づいてRemCcbsの初期値を設定してもよい。例えば、RemCcbs初期値設定部152は、処理対象ブロックのブロックサイズと実行制御フラグとに基づいて、処理対象ブロックに対応するRemCcbsの初期値を設定してもよい。例えば、実行制御フラグが真の場合、RemCcbs初期値設定部152は、ctxBinSampleRatio設定部151から供給されるctxBinSampleRatio(bitDepth)を取得し、さらに、RemCcbs設定装置100の外部から供給される、処理対象ブロックのTbWidthおよびTbHeightを取得してもよい。そして、RemCcbs初期値設定部152は、取得したctxBinSampleRatio(bitDepth)、TbWidth、およびTbHeightを用いて、処理対象ブロックに対応するRemCcbsの初期値を設定してもよい。また、実行制御フラグが偽の場合、RemCcbs初期値設定部152は、ctxBinSampleRatio設定部151から供給されるctxBinSampleRatioBaseを取得し、さらに、RemCcbs設定装置100の外部から供給される、処理対象ブロックのTbWidthおよびTbHeightを取得してもよい。そして、RemCcbs初期値設定部152は、取得したctxBinSampleRatioBase、TbWidth、およびTbHeightを用いて、処理対象ブロックに対応するRemCcbsの初期値を設定してもよい。
 RemCcbs初期値設定部152は、設定したRemCcbsの初期値をRemCcbs設定装置100の外部(例えば後段の処理部)に出力する。
 このような構成を有し、各処理部が上述のような処理を行うことにより、RemCcbs設定装置100は、実行制御フラグを用いて、コンテキスト符号化ビン数の発生量を制御することができる。したがって、この場合も、RemCcbs設定装置100は、符号化や復号の処理量の増大を抑制することができる。例えば、RemCcbs設定装置100は、高ビット深度・高ビットレートの画像の符号化や復号におけるCABACの処理量の増大を抑制することができる。
  <RemCcbs設定処理の流れ>
 この場合のRemCcbs設定処理の流れの例を、図7のフローチャートを参照して説明する。
 RemCcbs設定処理が開始されると、RemCcbs設定装置100のctxBinSampleRatio設定部151は、ステップS151において、実行制御フラグが真であるか否かを判定する。実行制御フラグが真であると判定された場合、処理はステップS152へ進む。
 ステップS152において、ctxBinSampleRatio設定部151は、上述した方法1-1を適用し、ビット深度に基づいてctxBinSampleRatio(bitDepth)をセットし、そのctxBinSampleRatio(bitDepth)をctxBinSampleRatioとしてセットする。その際、ctxBinSampleRatio設定部151は、ビット深度とその他の任意のパラメータに基づいてctxBinSampleRatio(bitDepth)を設定してもよい。例えば、ctxBinSampleRatio設定部151は、bitDepthとctxBinSampleRatioBaseとに基づいて、ctxBinSampleRatio(bitDepth)を設定してもよい。その際、ctxBinSampleRatio設定部151は、例えば上述した式(3)乃至式(5)のいずれかを用いてctxBinSampleRatio(bitDepth)を導出してもよい。ステップS152の処理が終了すると処理はステップS154へ進む。
 また、ステップS151において、実行制御フラグが偽であると判定された場合、処理はステップS153へ進む。
 ステップS153において、ctxBinSampleRatio設定部151は、ctxBinSampleRatioBaseをctxBinSampleRatioとしてセットする。ステップS153の処理が終了すると処理はステップS154へ進む。
 ステップS154において、RemCcbs初期値設定部152は、ステップS152またはステップS153において設定されたctxBinSampleRatio(ctxBinSampleRatio(bitDepth)またはctxBinSampleRatioBase)に基づいて処理対象ブロックのRemCcbs初期値をセットする。
 つまり、実行制御フラグが真の場合、RemCcbs初期値設定部152は、画像のビット深度に基づいて、許容コンテキスト符号化ビン残数の初期値を設定する。換言するに、この場合、RemCcbs初期値設定部152は、画像のビット深度に応じた値を、その画像の符号化または復号において発生するコンテキスト符号化ビンの最大数として設定する。
 これに対して、実行制御フラグが偽の場合、RemCcbs初期値設定部152は、コンテキスト符号化ビン数の基準値に基づいて、許容コンテキスト符号化ビン残数の初期値を設定する。換言するに、この場合、RemCcbs初期値設定部152は、コンテキスト符号化ビン数の基準値に応じた値を、その画像の符号化または復号において発生するコンテキスト符号化ビンの最大数として設定する。
 このようなRemCcbsの初期値の設定の際、RemCcbs初期値設定部152は、ctxBinSampleRatioとその他の任意のパラメータに基づいてRemCcbsの初期値を設定してもよい。例えば、RemCcbs初期値設定部152は、処理対象ブロックのブロックサイズと実行制御フラグとに基づいて、処理対象ブロックに対応するRemCcbsの初期値を設定してもよい。例えば、実行制御フラグが真の場合、RemCcbs初期値設定部152は、処理対象ブロックのブロックサイズ(TbWidthおよびTbHeight)と、ビット深度に依存するコンテキスト符号化ビン数(ctxBinSampleRatio(bitDepth))とに基づいて、その処理対象ブロックに対応するRemCcbsの初期値を設定してもよい。その際、RemCcbs初期値設定部152は、例えば上述した式(2)を用いてRemCcbs初期値を導出してもよい。また、実行制御フラグが偽の場合、RemCcbs初期値設定部152は、処理対象ブロックのブロックサイズ(TbWidthおよびTbHeight)と、コンテキスト符号化ビン数の基準値(ctxBinSampleRatioBase)とに基づいて、その処理対象ブロックに対応するRemCcbsの初期値を設定してもよい。その際、RemCcbs初期値設定部152は、例えば上述した式(1)を用いてRemCcbs初期値を導出してもよい。ステップS154の処理が終了するとRemCcbs設定処理が終了する。
 このようにRemCcbs設定処理を実行することにより、RemCcbs設定装置100は、実行制御フラグを用いて、コンテキスト符号化ビン数の発生量を制御することができる。したがって、この場合も、RemCcbs設定装置100は、符号化や復号の処理量の増大を抑制することができる。例えば、RemCcbs設定装置100は、高ビット深度・高ビットレートの画像の符号化や復号におけるCABACの処理量の増大を抑制することができる。
  <基準値制御フラグ>
 図2の表の上から7段目に示されるように、処理速度制御に応じてコンテキスト符号化ビン最大数をセットしてもよい(方法2)。例えば、CABACの処理速度のモードを示す制御フラグが符号化側から復号側に伝送されるようにし、その制御フラグに応じてコンテキスト符号化ビン最大数がセットされてもよい。これにより、処理速度制御に応じて、コンテキスト符号化ビン数の発生量を制御することができ、符号化や復号の処理量の増大を抑制することができる。例えば、高ビット深度・高ビットレートの画像の符号化や復号におけるCABACの処理量の増大を抑制することができる。
 この制御フラグは、どのような値をとるフラグ情報であってもよい。例えば、この制御フラグは、偽(例えば0)の場合、CABACが通常速度モードで行われることを示し、真(例えば1)の場合、CABACが高速モードで行われることを示してもよい。高速モードは、通常速度モードの場合よりも処理時間が短い動作モードである。
 例えば、画像処理装置が、このような制御フラグに応じて、画像の符号化または復号において発生するコンテキスト符号化ビンの最大数を設定するコンテキスト符号化ビン最大数設定部を備えてもよい。また、例えば、画像処理方法において、このような制御フラグに応じて、画像の符号化または復号において発生するコンテキスト符号化ビンの最大数を設定してもよい。つまり、画像の符号化または復号において適用されるコンテキスト符号化ビンの最大数を示すパラメータが、処理速度のモードを示す制御フラグに基づいて設定されてもよい。
 例えば、その制御フラグが通常速度モードを示す場合(すなわち、制御フラグが偽の場合)、コンテキスト符号化ビン最大数設定部が、第1の基準値に基づいてコンテキスト符号化ビンの最大数を設定してもよい。つまり、画像の符号化や復号が通常の処理時間で行われる場合、コンテキスト符号化ビン最大数設定部が、通常速度モード用の第1の基準値を、CGレベルのコンテキスト符号化ビン数の基準値として設定し、その第1の基準値を用いて、コンテキスト符号化ビンの最大数を設定してもよい。
 これに対して、その制御フラグが高速モードを示す場合(すなわち、制御フラグが真の場合)、コンテキスト符号化ビン最大数設定部が、第1の基準値よりも小さい第2の基準値に基づいてコンテキスト符号化ビンの最大数を設定してもよい。つまり、画像の符号化や復号が通常よりも短時間で行われる場合、コンテキスト符号化ビン最大数設定部が、高速モード用の第2の基準値、すなわち、第1の基準値よりも小さい値を、CGレベルのコンテキスト符号化ビン数の基準値として設定し、その第2の基準値を用いて、コンテキスト符号化ビンの最大数を設定してもよい。
 このようにすることにより、制御フラグが高速モードを示す場合、通常速度モードの場合よりもコンテキスト符号化ビンの発生量が抑制され、符号化や復号をより高速に行うことができる。換言するに、制御フラグが高速モードを示す場合、通常速度モードの場合よりも符号化や復号の処理量の増大を抑制することができる。したがって、例えば、高ビット深度・高ビットレートの画像の符号化や復号の際に、この制御フラグが高速モードを示すようにすることにより、CABACの処理量の増大を抑制することができる。
 換言するに、この制御フラグは、CGレベルのコンテキスト符号化ビン数の基準値の値を制御するフラグ(基準値制御フラグとも称する)とも言える。つまり、方法2が適用される場合において、図2の表の最下段に示されるように、この基準値制御フラグが符号化側から復号側に伝送されるようにしてもよい。そして、その基準値制御フラグに応じてコンテキスト符号化ビン数の基準値がセットされてもよい。そして、その基準値制御フラグに応じたコンテキスト符号化ビン数の基準値に応じて、コンテキスト符号化ビン最大数がセットされてもよい(方法2-1)。
 なお、コンテキスト符号化ビン最大数設定部が、処理対象ブロックのブロックサイズとこの制御フラグ(基準値制御フラグ)とに基づいて、その処理対象ブロックに対応するコンテキスト符号化ビンの最大数を設定してもよい。
  <RemCcbs設定装置>
 図8は、この場合のRemCcbs設定装置100の主な構成例を示すブロック図である。なお、図8においては、処理部やデータの流れ等の主なものを示しており、図8に示されるものが全てとは限らない。つまり、RemCcbs設定装置100が、図8においてブロックとして示されていない処理部を有してもよい。また、RemCcbs設定装置100が、図8において矢印等として示されていない処理やデータの流れを有してもよい。
 図8の場合、RemCcbs設定装置100は、ctxBinSampleRatio設定部181およびRemCcbs初期値設定部182を有する。
 ctxBinSampleRatio設定部181は、コンテキスト符号化ビン数を示すパラメータであるctxBinSampleRatioの設定に関する処理を行う。例えば、ctxBinSampleRatio設定部181は、RemCcbs設定装置100の外部から供給されるctxBinSampleRatioBase1(CGレベルのコンテキスト符号化ビン数の第1の基準値)およびctxBinSampleRatioBase2(CGレベルのコンテキスト符号化ビン数の第2の基準値)を取得する。ctxBinSampleRatioBase2は、ctxBinSampleRatioBase1よりも小さい値をとる。ctxBinSampleRatioBase1の値は任意である。例えば、ctxBinSampleRatioBase1=28としてもよい。また、ctxBinSampleRatioBase2の値は、ctxBinSampleRatioBase1よりも小さい範囲で任意である。例えば、ctxBinSampleRatioBase2=0としてもよい。
 また、ctxBinSampleRatio設定部181は、RemCcbs設定装置100の外部から供給される基準値制御フラグを取得する。この基準値制御フラグは、CGレベルのコンテキスト符号化ビン数の基準値を制御する制御フラグである。
 ctxBinSampleRatio設定部181は、その基準値制御フラグに基づいて、ctxBinSampleRatioの値を設定する。例えば、基準値制御フラグが偽(例えば0)の場合、ctxBinSampleRatio設定部181は、取得したctxBinSampleRatioBase1を用いてctxBinSampleRatioとして設定してもよい。このctxBinSampleRatioの設定方法は、ctxBinSampleRatioBase1を用いる限り任意である。例えば、ctxBinSampleRatio設定部181は、取得したctxBinSampleRatioBase1をctxBinSampleRatioとして設定してもよい。以下においては、基準値制御フラグが偽の場合、このctxBinSampleRatioBase1がctxBinSampleRatioとされるものとして説明する。
 これに対して、基準値制御フラグが真(例えば1)の場合、ctxBinSampleRatio設定部181は、取得したctxBinSampleRatioBase2を用いてctxBinSampleRatioとして設定してもよい。このctxBinSampleRatioの設定方法は、ctxBinSampleRatioBase2を用いる限り任意である。例えば、ctxBinSampleRatio設定部181は、取得したctxBinSampleRatioBase2をctxBinSampleRatioとして設定してもよい。以下においては、基準値制御フラグが偽の場合、このctxBinSampleRatioBase2がctxBinSampleRatioとされるものとして説明する。
 ctxBinSampleRatio設定部181は、以上のように設定したctxBinSampleRatio(ctxBinSampleRatioBase1またはctxBinSampleRatioBase2)をRemCcbs初期値設定部182へ供給する。
 RemCcbs初期値設定部182は、RemCcbsの初期値の設定に関する処理を行う。例えば、RemCcbs初期値設定部182は、ctxBinSampleRatio設定部181から供給されるctxBinSampleRatio(ctxBinSampleRatioBase1またはctxBinSampleRatioBase2)を取得する。
 RemCcbs初期値設定部182は、取得したctxBinSampleRatioを用いて、RemCcbsの初期値(画像の符号化または復号において発生するコンテキスト符号化ビンの最大数)を設定する。つまり、RemCcbs初期値設定部182は、処理速度のモードを示す制御フラグ(基準値制御フラグ)に応じて、RemCcbsの初期値を設定する。換言するに、RemCcbs初期値設定部182は、処理速度のモードを示す制御フラグに応じた値を、RemCcbsの初期値として設定する。
 例えば、基準値制御フラグが偽の場合、RemCcbs初期値設定部182は、取得したctxBinSampleRatioBase1(第1の基準値)を用いてRemCcbsの初期値を設定してもよい。また、基準値制御フラグが真の場合、RemCcbs初期値設定部182は、取得したctxBinSampleRatioBase2(第2の基準値)を用いてRemCcbsの初期値を設定してもよい。このRemCcbsの初期値の導出方法は任意である。例えば、RemCcbs初期値設定部182は、上述した式(1)を用いてRemCcbsの初期値を導出してもよい。
 このようなRemCcbsの初期値の設定の際、RemCcbs初期値設定部182は、ctxBinSampleRatioとその他の任意のパラメータに基づいてRemCcbsの初期値を設定してもよい。例えば、RemCcbs初期値設定部182は、処理対象ブロックのブロックサイズと基準値制御フラグとに基づいて、処理対象ブロックに対応するRemCcbsの初期値を設定してもよい。例えば、基準値制御フラグが偽の場合、RemCcbs初期値設定部182は、ctxBinSampleRatio設定部181から供給されるctxBinSampleRatioBase1(第1の基準値)を取得し、さらに、RemCcbs設定装置100の外部から供給される、処理対象ブロックのTbWidthおよびTbHeightを取得してもよい。そして、RemCcbs初期値設定部182は、取得したctxBinSampleRatioBase1、TbWidth、およびTbHeightを用いて、処理対象ブロックに対応するRemCcbsの初期値を設定してもよい。また、基準値制御フラグが真の場合、RemCcbs初期値設定部182は、ctxBinSampleRatio設定部181から供給されるctxBinSampleRatioBase2(第2の基準値)を取得し、さらに、RemCcbs設定装置100の外部から供給される、処理対象ブロックのTbWidthおよびTbHeightを取得してもよい。そして、RemCcbs初期値設定部182は、取得したctxBinSampleRatioBase2、TbWidth、およびTbHeightを用いて、処理対象ブロックに対応するRemCcbsの初期値を設定してもよい。
 RemCcbs初期値設定部182は、設定したRemCcbsの初期値をRemCcbs設定装置100の外部(例えば後段の処理部)に出力する。
 このような構成を有し、各処理部が上述のような処理を行うことにより、RemCcbs設定装置100は、基準値制御フラグを用いて、コンテキスト符号化ビン数の発生量を制御することができる。つまり、RemCcbs設定装置100は、CABACの処理速度制御に応じてコンテキスト符号化ビン数の発生量を制御することができる。したがって、この場合も、RemCcbs設定装置100は、符号化や復号の処理量の増大を抑制することができる。例えば、RemCcbs設定装置100は、高ビット深度・高ビットレートの画像の符号化や復号におけるCABACの処理量の増大を抑制することができる。
  <RemCcbs設定処理の流れ>
 この場合のRemCcbs設定処理の流れの例を、図9のフローチャートを参照して説明する。
 RemCcbs設定処理が開始されると、RemCcbs設定装置100のctxBinSampleRatio設定部181は、ステップS181において、基準値制御フラグが真であるか否かを判定する。基準値制御フラグが真であると判定された場合、処理はステップS182へ進む。
 ステップS182において、ctxBinSampleRatio設定部181は、ctxBinSampleRatioBase2をctxBinSampleRatioとしてセットする。ステップS182の処理が終了すると処理はステップS184へ進む。
 また、ステップS181において、基準値制御フラグが偽であると判定された場合、処理はステップS183へ進む。
 ステップS183において、ctxBinSampleRatio設定部181は、ctxBinSampleRatioBase1をctxBinSampleRatioとしてセットする。ステップS183の処理が終了すると処理はステップS184へ進む。
 ステップS184において、RemCcbs初期値設定部182は、ステップS182またはステップS183において設定されたctxBinSampleRatio(ctxBinSampleRatioBase1またはctxBinSampleRatioBase2)に基づいて、処理対象ブロックに対応するRemCcbs初期値をセットする。
 つまり、RemCcbs初期値設定部182は、基準値制御フラグに基づいて、許容コンテキスト符号化ビン残数の初期値を設定する。換言するに、RemCcbs初期値設定部182は、基準値制御フラグに応じた値を、その画像の符号化または復号において発生するコンテキスト符号化ビンの最大数として設定する。
 このようなRemCcbsの初期値の設定の際、RemCcbs初期値設定部182は、ctxBinSampleRatioとその他の任意のパラメータに基づいてRemCcbsの初期値を設定してもよい。例えば、RemCcbs初期値設定部182は、処理対象ブロックのブロックサイズと基準値制御フラグとに基づいて、処理対象ブロックに対応するRemCcbsの初期値を設定してもよい。例えば、RemCcbs初期値設定部182は、処理対象ブロックのブロックサイズ(TbWidthおよびTbHeight)と、基準値制御フラグに応じたコンテキスト符号化ビン数の基準値(ctxBinSampleRatioBase1またはctxBinSampleRatioBase2)に基づいて、その処理対象ブロックに対応するRemCcbsの初期値を設定してもよい。その際、RemCcbs初期値設定部182は、例えば上述した式(1)を用いてRemCcbs初期値を導出してもよい。ステップS184の処理が終了するとRemCcbs設定処理が終了する。
 このようにRemCcbs設定処理を実行することにより、RemCcbs設定装置100は、基準値制御フラグを用いて、コンテキスト符号化ビン数の発生量を制御することができる。つまり、RemCcbs設定装置100は、CABACの処理速度制御に応じてコンテキスト符号化ビン数の発生量を制御することができる。したがって、この場合も、RemCcbs設定装置100は、符号化や復号の処理量の増大を抑制することができる。例えば、RemCcbs設定装置100は、高ビット深度・高ビットレートの画像の符号化や復号におけるCABACの処理量の増大を抑制することができる。
  <符号化方式>
 なお、RemCcbsが適用される画像の符号化方式は、コンテキストを用いた符号化方式であればどのようなものでもよく、一例として上述したCABACに限定されない。
 <3.実施の形態>
  <画像符号化装置>
 以上に説明した本技術は任意の構成に適用することができる。例えば、この本技術は、画像符号化装置に適用し得る。図10は、本技術を適用した画像処理装置の一態様である画像符号化装置の構成の一例を示すブロック図である。図10に示される画像符号化装置300は、動画像の画像データを符号化する装置である。例えば、画像符号化装置300は、上述の非特許文献のいずれかに記載の符号化方式で動画像の画像データを符号化することができる。
 なお、図10においては、処理部(ブロック)やデータの流れ等の主なものを示しており、図10に示されるものが全てとは限らない。つまり、画像符号化装置300が、図10においてブロックとして示されていない処理部を有していてもよい。また、画像符号化装置300が、図10において矢印等として示されていない処理やデータの流れを有していてもよい。
 図10に示されるように画像符号化装置300は、制御部301、並べ替えバッファ311、演算部312、直交変換部313、量子化部314、符号化部315、蓄積バッファ316、逆量子化部317、逆直交変換部318、演算部319、インループフィルタ部320、フレームメモリ321、予測部322、およびレート制御部323を有する。
   <制御部>
 制御部301は、外部、または予め指定された処理単位のブロックサイズに基づいて、並べ替えバッファ311により保持されている動画像データを処理単位のブロック(CU, PU, 変換ブロックなど)へ分割する。また、制御部301は、各ブロックへ供給する符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfo等)を、例えば、RDO(Rate-Distortion Optimization)に基づいて、決定する。
 これらの符号化パラメータの詳細については後述する。制御部301は、以上のような符号化パラメータを決定すると、それを各ブロックへ供給する。具体的には、以下の通りである。
 ヘッダ情報Hinfoは、各ブロックに供給される。予測モード情報Pinfoは、符号化部315と予測部322とに供給される。変換情報Tinfoは、符号化部315、直交変換部313、量子化部314、逆量子化部317、および逆直交変換部318に供給される。フィルタ情報Finfoは、インループフィルタ部320に供給される。
   <並べ替えバッファ>
 画像符号化装置300には、動画像データの各フィールド(入力画像)がその再生順(表示順)に入力される。並べ替えバッファ311は、各入力画像をその再生順(表示順)に取得し、保持(記憶)する。並べ替えバッファ311は、制御部301の制御に基づいて、その入力画像を符号化順(復号順)に並べ替えたり、処理単位のブロックに分割したりする。並べ替えバッファ311は、処理後の各入力画像を演算部312に供給する。また、並べ替えバッファ311は、その各入力画像(元画像)を、予測部322やインループフィルタ部320にも供給する。
   <演算部>
 演算部312は、処理単位のブロックに対応する画像I、および予測部322より供給される予測画像Pを入力とし、画像Iから予測画像Pを以下の式に示されるように減算して、予測残差Dを導出し、それを直交変換部313に供給する。
 D = I - P
   <直交変換部>
 直交変換部313は、演算部312から供給される予測残差Dと、制御部301から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、予測残差Dに対して直交変換を行い、変換係数Coeffを導出する。例えば、直交変換部313は、予測残差Dに対してプライマリ変換を行ってプライマリ変換係数を生成し、ST識別子に基づいて、そのプライマリ変換係数に対してセカンダリ変換を行い、セカンダリ変換係数を生成する。直交変換部313は、その得られたセカンダリ変換係数を変換係数Coeffとして量子化部314に供給する。なお、直交変換部313は、直交変換に限らず、任意の係数変換を行うことができる。つまり、変換係数Coeffは、予測残差Dに対して任意の係数変換が行われて導出されてもよい。したがって、直交変換部313は、係数変換部とも言える。
   <量子化部>
 量子化部314は、直交変換部313から供給される変換係数Coeffと、制御部301から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数Coeffをスケーリング(量子化)する。なお、この量子化のレートは、レート制御部323により制御される。量子化部314は、このように量子化された変換係数のレベル値である量子化係数level(量子化係数qcoeffとも称する)を、符号化部315および逆量子化部317に供給する。
   <符号化部>
 符号化部315は、量子化部314から供給された量子化係数levelと、制御部301から供給される各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)と、インループフィルタ部320から供給されるフィルタ係数等のフィルタに関する情報と、予測部322から供給される最適な予測モードに関する情報とを入力とする。符号化部315は、量子化係数levelを可変長符号化(例えば、算術符号化)し、ビット列(符号化データ)を生成する。
 さらに、符号化部315は、インループフィルタ部320から供給されるフィルタに関する情報をフィルタ情報Finfoに含め、予測部322から供給される最適な予測モードに関する情報を予測モード情報Pinfoに含める。そして、符号化部315は、上述した各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)を符号化し、ビット列を生成する。
 また、符号化部315は、以上のように生成された各種情報のビット列(符号化データ)を多重化し、符号化データのビットストリームを生成する。符号化部315は、そのビットストリームを蓄積バッファ316に供給する。
   <蓄積バッファ>
 蓄積バッファ316は、符号化部315において得られた符号化データのビットストリームを、一時的に保持する。蓄積バッファ316は、所定のタイミングにおいて、保持している符号化データのビットストリームを画像符号化装置300の外部に出力する。例えば、このビットストリームは、任意の記録媒体、任意の伝送媒体、任意の情報処理装置等を介して復号側に伝送される。すなわち、蓄積バッファ316は、ビットストリーム(符号化データ)を伝送する伝送部でもある。
   <逆量子化部>
 逆量子化部317は、逆量子化に関する処理を行う。例えば、逆量子化部317は、量子化部314から供給される量子化係数levelと、制御部301から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、量子化係数levelの値をスケーリング(逆量子化)する。なお、この逆量子化は、量子化部314において行われる量子化の逆処理である。逆量子化部317は、このような逆量子化により得られた変換係数Coeff_IQを、逆直交変換部318に供給する。
   <逆直交変換部>
 逆直交変換部318は、逆直交変換に関する処理を行う。例えば、逆直交変換部318は、逆量子化部317から供給される変換係数Coeff_IQと、制御部301から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆直交変換を行い、予測残差D'を導出する。この逆直交変換は、直交変換部313において行われる直交変換の逆処理である。逆直交変換部318は、このような逆直交変換により得られた予測残差D'を演算部319に供給する。
 換言するに、逆直交変換部318は、直交変換部313が実行する処理の逆処理を実行する。つまり、直交変換部313の場合と同様に、逆直交変換部318は、逆直交変換に限らず任意の逆係数変換を行うことができる。この逆係数変換は、直交変換部313が実行する係数変換の逆処理である。つまり、予測残差D'は、変換係数Coeff_IQに対して任意の逆係数変換が行われて導出されてもよい。したがって、逆直交変換部318は、逆係数変換部とも言える。
   <演算部>
 演算部319は、逆直交変換部318から供給される予測残差D'と、予測部322から供給される予測画像Pとを入力とする。演算部319は、その予測残差D'と、その予測残差D'に対応する予測画像Pとを加算し、局所復号画像Rlocalを導出する。演算部319は、導出した局所復号画像Rlocalをインループフィルタ部320およびフレームメモリ321に供給する。
   <インループフィルタ部>
 インループフィルタ部320は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部320は、演算部319から供給される局所復号画像Rlocalと、制御部301から供給されるフィルタ情報Finfoと、並べ替えバッファ311から供給される入力画像(元画像)とを入力とする。なお、インループフィルタ部320に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。例えば、必要に応じて、予測モード、動き情報、符号量目標値、量子化パラメータQP、ピクチャタイプ、ブロック(CU、CTU等)の情報等がインループフィルタ部320に入力されるようにしてもよい。
 インループフィルタ部320は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。インループフィルタ部320は、必要に応じて入力画像(元画像)や、その他の入力情報もそのフィルタ処理に用いる。
 例えば、インループフィルタ部320は、非特許文献11に記載のように、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
 もちろん、インループフィルタ部320が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部320がウィーナーフィルタ等を適用するようにしてもよい。
 インループフィルタ部320は、フィルタ処理された局所復号画像Rlocalをフレームメモリ321に供給する。なお、例えばフィルタ係数等のフィルタに関する情報を復号側に伝送する場合、インループフィルタ部320は、そのフィルタに関する情報を符号化部315に供給する。
   <フレームメモリ>
 フレームメモリ321は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ321は、演算部319から供給される局所復号画像Rlocalや、インループフィルタ部320から供給されるフィルタ処理された局所復号画像Rlocalを入力とし、それを保持(記憶)する。また、フレームメモリ321は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(フレームメモリ321内のバッファへ格納する)。フレームメモリ321は、予測部322の要求に応じて、その復号画像R(またはその一部)を予測部322に供給する。
   <予測部>
 予測部322は、予測画像の生成に関する処理を行う。例えば、予測部322は、制御部301から供給される予測モード情報Pinfoと、並べ替えバッファ311から供給される入力画像(元画像)と、フレームメモリ321から読み出す復号画像R(またはその一部)を入力とする。予測部322は、予測モード情報Pinfoや入力画像(元画像)を用い、インター予測やイントラ予測等の予測処理を行い、復号画像Rを参照画像として参照して予測を行い、その予測結果に基づいて動き補償処理を行い、予測画像Pを生成する。予測部322は、生成した予測画像Pを演算部312および演算部319に供給する。また、予測部322は、以上の処理により選択した予測モード、すなわち最適な予測モードに関する情報を、必要に応じて符号化部315に供給する。
   <レート制御部>
 レート制御部323は、レート制御に関する処理を行う。例えば、レート制御部323は、蓄積バッファ316に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部314の量子化動作のレートを制御する。
 なお、これらの処理部(制御部301、並べ替えバッファ311乃至レート制御部323)は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
 以上のような構成の画像符号化装置300において、符号化部315に<2.コンテキスト符号化ビン数の抑制>において説明した本技術を適用してもよい。例えば、本技術の方法1-1を画像符号化装置300に適用してもよい。
  <符号化部>
 図11は、その場合の符号化部315の主な構成例を示すブロック図である。図11に示されるように、この場合の符号化部315は、選択部351、TS残差符号化部352、およびNon-TS残差符号化部353を有する。
 選択部351は、符号化部315の動作モードの制御に関する処理を行う。例えば、選択部351は、量子化部314から供給される量子化係数level(量子化係数qcoeff)を取得する。また、選択部351は、制御部301から供給されるtransform_skip_flag[xTbY][yTbY][cIdx]とcIdxを取得する。
 transform_skip_flag[xTbY][yTbY][cIdx]は、直交変換部313により実行される係数変換(逆直交変換部318により実行される逆係数変換)をスキップ(省略)するか否かを示す変換スキップフラグである。例えば、transform_skip_flagが真(例えば1)の場合、直交変換部313は、予測残差Dに対する係数変換をスキップする。また、逆直交変換部318は、変換係数Coeff_IQに対する逆係数変換をスキップする。これに対してtransform_skip_flagが偽(例えば0)の場合、直交変換部313は、予測残差Dに対して係数変換を実行し、変換係数Coeffを生成する。また、逆直交変換部318は、変換係数Coeff_IQに対して逆係数変換を実行し、予測残差D'を生成する。cIdxは、輝度成分や色成分等といったコンポーネントを識別するためのコンポーネント識別子である。
 選択部351は、transform_skip_flag[xTbY][yTbY][cIdx]およびcIdxに基づいて変換スキップが行われたか否かを判定し、その判定結果に基づいて、量子化係数levelをTS残差符号化モードで符号化するか、Non-TS残差符号化モードで符号化するかを選択する。TS残差符号化モードは、直交変換部313において係数変換がスキップされた場合の量子化係数levelを符号化するモードである。Non-TS残差符号化モードは、直交変換部313において係数変換が実行された場合の量子化係数levelを符号化するモードである。
 係数変換がスキップされたと判定した場合、選択部351は、量子化係数levelをTS残差符号化部352へ供給する。係数変換が実行されたと判定した場合、選択部351は、量子化係数levelをNon-TS残差符号化部353へ供給する。
 なお、選択部351は、transform_skip_flagの代わりに、プライマリ変換に関する識別子であるMTS(multiple transform selection)識別子(mts_idx[xTbY][yTbY][cIdx])を用いて、変換スキップが行われたか否かを判定してもよい。付言するに、選択部351は、直交変換部313が行う係数変換処理のモードに関する情報である変換モード情報とcIdxに基づいて、変換スキップが行われたか否かを判定してもよい。この変換モード情報には、transform_skip_flagやmts_idxが含まれる。
 TS残差符号化部352は、TS残差符号化モードでの符号化に関する処理を実行する。例えば、TS残差符号化部352は、選択部351から供給される量子化係数levelを取得する。TS残差符号化部352は、取得した量子化係数levelをTS残差符号化モードで符号化する。TS残差符号化部352は、RemCcbs設定部361を有する。RemCcbs設定部361は、RemCcbsの初期値を設定する。TS残差符号化部352は、そのRemCcbsを用いて取得した量子化係数levelを符号化する。
 図12は、そのTS残差符号化モードに関するシンタックスの例を示す図である。図12に示されるように、TS残差符号化部352は、RemCcbsが閾値以上(>=4)であれば、変換係数のレベル値(すなわち量子化係数level)に関するシンタックス(sig_coeff_flag,coeff_sign_flag, abs_level_gtx_flag[j], par_level_flag等)をコンテキスト符号化する(図中、Pass1およびPass2)。また、TS残差符号化部352は、RemCcbsが閾値未満(<4)であれば、変換係数のレベル値(すなわち量子化係数level)に関するシンタックス(abs_remainder, coeff_sign_flag)をバイパス符号化する(図中、Pass3)。
 なお、sig_coeff_flagは、そのフラグが対応する変換係数のレベル(すなわち量子化係数level)が0であるか否かを示すフラグである。例えば、sig_coeff_flagが真(例えば1)の場合、対応する量子化係数levelが0でないことを示す。sig_coeff_flagが偽(例えば0)の場合、対応する量子化係数levelが0であることを示す。また、coeff_sign_flagは、対応する変換係数のレベル(すなわち量子化係数level)の符号を指定するフラグである。例えば、coeff_sign_flagが偽(例えば0)の場合、対応する量子化係数levelが正であることを示す。coeff_sign_flagが真(例えば1)の場合、対応する量子化係数levelが負であることを示す。また、abs_level_gtx_flag[j]は、対応する変換係数のレベル(すなわち量子化係数level)の絶対値が(j << 1)+1より大きいか否かを指定するフラグである。また、par_level_flagは、対応する変換係数のレベル(すなわち量子化係数level)のパリティを指定するフラグである。また、abs_remainderは、対応する、ゴロムライスコードでコード化された変換係数のレベル(すなわちゴロムライスコードでコード化された量子化係数level)の残りの絶対値を示すパラメータである。
 TS残差符号化部352は、量子化係数levelをコンテキスト符号化することにより発生したコンテキスト符号化ビン数をRemCcbs(許容コンテキスト符号化ビン残数)から減算する。そして、RemCcbsが閾値未満(<4)になると、TS残差符号化部352は、それ以降の量子化係数levelについて、上述したようにバイパス符号化を行う。
 Non-TS残差符号化部353は、Non-TS残差符号化モードでの符号化に関する処理を実行する。例えば、Non-TS残差符号化部353は、選択部351から供給される量子化係数levelを取得する。Non-TS残差符号化部353は、取得した量子化係数levelをNon-TS残差符号化モードで符号化する。Non-TS残差符号化部353は、RemCcbs設定部362を有する。RemCcbs設定部362は、RemCcbsの初期値を設定する。Non-TS残差符号化部353は、そのRemCcbsを用いて取得した量子化係数levelを符号化する。
 図13は、そのNon-TS残差符号化モードに関するシンタックスの例を示す図である。図13に示されるように、Non-TS残差符号化部353は、RemCcbsが閾値以上(>=4)であれば、変換係数のレベル値(すなわち量子化係数level)に関するシンタックス(sig_coeff_flag, abs_level_gtx_flag[j], par_level_flag等)をコンテキスト符号化する(図中、Pass1)。また、Non-TS残差符号化部353は、RemCcbsが閾値未満(<4)であれば、変換係数のレベル値(すなわち量子化係数level)に関するシンタックス(abs_remainder, dec_abs_level, coeff_sign_flag)をバイパス符号化する(図中、Pass2およびPass3)。
 なお、dec_abs_levelは、ゴロムライスコードでコード化された中間値を示すパラメータである。
 Non-TS残差符号化部353は、量子化係数levelをコンテキスト符号化することにより発生したコンテキスト符号化ビン数をRemCcbs(許容コンテキスト符号化ビン残数)から減算する。そして、RemCcbsが閾値未満(<4)になると、Non-TS残差符号化部353は、それ以降の量子化係数levelについて、上述したようにバイパス符号化を行う。
 符号化部315は、さらに量子化係数level以外の情報も符号化する。例えば、符号化部315は、変換モード情報(例えば、変換スキップフラグやMTS識別子等)を符号化する。また、符号化部315は、RemCcbsの設定に用いられる情報であるRemCcbs設定情報(例えば、コンテキスト符号化ビン数の基準値(ctxBinSampleRatioBase)、画像のビット深度(bitDepth)、変換ブロックサイズ(TbWidth, TbHeight)等)を符号化する。さらに、符号化部315は、その他の各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfo等)を符号化する。符号化部315は、得られた符号化データを、TS残差符号化部352またはNon-TS残差符号化部353において生成された符号化データと多重化してビットストリームを生成し、蓄積バッファ316へ供給する。なお、コンテキスト符号化ビン数の基準値は、エンコーダとデコーダ間で予め取り決めておくことで符号化(復号)を省略することもできる。また、RemCcbs設定情報(特に、コンテキスト符号化ビン数の基準値)を符号化(復号)する単位は、実施可能な範囲で任意の単位で設定することが可能であり、例えば、変換ブロック単位毎としてもよいし、より上位の処理単位(CU単位、CTU単位、スライス単位、タイル単位、ピクチャ単位、シーケンス単位)としてもよい。
 このような符号化部315において、RemCcbs設定部361およびRemCcbs設定部362に上述した本技術の方法1-1を適用してもよい。例えば、RemCcbs設定部361およびRemCcbs設定部362が、図3に示されるRemCcbs設定装置100と同様の構成を有し、同様の処理を行って、RemCcbsの初期値を設定してもよい。
 その場合、RemCcbs設定部361およびRemCcbs設定部362は、制御部301から供給される、符号化対象の画像のビット深度を示すパラメータであるbitDepthを取得する。そして、RemCcbs設定部361およびRemCcbs設定部362は、そのbitDepthを用いてビット深度に依存するコンテキスト符号化ビン数(ctxBinSampleRatio(bitDepth))を設定する。そして、RemCcbs設定部361およびRemCcbs設定部362は、そのctxBinSampleRatio(bitDepth)を用いてRemCcbsの初期値を設定する。
 なお、RemCcbs設定部361およびRemCcbs設定部362は、bitDepthとその他の任意のパラメータに基づいてctxBinSampleRatio(bitDepth)を設定してもよい。例えば、RemCcbs設定部361およびRemCcbs設定部362が、制御部301から供給されるコンテキスト符号化ビン数の基準値(ctxBinSampleRatioBase)を取得し、上述のbitDepthとそのctxBinSampleRatioBaseを用いてctxBinSampleRatio(bitDepth)を設定してもよい。
 また、RemCcbs設定部361およびRemCcbs設定部362は、ctxBinSampleRatio(bitDepth)とその他の任意のパラメータに基づいてRemCcbsの初期値を設定してもよい。例えば、RemCcbs設定部361およびRemCcbs設定部362が、制御部301から供給される処理対象ブロックのブロックサイズ(TbWidthおよびTbHeight)を取得し、上述のctxBinSampleRatio(bitDepth)とそのTbWidthおよびTbHeightとを用いて、処理対象ブロックに対応するRemCcbsの初期値を設定してもよい。
 例えば、RemCcbs設定部361およびRemCcbs設定部362が、方法1-1-1乃至方法1-1-3のいずれかを適用してRemCcbsの初期値を設定してもよい。例えば、RemCcbs設定部361およびRemCcbs設定部362が、式(2)並びに式(3)乃至式(5)のいずれかを適用してRemCcbsの初期値を設定してもよい。
 符号化部315(TS残差符号化部352およびNon-TS残差符号化部353)は、RemCcbs設定部361およびRemCcbs設定部362がこのように設定したRemCcbsの初期値(コンテキスト符号化ビンの最大数)を用いて、画像(量子化係数level)を(TS残差符号化モードまたはNon-TS残差符号化モードで)符号化する。つまり、符号化部315は、RemCcbs設定部361およびRemCcbs設定部362が本技術を適用して設定したコンテキスト符号化ビンの最大数を用いて画像(量子化係数level)をコンテキスト符号化する。つまり、符号化部315は、画像符号化部とも言える。
 このようにすることにより、<2.コンテキスト符号化ビン数の抑制>において上述したのと同様の効果を得ることができる。つまり、RemCcbs設定部361およびRemCcbs設定部362は、コンテキスト符号化ビン数の発生量を制御することができる。したがって、符号化部315は、符号化の処理量の増大を抑制することができる。例えば、符号化部315は、高ビット深度・高ビットレートの画像の符号化におけるCABACの処理量の増大を抑制することができる。
 換言するに、RemCcbs設定部361およびRemCcbs設定部362は、コンテキスト符号化ビンの発生量を抑制することにより、コンテキスト符号化ビン数とバイパス符号化ビン数の合計のビン数の発生量の増大を抑制することができる。したがって、符号化部315は、CABACのトータルの処理量の増大を抑制することができる。
 つまり、画像符号化装置300は、符号化の処理量の増大を抑制することができる。
  <画像符号化処理の流れ>
 次に、以上のような構成の画像符号化装置300により実行される画像符号化処理の流れの例を、図14のフローチャートを参照して説明する。
 画像符号化処理が開始されると、ステップS301において、並べ替えバッファ311は、制御部301に制御されて、入力された動画像データのフレームの順を表示順から符号化順に並べ替える。
 ステップS302において、制御部301は、並べ替えバッファ311が保持する入力画像に対して、処理単位を設定する(ブロック分割を行う)。
 ステップS303において、制御部301は、並べ替えバッファ311が保持する入力画像についての符号化パラメータを決定(設定)する。
 ステップS304において、予測部322は、予測処理を行い、最適な予測モードの予測画像等を生成する。例えば、この予測処理において、予測部322は、イントラ予測を行って最適なイントラ予測モードの予測画像等を生成し、インター予測を行って最適なインター予測モードの予測画像等を生成し、それらの中から、コスト関数値等に基づいて最適な予測モードを選択する。
 ステップS305において、演算部312は、入力画像と、ステップS304の予測処理により選択された最適なモードの予測画像との差分を演算する。つまり、演算部312は、入力画像と予測画像との予測残差Dを生成する。このようにして求められた予測残差Dは、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
 ステップS306において、直交変換部313は、ステップS305の処理により生成された予測残差Dに対する直交変換処理を行い、変換係数Coeffを導出する。
 ステップS307において、量子化部314は、制御部301により算出された量子化パラメータを用いる等して、ステップS306の処理により得られた変換係数Coeffを量子化し、量子化係数levelを導出する。
 ステップS308において、逆量子化部317は、ステップS307の処理により生成された量子化係数levelを、そのステップS307の量子化の特性に対応する特性で逆量子化し、変換係数Coeff_IQを導出する。
 ステップS309において、逆直交変換部318は、ステップS308の処理により得られた変換係数Coeff_IQを、ステップS306の直交変換処理に対応する方法で逆直交変換し、予測残差D'を導出する。
 ステップS310において、演算部319は、ステップS309の処理により導出された予測残差D'に、ステップS304の予測処理により得られた予測画像を加算することにより、局所的に復号された復号画像を生成する。
 ステップS311において、インループフィルタ部320は、ステップS310の処理により導出された、局所的に復号された復号画像に対して、インループフィルタ処理を行う。
 ステップS312において、フレームメモリ321は、ステップS310の処理により導出された、局所的に復号された復号画像や、ステップS311においてフィルタ処理された、局所的に復号された復号画像を記憶する。
 ステップS313において、符号化部315は、符号化処理を実行し、ステップS307の処理により得られた量子化係数levelや各種符号化パラメータ等を符号化し、符号化データのビットストリームを生成する。
 ステップS314において、蓄積バッファ316は、ステップS313において得られたビットストリームを蓄積し、それを画像符号化装置300の外部に出力する。このビットストリームは、例えば、伝送路や記録媒体を介して復号側に伝送される。また、レート制御部323は、必要に応じてレート制御を行う。
 ステップS314の処理が終了すると、画像符号化処理が終了する。
  <符号化処理の流れ>
 図15のフローチャートを参照して、図14のステップS313において実行される符号化処理の流れの例を説明する。
 符号化処理が開始されると、符号化部315は、図15のステップS351において、変換モード情報(transform_skip_flag、mts_idx等)を符号化する。
 ステップS352において、符号化部315は、RemCcbs設定情報(ctxBinSampleRatioBase、bitDepth、TbWidth、TbHeight等)を符号化する。さらに、符号化部315は、例えば各種符号化パラメータ等の、量子化係数level以外の情報を符号化する。
 ステップS353において、選択部351は、変換モード情報等に基づいて、量子化係数level(量子化係数levelに関するシンタックス)をTS残差符号化モードで符号化するか否かを判定する。TS残差符号化モードを適用すると判定された場合、処理はステップS354に進む。
 ステップS354において、RemCcbs設定部361は、RemCcbs設定処理を実行し、RemCcbs(の初期値)を設定する。
 ステップS355において、TS残差符号化部352は、ステップS354において得られたRemCcbs(の初期値)を用いて、量子化係数levelをTS残差符号化モードで符号化する。ステップS355の処理が終了すると、符号化処理が終了し、処理は図14に戻る。
 また、図15のステップS353において、TS残差符号化モードを適用しない(すなわちNon-TS残差符号化モードを適用する)と判定された場合、処理はステップS356に進む。
 ステップS356において、RemCcbs設定部362は、RemCcbs設定処理を実行し、RemCcbs(の初期値)を設定する。
 ステップS357において、Non-TS残差符号化部353は、ステップS356において得られたRemCcbs(の初期値)を用いて、量子化係数levelをNon-TS残差符号化モードで符号化する。ステップS357の処理が終了すると、符号化処理が終了し、処理は図14に戻る。
 このような符号化処理のステップS354およびステップS356において実行されるRemCcbs設定処理において、上述した本技術の方法1-1を適用してもよい。例えば、このRemCcbs設定処理を、図4のフローチャートを参照して説明したような流れで実行してもよい。例えば、RemCcbs設定部361およびRemCcbs設定部362が、方法1-1-1乃至方法1-1-3のいずれかを適用してRemCcbsの初期値を設定してもよい。例えば、RemCcbs設定部361およびRemCcbs設定部362が、式(2)並びに式(3)乃至式(5)のいずれかを適用してRemCcbsの初期値を設定してもよい。
 このようにすることにより、<2.コンテキスト符号化ビン数の抑制>において上述したのと同様の効果を得ることができる。つまり、RemCcbs設定部361およびRemCcbs設定部362は、コンテキスト符号化ビン数の発生量を制御することができる。したがって、符号化部315は、符号化の処理量の増大を抑制することができる。例えば、符号化部315は、高ビット深度・高ビットレートの画像の符号化におけるCABACの処理量の増大を抑制することができる。
 換言するに、RemCcbs設定部361およびRemCcbs設定部362は、コンテキスト符号化ビンの発生量を抑制することにより、コンテキスト符号化ビン数とバイパス符号化ビン数の合計のビン数の発生量の増大を抑制することができる。したがって、符号化部315は、CABACのトータルの処理量の増大を抑制することができる。
 つまり、以上のように各処理を実行することにより、画像符号化装置300は、符号化の処理量の増大を抑制することができる。
  <画像復号装置>
 図16は、本技術を適用した画像処理装置の一態様である画像復号装置の構成の一例を示すブロック図である。図16に示される画像復号装置400は、動画像の符号化データを符号化する装置である。例えば、画像復号装置400は、上述の非特許文献のいずれかに記載の復号方式で符号化データを復号することができる。例えば、画像復号装置400は、上述の画像符号化装置300により生成された符号化データ(ビットストリーム)を復号する。
 なお、図16においては、処理部(ブロック)やデータの流れ等の主なものを示しており、図16に示されるものが全てとは限らない。つまり、画像復号装置400において、図9においてブロックとして示されていない処理部を有していてもよい。また、画像復号装置400が、図16において矢印等として示されていない処理やデータの流れを有していてもよい。
 図16において、画像復号装置400は、蓄積バッファ411、復号部412、逆量子化部413、逆直交変換部414、演算部415、インループフィルタ部416、並べ替えバッファ417、フレームメモリ418、および予測部419を備えている。なお、予測部419は、不図示のイントラ予測部およびインター予測部等を備えている。画像復号装置400は、符号化データ(ビットストリーム)を復号することによって、動画像データを生成するための装置である。
   <蓄積バッファ>
 蓄積バッファ411は、画像復号装置400に入力されたビットストリームを取得し、保持(記憶)する。蓄積バッファ411は、所定のタイミングにおいて、または、所定の条件が整う等した場合、蓄積しているビットストリームを復号部412に供給する。
   <復号部>
 復号部412は、画像の復号に関する処理を行う。例えば、復号部412は、蓄積バッファ411から供給されるビットストリームを入力とし、シンタックステーブルの定義に沿って、そのビット列から、各シンタックス要素のシンタックス値を可変長復号し、パラメータを導出する。
 シンタックス要素およびシンタックス要素のシンタックス値から導出されるパラメータには、例えば、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなどの情報が含まれる。つまり、復号部412は、ビットストリームから、これらの情報をパースする(解析して取得する)。これらの情報について以下に説明する。
   <ヘッダ情報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)
  変換スキップフラグ(transform_skip_flag(ts_flagとも称する))
  スキャン識別子(scanIdx)
  量子化パラメータ(qp)
  量子化マトリックス(scaling_matrix(例えば、JCTVC-W1005, 7.3.4 Scaling list data syntax))
 なお、TBWSizeおよびTBHSizeの代わりに、log2TBWSizeおよびlog2TBHSizeが変換情報Tinfo含まれてもよい。log2TBWSizeは、2を底とするTBWSizeの対数値である。log2TBHSizeは、2を底とするTBHSizeの対数値である。また、画像復号装置400において、変換スキップフラグは、逆係数変換(逆プライマリ変換および逆セカンダリ変換)をスキップか否かを示すフラグである。
   <フィルタ情報Finfo>
 フィルタ情報Finfoには、例えば、以下に示す各フィルタ処理に関する制御情報が含まれる。
  デブロッキングフィルタ(DBF)に関する制御情報
  画素適応オフセット(SAO)に関する制御情報
  適応ループフィルタ(ALF)に関する制御情報
  その他の線形・非線形フィルタに関する制御情報
 より具体的には、例えば、各フィルタを適用するピクチャや、ピクチャ内の領域を指定する情報や、CU単位のフィルタOn/Off制御情報、スライス、タイルの境界に関するフィルタOn/Off制御情報などが含まれる。もちろん、フィルタ情報Finfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
 復号部412の説明に戻る。復号部412は、ビットストリームを復号して得られた量子化係数levelに関するシンタックスを参照して量子化係数levelを導出する。復号部412は、その量子化係数levelを、逆量子化部413に供給する。
 また、復号部412は、パースしたヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfo等の符号化パラメータを各ブロックへ供給する。例えば、復号部412は、ヘッダ情報Hinfoを、逆量子化部413、逆直交変換部414、予測部419、インループフィルタ部416へ供給する。また、復号部412は、予測モード情報Pinfoを、逆量子化部413および予測部419へ供給する。また、復号部412は、変換情報Tinfoを、逆量子化部413および逆直交変換部414へ供給する。また、復号部412は、フィルタ情報Finfoを、インループフィルタ部416へ供給する。
 もちろん、上述の例は一例であり、この例に限定されない。例えば、各符号化パラメータが任意の処理部に供給されるようにしてもよい。また、その他の情報が、任意の処理部に供給されるようにしてもよい。
   <逆量子化部>
 逆量子化部413は、少なくとも、逆量子化に関する処理を行うために必要な構成を有する。例えば、逆量子化部413は、復号部412から供給される変換情報Tinfoおよび量子化係数levelを入力とし、その変換情報Tinfoに基づいて、量子化係数levelの値をスケーリング(逆量子化)し、逆量子化後の変換係数Coeff_IQを導出する。逆量子化部413は、導出した変換係数Coeff_IQを逆直交変換部414に供給する。
 なお、この逆量子化は、画像符号化装置300の量子化部314による量子化の逆処理として行われる。また、この逆量子化は、画像符号化装置300の逆量子化部317による逆量子化と同様の処理である。つまり、画像符号化装置300の逆量子化部317は、この逆量子化部413と同様の処理(逆量子化)を行う。
   <逆直交変換部>
 逆直交変換部414は、逆直交変換に関する処理を行う。例えば、逆直交変換部414は、逆量子化部413から供給される変換係数Coeff_IQ、および、復号部412から供給される変換情報Tinfoを入力とし、その変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆直交変換処理を行い、予測残差D'を導出する。例えば、逆直交変換部414は、ST識別子に基づいて、変換係数Coeff_IQに対して逆セカンダリ変換を行ってプライマリ変換係数を生成し、そのプライマリ変換係数に対してプライマリ変換を行い、予測残差D'を生成する。逆直交変換部414は、導出した予測残差D'を演算部415に供給する。
 なお、この逆直交変換は、画像符号化装置300の直交変換部313による直交変換の逆処理として行われる。また、この逆直交変換は、画像符号化装置300の逆直交変換部318による逆直交変換と同様の処理である。つまり、画像符号化装置300の逆直交変換部318は、この逆直交変換部414と同様の処理(逆直交変換)を行う。
 したがって、逆直交変換部414は、画像符号化装置300の逆直交変換部318と同様に、逆直交変換に限らず任意の逆係数変換を行うことができる。この逆係数変換は、画像符号化装置300の直交変換部313が実行する係数変換の逆処理である。つまり、予測残差D'は、変換係数Coeff_IQに対して任意の逆係数変換が行われて導出されてもよい。したがって、逆直交変換部414は、逆係数変換部とも言える。
   <演算部>
 演算部415は、画像に関する情報の加算に関する処理を行う。例えば、演算部415は、逆直交変換部414から供給される予測残差D'と、予測部419から供給される予測画像Pとを入力とする。演算部415は、以下の式に示されるように、予測残差D'とその予測残差D'に対応する予測画像P(予測信号)とを加算し、局所復号画像Rlocalを導出する。演算部415は、導出した局所復号画像Rlocalを、インループフィルタ部416およびフレームメモリ418に供給する。
 Rlocal = D' + P
   <インループフィルタ部>
 インループフィルタ部416は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部416は、演算部415から供給される局所復号画像Rlocalと、復号部412から供給されるフィルタ情報Finfoとを入力とする。なお、インループフィルタ部416に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。
 インループフィルタ部416は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。
 例えば、インループフィルタ部416は、非特許文献11に記載のように、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
 インループフィルタ部416は、符号化側(例えば画像符号化装置300のインループフィルタ部320)により行われたフィルタ処理に対応するフィルタ処理を行う。もちろん、インループフィルタ部416が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部416がウィーナーフィルタ等を適用するようにしてもよい。
 インループフィルタ部416は、フィルタ処理された局所復号画像Rlocalを並べ替えバッファ417およびフレームメモリ418に供給する。
   <並べ替えバッファ>
 並べ替えバッファ417は、インループフィルタ部416から供給された局所復号画像Rlocalを入力とし、それを保持(記憶)する。並べ替えバッファ417は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(バッファ内に格納する)。並べ替えバッファ417は、得られた復号画像Rを、復号順から再生順に並べ替える。並べ替えバッファ417は、並べ替えた復号画像R群を動画像データとして画像復号装置400の外部に出力する。
   <フレームメモリ>
 フレームメモリ418は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ418は、演算部415より供給される局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ418内のバッファへ格納する。
 また、フレームメモリ418は、インループフィルタ部416から供給される、インループフィルタ処理された局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ418内のバッファへ格納する。フレームメモリ418は、適宜、その記憶している復号画像R(またはその一部)を参照画像として予測部419に供給する。
 なお、フレームメモリ418が、復号画像の生成に係るヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなどを記憶するようにしても良い。
   <予測部>
 予測部419は、予測画像の生成に関する処理を行う。例えば、予測部419は、復号部412から供給される予測モード情報Pinfoを入力とし、その予測モード情報Pinfoによって指定される予測方法により予測を行い、予測画像Pを導出する。その導出の際、予測部419は、その予測モード情報Pinfoによって指定される、フレームメモリ418に格納されたフィルタ前またはフィルタ後の復号画像R(またはその一部)を、参照画像として利用する。予測部419は、導出した予測画像Pを、演算部415に供給する。
 なお、これらの処理部(蓄積バッファ411乃至予測部419)は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
 以上のような構成の画像復号装置400において、復号部412に<2.コンテキスト符号化ビン数の抑制>において説明した本技術を適用してもよい。例えば、本技術の方法1-1を画像復号装置400に適用してもよい。
  <復号部>
 図17は、その場合の復号部412の主な構成例を示すブロック図である。図17に示されるように、この場合の復号部412は、選択部451、TS残差復号部452、およびNon-TS残差復号部453を有する。
 復号部412は、蓄積バッファ411から供給されるビットストリームを取得する。復号部412は、シンタックステーブルの定義に沿って、そのビットストリームのビット列から、各シンタックス要素のシンタックス値を可変長復号し、量子化係数level以外のパラメータを導出する。例えば、復号部412は、ビットストリームを復号し、変換モード情報(例えば、変換スキップフラグやMTS識別子等)やRemCcbs設定情報(例えば、コンテキスト符号化ビン数の基準値(ctxBinSampleRatioBase)、画像のビット深度(bitDepth)、変換ブロックサイズ(TbWidth, TbHeight)等)を生成する。さらに、復号部412は、ビットストリームを復号し、その他の各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfo等)を生成する。
 選択部451は、復号部412の動作モードの制御に関する処理を行う。例えば、選択部451は、復号部412が取得したビットストリームを取得する。また、選択部451は、復号部412がそのビットストリームをパースして得られた変換モード情報(例えば変換スキップフラグ(transform_skip_flag[xTbY][yTbY][cIdx]))とコンポーネント識別子(cIdx)とを取得する。
 選択部451は、transform_skip_flag[xTbY][yTbY][cIdx]およびcIdxに基づいて、符号化の際に変換スキップが行われたか否かを判定し、その判定結果に基づいて、量子化係数levelの符号化データをTS残差符号化モードで復号するか、Non-TS残差符号化モードで復号するかを選択する。TS残差符号化モードは、係数変換がスキップされて生成された量子化係数levelの符号化データを復号するモードである。Non-TS残差符号化モードは、係数変換が実行されて生成された量子化係数levelの符号化データを復号するモードである。
 transform_skip_flagが真(例えば1)の場合、選択部451は、符号化の際に係数変換がスキップされたと判定し、量子化係数levelの符号化データをTS残差復号部452へ供給する。transform_skip_flagが偽(例えば0)の場合、選択部451は、符号化の際に係数変換が実行されたと判定し、量子化係数levelの符号化データをNon-TS残差復号部453へ供給する。
 なお、選択部451は、transform_skip_flagの代わりにMTS識別子(mts_idx[xTbY][yTbY][cIdx])を用いて、符号化の際に変換スキップが行われたか否かを判定してもよい。付言するに、選択部451は、変換モード情報とcIdxに基づいて、符号化の際に変換スキップが行われたか否かを判定してもよい。この変換モード情報には、transform_skip_flagやmts_idxが含まれる。
 TS残差復号部452は、TS残差符号化モードでの復号に関する処理を実行する。例えば、TS残差復号部452は、選択部451から供給される量子化係数levelの符号化データを取得する。TS残差復号部452は、取得した量子化係数levelの符号化データをTS残差符号化モードで復号し、量子化係数levelを生成する。TS残差復号部452は、RemCcbs設定部461を有する。RemCcbs設定部461は、RemCcbsの初期値を設定する。TS残差復号部452は、そのRemCcbsを用いて取得した量子化係数levelの符号化データを復号し、量子化係数levelを生成する。
 図12に示されるように、TS残差復号部452は、RemCcbsが閾値以上(>=4)であれば、変換係数のレベル値(すなわち量子化係数level)に関するシンタックス(sig_coeff_flag,coeff_sign_flag, abs_level_gtx_flag[j], par_level_flag等)の符号化データをコンテキスト復号する(図中、Pass1およびPass2)。また、TS残差復号部452は、RemCcbsが閾値未満(<4)であれば、変換係数のレベル値(すなわち量子化係数level)に関するシンタックス(abs_remainder, coeff_sign_flag)の符号化データをバイパス復号する(図中、Pass3)。
 TS残差復号部452は、量子化係数levelの符号化データをコンテキスト復号することにより発生したコンテキスト符号化ビン数をRemCcbs(許容コンテキスト符号化ビン残数)から減算する。そして、RemCcbsが閾値未満(<4)になると、TS残差復号部452は、それ以降の量子化係数levelの符号化データについて、上述したようにバイパス復号を行う。
 Non-TS残差復号部453は、Non-TS残差符号化モードでの復号に関する処理を実行する。例えば、Non-TS残差復号部453は、選択部451から供給される量子化係数levelの符号化データを取得する。Non-TS残差復号部453は、取得した量子化係数levelの符号化データをNon-TS残差符号化モードで復号し、量子化係数levelを生成する。Non-TS残差復号部453は、RemCcbs設定部462を有する。RemCcbs設定部462は、RemCcbsの初期値を設定する。Non-TS残差復号部453は、そのRemCcbsを用いて取得した量子化係数levelの符号化データを復号し、量子化係数levelを生成する。
 図13に示されるように、Non-TS残差復号部453は、RemCcbsが閾値以上(>=4)であれば、変換係数のレベル値(すなわち量子化係数level)に関するシンタックス(sig_coeff_flag, abs_level_gtx_flag[j], par_level_flag等)の符号化データをコンテキスト復号する(図中、Pass1)。また、Non-TS残差復号部453は、RemCcbsが閾値未満(<4)であれば、変換係数のレベル値(すなわち量子化係数level)に関するシンタックス(abs_remainder, dec_abs_level, coeff_sign_flag)の符号化データをバイパス復号する(図中、Pass2およびPass3)。
 Non-TS残差復号部453は、量子化係数levelの符号化データをコンテキスト復号することにより発生したコンテキスト符号化ビン数をRemCcbs(許容コンテキスト符号化ビン残数)から減算する。そして、RemCcbsが閾値未満(<4)になると、Non-TS残差復号部453は、それ以降の量子化係数levelの符号化データについて、上述したようにバイパス復号を行う。
 復号部412は、TS残差復号部452またはNon-TS残差復号部453において生成された量子化係数levelを、逆量子化部413に供給する。また、復号部412は、ビットストリームを復号して得られた量子化係数level以外の情報(例えば、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfo等)を任意のブロックへ供給する。
 なお、TS残差復号部452によりTS残差符号化モードで復号が行われた場合、すなわち、transform_skip_flagが真(例えば1)の場合、逆直交変換部414による変換係数Coeff_IQに対する逆係数変換をスキップされる。これに対して、Non-TS残差復号部453によりNon-TS残差符号化モードで復号が行われた場合、すなわち、transform_skip_flagが偽(例えば0)の場合、逆直交変換部414による変換係数Coeff_IQに対する逆係数変換が実行され、予測残差D'が生成される。
 このような復号部412において、RemCcbs設定部461およびRemCcbs設定部462に対して上述した本技術の方法1-1を適用してもよい。例えば、RemCcbs設定部461およびRemCcbs設定部462が、図3に示されるRemCcbs設定装置100と同様の構成を有し、同様の処理を行って、RemCcbsの初期値を設定してもよい。
 その場合、RemCcbs設定部461およびRemCcbs設定部462は、復号部412がビットストリームを復号することにより得られた、符号化対象の画像のビット深度(bitDepth)を取得する。そして、RemCcbs設定部461およびRemCcbs設定部462は、そのbitDepthを用いてビット深度に依存するコンテキスト符号化ビン数(ctxBinSampleRatio(bitDepth))を設定する。そして、RemCcbs設定部461およびRemCcbs設定部462は、そのctxBinSampleRatio(bitDepth)を用いてRemCcbsの初期値を設定する。
 なお、RemCcbs設定部461およびRemCcbs設定部462は、bitDepthとその他の任意のパラメータに基づいてctxBinSampleRatio(bitDepth)を設定してもよい。例えば、RemCcbs設定部461およびRemCcbs設定部462が、コンテキスト符号化ビン数の基準値(ctxBinSampleRatioBase)を取得し、上述のbitDepthとそのctxBinSampleRatioBaseを用いてctxBinSampleRatio(bitDepth)を設定してもよい。なお、このctxBinSampleRatioBaseは、(符号化側(画像符号化装置300)と同一の値が)予め定められていてもよいし、符号化側(画像符号化装置300)から伝送されるビットストリームに含まれていてもよい。
 また、RemCcbs設定部461およびRemCcbs設定部462は、このように設定されたctxBinSampleRatio(bitDepth)とその他の任意のパラメータに基づいてRemCcbsの初期値を設定してもよい。例えば、RemCcbs設定部461およびRemCcbs設定部462が、復号部412がビットストリームを復号することにより得られた、処理対象ブロックのブロックサイズ(TbWidthおよびTbHeight)を取得し、上述のctxBinSampleRatio(bitDepth)とそのTbWidthおよびTbHeightとを用いて、処理対象ブロックに対応するRemCcbsの初期値を設定してもよい。
 例えば、RemCcbs設定部461およびRemCcbs設定部462が、方法1-1-1乃至方法1-1-3のいずれかを適用してRemCcbsの初期値を設定してもよい。例えば、RemCcbs設定部461およびRemCcbs設定部462が、式(2)並びに式(3)乃至式(5)のいずれかを適用してRemCcbsの初期値を設定してもよい。
 復号部412(TS残差復号部452およびNon-TS残差復号部453)は、RemCcbs設定部461およびRemCcbs設定部462がこのように設定したRemCcbsの初期値(コンテキスト符号化ビンの最大数)を用いて、画像(量子化係数level)の符号化データを(TS残差符号化モードまたはNon-TS残差符号化モードで)復号する。つまり、復号部412は、RemCcbs設定部461およびRemCcbs設定部462が本技術を適用して設定したコンテキスト符号化ビンの最大数を用いて、画像がコンテキスト符号化されたビットストリームをコンテキスト復号し、画像(量子化係数level)を生成する。つまり、復号部412は、画像復号部とも言える。
 このようにすることにより、<2.コンテキスト符号化ビン数の抑制>において上述したのと同様の効果を得ることができる。つまり、RemCcbs設定部461およびRemCcbs設定部462は、コンテキスト符号化ビン数の発生量を制御することができる。したがって、復号部412は、復号の処理量の増大を抑制することができる。例えば、復号部412は、高ビット深度・高ビットレートの画像の復号におけるCABACの処理量の増大を抑制することができる。
 換言するに、RemCcbs設定部461およびRemCcbs設定部462は、コンテキスト符号化ビンの発生量を抑制することにより、コンテキスト符号化ビン数とバイパス符号化ビン数の合計のビン数の発生量の増大を抑制することができる。したがって、復号部412は、CABACのトータルの処理量の増大を抑制することができる。
 つまり、画像復号装置400は、復号の処理量の増大を抑制することができる。
  <画像復号処理の流れ>
 次に、以上のような構成の画像復号装置400により実行される画像復号処理の流れの例を、図18のフローチャートを参照して説明する。
 画像復号処理が開始されると、蓄積バッファ411は、ステップS401において、画像復号装置400の外部から供給される符号化データ(ビットストリーム)を取得して保持する(蓄積する)。
 ステップS402において、復号部412は、復号処理を実行し、その符号化データ(ビットストリーム)を復号して量子化係数levelを得る。また、復号部412は、この復号により、符号化データ(ビットストリーム)から各種符号化パラメータをパースする(解析して取得する)。
 ステップS403において、逆量子化部413は、ステップS402の処理により得られた量子化係数levelに対して、符号化側で行われた量子化の逆処理である逆量子化を行い、変換係数Coeff_IQを得る。
 ステップS404において、逆直交変換部414は、ステップS403において得られた変換係数Coeff_IQに対して、符号化側で行われた直交変換処理の逆処理である逆直交変換処理を行い、予測残差D'を得る。
 ステップS405において、予測部419は、ステップS402においてパースされた情報に基づいて、符号化側より指定される予測方法で予測処理を実行し、フレームメモリ418に記憶されている参照画像を参照する等して、予測画像Pを生成する。
 ステップS406において、演算部415は、ステップS404において得られた予測残差D'と、ステップS405において得られた予測画像Pとを加算し、局所復号画像Rlocalを導出する。
 ステップS407において、インループフィルタ部416は、ステップS406の処理により得られた局所復号画像Rlocalに対して、インループフィルタ処理を行う。
 ステップS408において、並べ替えバッファ417は、ステップS407の処理により得られたフィルタ処理された局所復号画像Rlocalを用いて復号画像Rを導出し、その復号画像R群の順序を復号順から再生順に並べ替える。再生順に並べ替えられた復号画像R群は、動画像として画像復号装置400の外部に出力される。
 また、ステップS409において、フレームメモリ418は、ステップS406の処理により得られた局所復号画像Rlocal、および、ステップS407の処理により得られたフィルタ処理後の局所復号画像Rlocalの内、少なくとも一方を記憶する。
 ステップS409の処理が終了すると、画像復号処理が終了する。
  <復号処理の流れ>
 図19のフローチャートを参照して、図18のステップS402において実行される復号処理の流れの例を説明する。
 復号処理が開始されると、復号部412は、図19のステップS451において、ビットストリームを復号し、変換モード情報(transform_skip_flag、mts_idx等)を生成する。
 ステップS452において、復号部412は、ビットストリームを復号し、RemCcbs設定情報(ctxBinSampleRatioBase、bitDepth、TbWidth、TbHeight等)を生成する。さらに、復号部412は、ビットストリームを復号し、例えば各種符号化パラメータ等の、量子化係数level以外の情報を生成する。
 ステップS453において、選択部451は、変換モード情報等に基づいて、量子化係数level(量子化係数levelに関するシンタックス)の符号化データをTS残差符号化モードで復号するか否かを判定する。例えば、変換スキップフラグが符号化の際の係数変換のスキップを示す場合(trasnform_skip_flag[cIdx]==“IS_SKIP”)、選択部451は、TS残差符号化モードで復号すると判定する。これに対して、変換スキップフラグが符号化の際の係数変換のスキップを示さない場合、選択部451は、Non-TS残差符号化モードで復号すると判定する。
 なお、MTS識別子が符号化の際のプライマリ変換のスキップを示すとき(mts_idx[cIdx]==“IS_SKIP”)、選択部451が、TS残差符号化モードで復号すると判定するようにしてもよい。その場合、MTS識別子が符号化の際のプライマリ変換のスキップを示さないとき、選択部451は、Non-TS残差符号化モードで復号すると判定する。
 TS残差符号化モードを適用すると判定された場合、処理はステップS454に進む。
 ステップS454において、RemCcbs設定部461は、RemCcbs設定処理を実行し、RemCcbs(の初期値)を設定する。
 ステップS455において、TS残差復号部452は、ステップS454において得られたRemCcbs(の初期値)を用いて、量子化係数levelの符号化データをTS残差符号化モードで復号する。ステップS455の処理が終了すると、復号処理が終了し、処理は図18に戻る。
 また、図19のステップS453において、TS残差符号化モードを適用しない(すなわちNon-TS残差符号化モードを適用する)と判定された場合、処理はステップS456に進む。
 ステップS456において、RemCcbs設定部462は、RemCcbs設定処理を実行し、RemCcbs(の初期値)を設定する。
 ステップS457において、Non-TS残差復号部453は、ステップS456において得られたRemCcbs(の初期値)を用いて、量子化係数levelの符号化データをNon-TS残差符号化モードで復号する。ステップS457の処理が終了すると、復号処理が終了し、処理は図18に戻る。
 このような復号処理のステップS454およびステップS456において実行されるRemCcbs設定処理において、上述した本技術の方法1-1を適用してもよい。例えば、このRemCcbs設定処理を、図4のフローチャートを参照して説明したような流れで実行してもよい。例えば、RemCcbs設定部461およびRemCcbs設定部462が、方法1-1-1乃至方法1-1-3のいずれかを適用してRemCcbsの初期値を設定してもよい。例えば、RemCcbs設定部461およびRemCcbs設定部462が、式(2)並びに式(3)乃至式(5)のいずれかを適用してRemCcbsの初期値を設定してもよい。
 このようにすることにより、<2.コンテキスト符号化ビン数の抑制>において上述したのと同様の効果を得ることができる。つまり、RemCcbs設定部461およびRemCcbs設定部462は、コンテキスト符号化ビン数の発生量を制御することができる。したがって、復号部412は、復号の処理量の増大を抑制することができる。例えば、復号部412は、高ビット深度・高ビットレートの画像の復号におけるCABACの処理量の増大を抑制することができる。
 換言するに、RemCcbs設定部461およびRemCcbs設定部462は、コンテキスト符号化ビンの発生量を抑制することにより、コンテキスト符号化ビン数とバイパス符号化ビン数の合計のビン数の発生量の増大を抑制することができる。したがって、復号部412は、CABACのトータルの処理量の増大を抑制することができる。
 つまり、以上のように各処理を実行することにより、画像復号装置400は、復号の処理量の増大を抑制することができる。
  <制御部・符号化部>
 また、本技術の方法1-1-4を画像符号化装置300に適用してもよい。図20は、その場合の制御部301および符号化部315の主な構成例を示すブロック図である。図20に示されるように、この場合、制御部301は、実行制御フラグ生成部511を有する。また、符号化部315は、選択部351、TS残差符号化部352、Non-TS残差符号化部353、および実行制御フラグ符号化部512を有する。
 実行制御フラグ生成部511は、<2.コンテキスト符号化ビン数の抑制>の<実行制御フラグ>等において説明した実行制御フラグを生成する。実行制御フラグ生成部511は、生成した実行制御フラグを符号化部315へ供給する。例えば、実行制御フラグ生成部511は、生成した実行制御フラグを実行制御フラグ符号化部512へ供給してもよい。また、実行制御フラグ生成部511は、生成した実行制御フラグをRemCcbs設定部361およびRemCcbs設定部362へ供給してもよい。
 この実行制御フラグは、本技術を適用するか否かを示すフラグである。例えば、この実行制御フラグが真の場合、本技術の方法1(方法1-1)が適用され、ビット深度に依存するコンテキスト符号化ビン数に応じてコンテキスト符号化ビン最大数がセットされる。また、この実行制御フラグが偽の場合、本技術の方法1(方法1-1)が適用されず、コンテキスト符号化ビン数の基準値に応じてコンテキスト符号化ビン最大数がセットされる。
 実行制御フラグ生成部511は、任意の情報に基づいてこの実行制御フラグを生成してもよい。例えば、実行制御フラグ生成部511は、符号化対象の画像、または、その画像に関するパラメータ等に基づいて実行制御フラグを生成してもよい。また、実行制御フラグ生成部511は、例えばユーザやアプリケーション等、画像符号化装置300の外部からの指示に基づいて実行制御フラグを生成してもよい。
 実行制御フラグ符号化部512は、実行制御フラグの符号化に関する処理を行う。例えば、実行制御フラグ符号化部512は、実行制御フラグ生成部511から供給される実行制御フラグを取得する。また、実行制御フラグ符号化部512は、取得した実行制御フラグを符号化し、その符号化データを生成する。実行制御フラグの符号化データは、符号化部315により量子化係数level等の符号化データのビットストリームに格納される。
 選択部351、TS残差符号化部352、およびNon-TS残差符号化部353は、図11の場合と同様の処理を行う。つまり、選択部351は、transform_skip_flag[xTbY][yTbY][cIdx]およびcIdxに基づいて、量子化係数levelをTS残差符号化モードで符号化するか、Non-TS残差符号化モードで符号化するかを選択する。TS残差符号化部352は、量子化係数levelをTS残差符号化モードで符号化する。Non-TS残差符号化部353は、量子化係数levelをNon-TS残差符号化モードで符号化する。
 TS残差符号化部352は、RemCcbs設定部361を有する。RemCcbs設定部361は、図11の場合と基本的に同様の処理を行う。つまり、RemCcbs設定部361は、RemCcbsの初期値を設定し、TS残差符号化部352は、そのRemCcbsを用いて取得した量子化係数levelを符号化する。Non-TS残差符号化部353は、RemCcbs設定部362を有する。RemCcbs設定部362は、図11の場合と基本的に同様の処理を行う。つまり、RemCcbs設定部362は、RemCcbsの初期値を設定し、Non-TS残差符号化部353は、そのRemCcbsを用いて取得した量子化係数levelを符号化する。
 このようなRemCcbs設定部361およびRemCcbs設定部362に対して、上述した本技術の方法1-1-4を適用してもよい。つまり、RemCcbs設定部361およびRemCcbs設定部362が、実行制御フラグが真の場合、画像のビット深度に基づいてビット深度に依存するコンテキスト符号化ビン数を設定し、そのビット深度に依存するコンテキスト符号化ビン数に基づいてコンテキスト符号化ビンの最大数を設定し、実行制御フラグが偽の場合、コンテキスト符号化ビン数の基準値に基づいてコンテキスト符号化ビンの最大数を設定してもよい。例えば、RemCcbs設定部361およびRemCcbs設定部362が、図6に示されるRemCcbs設定装置100と同様の構成を有し、同様の処理を行って、RemCcbsの初期値を設定してもよい。
 その場合、RemCcbs設定部361およびRemCcbs設定部362は、実行制御フラグ生成部511から供給される実行制御フラグを取得する。そして、RemCcbs設定部361およびRemCcbs設定部362は、その実行制御フラグに基づいて、ctxBinSampleRatioの設定方法を決定する。
 例えば、実行制御フラグが真(例えば1)の場合、RemCcbs設定部361およびRemCcbs設定部362は、ビット深度に依存するコンテキスト符号化ビン数(ctxBinSampleRatio(bitDepth))を設定する。つまり、RemCcbs設定部361およびRemCcbs設定部362は、制御部301から供給されるbitDepthを取得し、そのbitDepthを用いてビット深度に依存するコンテキスト符号化ビン数(ctxBinSampleRatio(bitDepth))を設定する。そして、RemCcbs設定部361およびRemCcbs設定部362は、そのctxBinSampleRatio(bitDepth)を用いてRemCcbsの初期値を設定する。
 なお、この場合、RemCcbs設定部361およびRemCcbs設定部362は、bitDepthとその他の任意のパラメータに基づいてctxBinSampleRatio(bitDepth)を設定してもよい。例えば、RemCcbs設定部361およびRemCcbs設定部362が、制御部301から供給されるコンテキスト符号化ビン数の基準値(ctxBinSampleRatioBase)を取得し、上述のbitDepthとそのctxBinSampleRatioBaseを用いてctxBinSampleRatio(bitDepth)を設定してもよい。
 また、この場合、RemCcbs設定部361およびRemCcbs設定部362は、ctxBinSampleRatio(bitDepth)とその他の任意のパラメータに基づいてRemCcbsの初期値を設定してもよい。例えば、RemCcbs設定部361およびRemCcbs設定部362が、制御部301から供給される処理対象ブロックのブロックサイズ(TbWidthおよびTbHeight)を取得し、上述のctxBinSampleRatio(bitDepth)とそのTbWidthおよびTbHeightとを用いて、処理対象ブロックに対応するRemCcbsの初期値を設定してもよい。
 また、この場合、RemCcbs設定部361およびRemCcbs設定部362が、方法1-1-1乃至方法1-1-3のいずれかを適用してRemCcbsの初期値を設定してもよい。例えば、RemCcbs設定部361およびRemCcbs設定部362が、式(2)並びに式(3)乃至式(5)のいずれかを適用してRemCcbsの初期値を設定してもよい。
 これに対して、実行制御フラグが偽(例えば0)の場合、RemCcbs設定部361およびRemCcbs設定部362は、bitDepthに依存しないコンテキスト符号化ビン数(ctxBinSampleRatio)を設定する。つまり、RemCcbs設定部361およびRemCcbs設定部362は、制御部301から供給されるコンテキスト符号化ビン数の基準値(ctxBinSampleRatioBase)を取得し、取得したctxBinSampleRatioBaseをctxBinSampleRatioとして設定する。そして、RemCcbs設定部361およびRemCcbs設定部362は、そのctxBinSampleRatio(すなわち、ctxBinSampleRatioBase)を用いてRemCcbsの初期値を設定する。
 なお、この場合、RemCcbs設定部361およびRemCcbs設定部362は、ctxBinSampleRatioとその他の任意のパラメータに基づいてRemCcbsの初期値を設定してもよい。例えば、RemCcbs設定部361およびRemCcbs設定部362が、制御部301から供給される処理対象ブロックのブロックサイズ(TbWidthおよびTbHeight)を取得し、上述のctxBinSampleRatio(すなわち、ctxBinSampleRatioBase)とそのTbWidthおよびTbHeightとを用いて、処理対象ブロックに対応するRemCcbsの初期値を設定してもよい。
 符号化部315(TS残差符号化部352およびNon-TS残差符号化部353)は、RemCcbs設定部361およびRemCcbs設定部362がこのように設定したRemCcbsの初期値(コンテキスト符号化ビンの最大数)を用いて、画像(量子化係数level)を(TS残差符号化モードまたはNon-TS残差符号化モードで)符号化する。つまり、符号化部315は、RemCcbs設定部361およびRemCcbs設定部362が本技術を適用して設定したコンテキスト符号化ビンの最大数を用いて画像(量子化係数level)をコンテキスト符号化する。つまりこの場合も、符号化部315は、画像符号化部とも言える。
 このようにすることにより、<2.コンテキスト符号化ビン数の抑制>において上述したのと同様の効果を得ることができる。つまり、RemCcbs設定部361およびRemCcbs設定部362は、この場合も、コンテキスト符号化ビン数の発生量を制御することができる。したがって、符号化部315は、符号化の処理量の増大を抑制することができる。例えば、符号化部315は、高ビット深度・高ビットレートの画像の符号化におけるCABACの処理量の増大を抑制することができる。
 換言するに、RemCcbs設定部361およびRemCcbs設定部362は、この場合も、コンテキスト符号化ビンの発生量を抑制することにより、コンテキスト符号化ビン数とバイパス符号化ビン数の合計のビン数の発生量の増大を抑制することができる。したがって、符号化部315は、CABACのトータルの処理量の増大を抑制することができる。
 つまり、画像符号化装置300は、符号化の処理量の増大を抑制することができる。
  <画像符号化処理の流れ>
 次に、図20に示されるような構成の符号化部315を有する画像符号化装置300により実行される画像符号化処理の流れの例を、図21のフローチャートを参照して説明する。
 画像符号化処理が開始されると、ステップS501およびステップS502の各処理が、図14のステップS301およびステップS302の各処理と同様に実行される。
 ステップS503において、実行制御フラグ生成部511は、実行制御フラグを生成する。
 ステップS504乃至ステップS515の各処理が、図14のステップS303乃至ステップS314の各処理と同様に実行される。
 ステップS515の処理が終了すると、画像符号化処理が終了する。
  <符号化処理の流れ>
 図22のフローチャートを参照して、図21のステップS514において実行される符号化処理の流れの例を説明する。
 符号化処理が開始されると、図22のステップS551およびステップS552の各処理が、図15のステップS351およびステップS352の各処理と同様に実行される。
 ステップS553において、実行制御フラグ符号化部512は、図21のステップS503において生成された実行制御フラグを符号化する。
 そして、ステップS554乃至ステップS558の各処理が、図15のステップS353乃至ステップS357の各処理と同様に実行される。ステップS556またはステップS558の処理が終了すると、符号化処理が終了し、処理は図21に戻る。
 このような符号化処理のステップS555およびステップS557において実行されるRemCcbs設定処理において、上述した本技術の方法1-1-4を適用してもよい。例えば、このRemCcbs設定処理を、図7のフローチャートを参照して説明したような流れで実行してもよい。例えば、RemCcbs設定部361およびRemCcbs設定部362が、方法1-1-1乃至方法1-1-3のいずれかを適用してRemCcbsの初期値を設定してもよい。例えば、RemCcbs設定部361およびRemCcbs設定部362が、式(2)並びに式(3)乃至式(5)のいずれかを適用してRemCcbsの初期値を設定してもよい。
 このようにすることにより、<2.コンテキスト符号化ビン数の抑制>において上述したのと同様の効果を得ることができる。つまり、RemCcbs設定部361およびRemCcbs設定部362は、この場合も、コンテキスト符号化ビン数の発生量を制御することができる。したがって、符号化部315は、符号化の処理量の増大を抑制することができる。例えば、符号化部315は、高ビット深度・高ビットレートの画像の符号化におけるCABACの処理量の増大を抑制することができる。
 換言するに、RemCcbs設定部361およびRemCcbs設定部362は、この場合も、コンテキスト符号化ビンの発生量を抑制することにより、コンテキスト符号化ビン数とバイパス符号化ビン数の合計のビン数の発生量の増大を抑制することができる。したがって、符号化部315は、CABACのトータルの処理量の増大を抑制することができる。
 つまり、以上のように各処理を実行することにより、画像符号化装置300は、符号化の処理量の増大を抑制することができる。
  <復号部>
 また、本技術の方法1-1-4を画像復号装置400に適用してもよい。図23は、その場合の復号部412の主な構成例を示すブロック図である。図23に示されるように、復号部412は、選択部451、TS残差復号部452、Non-TS残差復号部453、および実行制御フラグ復号部611を有する。
 実行制御フラグ復号部611は、ビットストリームを復号し、<2.コンテキスト符号化ビン数の抑制>の<実行制御フラグ>等において説明した実行制御フラグを生成する。実行制御フラグ復号部611は、生成した実行制御フラグをRemCcbs設定部461およびRemCcbs設定部462へ供給する。
 選択部451、TS残差復号部452、およびNon-TS残差復号部453は、図17の場合と同様の処理を行う。つまり、選択部451は、transform_skip_flag[xTbY][yTbY][cIdx]およびcIdxに基づいて、量子化係数levelの符号化データをTS残差符号化モードで復号するか、Non-TS残差符号化モードで復号するかを選択する。TS残差復号部452は、量子化係数levelの符号化データをTS残差符号化モードで復号する。Non-TS残差復号部453は、量子化係数levelの符号化データをNon-TS残差符号化モードで復号する。
 TS残差復号部452は、RemCcbs設定部461を有する。RemCcbs設定部461は、図17の場合と基本的に同様の処理を行う。つまり、RemCcbs設定部461は、RemCcbsの初期値を設定し、TS残差復号部452は、そのRemCcbsを用いて取得した量子化係数levelの符号化データを復号する。Non-TS残差復号部453は、RemCcbs設定部462を有する。RemCcbs設定部462は、図17の場合と基本的に同様の処理を行う。つまり、RemCcbs設定部462は、RemCcbsの初期値を設定し、Non-TS残差復号部453は、そのRemCcbsを用いて取得した量子化係数levelの符号化データを復号する。
 このようなRemCcbs設定部461およびRemCcbs設定部462に対して、上述した本技術の方法1-1-4を適用してもよい。つまり、RemCcbs設定部461およびRemCcbs設定部462が、実行制御フラグが真の場合、画像のビット深度に基づいてビット深度に依存するコンテキスト符号化ビン数を設定し、そのビット深度に依存するコンテキスト符号化ビン数に基づいてコンテキスト符号化ビンの最大数を設定し、実行制御フラグが偽の場合、コンテキスト符号化ビン数の基準値に基づいてコンテキスト符号化ビンの最大数を設定してもよい。例えば、RemCcbs設定部461およびRemCcbs設定部462が、図6に示されるRemCcbs設定装置100と同様の構成を有し、同様の処理を行って、RemCcbsの初期値を設定してもよい。
 その場合、RemCcbs設定部461およびRemCcbs設定部462は、実行制御フラグ復号部611から供給される実行制御フラグを取得する。そして、RemCcbs設定部461およびRemCcbs設定部462は、その実行制御フラグに基づいて、ctxBinSampleRatioの設定方法を決定する。その方法は、RemCcbs設定部361およびRemCcbs設定部362(図20)の場合と同様である。例えば、実行制御フラグが真(例えば1)の場合、RemCcbs設定部461およびRemCcbs設定部462が、方法1-1-1乃至方法1-1-3のいずれかを適用してRemCcbsの初期値を設定してもよい。例えば、RemCcbs設定部461およびRemCcbs設定部462が、式(2)並びに式(3)乃至式(5)のいずれかを適用してRemCcbsの初期値を設定してもよい。
 復号部412(TS残差復号部452およびNon-TS残差復号部453)は、RemCcbs設定部461およびRemCcbs設定部462がこのように設定したRemCcbsの初期値(コンテキスト符号化ビンの最大数)を用いて、画像(量子化係数level)の符号化データを(TS残差符号化モードまたはNon-TS残差符号化モードで)復号する。つまり、復号部412は、RemCcbs設定部461およびRemCcbs設定部462が本技術を適用して設定したコンテキスト符号化ビンの最大数を用いて画像(量子化係数level)の符号化データをコンテキスト復号する。つまりこの場合も、復号部412は、画像復号部とも言える。
 このようにすることにより、<2.コンテキスト符号化ビン数の抑制>において上述したのと同様の効果を得ることができる。つまり、RemCcbs設定部461およびRemCcbs設定部462は、この場合も、コンテキスト符号化ビン数の発生量を制御することができる。したがって、復号部412は、復号の処理量の増大を抑制することができる。例えば、復号部412は、高ビット深度・高ビットレートの画像の復号におけるCABACの処理量の増大を抑制することができる。
 換言するに、RemCcbs設定部461およびRemCcbs設定部462は、この場合も、コンテキスト符号化ビンの発生量を抑制することにより、コンテキスト符号化ビン数とバイパス符号化ビン数の合計のビン数の発生量の増大を抑制することができる。したがって、復号部412は、CABACのトータルの処理量の増大を抑制することができる。
 つまり、画像復号装置400は、復号の処理量の増大を抑制することができる。
  <符号化処理の流れ>
 図23に示されるような構成の復号部412を有する画像復号装置400により実行される画像符号化処理は、図18のフローチャートを参照して説明した場合と同様の流れで実行される。
 この場合の、図18のステップS402において実行される符号化処理の流れの例を、図24のフローチャートを参照して説明する。
 復号処理が開始されると、図24のステップS651およびステップS652の各処理が、図19のステップS451およびステップS452の各処理と同様に実行される。
 ステップS653において、実行制御フラグ復号部611は、ビットストリームを復号し、実行制御フラグを生成する。
 そして、ステップS654乃至ステップS658の各処理が、図19のステップS453乃至ステップS457の各処理と同様に実行される。ステップS656またはステップS658の処理が終了すると、復号処理が終了し、処理は図18に戻る。
 このような復号処理のステップS655およびステップS657において実行されるRemCcbs設定処理において、上述した本技術の方法1-1-4を適用してもよい。例えば、このRemCcbs設定処理を、図7のフローチャートを参照して説明したような流れで実行してもよい。例えば、RemCcbs設定部461およびRemCcbs設定部462が、方法1-1-1乃至方法1-1-3のいずれかを適用してRemCcbsの初期値を設定してもよい。例えば、RemCcbs設定部461およびRemCcbs設定部462が、式(2)並びに式(3)乃至式(5)のいずれかを適用してRemCcbsの初期値を設定してもよい。
 このようにすることにより、<2.コンテキスト符号化ビン数の抑制>において上述したのと同様の効果を得ることができる。つまり、RemCcbs設定部461およびRemCcbs設定部462は、この場合も、コンテキスト符号化ビン数の発生量を制御することができる。したがって、復号部412は、復号の処理量の増大を抑制することができる。例えば、復号部412は、高ビット深度・高ビットレートの画像の復号におけるCABACの処理量の増大を抑制することができる。
 換言するに、RemCcbs設定部461およびRemCcbs設定部462は、この場合も、コンテキスト符号化ビンの発生量を抑制することにより、コンテキスト符号化ビン数とバイパス符号化ビン数の合計のビン数の発生量の増大を抑制することができる。したがって、復号部412は、CABACのトータルの処理量の増大を抑制することができる。
 つまり、以上のように各処理を実行することにより、画像復号装置400は、復号の処理量の増大を抑制することができる。
  <制御部・符号化部>
 また、本技術の方法2(または方法2-1)を画像符号化装置300に適用してもよい。図25は、その場合の制御部301および符号化部315の主な構成例を示すブロック図である。図25に示されるように、この場合、制御部301は、基準値制御フラグ生成部711を有する。また、符号化部315は、選択部351、TS残差符号化部352、Non-TS残差符号化部353、および基準値制御フラグ符号化部712を有する。
 基準値制御フラグ生成部711は、<2.コンテキスト符号化ビン数の抑制>の<基準値制御フラグ>等において説明した基準値制御フラグを生成する。基準値制御フラグ生成部711は、生成した基準値制御フラグを符号化部315へ供給する。例えば、基準値制御フラグ生成部711は、生成した基準値制御フラグを基準値制御フラグ符号化部712へ供給してもよい。また、基準値制御フラグ生成部711は、生成した基準値制御フラグをRemCcbs設定部361およびRemCcbs設定部362へ供給してもよい。
 この基準値制御フラグは、CGレベルのコンテキスト符号化ビン数の基準値の値を制御するフラグである。例えば、この基準値制御フラグが真(例えば1)の場合、ctxBinSampleRatioBase1(CGレベルのコンテキスト符号化ビン数の第1の基準値)を用いてRemCcbsの初期値(画像の符号化において発生するコンテキスト符号化ビンの最大数)が設定される。また、この基準値制御フラグが偽(例えば0)の場合、ctxBinSampleRatioBase2(CGレベルのコンテキスト符号化ビン数の第2の基準値)を用いてRemCcbsの初期値(画像の符号化において発生するコンテキスト符号化ビンの最大数)が設定される。ctxBinSampleRatioBase1の値は任意である。例えば、ctxBinSampleRatioBase1=28としてもよい。また、ctxBinSampleRatioBase2の値は、ctxBinSampleRatioBase1よりも小さい範囲で任意である。例えば、ctxBinSampleRatioBase2=0としてもよい。
 基準値制御フラグ生成部711は、任意の情報に基づいてこの基準値制御フラグを生成してもよい。例えば、基準値制御フラグ生成部711は、符号化対象の画像、または、その画像に関するパラメータ等に基づいて基準値制御フラグを生成してもよい。また、基準値制御フラグ生成部711は、例えばユーザやアプリケーション等、画像符号化装置300の外部からの指示に基づいて基準値制御フラグを生成してもよい。
 基準値制御フラグ符号化部712は、基準値制御フラグの符号化に関する処理を行う。例えば、基準値制御フラグ符号化部712は、基準値制御フラグ生成部711から供給される基準値制御フラグを取得する。また、基準値制御フラグ符号化部712は、取得した基準値制御フラグを符号化し、その符号化データを生成する。基準値制御フラグの符号化データは、符号化部315により量子化係数level等の符号化データのビットストリームに格納される。
 選択部351、TS残差符号化部352、およびNon-TS残差符号化部353は、図11の場合と同様の処理を行う。つまり、選択部351は、transform_skip_flag[xTbY][yTbY][cIdx]およびcIdxに基づいて、量子化係数levelをTS残差符号化モードで符号化するか、Non-TS残差符号化モードで符号化するかを選択する。TS残差符号化部352は、量子化係数levelをTS残差符号化モードで符号化する。Non-TS残差符号化部353は、量子化係数levelをNon-TS残差符号化モードで符号化する。
 TS残差符号化部352は、RemCcbs設定部361を有する。RemCcbs設定部361は、図11の場合と基本的に同様の処理を行う。つまり、RemCcbs設定部361は、RemCcbsの初期値を設定し、TS残差符号化部352は、そのRemCcbsを用いて取得した量子化係数levelを符号化する。Non-TS残差符号化部353は、RemCcbs設定部362を有する。RemCcbs設定部362は、図11の場合と基本的に同様の処理を行う。つまり、RemCcbs設定部362は、RemCcbsの初期値を設定し、Non-TS残差符号化部353は、そのRemCcbsを用いて取得した量子化係数levelを符号化する。
 このようなRemCcbs設定部361およびRemCcbs設定部362に対して、上述した本技術の方法2(または方法2-1)を適用してもよい。つまり、RemCcbs設定部361およびRemCcbs設定部362は、処理速度制御に応じてコンテキスト符号化ビン最大数をセットしてもよい。例えば、RemCcbs設定部361およびRemCcbs設定部362は、基準値制御フラグに基づいてコンテキスト符号化ビン最大数をセットしてもよい。
 その場合、RemCcbs設定部361およびRemCcbs設定部362は、基準値制御フラグ生成部711から供給される基準値制御フラグを取得する。そして、RemCcbs設定部361およびRemCcbs設定部362は、その基準値制御フラグに基づいて、RemCcbsの初期値の設定方法を決定する。
 例えば、基準値制御フラグが偽(例えば0)の場合、RemCcbs設定部361およびRemCcbs設定部362は、ctxBinSampleRatioBase1に基づいてRemCcbsの初期値を設定する。また、基準値制御フラグが真(例えば1)の場合、RemCcbs設定部361およびRemCcbs設定部362は、ctxBinSampleRatioBase2に基づいてRemCcbsの初期値を設定する。例えば、RemCcbs設定部361およびRemCcbs設定部362が、図8に示されるRemCcbs設定装置100と同様の構成を有し、同様の処理を行って、RemCcbsの初期値を設定してもよい。
 その際、RemCcbs設定部361およびRemCcbs設定部362は、基準値制御フラグに応じて選択された基準値(ctxBinSampleRatioBase1またはctxBinSampleRatioBase2)に基づいてbitDepthに依存しないコンテキスト符号化ビン数(ctxBinSampleRatio)を設定してもよい。例えば、RemCcbs設定部361およびRemCcbs設定部362は、ctxBinSampleRatioBase1またはctxBinSampleRatioBase2をctxBinSampleRatioとして設定してもよい。そして、RemCcbs設定部361およびRemCcbs設定部362は、そのctxBinSampleRatio(ctxBinSampleRatioBase1またはctxBinSampleRatioBase2)を用いてRemCcbsの初期値を設定してもよい。例えば、RemCcbs設定部361およびRemCcbs設定部362は、上述した式(1)を用いてRemCcbsの初期値を導出してもよい。
 なお、この場合、RemCcbs設定部361およびRemCcbs設定部362は、ctxBinSampleRatioとその他の任意のパラメータに基づいてRemCcbsの初期値を設定してもよい。例えば、RemCcbs設定部361およびRemCcbs設定部362が、制御部301から供給される処理対象ブロックのブロックサイズ(TbWidthおよびTbHeight)を取得し、上述のctxBinSampleRatio(ctxBinSampleRatioBase1またはctxBinSampleRatioBase2)とそのTbWidthおよびTbHeightとを用いて、処理対象ブロックに対応するRemCcbsの初期値を設定してもよい。
 符号化部315(TS残差符号化部352およびNon-TS残差符号化部353)は、RemCcbs設定部361およびRemCcbs設定部362がこのように設定したRemCcbsの初期値(コンテキスト符号化ビンの最大数)を用いて、画像(量子化係数level)を(TS残差符号化モードまたはNon-TS残差符号化モードで)符号化する。つまり、符号化部315は、RemCcbs設定部361およびRemCcbs設定部362が本技術を適用して設定したコンテキスト符号化ビンの最大数を用いて画像(量子化係数level)をコンテキスト符号化する。つまりこの場合も、符号化部315は、画像符号化部とも言える。
 このようにすることにより、<2.コンテキスト符号化ビン数の抑制>において上述したのと同様の効果を得ることができる。つまり、RemCcbs設定部361およびRemCcbs設定部362は、基準値制御フラグを用いて、コンテキスト符号化ビン数の発生量を制御することができる。つまり、RemCcbs設定部361およびRemCcbs設定部362は、CABACの処理速度制御に応じてコンテキスト符号化ビン数の発生量を制御することができる。したがって、符号化部315は、符号化の処理量の増大を抑制することができる。例えば、符号化部315は、高ビット深度・高ビットレートの画像の符号化におけるCABACの処理量の増大を抑制することができる。
 換言するに、RemCcbs設定部361およびRemCcbs設定部362は、CABACの処理速度制御に応じてコンテキスト符号化ビンの発生量を抑制することにより、コンテキスト符号化ビン数とバイパス符号化ビン数の合計のビン数の発生量の増大を抑制することができる。したがって、符号化部315は、CABACのトータルの処理量の増大を抑制することができる。
 つまり、画像符号化装置300は、符号化の処理量の増大を抑制することができる。
  <画像符号化処理の流れ>
 次に、図25に示されるような構成の符号化部315を有する画像符号化装置300により実行される画像符号化処理の流れの例を、図26のフローチャートを参照して説明する。
 画像符号化処理が開始されると、ステップS701およびステップS702の各処理が、図14のステップS301およびステップS302の各処理と同様に実行される。
 ステップS703において、基準値制御フラグ生成部711は、基準値制御フラグを生成する。
 ステップS704乃至ステップS715の各処理が、図14のステップS303乃至ステップS314の各処理と同様に実行される。
 ステップS715の処理が終了すると、画像符号化処理が終了する。
  <符号化処理の流れ>
 図27のフローチャートを参照して、図26のステップS714において実行される符号化処理の流れの例を説明する。
 符号化処理が開始されると、図27のステップS751およびステップS752の各処理が、図15のステップS351およびステップS352の各処理と同様に実行される。
 ステップS753において、基準値制御フラグ符号化部712は、図26のステップS703において生成された基準値制御フラグを符号化する。
 そして、ステップS754乃至ステップS758の各処理が、図15のステップS353乃至ステップS357の各処理と同様に実行される。ステップS756またはステップS758の処理が終了すると、符号化処理が終了し、処理は図26に戻る。
 このような符号化処理のステップS755およびステップS757において実行されるRemCcbs設定処理において、上述した本技術の方法2(または方法2-1)を適用してもよい。例えば、このRemCcbs設定処理を、図9のフローチャートを参照して説明したような流れで実行してもよい。
 例えば、RemCcbs設定部361およびRemCcbs設定部362は、基準値制御フラグに応じて基準値(ctxBinSampleRatioBase1またはctxBinSampleRatioBase2)を選択し、その基準値を用いてRemCcbsの初期値を導出してもよい。その際、RemCcbs設定部361およびRemCcbs設定部362は、上述した式(1)を用いてRemCcbsの初期値を導出してもよい。
 このようにすることにより、<2.コンテキスト符号化ビン数の抑制>において上述したのと同様の効果を得ることができる。つまり、RemCcbs設定部361およびRemCcbs設定部362は、基準値制御フラグを用いて、コンテキスト符号化ビン数の発生量を制御することができる。つまり、RemCcbs設定部361およびRemCcbs設定部362は、CABACの処理速度制御に応じてコンテキスト符号化ビン数の発生量を制御することができる。したがって、符号化部315は、符号化の処理量の増大を抑制することができる。例えば、符号化部315は、高ビット深度・高ビットレートの画像の符号化におけるCABACの処理量の増大を抑制することができる。
 換言するに、RemCcbs設定部361およびRemCcbs設定部362は、CABACの処理速度制御に応じてコンテキスト符号化ビンの発生量を抑制することにより、コンテキスト符号化ビン数とバイパス符号化ビン数の合計のビン数の発生量の増大を抑制することができる。したがって、符号化部315は、CABACのトータルの処理量の増大を抑制することができる。
 つまり、以上のように各処理を実行することにより、画像符号化装置300は、符号化の処理量の増大を抑制することができる。
  <復号部>
 また、本技術の方法2(または方法2-1)を画像復号装置400に適用してもよい。図28は、その場合の復号部412の主な構成例を示すブロック図である。図28に示されるように、復号部412は、選択部451、TS残差復号部452、Non-TS残差復号部453、および基準値制御フラグ復号部811を有する。
 基準値制御フラグ復号部811は、ビットストリームを復号し、<2.コンテキスト符号化ビン数の抑制>の<基準値制御フラグ>等において説明した基準値制御フラグを生成する。基準値制御フラグ復号部811は、生成した基準値制御フラグをRemCcbs設定部461およびRemCcbs設定部462へ供給する。
 選択部451、TS残差復号部452、およびNon-TS残差復号部453は、図17の場合と同様の処理を行う。つまり、選択部451は、transform_skip_flag[xTbY][yTbY][cIdx]およびcIdxに基づいて、量子化係数levelの符号化データをTS残差符号化モードで復号するか、Non-TS残差符号化モードで復号するかを選択する。TS残差復号部452は、量子化係数levelの符号化データをTS残差符号化モードで復号する。Non-TS残差復号部453は、量子化係数levelの符号化データをNon-TS残差符号化モードで復号する。
 TS残差復号部452は、RemCcbs設定部461を有する。RemCcbs設定部461は、図17の場合と基本的に同様の処理を行う。つまり、RemCcbs設定部461は、RemCcbsの初期値を設定し、TS残差復号部452は、そのRemCcbsを用いて取得した量子化係数levelの符号化データを復号する。Non-TS残差復号部453は、RemCcbs設定部462を有する。RemCcbs設定部462は、図17の場合と基本的に同様の処理を行う。つまり、RemCcbs設定部462は、RemCcbsの初期値を設定し、Non-TS残差復号部453は、そのRemCcbsを用いて取得した量子化係数levelの符号化データを復号する。
 このようなRemCcbs設定部461およびRemCcbs設定部462に対して、上述した本技術の方法2(または方法2-1)を適用してもよい。つまり、RemCcbs設定部461およびRemCcbs設定部462は、処理速度制御に応じてコンテキスト符号化ビン最大数をセットしてもよい。例えば、RemCcbs設定部461およびRemCcbs設定部462は、基準値制御フラグに基づいてコンテキスト符号化ビン最大数をセットしてもよい。
 その場合、RemCcbs設定部461およびRemCcbs設定部462は、基準値制御フラグ復号部811から供給される基準値制御フラグを取得する。そして、RemCcbs設定部461およびRemCcbs設定部462は、その基準値制御フラグに基づいて、RemCcbsの初期値の設定方法を決定する。
 例えば、基準値制御フラグが偽(例えば0)の場合、RemCcbs設定部461およびRemCcbs設定部462は、ctxBinSampleRatioBase1に基づいてRemCcbsの初期値を設定する。また、基準値制御フラグが真(例えば1)の場合、RemCcbs設定部461およびRemCcbs設定部462は、ctxBinSampleRatioBase2に基づいてRemCcbsの初期値を設定する。例えば、RemCcbs設定部461およびRemCcbs設定部462が、図8に示されるRemCcbs設定装置100と同様の構成を有し、同様の処理を行って、RemCcbsの初期値を設定してもよい。
 その際、RemCcbs設定部461およびRemCcbs設定部462は、基準値制御フラグに応じて選択された基準値(ctxBinSampleRatioBase1またはctxBinSampleRatioBase2)に基づいてbitDepthに依存しないコンテキスト符号化ビン数(ctxBinSampleRatio)を設定してもよい。例えば、RemCcbs設定部461およびRemCcbs設定部462は、ctxBinSampleRatioBase1またはctxBinSampleRatioBase2をctxBinSampleRatioとして設定してもよい。そして、RemCcbs設定部461およびRemCcbs設定部462は、そのctxBinSampleRatio(ctxBinSampleRatioBase1またはctxBinSampleRatioBase2)を用いてRemCcbsの初期値を設定してもよい。例えば、RemCcbs設定部461およびRemCcbs設定部462は、上述した式(1)を用いてRemCcbsの初期値を導出してもよい。
 なお、この場合、RemCcbs設定部461およびRemCcbs設定部462は、ctxBinSampleRatioとその他の任意のパラメータに基づいてRemCcbsの初期値を設定してもよい。例えば、RemCcbs設定部461およびRemCcbs設定部462が、復号部412によりビットストリームが復号されて得られた処理対象ブロックのブロックサイズ(TbWidthおよびTbHeight)を取得し、上述のctxBinSampleRatio(ctxBinSampleRatioBase1またはctxBinSampleRatioBase2)とそのTbWidthおよびTbHeightとを用いて、処理対象ブロックに対応するRemCcbsの初期値を設定してもよい。
 復号部412(TS残差復号部452およびNon-TS残差復号部453)は、RemCcbs設定部461およびRemCcbs設定部462がこのように設定したRemCcbsの初期値(コンテキスト符号化ビンの最大数)を用いて、画像(量子化係数level)の符号化データを(TS残差符号化モードまたはNon-TS残差符号化モードで)復号する。つまり、復号部412は、RemCcbs設定部461およびRemCcbs設定部462が本技術を適用して設定したコンテキスト符号化ビンの最大数を用いて画像(量子化係数level)の符号化データをコンテキスト復号する。つまりこの場合も、復号部412は、画像復号部とも言える。
 このようにすることにより、<2.コンテキスト符号化ビン数の抑制>において上述したのと同様の効果を得ることができる。つまり、RemCcbs設定部461およびRemCcbs設定部462は、基準値制御フラグを用いて、コンテキスト符号化ビン数の発生量を制御することができる。つまり、RemCcbs設定部461およびRemCcbs設定部462は、CABACの処理速度制御に応じてコンテキスト符号化ビン数の発生量を制御することができる。したがって、復号部412は、復号の処理量の増大を抑制することができる。例えば、復号部412は、高ビット深度・高ビットレートの画像の復号におけるCABACの処理量の増大を抑制することができる。
 換言するに、RemCcbs設定部461およびRemCcbs設定部462は、CABACの処理速度制御に応じてコンテキスト符号化ビンの発生量を抑制することにより、コンテキスト符号化ビン数とバイパス符号化ビン数の合計のビン数の発生量の増大を抑制することができる。したがって、復号部412は、CABACのトータルの処理量の増大を抑制することができる。
 つまり、画像復号装置400は、符号化の処理量の増大を抑制することができる。
  <符号化処理の流れ>
 図28に示されるような構成の復号部412を有する画像復号装置400により実行される画像符号化処理は、図18のフローチャートを参照して説明した場合と同様の流れで実行される。
 この場合の、図18のステップS402において実行される符号化処理の流れの例を、図29のフローチャートを参照して説明する。
 復号処理が開始されると、図29のステップS851およびステップS852の各処理が、図19のステップS451およびステップS452の各処理と同様に実行される。
 ステップS853において、基準値制御フラグ復号部811は、ビットストリームを復号し、基準値制御フラグを生成する。
 そして、ステップS854乃至ステップS858の各処理が、図19のステップS453乃至ステップS457の各処理と同様に実行される。ステップS856またはステップS858の処理が終了すると、復号処理が終了し、処理は図18に戻る。
 このような復号処理のステップS855およびステップS857において実行されるRemCcbs設定処理において、上述した本技術の方法2(または方法2-1)を適用してもよい。例えば、このRemCcbs設定処理を、図9のフローチャートを参照して説明したような流れで実行してもよい。
 例えば、RemCcbs設定部461およびRemCcbs設定部462は、基準値制御フラグに応じて基準値(ctxBinSampleRatioBase1またはctxBinSampleRatioBase2)を選択し、その基準値を用いてRemCcbsの初期値を導出してもよい。その際、RemCcbs設定部461およびRemCcbs設定部462は、上述した式(1)を用いてRemCcbsの初期値を導出してもよい。
 このようにすることにより、<2.コンテキスト符号化ビン数の抑制>において上述したのと同様の効果を得ることができる。つまり、RemCcbs設定部461およびRemCcbs設定部462は、基準値制御フラグを用いて、コンテキスト符号化ビン数の発生量を制御することができる。つまり、RemCcbs設定部461およびRemCcbs設定部462は、CABACの処理速度制御に応じてコンテキスト符号化ビン数の発生量を制御することができる。したがって、復号部412は、復号の処理量の増大を抑制することができる。例えば、復号部412は、高ビット深度・高ビットレートの画像の復号におけるCABACの処理量の増大を抑制することができる。
 換言するに、RemCcbs設定部461およびRemCcbs設定部462は、CABACの処理速度制御に応じてコンテキスト符号化ビンの発生量を抑制することにより、コンテキスト符号化ビン数とバイパス符号化ビン数の合計のビン数の発生量の増大を抑制することができる。したがって、復号部412は、CABACのトータルの処理量の増大を抑制することができる。
 つまり、以上のように各処理を実行することにより、画像復号装置400は、復号の処理量の増大を抑制することができる。
 <4.付記>
  <コンピュータ>
 上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
 図30は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
 図30に示されるコンピュータ900において、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、RAM(Random Access Memory)903は、バス904を介して相互に接続されている。
 バス904にはまた、入出力インタフェース910も接続されている。入出力インタフェース910には、入力部911、出力部912、記憶部913、通信部914、およびドライブ915が接続されている。
 入力部911は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部912は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部913は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部914は、例えば、ネットワークインタフェースよりなる。ドライブ915は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア921を駆動する。
 以上のように構成されるコンピュータでは、CPU901が、例えば、記憶部913に記憶されているプログラムを、入出力インタフェース910およびバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。RAM903にはまた、CPU901が各種の処理を実行する上において必要なデータなども適宜記憶される。
 コンピュータが実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア921に記録して適用することができる。その場合、プログラムは、リムーバブルメディア921をドライブ915に装着することにより、入出力インタフェース910を介して、記憶部913にインストールすることができる。
 また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部914で受信し、記憶部913にインストールすることができる。
 その他、このプログラムは、ROM902や記憶部913に、あらかじめインストールしておくこともできる。
  <本技術の適用対象>
 本技術は、任意の画像符号化方式や復号方式に適用することができる。つまり、上述した本技術と矛盾しない限り、変換(逆変換)、量子化(逆量子化)、符号化(復号)、予測等、画像符号化・復号に関する各種処理の仕様は任意であり、上述した例に限定されない。また、上述した本技術と矛盾しない限り、これらの処理の内の一部を省略してもよい。
 また本技術は、複数の視点(ビュー(view))の画像を含む多視点画像を符号化する多視点画像符号化システムに適用することができる。また本技術は、複数の視点(ビュー(view))の画像を含む多視点画像の符号化データを復号する多視点画像復号システムに適用することができる。その場合、各視点(ビュー(view))の符号化や復号において、本技術を適用するようにすればよい。
 さらに本技術は、所定のパラメータについてスケーラビリティ(scalability)機能を有するように複数レイヤ化(階層化)された階層画像を符号化する階層画像符号化(スケーラブル符号化)システムに適用することができる。また、本技術は、所定のパラメータについてスケーラビリティ(scalability)機能を有するように複数レイヤ化(階層化)された階層画像の符号化データを復号する階層画像復号(スケーラブル復号)システムに適用することができる。その場合、各階層(レイヤ)の符号化や復号において、本技術を適用するようにすればよい。
 また、本技術は、任意の構成に適用することができる。例えば、本技術は、衛星放送、ケーブル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)に記載の画像処理装置。
 (3) 前記コンテキスト符号化ビン最大数設定部は、コンテキスト符号化ビン数の基準値から前記画像の前記ビット深度に応じた値を除算した値を、前記ビット深度に依存するコンテキスト符号化ビン数として設定する
 (2)に記載の画像処理装置。
 (4) 前記コンテキスト符号化ビン最大数設定部は、コンテキスト符号化ビン数の基準値から前記画像の前記ビット深度に応じた値を減算した値を、前記ビット深度に依存するコンテキスト符号化ビン数として設定する
 (2)に記載の画像処理装置。
 (5) 前記コンテキスト符号化ビン最大数設定部は、前記画像の前記ビット深度に応じた値を、前記ビット深度に依存するコンテキスト符号化ビン数として設定する
 (2)に記載の画像処理装置。
 (6) 前記コンテキスト符号化ビン最大数設定部は、処理対象ブロックのブロックサイズと、前記ビット深度に依存するコンテキスト符号化ビン数とに基づいて、前記処理対象ブロックに対応する前記コンテキスト符号化ビンの最大数を設定する
 (2)乃至(5)のいずれかに記載の画像処理装置。
 (7) 前記コンテキスト符号化ビンの最大数を用いて前記画像をコンテキスト符号化する画像符号化部をさらに備える
 (1)乃至(6)のいずれかに記載の画像処理装置。
 (8) 前記画像と前記画像から予測画像を減算して予測残差を導出する演算部と、
 前記予測残差を係数変換して変換係数を導出する係数変換部と、
 前記変換係数を量子化して量子化係数を導出する量子化部と
 をさらに備え、
 前記画像符号化部は、前記コンテキスト符号化ビンの最大数を用いて前記量子化係数をコンテキスト符号化する
 (7)に記載の画像処理装置。
 (9) 前記画像符号化部は、TS残差符号化モードまたはNon-TS残差符号化モードで、前記量子化係数を符号化する
 (8)に記載の画像処理装置。
 (10) 前記コンテキスト符号化ビンの最大数を用いて、前記画像がコンテキスト符号化されたビットストリームをコンテキスト復号する画像復号部をさらに備える
 (1)乃至(6)のいずれかに記載の画像処理装置。
 (11) 前記画像復号部は、前記コンテキスト符号化ビンの最大数を用いて前記ビットストリームをコンテキスト復号して量子化係数を導出し、
 前記量子化係数を逆量子化して変換係数を導出する逆量子化部と、
 前記変換係数を逆係数変換して予測残差を導出する逆係数変換部と、
 前記予測残差に前記画像の予測画像を加算して前記画像を導出する演算部と
 をさらに備える(10)に記載の画像処理装置。
 (12) 前記画像復号部は、TS残差符号化モードまたはNon-TS残差符号化モードで、前記ビットストリームを復号する
 (11)に記載の画像処理装置。
 (13) 前記コンテキスト符号化ビン最大数設定部は、制御フラグが真の場合、前記画像の前記ビット深度に基づいてビット深度に依存するコンテキスト符号化ビン数を設定し、前記ビット深度に依存するコンテキスト符号化ビン数に基づいて前記コンテキスト符号化ビンの最大数を設定し、前記制御フラグが偽の場合、コンテキスト符号化ビン数の基準値に基づいて前記コンテキスト符号化ビンの最大数を設定する
 (1)乃至(6)のいずれかに記載の画像処理装置。
 (14) 前記制御フラグを生成する制御フラグ生成部と、
 前記制御フラグを符号化する制御フラグ符号化部と、
 前記コンテキスト符号化ビンの最大数を用いて前記画像をコンテキスト符号化する画像符号化部と
 をさらに備える(13)に記載の画像処理装置。
 (15) ビットストリームを復号して前記制御フラグを導出する制御フラグ復号部と、
 前記コンテキスト符号化ビンの最大数を用いて、前記画像がコンテキスト符号化されたビットストリームをコンテキスト復号する画像復号部と
 をさらに備える(13)に記載の画像処理装置。
 (16) 画像のビット深度に応じた値を、前記画像の符号化または復号において発生するコンテキスト符号化ビンの最大数として設定する
 画像処理方法。
 (17) 処理速度のモードを示す制御フラグに応じて、画像の符号化または復号において発生するコンテキスト符号化ビンの最大数を設定するコンテキスト符号化ビン最大数設定部
 を備える画像処理装置。
 (18) 前記コンテキスト符号化ビン最大数設定部は、
  前記制御フラグが通常速度モードを示す場合、第1の基準値に基づいて前記コンテキスト符号化ビンの最大数を設定し、
  前記制御フラグが高速モードを示す場合、前記第1の基準値よりも小さい第2の基準値に基づいて前記コンテキスト符号化ビンの最大数を設定する
 (17)に記載の画像処理装置。
 (19) 前記コンテキスト符号化ビン最大数設定部は、処理対象ブロックのブロックサイズと前記制御フラグとに基づいて、前記処理対象ブロックに対応する前記コンテキスト符号化ビンの最大数を設定する
 (17)および(18)に記載の画像処理装置。
 (20) 処理速度のモードを示す制御フラグに応じて、画像の符号化または復号において発生するコンテキスト符号化ビンの最大数を設定する
 画像処理方法。
 100 RemCcbs設定装置, 101 ctxBinSampleRatio(bitDepth)設定部, 102 RemCcbs初期値設定部, 151 ctxBinSampleRatio部, 152 RemCcbs初期値設定部, 181 ctxBinSampleRatio部, 182 RemCcbs初期値設定部, 300 画像符号化装置, 301 制御部, 315 符号化部, 351 選択部, 352 TS残差符号化部, 352 Non-TS残差符号化部, 361 RemCcbs設定部, 362 RemCcbs設定部, 400 画像復号装置, 412 復号部, 451 選択部, 452 TS残差復号部, 452 Non-TS残差復号部, 461 RemCcbs設定部, 462 RemCcbs設定部, 511 実行制御フラグ生成部, 512 実行制御フラグ符号化部, 611 実行制御フラグ復号部, 711 基準値制御フラグ生成部, 712 基準値制御フラグ符号化部, 811 基準値制御フラグ復号部, 900 コンピュータ

Claims (20)

  1.  画像のビット深度に応じた値を、前記画像の符号化または復号において発生するコンテキスト符号化ビンの最大数として設定するコンテキスト符号化ビン最大数設定部
     を備える画像処理装置。
  2.  前記コンテキスト符号化ビン最大数設定部は、前記画像の前記ビット深度に基づいて、ビット深度に依存するコンテキスト符号化ビン数を設定し、前記ビット深度に依存するコンテキスト符号化ビン数に基づいて、前記コンテキスト符号化ビンの最大数を設定する
     請求項1に記載の画像処理装置。
  3.  前記コンテキスト符号化ビン最大数設定部は、コンテキスト符号化ビン数の基準値から前記画像の前記ビット深度に応じた値を除算した値を、前記ビット深度に依存するコンテキスト符号化ビン数として設定する
     請求項2に記載の画像処理装置。
  4.  前記コンテキスト符号化ビン最大数設定部は、コンテキスト符号化ビン数の基準値から前記画像の前記ビット深度に応じた値を減算した値を、前記ビット深度に依存するコンテキスト符号化ビン数として設定する
     請求項2に記載の画像処理装置。
  5.  前記コンテキスト符号化ビン最大数設定部は、前記画像の前記ビット深度に応じた値を、前記ビット深度に依存するコンテキスト符号化ビン数として設定する
     請求項2に記載の画像処理装置。
  6.  前記コンテキスト符号化ビン最大数設定部は、処理対象ブロックのブロックサイズと、前記ビット深度に依存するコンテキスト符号化ビン数とに基づいて、前記処理対象ブロックに対応する前記コンテキスト符号化ビンの最大数を設定する
     請求項2に記載の画像処理装置。
  7.  前記コンテキスト符号化ビンの最大数を用いて前記画像をコンテキスト符号化する画像符号化部をさらに備える
     請求項1に記載の画像処理装置。
  8.  前記画像と前記画像から予測画像を減算して予測残差を導出する演算部と、
     前記予測残差を係数変換して変換係数を導出する係数変換部と、
     前記変換係数を量子化して量子化係数を導出する量子化部と
     をさらに備え、
     前記画像符号化部は、前記コンテキスト符号化ビンの最大数を用いて前記量子化係数をコンテキスト符号化する
     請求項7に記載の画像処理装置。
  9.  前記画像符号化部は、TS残差符号化モードまたはNon-TS残差符号化モードで、前記量子化係数を符号化する
     請求項8に記載の画像処理装置。
  10.  前記コンテキスト符号化ビンの最大数を用いて、前記画像がコンテキスト符号化されたビットストリームをコンテキスト復号する画像復号部をさらに備える
     請求項1に記載の画像処理装置。
  11.  前記画像復号部は、前記コンテキスト符号化ビンの最大数を用いて前記ビットストリームをコンテキスト復号して量子化係数を導出し、
     前記量子化係数を逆量子化して変換係数を導出する逆量子化部と、
     前記変換係数を逆係数変換して予測残差を導出する逆係数変換部と、
     前記予測残差に前記画像の予測画像を加算して前記画像を導出する演算部と
     をさらに備える請求項10に記載の画像処理装置。
  12.  前記画像復号部は、TS残差符号化モードまたはNon-TS残差符号化モードで、前記ビットストリームを復号する
     請求項11に記載の画像処理装置。
  13.  前記コンテキスト符号化ビン最大数設定部は、制御フラグが真の場合、前記画像の前記ビット深度に基づいてビット深度に依存するコンテキスト符号化ビン数を設定し、前記ビット深度に依存するコンテキスト符号化ビン数に基づいて前記コンテキスト符号化ビンの最大数を設定し、前記制御フラグが偽の場合、コンテキスト符号化ビン数の基準値に基づいて前記コンテキスト符号化ビンの最大数を設定する
     請求項1に記載の画像処理装置。
  14.  前記制御フラグを生成する制御フラグ生成部と、
     前記制御フラグを符号化する制御フラグ符号化部と、
     前記コンテキスト符号化ビンの最大数を用いて前記画像をコンテキスト符号化する画像符号化部と
     をさらに備える請求項13に記載の画像処理装置。
  15.  ビットストリームを復号して前記制御フラグを導出する制御フラグ復号部と、
     前記コンテキスト符号化ビンの最大数を用いて、前記画像がコンテキスト符号化されたビットストリームをコンテキスト復号する画像復号部と
     をさらに備える請求項13に記載の画像処理装置。
  16.  画像のビット深度に応じた値を、前記画像の符号化または復号において発生するコンテキスト符号化ビンの最大数として設定する
     画像処理方法。
  17.  処理速度のモードを示す制御フラグに応じて、画像の符号化または復号において発生するコンテキスト符号化ビンの最大数を設定するコンテキスト符号化ビン最大数設定部
     を備える画像処理装置。
  18.  前記コンテキスト符号化ビン最大数設定部は、
      前記制御フラグが通常速度モードを示す場合、第1の基準値に基づいて前記コンテキスト符号化ビンの最大数を設定し、
      前記制御フラグが高速モードを示す場合、前記第1の基準値よりも小さい第2の基準値に基づいて前記コンテキスト符号化ビンの最大数を設定する
     請求項17に記載の画像処理装置。
  19.  前記コンテキスト符号化ビン最大数設定部は、処理対象ブロックのブロックサイズと前記制御フラグとに基づいて、前記処理対象ブロックに対応する前記コンテキスト符号化ビンの最大数を設定する
     請求項17に記載の画像処理装置。
  20.  処理速度のモードを示す制御フラグに応じて、画像の符号化または復号において発生するコンテキスト符号化ビンの最大数を設定する
     画像処理方法。
PCT/JP2022/008741 2021-03-22 2022-03-02 画像処理装置および方法 WO2022202157A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202280021955.8A CN117044202A (zh) 2021-03-22 2022-03-02 图像处理装置和方法
JP2023508868A JPWO2022202157A1 (ja) 2021-03-22 2022-03-02
US18/281,574 US20240163437A1 (en) 2021-03-22 2022-03-02 Image processing device and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202163164004P 2021-03-22 2021-03-22
US63/164,004 2021-03-22

Publications (1)

Publication Number Publication Date
WO2022202157A1 true WO2022202157A1 (ja) 2022-09-29

Family

ID=83396867

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/008741 WO2022202157A1 (ja) 2021-03-22 2022-03-02 画像処理装置および方法

Country Status (4)

Country Link
US (1) US20240163437A1 (ja)
JP (1) JPWO2022202157A1 (ja)
CN (1) CN117044202A (ja)
WO (1) WO2022202157A1 (ja)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
J. CHEN, Y. YE, S. KIM: "Algorithm description for Versatile Video Coding and Test Model 11 (VTM 11)", 20. JVET MEETING; 20201007 - 20201016; TELECONFERENCE; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), 5 January 2021 (2021-01-05), pages 1 - 101, XP030293336 *

Also Published As

Publication number Publication date
US20240163437A1 (en) 2024-05-16
JPWO2022202157A1 (ja) 2022-09-29
CN117044202A (zh) 2023-11-10

Similar Documents

Publication Publication Date Title
WO2021125309A1 (ja) 画像処理装置および方法
JP7235030B2 (ja) 画像処理装置および方法
JP2024105675A (ja) 画像処理装置および方法
JP7235031B2 (ja) 画像処理装置および方法
WO2019188465A1 (ja) 画像符号化装置、画像符号化方法、画像復号装置、および画像復号方法
AU2019407687B2 (en) Image processing device and method
WO2022255395A1 (ja) 画像処理装置および方法
WO2022044845A1 (ja) 画像処理装置および方法
WO2022202157A1 (ja) 画像処理装置および方法
JP2022002352A (ja) 画像処理装置および方法
WO2023195330A1 (ja) 画像処理装置および方法
WO2022270451A1 (ja) 画像処理装置および方法
JP7517348B2 (ja) 画像処理装置および方法
JP7484923B2 (ja) 画像処理装置および方法
WO2023048012A1 (ja) 画像処理装置および方法
US20220086489A1 (en) Image processing apparatus and method

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: 22774953

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023508868

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 18281574

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 202280021955.8

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22774953

Country of ref document: EP

Kind code of ref document: A1