WO2022202157A1 - 画像処理装置および方法 - Google Patents
画像処理装置および方法 Download PDFInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 380
- 238000000034 method Methods 0.000 title abstract description 266
- 238000003672 processing method Methods 0.000 claims abstract description 12
- 238000013139 quantization Methods 0.000 claims description 135
- 238000004364 calculation method Methods 0.000 claims description 29
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 230000001419 dependent effect Effects 0.000 claims description 9
- 230000001131 transforming effect Effects 0.000 claims description 4
- 230000010365 information processing Effects 0.000 abstract description 4
- 238000003384 imaging method Methods 0.000 abstract 1
- 230000008569 process Effects 0.000 description 161
- 238000005516 engineering process Methods 0.000 description 74
- 238000010586 diagram Methods 0.000 description 29
- 230000015654 memory Effects 0.000 description 28
- 230000009466 transformation Effects 0.000 description 22
- 230000008707 rearrangement Effects 0.000 description 19
- 230000001629 suppression Effects 0.000 description 18
- 238000009825 accumulation Methods 0.000 description 17
- 230000003044 adaptive effect Effects 0.000 description 13
- 238000001914 filtration Methods 0.000 description 13
- 238000009795 derivation Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 101150027108 Hspbap1 gene Proteins 0.000 description 4
- VBRBNWWNRIMAII-WYMLVPIESA-N 3-[(e)-5-(4-ethylphenoxy)-3-methylpent-3-enyl]-2,2-dimethyloxirane Chemical compound C1=CC(CC)=CC=C1OC\C=C(/C)CCC1C(C)(C)O1 VBRBNWWNRIMAII-WYMLVPIESA-N 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000002146 bilateral effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000003796 beauty Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 244000144972 livestock Species 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011045 prefiltration Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy 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.CABAC
2.コンテキスト符号化ビン数の抑制
3.実施の形態
4.付記
<技術内容や技術用語をサポートする文献等>
本技術で開示される範囲は、実施の形態に記載されている内容だけではなく、出願当時において公知である以下の非特許文献等に記載されている内容や以下の非特許文献において参照されている他の文献の内容等も含まれる。
非特許文献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
例えば、非特許文献1や非特許文献2に記載の画像符号化方式(以下、VVC(Versatile Video Coding)とも称する)では、CABAC(Context-based Adaptive Binary Arithmetic Code)が用いられる。CABACは、二値算術符号化および2値シンボルの生起確率を周囲のパラメータの状態(コンテキスト)に基づいて推定するコンテキスト適応処理を用いたエントロピー符号化手法である。
<コンテキスト符号化ビン発生量の制御>
そこで、変換ブロックレベルのコンテキスト符号化ビンの発生量を制御する。例えば、図2に示される表の最上段に記載のように、ビット深度に応じてコンテキスト符号化ビン最大数をセットする(方法1)。このようにすることにより、ビット深度に応じてコンテキスト符号化ビン数の発生量を制御することができる。したがって、符号化や復号の処理量の増大を抑制することができる。例えば、高ビット深度・高ビットレートの符号化におけるCABACの処理量を軽減することができる。
図3は、本技術を適用した画像処理装置の一態様であるRemCcbs設定装置の構成の一例を示すブロック図である。図3に示されるRemCcbs設定装置100は、CABACを用いて画像を符号化する際のコンテキスト符号化ビンの発生量を制御(制限)するためのパラメータであるRemCcbsを設定する装置である。
このRemCcbs設定装置100により実行されるRemCcbs設定処理の流れの例を、図4のフローチャートを参照して説明する。
上述したRemCcbsの初期値(つまり、コンテキスト符号化ビンの最大数)の導出方法は任意である。例えば、RemCcbs初期値設定部102が、以下の式(2)を用いてRemCcbsの初期値を導出してもよい。
上述した方法1-1が適用される場合において、図2の表の上から6段目に示されるように、上述した方法1-1を適用するか否かを示すフラグである実行制御フラグが符号化側から復号側に伝送されてもよい。そして、この実行制御フラグが真であるなら、ビット深度に依存するコンテキスト符号化ビン数に応じてコンテキスト符号化ビン最大数がセットされるようにしてもよい。つまりこの場合、上述した方法1が適用される。また、この実行制御フラグが偽であるなら、コンテキスト符号化ビン数の基準値に応じてコンテキスト符号化ビン最大数がセットされるようにしてもよい。つまりこの場合、上述した方法1が適用されない(方法1-1-4)。
図6は、この場合のRemCcbs設定装置100の主な構成例を示すブロック図である。なお、図6においては、処理部やデータの流れ等の主なものを示しており、図6に示されるものが全てとは限らない。つまり、RemCcbs設定装置100が、図6においてブロックとして示されていない処理部を有してもよい。また、RemCcbs設定装置100が、図6において矢印等として示されていない処理やデータの流れを有してもよい。
この場合のRemCcbs設定処理の流れの例を、図7のフローチャートを参照して説明する。
図2の表の上から7段目に示されるように、処理速度制御に応じてコンテキスト符号化ビン最大数をセットしてもよい(方法2)。例えば、CABACの処理速度のモードを示す制御フラグが符号化側から復号側に伝送されるようにし、その制御フラグに応じてコンテキスト符号化ビン最大数がセットされてもよい。これにより、処理速度制御に応じて、コンテキスト符号化ビン数の発生量を制御することができ、符号化や復号の処理量の増大を抑制することができる。例えば、高ビット深度・高ビットレートの画像の符号化や復号におけるCABACの処理量の増大を抑制することができる。
図8は、この場合のRemCcbs設定装置100の主な構成例を示すブロック図である。なお、図8においては、処理部やデータの流れ等の主なものを示しており、図8に示されるものが全てとは限らない。つまり、RemCcbs設定装置100が、図8においてブロックとして示されていない処理部を有してもよい。また、RemCcbs設定装置100が、図8において矢印等として示されていない処理やデータの流れを有してもよい。
この場合のRemCcbs設定処理の流れの例を、図9のフローチャートを参照して説明する。
なお、RemCcbsが適用される画像の符号化方式は、コンテキストを用いた符号化方式であればどのようなものでもよく、一例として上述したCABACに限定されない。
<画像符号化装置>
以上に説明した本技術は任意の構成に適用することができる。例えば、この本技術は、画像符号化装置に適用し得る。図10は、本技術を適用した画像処理装置の一態様である画像符号化装置の構成の一例を示すブロック図である。図10に示される画像符号化装置300は、動画像の画像データを符号化する装置である。例えば、画像符号化装置300は、上述の非特許文献のいずれかに記載の符号化方式で動画像の画像データを符号化することができる。
制御部301は、外部、または予め指定された処理単位のブロックサイズに基づいて、並べ替えバッファ311により保持されている動画像データを処理単位のブロック(CU, PU, 変換ブロックなど)へ分割する。また、制御部301は、各ブロックへ供給する符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfo等)を、例えば、RDO(Rate-Distortion Optimization)に基づいて、決定する。
画像符号化装置300には、動画像データの各フィールド(入力画像)がその再生順(表示順)に入力される。並べ替えバッファ311は、各入力画像をその再生順(表示順)に取得し、保持(記憶)する。並べ替えバッファ311は、制御部301の制御に基づいて、その入力画像を符号化順(復号順)に並べ替えたり、処理単位のブロックに分割したりする。並べ替えバッファ311は、処理後の各入力画像を演算部312に供給する。また、並べ替えバッファ311は、その各入力画像(元画像)を、予測部322やインループフィルタ部320にも供給する。
演算部312は、処理単位のブロックに対応する画像I、および予測部322より供給される予測画像Pを入力とし、画像Iから予測画像Pを以下の式に示されるように減算して、予測残差Dを導出し、それを直交変換部313に供給する。
直交変換部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を可変長符号化(例えば、算術符号化)し、ビット列(符号化データ)を生成する。
蓄積バッファ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に供給する。
演算部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に入力されるようにしてもよい。
フレームメモリ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の量子化動作のレートを制御する。
図11は、その場合の符号化部315の主な構成例を示すブロック図である。図11に示されるように、この場合の符号化部315は、選択部351、TS残差符号化部352、およびNon-TS残差符号化部353を有する。
次に、以上のような構成の画像符号化装置300により実行される画像符号化処理の流れの例を、図14のフローチャートを参照して説明する。
図15のフローチャートを参照して、図14のステップS313において実行される符号化処理の流れの例を説明する。
図16は、本技術を適用した画像処理装置の一態様である画像復号装置の構成の一例を示すブロック図である。図16に示される画像復号装置400は、動画像の符号化データを符号化する装置である。例えば、画像復号装置400は、上述の非特許文献のいずれかに記載の復号方式で符号化データを復号することができる。例えば、画像復号装置400は、上述の画像符号化装置300により生成された符号化データ(ビットストリーム)を復号する。
蓄積バッファ411は、画像復号装置400に入力されたビットストリームを取得し、保持(記憶)する。蓄積バッファ411は、所定のタイミングにおいて、または、所定の条件が整う等した場合、蓄積しているビットストリームを復号部412に供給する。
復号部412は、画像の復号に関する処理を行う。例えば、復号部412は、蓄積バッファ411から供給されるビットストリームを入力とし、シンタックステーブルの定義に沿って、そのビット列から、各シンタックス要素のシンタックス値を可変長復号し、パラメータを導出する。
ヘッダ情報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(最大変換スキップブロックサイズともいう)、各符号化ツールのオンオフフラグ(有効フラグともいう)などを規定する情報が含まれる。
予測モード情報Pinfoには、例えば、処理対象PB(予測ブロック)のサイズ情報PBSize(予測ブロックサイズ)、イントラ予測モード情報IPinfo、動き予測情報MVinfo等の情報が含まれる。
chroma_sample_loc_type_idx == 1:Type3
chroma_sample_loc_type_idx == 2:Type0
chroma_sample_loc_type_idx == 3:Type1
変換情報Tinfoには、例えば、以下の情報が含まれる。もちろん、変換情報Tinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
変換スキップフラグ(transform_skip_flag(ts_flagとも称する))
スキャン識別子(scanIdx)
量子化パラメータ(qp)
量子化マトリックス(scaling_matrix(例えば、JCTVC-W1005, 7.3.4 Scaling list data syntax))
フィルタ情報Finfoには、例えば、以下に示す各フィルタ処理に関する制御情報が含まれる。
画素適応オフセット(SAO)に関する制御情報
適応ループフィルタ(ALF)に関する制御情報
その他の線形・非線形フィルタに関する制御情報
逆量子化部413は、少なくとも、逆量子化に関する処理を行うために必要な構成を有する。例えば、逆量子化部413は、復号部412から供給される変換情報Tinfoおよび量子化係数levelを入力とし、その変換情報Tinfoに基づいて、量子化係数levelの値をスケーリング(逆量子化)し、逆量子化後の変換係数Coeff_IQを導出する。逆量子化部413は、導出した変換係数Coeff_IQを逆直交変換部414に供給する。
逆直交変換部414は、逆直交変換に関する処理を行う。例えば、逆直交変換部414は、逆量子化部413から供給される変換係数Coeff_IQ、および、復号部412から供給される変換情報Tinfoを入力とし、その変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆直交変換処理を行い、予測残差D'を導出する。例えば、逆直交変換部414は、ST識別子に基づいて、変換係数Coeff_IQに対して逆セカンダリ変換を行ってプライマリ変換係数を生成し、そのプライマリ変換係数に対してプライマリ変換を行い、予測残差D'を生成する。逆直交変換部414は、導出した予測残差D'を演算部415に供給する。
演算部415は、画像に関する情報の加算に関する処理を行う。例えば、演算部415は、逆直交変換部414から供給される予測残差D'と、予測部419から供給される予測画像Pとを入力とする。演算部415は、以下の式に示されるように、予測残差D'とその予測残差D'に対応する予測画像P(予測信号)とを加算し、局所復号画像Rlocalを導出する。演算部415は、導出した局所復号画像Rlocalを、インループフィルタ部416およびフレームメモリ418に供給する。
インループフィルタ部416は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部416は、演算部415から供給される局所復号画像Rlocalと、復号部412から供給されるフィルタ情報Finfoとを入力とする。なお、インループフィルタ部416に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。
並べ替えバッファ417は、インループフィルタ部416から供給された局所復号画像Rlocalを入力とし、それを保持(記憶)する。並べ替えバッファ417は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(バッファ内に格納する)。並べ替えバッファ417は、得られた復号画像Rを、復号順から再生順に並べ替える。並べ替えバッファ417は、並べ替えた復号画像R群を動画像データとして画像復号装置400の外部に出力する。
フレームメモリ418は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ418は、演算部415より供給される局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ418内のバッファへ格納する。
予測部419は、予測画像の生成に関する処理を行う。例えば、予測部419は、復号部412から供給される予測モード情報Pinfoを入力とし、その予測モード情報Pinfoによって指定される予測方法により予測を行い、予測画像Pを導出する。その導出の際、予測部419は、その予測モード情報Pinfoによって指定される、フレームメモリ418に格納されたフィルタ前またはフィルタ後の復号画像R(またはその一部)を、参照画像として利用する。予測部419は、導出した予測画像Pを、演算部415に供給する。
図17は、その場合の復号部412の主な構成例を示すブロック図である。図17に示されるように、この場合の復号部412は、選択部451、TS残差復号部452、およびNon-TS残差復号部453を有する。
次に、以上のような構成の画像復号装置400により実行される画像復号処理の流れの例を、図18のフローチャートを参照して説明する。
図19のフローチャートを参照して、図18のステップS402において実行される復号処理の流れの例を説明する。
また、本技術の方法1-1-4を画像符号化装置300に適用してもよい。図20は、その場合の制御部301および符号化部315の主な構成例を示すブロック図である。図20に示されるように、この場合、制御部301は、実行制御フラグ生成部511を有する。また、符号化部315は、選択部351、TS残差符号化部352、Non-TS残差符号化部353、および実行制御フラグ符号化部512を有する。
次に、図20に示されるような構成の符号化部315を有する画像符号化装置300により実行される画像符号化処理の流れの例を、図21のフローチャートを参照して説明する。
図22のフローチャートを参照して、図21のステップS514において実行される符号化処理の流れの例を説明する。
また、本技術の方法1-1-4を画像復号装置400に適用してもよい。図23は、その場合の復号部412の主な構成例を示すブロック図である。図23に示されるように、復号部412は、選択部451、TS残差復号部452、Non-TS残差復号部453、および実行制御フラグ復号部611を有する。
図23に示されるような構成の復号部412を有する画像復号装置400により実行される画像符号化処理は、図18のフローチャートを参照して説明した場合と同様の流れで実行される。
また、本技術の方法2(または方法2-1)を画像符号化装置300に適用してもよい。図25は、その場合の制御部301および符号化部315の主な構成例を示すブロック図である。図25に示されるように、この場合、制御部301は、基準値制御フラグ生成部711を有する。また、符号化部315は、選択部351、TS残差符号化部352、Non-TS残差符号化部353、および基準値制御フラグ符号化部712を有する。
次に、図25に示されるような構成の符号化部315を有する画像符号化装置300により実行される画像符号化処理の流れの例を、図26のフローチャートを参照して説明する。
図27のフローチャートを参照して、図26のステップS714において実行される符号化処理の流れの例を説明する。
また、本技術の方法2(または方法2-1)を画像復号装置400に適用してもよい。図28は、その場合の復号部412の主な構成例を示すブロック図である。図28に示されるように、復号部412は、選択部451、TS残差復号部452、Non-TS残差復号部453、および基準値制御フラグ復号部811を有する。
図28に示されるような構成の復号部412を有する画像復号装置400により実行される画像符号化処理は、図18のフローチャートを参照して説明した場合と同様の流れで実行される。
<コンピュータ>
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
本技術は、任意の画像符号化方式や復号方式に適用することができる。つまり、上述した本技術と矛盾しない限り、変換(逆変換)、量子化(逆量子化)、符号化(復号)、予測等、画像符号化・復号に関する各種処理の仕様は任意であり、上述した例に限定されない。また、上述した本技術と矛盾しない限り、これらの処理の内の一部を省略してもよい。
本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
(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) 処理速度のモードを示す制御フラグに応じて、画像の符号化または復号において発生するコンテキスト符号化ビンの最大数を設定する
画像処理方法。
Claims (20)
- 画像のビット深度に応じた値を、前記画像の符号化または復号において発生するコンテキスト符号化ビンの最大数として設定するコンテキスト符号化ビン最大数設定部
を備える画像処理装置。 - 前記コンテキスト符号化ビン最大数設定部は、前記画像の前記ビット深度に基づいて、ビット深度に依存するコンテキスト符号化ビン数を設定し、前記ビット深度に依存するコンテキスト符号化ビン数に基づいて、前記コンテキスト符号化ビンの最大数を設定する
請求項1に記載の画像処理装置。 - 前記コンテキスト符号化ビン最大数設定部は、コンテキスト符号化ビン数の基準値から前記画像の前記ビット深度に応じた値を除算した値を、前記ビット深度に依存するコンテキスト符号化ビン数として設定する
請求項2に記載の画像処理装置。 - 前記コンテキスト符号化ビン最大数設定部は、コンテキスト符号化ビン数の基準値から前記画像の前記ビット深度に応じた値を減算した値を、前記ビット深度に依存するコンテキスト符号化ビン数として設定する
請求項2に記載の画像処理装置。 - 前記コンテキスト符号化ビン最大数設定部は、前記画像の前記ビット深度に応じた値を、前記ビット深度に依存するコンテキスト符号化ビン数として設定する
請求項2に記載の画像処理装置。 - 前記コンテキスト符号化ビン最大数設定部は、処理対象ブロックのブロックサイズと、前記ビット深度に依存するコンテキスト符号化ビン数とに基づいて、前記処理対象ブロックに対応する前記コンテキスト符号化ビンの最大数を設定する
請求項2に記載の画像処理装置。 - 前記コンテキスト符号化ビンの最大数を用いて前記画像をコンテキスト符号化する画像符号化部をさらに備える
請求項1に記載の画像処理装置。 - 前記画像と前記画像から予測画像を減算して予測残差を導出する演算部と、
前記予測残差を係数変換して変換係数を導出する係数変換部と、
前記変換係数を量子化して量子化係数を導出する量子化部と
をさらに備え、
前記画像符号化部は、前記コンテキスト符号化ビンの最大数を用いて前記量子化係数をコンテキスト符号化する
請求項7に記載の画像処理装置。 - 前記画像符号化部は、TS残差符号化モードまたはNon-TS残差符号化モードで、前記量子化係数を符号化する
請求項8に記載の画像処理装置。 - 前記コンテキスト符号化ビンの最大数を用いて、前記画像がコンテキスト符号化されたビットストリームをコンテキスト復号する画像復号部をさらに備える
請求項1に記載の画像処理装置。 - 前記画像復号部は、前記コンテキスト符号化ビンの最大数を用いて前記ビットストリームをコンテキスト復号して量子化係数を導出し、
前記量子化係数を逆量子化して変換係数を導出する逆量子化部と、
前記変換係数を逆係数変換して予測残差を導出する逆係数変換部と、
前記予測残差に前記画像の予測画像を加算して前記画像を導出する演算部と
をさらに備える請求項10に記載の画像処理装置。 - 前記画像復号部は、TS残差符号化モードまたはNon-TS残差符号化モードで、前記ビットストリームを復号する
請求項11に記載の画像処理装置。 - 前記コンテキスト符号化ビン最大数設定部は、制御フラグが真の場合、前記画像の前記ビット深度に基づいてビット深度に依存するコンテキスト符号化ビン数を設定し、前記ビット深度に依存するコンテキスト符号化ビン数に基づいて前記コンテキスト符号化ビンの最大数を設定し、前記制御フラグが偽の場合、コンテキスト符号化ビン数の基準値に基づいて前記コンテキスト符号化ビンの最大数を設定する
請求項1に記載の画像処理装置。 - 前記制御フラグを生成する制御フラグ生成部と、
前記制御フラグを符号化する制御フラグ符号化部と、
前記コンテキスト符号化ビンの最大数を用いて前記画像をコンテキスト符号化する画像符号化部と
をさらに備える請求項13に記載の画像処理装置。 - ビットストリームを復号して前記制御フラグを導出する制御フラグ復号部と、
前記コンテキスト符号化ビンの最大数を用いて、前記画像がコンテキスト符号化されたビットストリームをコンテキスト復号する画像復号部と
をさらに備える請求項13に記載の画像処理装置。 - 画像のビット深度に応じた値を、前記画像の符号化または復号において発生するコンテキスト符号化ビンの最大数として設定する
画像処理方法。 - 処理速度のモードを示す制御フラグに応じて、画像の符号化または復号において発生するコンテキスト符号化ビンの最大数を設定するコンテキスト符号化ビン最大数設定部
を備える画像処理装置。 - 前記コンテキスト符号化ビン最大数設定部は、
前記制御フラグが通常速度モードを示す場合、第1の基準値に基づいて前記コンテキスト符号化ビンの最大数を設定し、
前記制御フラグが高速モードを示す場合、前記第1の基準値よりも小さい第2の基準値に基づいて前記コンテキスト符号化ビンの最大数を設定する
請求項17に記載の画像処理装置。 - 前記コンテキスト符号化ビン最大数設定部は、処理対象ブロックのブロックサイズと前記制御フラグとに基づいて、前記処理対象ブロックに対応する前記コンテキスト符号化ビンの最大数を設定する
請求項17に記載の画像処理装置。 - 処理速度のモードを示す制御フラグに応じて、画像の符号化または復号において発生するコンテキスト符号化ビンの最大数を設定する
画像処理方法。
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) |
-
2022
- 2022-03-02 JP JP2023508868A patent/JPWO2022202157A1/ja active Pending
- 2022-03-02 WO PCT/JP2022/008741 patent/WO2022202157A1/ja active Application Filing
- 2022-03-02 CN CN202280021955.8A patent/CN117044202A/zh active Pending
- 2022-03-02 US US18/281,574 patent/US20240163437A1/en active Pending
Non-Patent Citations (1)
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 |