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

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

Info

Publication number
WO2022270451A1
WO2022270451A1 PCT/JP2022/024461 JP2022024461W WO2022270451A1 WO 2022270451 A1 WO2022270451 A1 WO 2022270451A1 JP 2022024461 W JP2022024461 W JP 2022024461W WO 2022270451 A1 WO2022270451 A1 WO 2022270451A1
Authority
WO
WIPO (PCT)
Prior art keywords
encoding
unit
decoding
coefficient position
last
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2022/024461
Other languages
English (en)
French (fr)
Inventor
健史 筑波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Group Corp
Original Assignee
Sony Group Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Group Corp filed Critical Sony Group Corp
Priority to US18/570,084 priority Critical patent/US20240275970A1/en
Priority to JP2023530452A priority patent/JP7816353B2/ja
Priority to CN202280042888.8A priority patent/CN117529915A/zh
Priority to EP22828368.5A priority patent/EP4362460A4/en
Priority to MX2023015282A priority patent/MX2023015282A/es
Priority to KR1020237042535A priority patent/KR20240024808A/ko
Publication of WO2022270451A1 publication Critical patent/WO2022270451A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

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 (see, for example, Non-Patent Document 3).
  • JVET Joint Video Experts Team of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29, version 1 - date 2020-10-27 Jianle Chen, Yan Ye, Seung Hwan Kim, "Algorithm description for Versatile Video Coding and Test Model 11 (VTM 11)", JVET-T2002-v1, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO /IEC JTC 1/SC 29, version 1 - date 2020-10-27 Fan Wang, Zhihuang Xie, Yue Yu, Haoping Yu, Dong Wang,"AHG8: a combination of JVET-V0059 option 2 and JVET-V0122 for high bit depth and high bit rate extensions", JVET-V0178-v1, Joint Video Experts Team (JVET) of ITU-T SG
  • 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.
  • the image processing device in the case of a high throughput mode in which the context coding bin after the last coefficient position of the image data is processed as a bypass coding bin, the last coefficient position included in the image data is
  • the image processing device includes an encoding unit that encodes a prefix part as a bypass encoding bin.
  • An image processing method is a high-throughput mode in which a context-encoding bin after a last-coefficient position of image data is processed as a bypass-encoding bin, the last-coefficient position included in the image data is
  • This is an image processing method that encodes a prefix part as a bypass encoding bin.
  • the coded data of the image data includes
  • the image processing apparatus includes a decoding unit that decodes the prefix part of the last coefficient position as a bypass coding bin.
  • An image processing method is a high-throughput mode in which context coding bins after a last coefficient position of image data are processed as bypass coding bins.
  • the prefix part of the last coefficient position is decoded as a bypass coding bin.
  • the image processing device in the case of a high throughput mode in which the context coding bin after the last coefficient position of the image data is processed as the bypass coding bin, the last coefficient included in the image data
  • the image processing device includes an encoding unit that skips position encoding.
  • An image processing method is a high-throughput mode in which a context coding bin after a last coefficient position of image data is processed as a bypass coding bin, the last coefficient included in the image data is An image processing method that skips position encoding.
  • An image processing device skips decoding of the last coefficient position in a high throughput mode in which context coding bins after the last coefficient position of image data are processed as bypass coding bins.
  • An image processing apparatus including a decoding unit.
  • An image processing method skips decoding of the last coefficient position in a high throughput mode in which context coding bins after the last coefficient position of the image data are processed as bypass coding bins. It is an image processing method.
  • the last coefficient included in the image data is encoded as a bypass encoding bin.
  • the encoded data of the image data is decoded as a bypass coded bin.
  • the image data in the case of a high throughput mode in which the context coding bin after the last coefficient position of the image data is processed as a bypass coding bin, the image data includes The encoding of the last coefficient position is skipped.
  • the last coefficient position is decoded. is skipped.
  • FIG. 10 is a diagram for explaining the amount of coding bins generated;
  • FIG. 13 shows an example of pseudo code for RRC;
  • FIG. 4 is a diagram showing an example of an RRC bitstream;
  • FIG. 13 shows an example of pseudo code for TSRC;
  • FIG. 4 is a diagram showing an example of a TSRC bitstream;
  • FIG. 4 is a diagram showing an example of syntax for RRC;
  • FIG. 4 is a diagram showing an example of semantics for RRC;
  • FIG. 10 is a diagram showing an example of the ratio of the number of context-encoding bins;
  • FIG. 4 is a diagram illustrating an example of an encoding/decoding method in the case of high throughput mode;
  • FIG. 13 shows an example of pseudo code for RRC;
  • FIG. 4 is a diagram showing an example of an RRC bitstream; 1 is a block diagram showing a main configuration example of an encoding device; FIG. FIG. 4 is a block diagram showing a main configuration example of a non-TS residual encoding unit; 4 is a flowchart showing an example of the flow of encoding processing; FIG. 11 is a flowchart showing an example of the flow of non-TS residual encoding processing; FIG. It is a block diagram which shows the main structural examples of a decoding apparatus.
  • FIG. 4 is a block diagram showing a main configuration example of a non-TS residual decoding unit; 10 is a flowchart showing an example of the flow of decoding processing; FIG.
  • FIG. 11 is a flowchart showing an example of the flow of non-TS residual decoding processing
  • FIG. FIG. 4 is a diagram illustrating an example of an encoding/decoding method in the case of high throughput mode
  • FIG. 13 shows an example of pseudo code for RRC
  • FIG. 4 is a diagram showing an example of an RRC bitstream
  • FIG. 4 is a diagram showing an example of syntax for RRC
  • FIG. 4 is a diagram showing an example of semantics for RRC
  • FIG. 4 is a block diagram showing a main configuration example of a non-TS residual encoding unit
  • FIG. 11 is a flowchart showing an example of the flow of non-TS residual encoding processing
  • FIG. FIG. 4 is a diagram illustrating an example of an encoding/decoding method in the case of high throughput mode
  • FIG. 13 shows an example of pseudo code for RRC
  • FIG. 4 is a diagram showing an example of an RRC bitstream
  • FIG. 4 is a diagram showing an example of syntax for
  • FIG. 4 is a block diagram showing a main configuration example of a non-TS residual decoding unit;
  • FIG. 11 is a flowchart showing an example of the flow of non-TS residual decoding processing;
  • FIG. It is a block diagram which shows the main structural examples of an image coding apparatus.
  • 4 is a flowchart showing an example of the flow of image encoding processing; It is a block diagram which shows the main structural examples of an image decoding apparatus.
  • 4 is a flowchart showing an example of the flow of image decoding processing; It is a block diagram which shows the main structural examples of a computer.
  • 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.).
  • CABAC> ⁇ Amount of generated context-encoding bins>
  • CABAC Context-based Adaptive Binary Arithmetic Code
  • VVC Very Video Coding
  • the table shown in FIG. 1 shows the average number of context coding bins (ctx bins/CoefGroup) generated in CG (Coefficient Group; coefficient coding group; subblock) units in such CABAC, and the CG unit
  • the number of bypass-encoded bins (ep bins/CoefGroup) generated in 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 the encoding process and decoding process of the bypass encoding bin are simplified, and the context encoding bin in the transform block (last coefficient position A method was proposed to replace ) with bypass coded bins.
  • FIG. 2 is a pseudocode outlining the encoding/decoding method described in Non-Patent Document 3.
  • FIG. 2 shows an encoding/decoding method for RRC (Regular Residual Coding).
  • the last coefficient position prefix (last_sig_coeff_ ⁇ x,y ⁇ _prefix) indicating the position of the last significant coefficient is coded as a context coding bin, as indicated by "For last significant coefficient position”.
  • the suffix part (last_sig_coeff_ ⁇ x,y ⁇ _suffix) of the last coefficient position is encoded (also called bypass encoding)/decoding (bypass decoding) as a bypass encoding bin is also called).
  • the coefficient data is encoded/decoded for each sub-block.
  • Context coding bins after the position are coded and decoded as bypass coding bins. In this way, by replacing context-encoding bins with bypass-encoding bins, the amount of CABAC processing can be reduced compared to encoding/decoding of context-encoding bins as they are.
  • the parameter remCcbs (remBinPass1 in FIG. 2) is set to 0 CABAC bypass Alignment (CABAC bypass alignment) is performed.
  • the parameter remCcbs is a parameter indicating the amount of occurrence of the number of context coding bins. That is, the generation amount of the number of context-encoding bins is set to 0, and bypass encoding/decoding is selected as the encoding/decoding method for the bins that have been encoded/decoded as context-encoding bins.
  • the parameter ivlCurrRange is set to 256, for example.
  • a parameter ivlCurrRange is a parameter indicating a range in arithmetic coding.
  • the parameters ivlCurrRange and ivlOffset represent the state of the encoding engine.
  • Fig. 3 shows a configuration example of part of a bitstream generated by such encoding.
  • coding bins for the last coefficient positions (last_sig_coeff_x_prefix11, last_sig_coeff_y_prefix12, last_sig_coeff_x_suffix13, and last_sig_coeff_y_suffix14) are formed, followed by coding bins for each subblock (Coefficient bits16-1, sb_coded_flag15-2, Coefficient bits16-2, sb_coded_flag15-3, Coefficient bits16-3, sb_coded_flag15-4, Coefficient bits16-4, sb_coded_flag15-5, and Coefficient bits16-5) are formed.
  • sb_coded_flag15-2 to sb_coded_flag15-5 are also referred to as sb_coded_flag15 when there is no need to distinguish them from each other.
  • Coefficient bits 16-1 to 16-5 are also referred to as Coefficient bits 16 when there is no need to distinguish them from each other.
  • last_sig_coeff_x_prefix11 and last_sig_coeff_y_prefix12 are context coding bins.
  • last_sig_coeff_x_suffix13 and last_sig_coeff_y_suffix14 are bypass encoding bins.
  • sb_coded_flag15 and Coefficient bits16 are the bypass-encoded bins for each subblock.
  • CABAC bypass alignment processing is performed (Align) immediately before the encoding/decoding for each subblock, that is, immediately before the processing of Coefficient bits 16-1.
  • FIG. 4 is a pseudo code showing an outline of the encoding/decoding method described in Non-Patent Document 3.
  • FIG. 4 shows an encoding/decoding method for TSRC (Transform-Skip Residual Coding). As shown in "For RemCcbs and alignment", for high-throughput mode, parameter remCcbs is set to 0 and CABAC bypass alignment is performed.
  • TSRC Transform-Skip Residual Coding
  • context coding bins after the last coefficient position are coded and decoded as bypass coding bins.
  • Fig. 5 shows a configuration example of part of a bitstream generated by such encoding.
  • the encoding bins for each subblock (sb_coded_flag21-1, Coefficientbits22-1, sb_coded_flag21-2, Coefficientbits22-2, sb_coded_flag21-3, Coefficientbits22-3, sb_coded_flag21- 4, Coefficient bits 22-4, sb_coded_flag 21-5, and Coefficient bits 22-5) are formed.
  • sb_coded_flag21-1 to sb_coded_flag21-5 are also referred to as sb_coded_flag21 when there is no need to distinguish them from each other.
  • Coefficien2t bits 22-1 through Coefficient bits 22-5 are also referred to as Coefficient bits 22 when there is no need to distinguish them from each other.
  • sb_coded_flag21 and Coefficient bits22 are bypass-encoded bin groups for each subblock.
  • CABAC bypass alignment processing is performed (Align) immediately before the encoding/decoding for each subblock, that is, immediately before the processing of sb_coded_flag21-1.
  • FIG. 6 is a diagram showing an example of syntax for RRC in the encoding/decoding method described in Non-Patent Document 3.
  • FIG. 7 is a diagram showing an example of semantics of each parameter corresponding to the syntax.
  • the last coefficient positions occupy about 8% to 10% of the entire context-encoded bins in the transform block.
  • the bar graph shown in FIG. 8 shows an example of component proportions in a high bitrate bitstream. A plurality of bar graphs each show information about different bitstreams.
  • the gray bar graph shows the percentage of the number of context-encoded bins in the entire bitstream that is occupied by the syntax in the transform block.
  • the black bar graph shows the percentage of the last coefficient positions out of the number of context-encoding bins in the entire bitstream.
  • coefficient coding accounts for approximately 90% of all context-coded bins, and last coefficient positions occupy approximately 10% of all context-coded bins. occupied.
  • last coefficient positions occupy approximately 10% of all context-coded bins. occupied.
  • CABAC throughput can be further improved by replacing the last coefficient position with a bypass coding bin.
  • CABAC high-throughput mode is a mode that performs processing to improve CABAC throughput compared to normal mode (not high-throughput mode). For example, the throughput can be improved by processing (encoding/decoding) the context encoding bin as a bypass encoding bin or by simplifying the encoding/decoding process.
  • This CABAC high-throughput mode may be applied, for example, to an encoding target with a higher bit depth or higher bit rate than usual. For example, if an image with a bit depth of 10 bits is standard, it may be applied when encoding an image with a bit depth of 12 bits.
  • CABAC high-throughput mode is also not limited to CABAC. That is, this mode may simply be a high throughput mode.
  • the image processing apparatus when the image processing apparatus is in a high-throughput mode in which the context-encoding bin after the last-coefficient position of the image data is processed as a bypass-encoding bin, the last-coefficient-position prefix part included in the image data is bypass-encoded.
  • An encoding unit may be provided for encoding as encoding bins.
  • the prefix part of the last coefficient position included in the image data is changed to It may be coded as bypass coded bins.
  • the prefix of the last coefficient position included in the coded data of the image data A decoding unit may be provided for decoding the part as a bypass encoding bin.
  • the last coefficient position included in the coded data of the image data may be decoded as bypass-encoded bins.
  • FIG. 10 is a diagram showing an example of pseudo code showing an overview of encoding (decoding) when this technology is applied.
  • "For last significant coefficient position” is executed before “For each coefficient group”.
  • sps_high_throughput_flag is true (not 0)
  • last_sig_coeff_ ⁇ x,y ⁇ _prefix is coded and decoded as a bypass coding bin (bypass_coding of last_sig_coeff_ ⁇ x,y ⁇ _prefix).
  • sps_high_throughput_flag is flag information indicating whether or not the CABAC high throughput mode is applied. If sps_high_throughput_flag is true (eg 1), it indicates that CABAC high throughput mode is applied. If sps_high_throughput_flag is false (eg 0), it indicates that normal mode applies (not CABAC high throughput mode).
  • last_sig_coeff_ ⁇ x,y ⁇ _prefix indicates the prefix part of the position of the last effective coefficient in the X or Y direction (last coefficient position).
  • Encoding in this way forms coding bins for the last coefficient positions (last_sig_coeff_x_prefix 101, last_sig_coeff_y_prefix 102, last_sig_coeff_x_suffix 103, and last_sig_coeff_y_suffix 104) in the bitstream, as shown in FIG.
  • Encoding bins (Coefficient bits 106-1, sb_coded_flag 105-2, Coefficient bits 106-2, sb_coded_flag 105-3, Coefficient bits 106-3, sb_coded_flag 105-4, Coefficient bits 106-4, sb_coded_flag 105-5, and Coefficient bits 106-5) are formed .
  • the sb_coded_flag 105-2 through sb_coded_flag 105-5 are also referred to as sb_coded_flag 105 when there is no need to distinguish them from each other.
  • the Coefficient bits 106-1 to 106-5 are also referred to as the Coefficient bits 106 when there is no need to distinguish them from each other.
  • last_sig_coeff_x_prefix 101 indicates the coding bin of the prefix part of the last coefficient position in the X direction.
  • last_sig_coeff_y_prefix 102 indicates the coding bin of the prefix part of the last coefficient position in the Y direction.
  • last_sig_coeff_x_prefix 101 and last_sig_coeff_y_prefix 102 are bypass coded bins because the prefix part of the last coefficient position is treated as a bypass coded bin when the CABAC high-throughput mode is applied.
  • the prefix part of the last coefficient position (for example, ast_sig_coeff_x_prefix11 and last_sig_coeff_y_prefix12) is a context code. Encoded and decoded as encoded bins.
  • the prefix parts of the last coefficient positions (last_sig_coeff_x_prefix101 and last_sig_coeff_y_prefix102) are coded and decoded as bypass coding bins.
  • Bypass-encoded bins are less expensive to process than context-encoded bins. Therefore, the amount of context coding bins generated can be reduced, and an increase in the processing amount of coding and decoding can be suppressed. For example, it is possible to reduce the processing amount of CABAC in high bit depth/high bit rate encoding and improve throughput.
  • sb_coded_flag 105 is a sub-block coefficient flag, which is flag information indicating whether or not all coefficients in the sub-block are 0. Therefore, sb_coded_flag 105 is set for each subblock. In this case, since the last coefficient position is sent, the sb_coded_flag of the coefficient group containing the last coefficient is skipped in encoding/decoding, and its value is estimated to be 1.
  • Coefficient bits 106 is the coding bin of coefficients for each subblock. That is, the coefficients are encoded/decoded for each sub-block (transform block).
  • Method #1-1 For example, when method #1 described above is applied, as shown in the second row from the top of the table shown in FIG. • Context decoding may be performed (Method #1-1). That is, the prefix part of the last coefficient position may be coded and decoded as context-coded bins when not in high-throughput mode.
  • the prefix part of the last coefficient position may be encoded as the context encoding bin. Also, in the image processing device, if the decoding unit is not in the high throughput mode, the prefix part of the last coefficient position may be decoded as the context coding bin.
  • last_sig_coeff_ ⁇ x,y ⁇ _prefix is encoded/decoded as the context encoding bin. (context_coding of last_sig_coeff_ ⁇ x,y ⁇ _prefix).
  • the prefix part of the last coefficient position can be processed as a bypass coding bin.
  • the encoding unit may encode the suffix part of the last coefficient position included in the image data as a bypass encoding bin.
  • the decoding unit may decode the suffix part of the last coefficient position included in the encoded data as the bypass encoding bin.
  • last_sig_coeff_ ⁇ x,y ⁇ _suffix is encoded/decoded as a bypass encoding bin regardless of whether it is in CABAC high throughput mode. (bypass_coding of last_sig_coeff_ ⁇ x,y ⁇ _suffix). last_sig_coeff_ ⁇ x,y ⁇ _suffix indicates the suffix part of the position of the last effective coefficient in the X or Y direction (last coefficient position).
  • last_sig_coeff_x_suffix 103 indicates the coding bin of the suffix part of the last coefficient position in the X direction.
  • last_sig_coeff_y_suffix 104 indicates the coding bin of the suffix part of the last coefficient position in the Y direction.
  • the suffix portion of the last coefficient position is encoded and decoded as bypass encoding bins, so last_sig_coeff_x_suffix 103 and last_sig_coeff_y_suffix 104 are bypass encoding bins. That is, the last coefficient position and context coding bins (last_sig_coeff_x_prefix 101 to Coefficient bits 106 in FIG. 11) for each subblock are all coded and decoded as bypass coding bins.
  • Method #1-3 For example, when the above-described method #1 is applied, as shown in the fourth row from the top of the table shown in FIG. , CABAC bypass alignment processing may be performed (method #1-3).
  • alignment processing in the encoding process may be performed immediately before encoding the last coefficient position.
  • the alignment process of the decoding process may be performed immediately before the last coefficient position is decoded.
  • CABAC bypass alignment is performed (CABAC bypass alignment). That is, in the CABAC high throughput mode, as shown in FIG. 11, CABAC bypass alignment processing is performed (Align) immediately before the processing of last_sig_coeff_x_prefix101.
  • CABAC bypass alignment is the process of adjusting the CABAC process. By performing this processing, it becomes possible to easily process a plurality of bypass-encoded bins in parallel.
  • this technology can also be applied to encoding/decoding other than CABAC. Therefore, the CABAC bypass alignment described above is also not limited to CABAC. In other words, this process may simply be a process (alignment process) for adjusting the encoding process (or decoding process).
  • Method #1-3-1 For example, when method #1-3 above is applied, the parameter iVlCurrRange may be set to 256 in the CABAC bypass alignment process as shown in the fifth row from the top of the table shown in FIG. (Method #1-3-1).
  • the parameter ivlCurrRange is a parameter that indicates the range in arithmetic coding.
  • the parameters ivlCurrRange and ivlOffset represent the state of the encoding engine.
  • the encoding unit may set the variable iVlCurrRange, which indicates the range in arithmetic encoding, to 256 in the alignment process.
  • the decoding unit may set a variable iVlCurrRange indicating the range in arithmetic coding to 256 in the alignment process.
  • the encoding/decoding of the bypass encoding bin is simplified, and 1 bit of the bitstream can be processed as it is as the bypass encoding bin.
  • This allows parallel processing of multiple bypass-encoded bins. That is, by performing this setting immediately before encoding/decoding the last coefficient position, the bypass encoding bins of the entire coefficient encoding including the last coefficient position can be easily processed in parallel. Therefore, it is possible to suppress an increase in the processing amount of encoding and decoding.
  • Method #1-3-2 For example, when the above method #1-3 is applied, as shown in the sixth row from the top of the table shown in FIG. 9, when performing CABAC bypass alignment processing, the number of context encoding bins may be set to 0 (Method #1-3-2).
  • the encoding unit may further set the generated amount of the number of context encoding bins to 0 immediately before encoding the last coefficient position.
  • the decoding unit may further set the generated amount of the number of context coding bins to 0 immediately before decoding the last coefficient position.
  • the parameter remCcbs is a parameter indicating the amount of occurrence of the number of context coding bins. That is, bypass encoding is selected.
  • the encoding bin for the entire coefficient encoding including the last coefficient position can be treated as a bypass encoding bin. Therefore, the amount of context coding bins generated can be reduced, and an increase in the processing amount of coding and decoding can be suppressed.
  • Method #1-3-3 For example, when methods #1-3 above are applied, in the case of non-CABAC high-throughput mode, as shown at the bottom of the table shown in FIG. Based on the size, the amount of occurrence of the number of context-encoding bins may be derived (method #1-3-3).
  • the number of context encoding bins is calculated based on the reference value of the number of context encoding bins and the transform block size.
  • the generated amount may be derived.
  • the amount of generated context-encoding bins can be derived.
  • the parameter ctxBinSampleRatioBase indicates the reference value for the number of context encoding bins.
  • the parameter ctxBinSampleRatioBase is set to 7.
  • the parameter TbWidth indicates the horizontal size (width) of the transform block.
  • a parameter TbHeight indicates the vertical size (height) of the transform block. That is, the parameter remCcbs is derived by the following equation (1).
  • the prefix part of the last coefficient position can be processed as a context coding bin when not in high-throughput mode.
  • FIG. 12 is a block diagram showing an example of a configuration of an encoding device that is one aspect of an image processing device to which the present technology is applied.
  • Encoding apparatus 200 shown in FIG. 12 is an apparatus that encodes quantized coefficients using CABAC.
  • This quantization coefficient is data generated using image data to be encoded. For example, the predicted image is derived for the image data. Then, the difference (prediction residual) between the image data and the predicted image is derived. Then, transform coefficients are generated by subjecting the prediction residuals to coefficient transform (for example, orthogonal transform). Then, the transform coefficients are quantized to generate quantized coefficients. In this way the quantized coefficients described above may be generated. Further, among the above processes, for example, coefficient conversion may be skipped (omitted).
  • coefficient transform for example, orthogonal transform
  • FIG. 12 shows the main components such as the processing units and data flow, and the components shown in FIG. 12 are not necessarily all. That is, the encoding device 200 may have processing units that are not shown as blocks in FIG. Also, the encoding device 200 may have processes and data flows not indicated by arrows or the like in FIG. 12 .
  • encoding apparatus 200 has selection section 211 , TS residual encoding section 212 , and non-TS residual encoding section 213 .
  • the selection unit 211 performs processing related to selection of encoding processing to be executed. For example, the selection unit 211 may acquire quantized coefficients. The selection unit 211 may also acquire transform_skip_flag and cIdx.
  • transform_skip_flag is a transform skip flag, and is flag information indicating whether or not coefficient transform (for example, orthogonal transform) for the transform block corresponding to the flag has been skipped (omitted). If transform_skip_flag is true (eg, 1), it indicates that the coefficient transform was skipped. If transform_skip_flag is false (eg 0), it indicates that a coefficient transform has been applied.
  • cIdx is a component identifier for identifying color components such as luminance components and color components.
  • the selection unit 211 applies TSRC (encoding in TS residual coding mode) or RRC (encoding in non-TS residual coding mode) to the quantized coefficients. ) may be selected for each transform block. For example, if transform_skip_flag[cIdx] is true, selection section 211 may select application of TSRC and supply the quantized coefficients to TS residual encoding section 212 . Also, when transform_skip_flag[cIdx] is false, the selection section 211 may select application of RRC and supply the quantized coefficients to the Non-TS residual encoding section 213 .
  • the TS residual coding unit 212 executes processing related to coding (TSRC) in the TS residual coding mode.
  • the TS residual encoding unit 212 may acquire the quantized coefficients supplied from the selection unit 211.
  • TS residual encoding section 212 may encode the quantized coefficients in the TS residual encoding mode.
  • the TS residual encoding unit 212 may encode the quantized coefficients (TSRC) using a method similar to the method described in Non-Patent Document 3. Then, TS residual encoding section 212 may output the bitstream generated by the encoding to the outside of encoding apparatus 200 .
  • the Non-TS residual coding unit 213 executes processing related to coding (RRC) in the Non-TS residual coding mode.
  • the Non-TS residual encoding unit 213 may acquire quantization coefficients supplied from the selection unit 211 .
  • the Non-TS residual encoding section 213 may encode the quantized coefficients in the Non-TS residual encoding mode.
  • the Non-TS residual coding unit 213 may apply any of the methods described above with reference to FIG. 9 and the like to code (RRC) the quantized coefficients. Then, Non-TS residual encoding section 213 may output the bitstream generated by the encoding to the outside of encoding apparatus 200 .
  • FIG. 13 is a block diagram showing a main configuration example of the Non-TS residual encoding section 213 of FIG. Note that FIG. 13 shows main components such as processing units and data flow, and the components shown in FIG. 13 are not necessarily all. That is, the non-TS residual encoding unit 213 may have processing units not shown as blocks in FIG. Also, the non-TS residual encoding unit 213 may have processes and data flows not indicated by arrows or the like in FIG.
  • the non-TS residual coding unit 213 has a setting unit 231, a last coefficient position coding unit 232, and a sub-block coding unit 233.
  • the setting unit 231 performs processing related to parameter setting.
  • the setting unit 231 may acquire ctxBinSampleRatioBase.
  • ctxBinSampleRatioBase is a parameter indicating the reference value of the number of context-encoding bins.
  • the setting unit 231 may acquire TbWidth and TbHeight.
  • TbWidth is a parameter indicating the horizontal size (width) of the transform block.
  • TbHeight is a parameter indicating the vertical size (height) of the transformation block.
  • the setting unit 231 may acquire sps_high_throughput_flag.
  • sps_high_throughput_flag is flag information indicating whether or not the CABAC high throughput mode is applied, as described above.
  • the setting unit 231 may apply the method #1-3 described above and perform CABAC bypass alignment processing immediately before encoding the last coefficient position. In that case, the setting unit 231 may, for example, apply method #1-3-1 described above and set the parameter iVlCurrRange to 256 in the CABAC bypass alignment process. Alternatively, the setting unit 231 may apply the method #1-3-2 described above and further set the generated amount of the number of context-encoding bins to zero. In other words, the setting unit 231 may set the parameter remCcbs indicating the amount of occurrence of the number of context coding bins to 0.
  • the setting unit 231 applies method #1-3-3 described above, and based on the reference value of the number of context encoding bins (ctxBinSampleRatioBase) and the transform block size (TbWidth, TbHeight) , may derive the amount of occurrence of the number of context coding bins (remCcbs). For example, the setting unit 231 may derive remCcbs using Equation (1) described above.
  • the setting unit 231 may supply the set remCcbs to the last coefficient position encoding unit 232 . Also, the setting unit 231 may supply the set iVlCurrRange to the last coefficient position encoding unit 232 when CABAC bypass alignment processing is performed.
  • the last coefficient position coding unit 232 performs processing related to coding of the last coefficient position. For example, the last coefficient position encoding unit 232 may acquire sps_high_throughput_flag. Also, the last coefficient position encoding unit 232 may acquire a quantized coefficient. Also, the last coefficient position encoding unit 232 may acquire remCcbs supplied from the setting unit 231 . Also, the last coefficient position encoding unit 232 may acquire iVlCurrRange supplied from the setting unit 231 .
  • the last coefficient position encoding unit 232 encodes the last coefficient position prefix part (last_sig_coeff_ ⁇ x, y ⁇ _prefix) and the suffix part (last_sig_coeff_ ⁇ x,y ⁇ _suffix) may be set.
  • last_sig_coeff_ ⁇ x,y ⁇ _prefix is an abbreviated notation collectively of the prefix part of the last coefficient position in the X direction (last_sig_coeff_x_prefix) and the prefix part of the last coefficient position in the Y direction (last_sig_coeff_y_prefix).
  • last_sig_coeff_ ⁇ x,y ⁇ _suffix is a shorthand notation collectively for the suffix part of the last coefficient position in the X direction (last_sig_coeff_x_suffix) and the suffix part of the last coefficient position in the Y direction (last_sig_coeff_y_suffix).
  • the last coefficient position encoding unit 232 applies the method #1 described above, and when sps_high_throughput_flag is true, encodes the prefix part of the last coefficient position (last_sig_coeff_ ⁇ x,y ⁇ _prefix) as a bypass code bin. good too.
  • the last coefficient position encoding unit 232 applies the method #1-1 described above, and if sps_high_throughput_flag is false, the last coefficient position prefix part (last_sig_coeff_ ⁇ x,y ⁇ _prefix) is used as the context encoding bin. may be encoded.
  • the last coefficient position encoding unit 232 applies method #1-2 described above, and regardless of whether the CABAC high throughput mode is selected, the suffix part of the last coefficient position (last_sig_coeff_ ⁇ x,y ⁇ _suffix) may be encoded as bypass code bins.
  • the last coefficient position encoding unit 232 converts the encoding bin corresponding to the prefix part and the encoding bin corresponding to the suffix part of the last coefficient position generated by the above encoding into a bitstream of the encoding device 200. It may be output to the outside. Also, the last coefficient position encoding unit 232 may supply remCcbs to the sub-block encoding unit 233 . Also, the last coefficient position encoding unit 232 may supply iVlCurrRange to the sub-block encoding unit 233 . Also, the last coefficient position encoding unit 232 may supply the last coefficient position (LastSignificantCoef ⁇ X, Y ⁇ ) to the sub-block encoding unit 233 .
  • the sub-block coding unit 233 performs processing related to coding of coefficients and the like for each sub-block. For example, the sub-block encoding unit 233 may acquire quantized coefficients. Also, the sub-block coding unit 233 may obtain remCcbs supplied from the last coefficient position coding unit 232 . Also, the sub-block coding unit 233 may obtain iVlCurrRange supplied from the last coefficient position coding unit 232 . Also, the sub-block coding unit 233 may acquire the last coefficient position (LastSignificantCoef ⁇ X, Y ⁇ ) supplied from the last coefficient position coding unit 232 .
  • the sub-block encoding unit 233 may use the information supplied from the last coefficient position encoding unit 232 to encode the sub-block coefficient flag (sb_coded_flag) and quantization coefficients for each sub-block.
  • the sub-block coding unit 233 may code sub-block coefficient flags (sb_coded_flag) and quantization coefficients as bypass coding bins.
  • the sub-block encoding unit 233 encodes a bypass-encoded bin group for each sub-block (sub-block coefficient flag (sb_coded_flag) and bypass-encoded bins of quantization coefficients) generated by such encoding as a bitstream. may be output to the outside of the conversion device 200 .
  • the encoding device 200 can achieve ⁇ 3. Bypass Encoding/Bypass Decoding of Last Coefficient Position> can be applied. That is, the encoding device 200 performs ⁇ 3. Bypass Encoding/Bypass Decoding at Last Coefficient Position>, the same effect as the effect of each method described above can be obtained. Therefore, the encoding apparatus 200 can reduce the amount of context encoding bins generated, and can suppress an increase in the processing amount of encoding and decoding. For example, the encoding apparatus 200 can reduce the amount of CABAC processing in high bit depth/high bit rate encoding and improve throughput.
  • the encoding device 200 encodes the transform mode information (transform_skip_flag, etc.) of the transform block corresponding to the component identifier cIdx in step S101.
  • step S102 the selection unit 211 determines whether or not to encode in the TS residual encoding mode. For example, when transform_skip_flag[cIdx] is true and it is determined to encode in the TS residual encoding mode, the process proceeds to step S103.
  • step S103 the TS residual encoding unit 212 encodes the quantized coefficients in the TS residual encoding mode.
  • the TS residual encoding unit 212 may encode the quantized coefficients (TSRC) using a method similar to the method described in Non-Patent Document 3.
  • TSRC quantized coefficients
  • step S102 if transform_skip_flag[cIdx] is false and it is determined to encode in the Non-TS residual coding mode, the process proceeds to step S104.
  • step S104 the non-TS residual encoding unit 213 encodes the quantization coefficients in the non-TS residual encoding mode by executing non-TS residual encoding processing.
  • the Non-TS residual encoding unit 213 may apply any of the methods described above with reference to FIG. 9 and the like to encode (RRC) the quantized coefficients.
  • Non-TS residual coding process flow An example of the flow of the non-TS residual encoding process executed in step S104 of FIG. 14 will be described with reference to the flowchart of FIG.
  • the setting unit 231 of the Non-TS residual encoding unit 213 determines in step S131 whether or not the CABAC high throughput mode is selected.
  • step S132 the setting unit 231 applies the method #1-3-2 described above and sets the amount of occurrence of the number of context coding bins (remCcbs) to 0. By this, bypass encoding is selected in subsequent encoding.
  • step S133 the setting unit 231 applies the method #1-3 described above to perform CABAC bypass alignment.
  • the setting unit 231 may set the parameter iVlCurrRange to 256 by applying method #1-3-1 described above. This simplifies the encoding of the bypass-encoded bins and allows parallel processing of multiple bypass-encoded bins.
  • step S133 ends, the process proceeds to step S135.
  • step S134 the setting unit 231 applies method #1-3-3 described above, and based on the reference value of the number of context encoding bins (ctxBinSampleRatioBase) and the transform block size (TbWidth, TbHeight), the context encoding bin Derive the number of occurrences (remCcbs).
  • the processing of step S134 ends, the processing proceeds to step S135.
  • step S135 the last coefficient position encoding unit 232 converts the last coefficient position prefix (last_sig_coeff_ ⁇ x,y ⁇ _prefix) and Set the suffix part (last_sig_coeff_ ⁇ x,y ⁇ _suffix).
  • step S136 the last coefficient position encoding unit 232 determines whether or not the CABAC high throughput mode is selected.
  • step S137 the last coefficient position encoding unit 232 applies method #1 described above to encode the last coefficient position prefix (last_sig_coeff_ ⁇ x,y ⁇ _prefix) as a bypass code bin. After the process of step S137 is completed, the process proceeds to step S139.
  • step S136 determines whether the sps_high_throughput_flag is false (that is, the non-CABAC high throughput mode)
  • step S138 the last coefficient position encoding unit 232 applies the method #1-1 described above to encode the last coefficient position prefix (last_sig_coeff_ ⁇ x,y ⁇ _prefix) as a context encoding bin.
  • step S139 the process proceeds to step S139.
  • step S139 the last coefficient position encoding unit 232 applies method #1-2 described above to encode the last coefficient position suffix part (last_sig_coeff_ ⁇ x,y ⁇ _suffix) as a bypass code bin.
  • step S140 the sub-block encoding unit 233 encodes coefficients and the like for each sub-block.
  • the encoding device 200 can achieve ⁇ 3. Bypass Encoding/Bypass Decoding of Last Coefficient Position> can be applied. That is, the encoding device 200 performs ⁇ 3. Bypass Encoding/Bypass Decoding at Last Coefficient Position>, the same effect as the effect of each method described above can be obtained. Therefore, the encoding apparatus 200 can reduce the amount of context encoding bins generated, and can suppress an increase in the processing amount of encoding and decoding. For example, the encoding apparatus 200 can reduce the amount of CABAC processing in high bit depth/high bit rate encoding and improve throughput.
  • FIG. 16 is a block diagram showing an example of a configuration of a decoding device, which is one aspect of an image processing device to which the present technology is applied.
  • a decoding device 300 shown in FIG. 16 is a device that decodes a bitstream using CABAC and generates (restores) quantized coefficients.
  • This quantization coefficient is data generated using image data to be encoded, as in the case of the encoding device 200 . That is, the bitstream to be decoded is generated by encoding the quantized coefficients by an image processing device (for example, the encoding device 200) to which the present technology is applied.
  • FIG. 16 shows the main components such as the processing units and data flow, and the components shown in FIG. 16 are not necessarily all. That is, the decoding device 300 may have processing units not shown as blocks in FIG. Also, the decoding device 300 may have processes and data flows not indicated by arrows or the like in FIG.
  • decoding device 300 has selection section 311 , TS residual decoding section 312 , and Non-TS residual decoding section 313 .
  • the selection unit 311 performs processing related to selection of decoding processing to be executed. For example, the selection unit 311 may obtain a bitstream. Also, the selection unit 311 may acquire transform_skip_flag and cIdx.
  • the selection unit 311 applies TSRC (decoding in TS residual coding mode) or RRC (decoding in non-TS residual coding mode) to the bitstream based on transform_skip_flag and cIdx. may be selected for each transform block. For example, when transform_skip_flag[cIdx] is true, the selection unit 311 may select application of TSRC and supply the bitstream to the TS residual decoding unit 312 . Also, when transform_skip_flag[cIdx] is false, the selection unit 311 may select application of RRC and supply the bitstream to the Non-TS residual decoding unit 313 .
  • TSRC decoding in TS residual coding mode
  • RRC decoding in non-TS residual coding mode
  • the TS residual decoding unit 312 executes processing related to decoding (TSRC) in the TS residual coding mode.
  • the TS residual decoding unit 312 may obtain the bitstream supplied from the selection unit 311 .
  • the TS residual decoding unit 312 may decode the bitstream in the TS residual coding mode to generate (restore) quantized coefficients.
  • the TS residual decoding unit 312 may decode the bitstream (TSRC) in a method similar to the method described in Non-Patent Document 3. Then, TS residual decoding section 312 may output the quantized coefficients generated (restored) by the decoding to the outside of decoding apparatus 300 .
  • the Non-TS residual decoding unit 313 executes processing related to decoding (RRC) in the Non-TS residual coding mode.
  • the Non-TS residual decoding unit 313 may obtain the bitstream supplied from the selection unit 311 .
  • the Non-TS residual decoding unit 313 may decode the bitstream in the Non-TS residual coding mode to generate (restore) quantized coefficients.
  • the Non-TS residual decoding unit 313 may apply any of the methods described above with reference to FIG. 9 and the like to decode (RRC) the bitstream. Then, Non-TS residual decoding section 313 may output the quantized coefficients generated (restored) by the decoding to the outside of decoding apparatus 300 .
  • FIG. 17 is a block diagram showing a main configuration example of the Non-TS residual decoding unit 313 of FIG. Note that FIG. 17 shows main components such as processing units and data flow, and the components shown in FIG. 17 are not necessarily all. That is, the non-TS residual decoding unit 313 may have processing units not shown as blocks in FIG. Also, the non-TS residual decoding unit 313 may have processes and data flows not indicated by arrows or the like in FIG.
  • the Non-TS residual decoding unit 313 has a setting unit 331, a last coefficient position decoding unit 332, and a sub-block decoding unit 333.
  • the setting unit 331 performs processing related to parameter setting. For example, the setting unit 331 may acquire ctxBinSampleRatioBase. Also, the setting unit 331 may acquire TbWidth and TbHeight. Also, the setting unit 331 may acquire sps_high_throughput_flag.
  • the setting unit 331 may apply the method #1-3 described above and perform CABAC bypass alignment processing immediately before decoding the last coefficient position. In that case, the setting unit 331 may, for example, apply method #1-3-1 described above and set the parameter iVlCurrRange to 256 in the CABAC bypass alignment process. Also, the setting unit 331 may apply the method #1-3-2 described above and further set the amount of occurrence of the number of context coding bins (remCcbs) to zero.
  • setting unit 331 applies method #1-3-3 described above, and based on the reference value of the number of context-encoding bins (ctxBinSampleRatioBase) and the transform block size (TbWidth, TbHeight) , may derive the amount of occurrence of the number of context coding bins (remCcbs). For example, the setting unit 331 may derive remCcbs using Equation (1) described above.
  • the setting unit 331 may supply the set remCcbs to the last coefficient position decoding unit 332 . Also, the setting unit 331 may supply the set iVlCurrRange to the last coefficient position decoding unit 332 when the CABAC bypass alignment process is performed.
  • the last coefficient position decoding unit 332 performs processing related to decoding of the last coefficient position. For example, the last coefficient position decoding unit 332 may acquire sps_high_throughput_flag. Also, the last coefficient position decoding unit 332 may acquire a bitstream. Also, the last coefficient position decoding unit 332 may acquire remCcbs supplied from the setting unit 331 . Also, the last coefficient position decoding unit 332 may acquire iVlCurrRange supplied from the setting unit 331 .
  • the last coefficient position decoding unit 332 applies method #1 described above, and if sps_high_throughput_flag is true, the last coefficient position prefix part (last_sig_coeff_ ⁇ x,y ⁇ _prefix) included in the bitstream is converted to the bypass code bin. can be decoded as Further, last coefficient position decoding section 332 applies method #1-1 described above, and if sps_high_throughput_flag is false, the last coefficient position prefix part (last_sig_coeff_ ⁇ x,y ⁇ _prefix) included in the bitstream is May be decoded as encoded bins.
  • the last coefficient position decoding unit 332 applies the method #1-2 described above, regardless of whether the CABAC high throughput mode is set or not, the last coefficient position suffix part (last_sig_coeff_ ⁇ x, y ⁇ _suffix) may be decoded as bypass code bins.
  • the last coefficient position decoding unit 332 based on the prefix (last_sig_coeff_ ⁇ x,y ⁇ _prefix) and suffix (last_sig_coeff_ ⁇ x,y ⁇ _suffix) of the last coefficient position obtained by decoding the bitstream,
  • the last coefficient position in the X and Y directions (LastSignificantCoef ⁇ X, Y ⁇ ) may be set.
  • the last coefficient position decoding unit 332 may supply remCcbs to the sub-block decoding unit 333. Also, the last coefficient position decoding unit 332 may supply iVlCurrRange to the sub-block decoding unit 333 . Also, the last coefficient position decoding unit 332 may supply the last coefficient position (LastSignificantCoef ⁇ X, Y ⁇ ) to the sub-block decoding unit 333 .
  • the sub-block decoding unit 333 performs processing related to decoding of coefficients and the like for each sub-block. For example, the sub-block decoding unit 333 may acquire a bitstream. Also, the sub-block decoding unit 333 may acquire remCcbs supplied from the last coefficient position decoding unit 332 . Also, the sub-block decoding unit 333 may acquire iVlCurrRange supplied from the last coefficient position decoding unit 332 . Also, the sub-block decoding unit 333 may acquire the last coefficient position (LastSignificantCoef ⁇ X, Y ⁇ ) supplied from the last coefficient position decoding unit 332 .
  • the sub-block decoding unit 333 decodes the bitstream using the information supplied from the last coefficient position decoding unit 332, and generates (restores) a sub-block coefficient flag (sb_coded_flag) and a quantization coefficient for each sub-block. You may For example, the sub-block decoding unit 333 may decode sub-block coefficient flags (sb_coded_flag) and quantization coefficients included in the bitstream as bypass coding bins.
  • the sub-block decoding unit 333 may output the quantized coefficient for each sub-block generated (restored) by such decoding to the outside of the decoding device 300.
  • the decoding device 300 can achieve ⁇ 3. Bypass Encoding/Bypass Decoding of Last Coefficient Position> can be applied. In other words, the decoding device 300 performs ⁇ 3. Bypass Encoding/Bypass Decoding at Last Coefficient Position>, the same effect as the effect of each method described above can be obtained. Therefore, the decoding device 300 can reduce the amount of context coding bins generated, and can suppress an increase in the processing amount of encoding and decoding. For example, the decoding device 300 can reduce the processing amount of CABAC in high bit depth/high bit rate decoding and improve throughput.
  • the decoding device 300 decodes the encoded data of the transform mode information (transform_skip_flag, etc.) of the transform block corresponding to the component identifier cIdx in step S201.
  • step S202 the selection unit 311 determines whether or not to decode in the TS residual coding mode. For example, if transform_skip_flag[cIdx] is true and it is determined to decode in the TS residual coding mode, the process proceeds to step S203.
  • step S203 the TS residual decoding unit 312 decodes the bitstream in the TS residual coding mode and generates (restores) quantized coefficients.
  • the TS residual decoding unit 312 may decode the bitstream (TSRC) in a method similar to the method described in Non-Patent Document 3.
  • TSRC bitstream
  • step S202 if transform_skip_flag[cIdx] is false and it is determined to decode in the Non-TS residual coding mode, the process proceeds to step S204.
  • step S204 the non-TS residual decoding unit 313 performs non-TS residual decoding processing to decode the bitstream in the non-TS residual coding mode and generate (restore) quantization coefficients.
  • the Non-TS residual decoding unit 313 may apply any of the methods described above with reference to FIG. 9 and the like to decode (RRC) the bitstream.
  • RRC decode
  • Non-TS residual decoding process flow An example of the flow of the Non-TS residual decoding process executed in step S204 of FIG. 18 will be described with reference to the flowchart of FIG.
  • the setting unit 331 of the Non-TS residual decoding unit 313 determines in step S231 whether or not the CABAC high throughput mode is set.
  • step S232 the setting unit 331 applies the method #1-3-2 described above and sets the amount of occurrence of the number of context coding bins (remCcbs) to zero. As a result, bypass decoding is selected in subsequent decoding.
  • step S233 the setting unit 331 applies the method #1-3 described above to perform CABAC bypass alignment.
  • the setting unit 331 may set the parameter iVlCurrRange to 256 by applying method #1-3-1 described above. This simplifies the decoding of the bypass-encoded bins and also allows parallel processing of multiple bypass-encoded bins.
  • step S234 the last coefficient position decoding unit 332 applies method #1 described above and decodes the last coefficient position prefix (last_sig_coeff_ ⁇ x,y ⁇ _prefix) included in the bitstream as a bypass code bin. After the process of step S234 is completed, the process proceeds to step S237.
  • step S231 determines whether sps_high_throughput_flag is false (that is, non-CABAC high throughput mode).
  • step S235 the setting unit 331 applies method #1-3-3 described above, and based on the reference value of the number of context encoding bins (ctxBinSampleRatioBase) and the transform block size (TbWidth, TbHeight), the context encoding bin Derive the number of occurrences (remCcbs).
  • step S236 the last coefficient position decoding unit 332 applies method #1-1 described above, and decodes the last coefficient position prefix (last_sig_coeff_ ⁇ x,y ⁇ _prefix) included in the bitstream as a context coding bin. do.
  • step S236 ends, the process proceeds to step S237.
  • step S237 the last coefficient position decoding unit 332 applies method #1-2 described above and decodes the last coefficient position suffix part (last_sig_coeff_ ⁇ x,y ⁇ _suffix) included in the bitstream as a bypass coding bin. .
  • step S2308 the last coefficient position decoding unit 332 decodes the last coefficient position prefix (last_sig_coeff_ ⁇ x,y ⁇ _prefix) obtained by the processing in step S234 or step S236 and the last coefficient obtained by the processing in step S237.
  • the last coefficient position in the X and Y directions (LastSignificantCoef ⁇ X, Y ⁇ ) based on the suffix part of the position (last_sig_coeff_ ⁇ x,y ⁇ _suffix).
  • step S239 the sub-block decoding unit 333 decodes the bitstream and generates (restores) sub-block coefficient flags (sb_coded_flag) and quantization coefficients for each sub-block.
  • the sub-block decoding unit 333 may decode sub-block coefficient flags (sb_coded_flag) and quantization coefficients included in the bitstream as bypass coding bins.
  • the decoding device 300 can achieve ⁇ 3. Bypass Encoding/Bypass Decoding of Last Coefficient Position> can be applied. In other words, the decoding device 300 performs ⁇ 3. Bypass Encoding/Bypass Decoding at Last Coefficient Position>, the same effect as the effect of each method described above can be obtained. Therefore, the decoding device 300 can reduce the amount of context coding bins generated, and can suppress an increase in the processing amount of encoding and decoding. For example, the decoding device 300 can reduce the processing amount of CABAC in high bit depth/high bit rate decoding and improve throughput.
  • the coding of the last coefficient position included in the image data is skipped ( omitted).
  • the coding of the last coefficient position included in the image data is You can skip (omit) it.
  • the decoding unit skips (omits) the decoding of the last coefficient position. You may prepare. Further, for example, in the image processing method, in the case of a high throughput mode in which the context coding bin after the last coefficient position of the image data is processed as a bypass coding bin, the decoding of the last coefficient position is skipped (omitted). good too.
  • FIG. 21 is a diagram showing an example of pseudo code showing an overview of encoding (decoding) when the present technology is applied in this case.
  • sps_high_throughput_flag is true (not 0)
  • the encoding/suffix of last_sig_coeff_ ⁇ x,y ⁇ _prefix and Decryption is skipped (omitted).
  • FIG. 23 shows an example of syntax for RRC in this case.
  • last_sig_coeff_ ⁇ x,y ⁇ _prefix and last_sig_coeff_ ⁇ x,y ⁇ _suffix are transmitted only if sps_high_throughput_flag is false, as indicated by the gray line. In other words, if sps_high_throughput_flag is true (not 0), last_sig_coeff_ ⁇ x,y ⁇ _prefix and last_sig_coeff_ ⁇ x,y ⁇ _suffix are not transmitted.
  • Non-Patent Document 3 even when the CABAC high-throughput mode is applied, the prefix and suffix parts of the last coefficient position (for example, ast_sig_coeff_x_prefix11 to last_sig_coeff_y_suffix14) are Encoded and decoded.
  • method #1 when the CABAC high-throughput mode is applied, the coding/decoding of the last coefficient position is skipped, so these coding bins are not generated. Therefore, the amount of context coding bins generated can be reduced, and an increase in the processing amount of coding and decoding can be suppressed. For example, it is possible to reduce the processing amount of CABAC in high bit depth/high bit rate encoding and improve throughput.
  • coefficients and the like are encoded and decoded for each subblock, so in the bitstream of the example in FIG. ⁇ 2, Coefficient bits 402-2, sb_coded_flag 401-3, Coefficient bits 402-3, sb_coded_flag 401-4, Coefficient bits 402-4, sb_coded_flag 401-5, and Coefficient bits 402-5) are formed.
  • the sb_coded_flag 401-1 to sb_coded_flag 401-5 are also referred to as the sb_coded_flag 401 when there is no need to distinguish them from each other.
  • the Coefficient bits 402-1 to 402-5 are also referred to as the Coefficient bits 402 when there is no need to distinguish them from each other.
  • sb_coded_flag 105 is a sub-block coefficient flag, and is flag information indicating whether all coefficients in the sub-block are 0 or not. Therefore, sb_coded_flag 105 is set for each subblock.
  • Coefficient bits 106 is the coding bin of coefficients for each subblock. That is, the coefficients are encoded/decoded for each sub-block (transform block).
  • Bypass-encoded bins are less expensive to process than context-encoded bins. Therefore, by replacing context-encoding bins with bypass-encoding bins in this way, the amount of CABAC processing can be reduced compared to encoding and decoding context-encoding bins as they are.
  • the encoding/decoding of sb_coded_flag 401-1 may be skipped (omitted). If the encoding/decoding of sb_coded_flag 401-1 is to be skipped, its value is estimated to be 1. Also, when encoding/decoding sb_coded_flag 401-1, it is determined whether or not there is actually a significant coefficient for the coefficient group that should have included the last coefficient position, and if there is no significant coefficient, the coefficient group is decoded. You may make it skip.
  • the last coefficient position may be set to the lower right coordinate in the transform block as shown in the second row from the top of the table shown in FIG. Method #2-1).
  • the encoding unit may set the last coefficient position to the lower right coordinate in the transform block.
  • the decoding unit may set the last coefficient position to the lower right coordinate in the transform block.
  • the last coefficient position in the X direction (LastSignificantCoeffX) and the last coefficient position in the Y direction (LastSignificantCoeffY) are given by the following equations (2) and (3) may be set.
  • the last coefficient positions are concentrated in the lower right corner of the transform block. Therefore, by assuming that the last coefficient position is the bottom right of the transform block, the number of bins required for encoding the last coefficient can be reduced while suppressing the impact on the encoding efficiency. In other words, by fixing the last coefficient position to the bottom right of the transform block, the encoding/decoding of the last coefficient position can be skipped.
  • Method #2-2 For example, when the above-described method #2 is applied, as shown in the third row from the top of the table shown in FIG. (Method #2-2).
  • the prefix part and suffix part of the last coefficient position may be encoded. Also, in the image processing device, if the decoding unit is not in the high throughput mode, the prefix part and the suffix part of the last coefficient position may be decoded.
  • last_sig_coeff_ ⁇ x,y ⁇ _prefix and last_sig_coeff_ ⁇ x,y ⁇ _suffix are transmitted only when sps_high_throughput_flag is false, as indicated by the gray line.
  • the prefix and suffix parts of the last coefficient position are encoded/decoded. By doing so, the encoding/decoding of the last coefficient position can be skipped only in the high throughput mode.
  • Method #2-2-1 For example, when the above method #2-2 is applied, as shown in the fourth row from the top of the table shown in FIG. may be context-encoded and context-decoded, and the suffix portion of the last coefficient position may be bypass-encoded and bypass-decoded (method #2-2-1).
  • the encoding unit may encode the prefix part of the last coefficient position as a context coding bin, and encode the suffix part of the last coefficient position as a bypass coding bin.
  • the decoding unit may decode the prefix part of the last coefficient position as a context coding bin, and decode the suffix part of the last coefficient position as a bypass coding bin.
  • the prefix part of the last coefficient position is coded and decoded as context coding bins (context_coding of last_sig_coeff_ ⁇ x,y ⁇ _prefix), the suffix part of the last coefficient position is coded and decoded as a bypass coding bin (bypass_coding of last_sig_coeff_ ⁇ x,y ⁇ _suffix).
  • Method #2-3 For example, when the above-described method #2 is applied, as shown in the fifth row from the top of the table shown in FIG. CABAC bypass alignment processing may be performed immediately before (Method #2-3).
  • alignment processing in the encoding process may be performed immediately before encoding the first sub-block coefficient flag included in the image data.
  • the alignment process of the decoding process may be performed immediately before decoding the first sub-block coefficient flag included in the encoded data.
  • CABAC bypass alignment is performed (CABAC bypass alignment). That is, in the CABAC high-throughput mode, as shown in FIG. 22, CABAC bypass alignment processing is performed (Align) immediately before the processing of sb_coded_flag 401-1. CABAC bypass alignment is the process of adjusting the CABAC process. By performing this processing, it becomes possible to easily process a plurality of bypass-encoded bins in parallel.
  • this technology can be applied to encoding/decoding other than CABAC. Therefore, the CABAC bypass alignment in this case is also not limited to CABAC. In other words, this process may simply be a process (alignment process) for adjusting the encoding process (or decoding process).
  • Method #2-3-1 For example, when method #2-3 described above is applied, as shown in the sixth row from the top of the table shown in FIG. It may be set to 256 (Method #2-3-1).
  • the encoding unit may set the variable iVlCurrRange, which indicates the range in arithmetic encoding, to 256 in the alignment process.
  • the decoding unit may set a variable iVlCurrRange indicating the range in arithmetic coding to 256 in the alignment process.
  • the encoding/decoding of the last coefficient position is omitted.
  • of bypass-encoded bins can be easily processed in parallel. Therefore, it is possible to suppress an increase in the processing amount of encoding and decoding.
  • Method #2-3-2 For example, when method #2-3 described above is applied, as shown in the seventh row from the top of the table shown in FIG. may be set to 0 (Method #2-3-2).
  • the encoding unit may further set the generated amount of the number of context encoding bins to 0 immediately before encoding the first sub-block coefficient flag.
  • the decoding unit may further set the generated amount of the number of context coding bins to 0 immediately before decoding the first sub-block coefficient flag.
  • the encoding/decoding of the last coefficient position is omitted. can be treated as bypass-encoded bins. Therefore, the amount of context coding bins generated can be reduced, and an increase in the processing amount of coding and decoding can be suppressed.
  • Method #2-3-3 For example, when method #2-3 described above is applied, in the case of non-CABAC high-throughput mode, as shown at the bottom of the table shown in FIG. Based on the size, the amount of occurrence of the number of context coding bins may be derived (Method #2-3-3).
  • the encoding unit if the encoding unit is not in the high throughput mode, immediately before encoding the first sub-block coefficient flag, context encoding is performed based on the reference value for the number of context encoding bins and the transform block size. Bin number generation may be derived. Further, in the image processing device, if the decoding unit is not in the high-throughput mode, immediately before decoding the first sub-block coefficient flag, the number of context-encoding bins is determined based on the reference value of the number of context-encoding bins and the transform block size. may be derived.
  • the prefix part of the last coefficient position can be processed as a context coding bin when not in high-throughput mode.
  • Non-TS residual coding section 213 may apply any of the methods described above with reference to FIG. 20 and the like to code (RRC) the quantized coefficients.
  • FIG. 25 is a block diagram showing a main configuration example of the non-TS residual encoding section 213 in this case. Note that FIG. 25 shows main components such as processing units and data flow, and the components shown in FIG. 25 are not necessarily all. That is, the Non-TS residual encoding unit 213 may have processing units not shown as blocks in FIG. Also, the non-TS residual encoding unit 213 may have processes and data flows not indicated by arrows or the like in FIG.
  • the non-TS residual coding unit 213 also has a setting unit 231, a last coefficient position coding unit 232, and a sub-block coding unit 233 in this case as well.
  • the setting unit 231 performs processing related to parameter setting. For example, the setting unit 231 may acquire the reference value (ctxBinSampleRatioBase) of the number of context encoding bins. Also, the setting unit 231 may acquire the transform block size (TbWidth and TbHeight). The setting unit 231 may also acquire flag information (sps_high_throughput_flag) indicating whether or not the CABAC high throughput mode is applied.
  • the reference value ctxBinSampleRatioBase
  • TbWidth and TbHeight transform block size
  • the setting unit 231 may also acquire flag information (sps_high_throughput_flag) indicating whether or not the CABAC high throughput mode is applied.
  • the setting unit 231 may apply method #2-3 described above and perform CABAC bypass alignment processing immediately before encoding the first sub-block coefficient flag.
  • the setting unit 231 may, for example, apply method #2-3-1 described above and set the parameter iVlCurrRange to 256 in the CABAC bypass alignment process.
  • the setting unit 231 may apply the method #2-3-2 described above and further set the amount of occurrence of the number of context-encoding bins (remCcbs) to zero.
  • the setting unit 231 applies method #2-3-3 described above, and based on the reference value of the number of context encoding bins (ctxBinSampleRatioBase) and the transform block size (TbWidth, TbHeight) , may derive the amount of occurrence of the number of context coding bins (remCcbs). For example, the setting unit 231 may derive remCcbs using Equation (1) described above.
  • the setting unit 231 may supply the set remCcbs to the last coefficient position encoding unit 232 . Also, the setting unit 231 may supply the set iVlCurrRange to the last coefficient position encoding unit 232 when CABAC bypass alignment processing is performed.
  • the last coefficient position coding unit 232 performs processing related to coding of the last coefficient position. For example, the last coefficient position encoding unit 232 may acquire sps_high_throughput_flag. Also, the last coefficient position encoding unit 232 may acquire a quantized coefficient.
  • the last coefficient position encoding unit 232 encodes the last coefficient position prefix part (last_sig_coeff_ ⁇ x, y ⁇ _prefix) and the suffix part (last_sig_coeff_ ⁇ x,y ⁇ _suffix) may be set.
  • the last coefficient position encoding unit 232 sets the prefix (last_sig_coeff_ ⁇ x,y ⁇ _prefix) and suffix (last_sig_coeff_ ⁇ x,y ⁇ _suffix) of the last coefficient position to 0, respectively. can be set to
  • the last coefficient position encoding unit 232 may skip (omit) encoding of the last coefficient position when method #2 described above is applied and sps_high_throughput_flag is true.
  • the last coefficient position encoding unit 232 may apply the method #2-1 described above and set the last coefficient position to the lower right coordinate in the transform block.
  • the last coefficient position encoding unit 232 may apply method #2-2 described above and encode the last coefficient position when sps_high_throughput_flag is false.
  • last coefficient position encoding section 232 applies method #2-2-1 described above, context-encodes the prefix portion of the last coefficient position, and bypass-encodes the suffix portion of the last coefficient position. good.
  • the last coefficient position encoding unit 232 uses the encoding bin corresponding to the prefix part and the encoding bin corresponding to the suffix part of the generated last coefficient position as a bit stream. 200 may be output to the outside. Also, the last coefficient position encoding unit 232 may supply remCcbs to the sub-block encoding unit 233 . Also, the last coefficient position encoding unit 232 may supply the last coefficient position (LastSignificantCoef ⁇ X, Y ⁇ ) to the sub-block encoding unit 233 .
  • the sub-block coding unit 233 performs processing related to coding of coefficients and the like for each sub-block. For example, the sub-block encoding unit 233 may acquire quantized coefficients. Also, the sub-block encoding unit 233 may acquire remCcbs supplied from the setting unit 231 . Also, the sub-block encoding unit 233 may acquire iVlCurrRange supplied from the setting unit 231 . Also, the sub-block coding unit 233 may acquire the last coefficient position (LastSignificantCoef ⁇ X, Y ⁇ ) supplied from the last coefficient position coding unit 232 .
  • the last coefficient position LastSignificantCoef ⁇ X, Y ⁇
  • the sub-block coding unit 233 uses information supplied from the setting unit 231 and the last coefficient position coding unit 232 to encode sub-block coefficient flags (sb_coded_flag) and quantization coefficients for each sub-block. good too.
  • the sub-block coding unit 233 may code sub-block coefficient flags (sb_coded_flag) and quantization coefficients as bypass coding bins.
  • the sub-block encoding unit 233 encodes a bypass-encoded bin group for each sub-block (sub-block coefficient flag (sb_coded_flag) and bypass-encoded bins of quantization coefficients) generated by such encoding as a bitstream. may be output to the outside of the conversion device 200 .
  • the encoding device 200 can achieve ⁇ 4. Skipping of encoding/decoding of last coefficient position> can be applied. That is, the encoding apparatus 200 performs ⁇ 4. Skipping of encoding/decoding of last coefficient position>, the same effect as the effect of each method described above can be obtained. Therefore, the encoding apparatus 200 can reduce the amount of context encoding bins generated, and can suppress an increase in the processing amount of encoding and decoding. For example, the encoding apparatus 200 can reduce the amount of CABAC processing in high bit depth/high bit rate encoding and improve throughput.
  • Non-TS residual coding process flow An example of the flow of the Non-TS residual encoding process in this case (the process executed in step S104 (FIG. 14) of the encoding process in this case) will be described with reference to the flowchart of FIG. .
  • the setting unit 231 of the Non-TS residual encoding unit 213 determines in step S301 whether or not the CABAC high throughput mode is set.
  • step S302 the last coefficient position encoding unit 232 applies method #2-1 described above to set the last coefficient position to the lower right coordinate in the transform block.
  • step S303 the last coefficient position encoding unit 232 applies method #2 described above, and skips (omits) encoding of the last coefficient position. Also, the last coefficient position encoding unit 232 sets the prefix part (last_sig_coeff_ ⁇ x,y ⁇ _prefix) and the suffix part (last_sig_coeff_ ⁇ x,y ⁇ _suffix) of the last coefficient position to 0, respectively.
  • step S304 the setting unit 231 applies the method #2-3-2 described above and sets the amount of occurrence of the number of context coding bins (remCcbs) to 0. By this, bypass encoding is selected in subsequent encoding.
  • step S305 the setting unit 231 applies the method #2-3 described above to perform CABAC bypass alignment.
  • the setting unit 231 may set the parameter iVlCurrRange to 256 by applying method #2-3-1 described above. This simplifies the encoding of the bypass-encoded bins and allows parallel processing of multiple bypass-encoded bins.
  • step S310 the processing proceeds to step S310.
  • step S301 determines whether sps_high_throughput_flag is false (that is, non-CABAC high throughput mode).
  • step S306 the last coefficient position encoding unit 232 converts the last coefficient position prefix part (last_sig_coeff_ ⁇ x,y ⁇ _prefix) and Set the suffix part (last_sig_coeff_ ⁇ x,y ⁇ _suffix).
  • the last coefficient position encoding unit 232 applies method #2-2 described above to encode the prefix and suffix parts of the last coefficient position.
  • the last coefficient position encoding unit 232 applies the method #2-2-1 described above, and in step S307, encodes the last coefficient position prefix (last_sig_coeff_ ⁇ x,y ⁇ _prefix) as a context encoding bin.
  • the suffix part of the last coefficient position is encoded as a bypass code bin.
  • step S309 the setting unit 231 applies method #2-3-3 described above, and based on the reference value of the number of context encoding bins (ctxBinSampleRatioBase) and the transform block size (TbWidth, TbHeight), the context encoding bin Derive the number of occurrences (remCcbs).
  • the process of step S309 ends, the process proceeds to step S310.
  • step S310 the sub-block encoding unit 233 encodes coefficients and the like for each sub-block.
  • the encoding device 200 can perform ⁇ 4. Skipping of encoding/decoding of last coefficient position> can be applied. That is, the encoding apparatus 200 performs ⁇ 4. Skipping of encoding/decoding of last coefficient position>, the same effect as the effect of each method described above can be obtained. Therefore, the encoding apparatus 200 can reduce the amount of context encoding bins generated, and can suppress an increase in the processing amount of encoding and decoding. For example, the encoding apparatus 200 can reduce the amount of CABAC processing in high bit depth/high bit rate encoding and improve throughput.
  • the present technology can be applied to the decoding device 300 (FIG. 16).
  • the Non-TS residual decoding unit 313 may apply any of the methods described above with reference to FIG. 20 and the like to decode (RRC) the bitstream.
  • FIG. 27 is a block diagram showing a main configuration example of the Non-TS residual decoding section 313 in this case. Note that FIG. 27 shows main components such as the processing units and data flow, and the components shown in FIG. 27 are not necessarily all. That is, the Non-TS residual decoding unit 313 may have processing units not shown as blocks in FIG. Also, the non-TS residual decoding unit 313 may have processes and data flows not indicated by arrows or the like in FIG.
  • the Non-TS residual decoding unit 313 also has a setting unit 331, a last coefficient position decoding unit 332, and a sub-block decoding unit 333 in this case as well.
  • the setting unit 331 performs processing related to parameter setting. For example, the setting unit 331 may acquire ctxBinSampleRatioBase. Also, the setting unit 331 may acquire TbWidth and TbHeight. Also, the setting unit 331 may acquire sps_high_throughput_flag.
  • the setting unit 331 may apply method #2-3 described above and perform CABAC bypass alignment processing immediately before decoding the first sub-block coefficient flag. In that case, for example, the setting unit 331 may apply method #2-3-1 described above and set the parameter iVlCurrRange to 256 in the CABAC bypass alignment process. Also, the setting unit 331 may apply the method #2-3-2 described above and further set the amount of occurrence of the number of context-encoding bins (remCcbs) to zero.
  • setting unit 331 applies method #2-3-3 described above, and based on the reference value of the number of context-encoding bins (ctxBinSampleRatioBase) and the transform block size (TbWidth, TbHeight) , may derive the amount of occurrence of the number of context coding bins (remCcbs). For example, the setting unit 331 may derive remCcbs using Equation (1) described above.
  • the setting unit 331 may supply remCcbs for which the value is set to the sub-block decoding unit 333. Also, the setting unit 331 may supply the set iVlCurrRange to the sub-block decoding unit 333 when CABAC bypass alignment processing is performed.
  • the last coefficient position decoding unit 332 performs processing related to decoding of the last coefficient position. For example, the last coefficient position decoding unit 332 may acquire sps_high_throughput_flag. Also, the last coefficient position decoding unit 332 may acquire a bitstream.
  • the last coefficient position decoding unit 332 may apply method #2 described above and skip decoding of the last coefficient position when sps_high_throughput_flag is true.
  • Last coefficient position decoding section 332 may then apply method #2-1 described above and set the last coefficient position to the lower right coordinate in the transform block.
  • the last coefficient position decoding unit 332 applies method #2-2 described above, and if sps_high_throughput_flag is false, the last coefficient position included in the bitstream (the encoding bin corresponding to the prefix part and the suffix part corresponding encoding bins) may be decoded.
  • the last coefficient position decoding unit 332 applies the method #2-2-1 described above, context-decodes the last coefficient position prefix (last_sig_coeff_ ⁇ x,y ⁇ _prefix) included in the bitstream, and decodes the last coefficient
  • the position suffix (last_sig_coeff_ ⁇ x,y ⁇ _suffix) may be bypass decoded.
  • the last coefficient position decoding unit 332 decodes the bitstream to obtain the last coefficient position prefix (last_sig_coeff_ ⁇ x,y ⁇ _prefix) and suffix (last_sig_coeff_ ⁇ x,y ⁇ _suffix), the last coefficient position in the X and Y directions (LastSignificantCoef ⁇ X, Y ⁇ ) may be set.
  • the last coefficient position decoding unit 332 may supply the last coefficient position (LastSignificantCoef ⁇ X, Y ⁇ ) to the sub-block decoding unit 333.
  • the sub-block decoding unit 333 performs processing related to decoding of coefficients and the like for each sub-block. For example, the sub-block decoding unit 333 may acquire a bitstream. Also, the sub-block decoding unit 333 may acquire remCcbs supplied from the setting unit 331 . Also, the sub-block decoding unit 333 may acquire iVlCurrRange supplied from the setting unit 331 . Also, the sub-block decoding unit 333 may acquire the last coefficient position (LastSignificantCoef ⁇ X, Y ⁇ ) supplied from the last coefficient position decoding unit 332 .
  • the sub-block decoding unit 333 decodes the bitstream using the information supplied from the setting unit 331 and the last coefficient position decoding unit 332, and sets the sub-block coefficient flag (sb_coded_flag) and the quantization coefficient for each sub-block. It may be generated (restored). For example, the sub-block decoding unit 333 may decode sub-block coefficient flags (sb_coded_flag) and quantization coefficients included in the bitstream as bypass coding bins.
  • the sub-block decoding unit 333 may output the quantized coefficient for each sub-block generated (restored) by such decoding to the outside of the decoding device 300.
  • the decoding device 300 can achieve ⁇ 4. Skipping of encoding/decoding of last coefficient position> can be applied. That is, the decoding device 300 performs ⁇ 4. Skipping of encoding/decoding of last coefficient position>, the same effect as the effect of each method described above can be obtained. Therefore, the decoding device 300 can reduce the amount of context coding bins generated, and can suppress an increase in the processing amount of encoding and decoding. For example, the decoding device 300 can reduce the processing amount of CABAC in high bit depth/high bit rate decoding and improve throughput.
  • Non-TS residual decoding process flow An example of the flow of the Non-TS residual decoding process in this case (the process executed in step S204 (FIG. 18) of the decoding process in this case) will be described with reference to the flowchart of FIG.
  • the last coefficient position decoding unit 332 of the Non-TS residual decoding unit 313 determines in step S331 whether or not it is the CABAC high throughput mode.
  • step S332 the last coefficient position decoding unit 332 applies method #2 described above and skips (omits) the decoding of the last coefficient position. This makes it possible to reduce the amount of context coding bins generated. Furthermore, last coefficient position decoding section 332 applies method #2-1 described above to set the last coefficient position to the lower right coordinate in the transform block. This makes it possible to reduce the number of bins required for encoding the last coefficient while suppressing the impact on the encoding efficiency.
  • step S333 the setting unit 331 applies the method #2-3-2 described above and sets the amount of occurrence of the number of context coding bins (remCcbs) to 0. As a result, bypass decoding is selected in subsequent decoding.
  • step S334 the setting unit 331 applies the method #2-3 described above to perform CABAC bypass alignment.
  • the setting unit 331 may apply the method #2-3-1 described above and set the parameter iVlCurrRange to 256. This simplifies the decoding of the bypass-encoded bins and also allows parallel processing of multiple bypass-encoded bins.
  • step S334 ends, the process proceeds to step S339.
  • step S331 determines whether sps_high_throughput_flag is false (that is, non-CABAC high throughput mode).
  • step S335 and S336 the last coefficient position decoding unit 332 applies method #2-2 described above to decode the prefix and suffix parts of the last coefficient position included in the bitstream.
  • the last coefficient position decoding unit 332 applies method #2-2-1 described above, and in step S335, converts the last coefficient position prefix (last_sig_coeff_ ⁇ x,y ⁇ _prefix) included in the bitstream to a context code.
  • step S336 the suffix part (last_sig_coeff_ ⁇ x,y ⁇ _suffix) of the last coefficient position included in the bitstream is decoded as a bypass coding bin.
  • step S337 the last coefficient position decoding unit 332 decodes the prefix (last_sig_coeff_ ⁇ x,y ⁇ _prefix) of the last coefficient position obtained by the process of step S335 and the suffix of the last coefficient position obtained by the process of step S336.
  • step S338 the setting unit 331 applies method #2-3-3 described above, and based on the reference value of the number of context encoding bins (ctxBinSampleRatioBase) and the transform block sizes (TbWidth, TbHeight), the context encoding bin Derive the number of occurrences (remCcbs).
  • the process of step S338 ends, the process proceeds to step S339.
  • step S339 the sub-block decoding unit 333 decodes the bitstream and generates (restores) sub-block coefficient flags (sb_coded_flag) and quantization coefficients for each sub-block.
  • the sub-block decoding unit 333 may decode sub-block coefficient flags (sb_coded_flag) and quantization coefficients included in the bitstream as bypass coding bins.
  • the decoding device 300 can achieve ⁇ 4. Skipping of encoding/decoding of last coefficient position> can be applied. That is, the decoding device 300 performs ⁇ 4. Skipping of encoding/decoding of last coefficient position>, the same effect as the effect of each method described above can be obtained. Therefore, the decoding device 300 can reduce the amount of context coding bins generated, and can suppress an increase in the processing amount of encoding and decoding. For example, the decoding device 300 can reduce the processing amount of CABAC in high bit depth/high bit rate decoding and improve throughput.
  • FIG. 29 is a block diagram showing an example of a 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 500 shown in FIG. 29 is a device that encodes image data of a moving image.
  • the image encoding device 500 can encode image data of a moving image using the encoding method described in any of the non-patent documents mentioned above.
  • FIG. 29 shows main components such as processing units (blocks) and data flow, and what is shown in FIG. 29 is not necessarily all. That is, the image encoding device 500 may have processing units not shown as blocks in FIG. Also, the image encoding device 500 may have processes and data flows not indicated by arrows or the like in FIG.
  • the image encoding device 500 includes a control unit 501, a rearrangement buffer 511, a calculation unit 512, an orthogonal transformation unit 513, a quantization unit 514, an encoding unit 515, an accumulation buffer 516, an inverse quantization unit 517 , an inverse orthogonal transform unit 518 , a calculation unit 519 , an in-loop filter unit 520 , a frame memory 521 , a prediction unit 522 and a rate control unit 523 .
  • the control unit 501 divides the moving image data held by the rearrangement buffer 511 into processing unit blocks (CU, PU, transform block, etc.) based on an external or pre-specified processing unit block size. .
  • the control unit 501 determines coding parameters (header information Hinfo, prediction mode information Pinfo, transformation information Tinfo, filter information Finfo, etc.) to be supplied to each block, for example, based on RDO (Rate-Distortion Optimization). do.
  • control unit 501 After determining the encoding parameters as described above, the control unit 501 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 515 and the prediction section 522 .
  • the transform information Tinfo is supplied to the encoding unit 515 , the orthogonal transform unit 513 , the quantization unit 514 , the inverse quantization unit 517 and the inverse orthogonal transform unit 518 .
  • the filter information Finfo is supplied to the in-loop filter section 520 .
  • Each field (input image) of moving image data is input to the image encoding device 500 in the order of reproduction (the order of display).
  • the rearrangement buffer 511 acquires and holds (stores) the input images in their reproduction order (display order). Under the control of the control unit 501, the rearrangement buffer 511 rearranges the input image in encoding order (decoding order), or divides the input image into processing unit blocks.
  • the rearrangement buffer 511 supplies each input image after processing to the calculation unit 512 .
  • the rearrangement buffer 511 also supplies each input image (original image) to the prediction unit 522 and the in-loop filter unit 520 .
  • the calculation unit 512 receives the image I corresponding to the block of the processing unit and the prediction image P supplied from the prediction unit 522, 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 513 .
  • the orthogonal transform unit 513 receives the prediction residual D supplied from the calculation unit 512 and the transform information Tinfo supplied from the control unit 501, 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 513 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 513 supplies the obtained secondary transform coefficients to the quantization unit 514 as transform coefficients Coeff.
  • the orthogonal transformation unit 513 is not limited to orthogonal transformation, and can perform arbitrary coefficient transformation. That is, the transform coefficient Coeff may be derived by subjecting the prediction residual D to any coefficient transform. Therefore, the orthogonal transform section 513 can also be said to be a coefficient transform section.
  • the quantization unit 514 receives the transform coefficient Coeff supplied from the orthogonal transform unit 513 and the transform information Tinfo supplied from the control unit 501, 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 523 .
  • the quantization section 514 supplies the quantization coefficient qcoeff, which is the level value of the transform coefficient quantized in this way, to the encoding section 515 and the inverse quantization section 517 .
  • the encoding unit 515 receives the quantization coefficient qcoeff supplied from the quantization unit 514 and various encoding parameters supplied from the control unit 501 (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 520 and information on the optimum prediction mode supplied from the prediction unit 522 are input.
  • the encoding unit 515 performs variable length encoding (for example, arithmetic encoding) on the quantized coefficient qcoeff to generate a bit string (encoded data).
  • the encoding unit 515 includes information about the filter supplied from the in-loop filter unit 520 in the filter information Finfo, and includes information about the optimum prediction mode supplied from the prediction unit 522 in the prediction mode information Pinfo. Then, the encoding unit 515 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 515 multiplexes the bit strings (encoded data) of various information generated as described above to generate a bit stream of the encoded data.
  • the encoder 515 supplies the bitstream to the accumulation buffer 516 .
  • the accumulation buffer 516 temporarily holds the bitstream of the encoded data obtained by the encoding unit 515 .
  • the accumulation buffer 516 outputs the bitstream of the encoded data it holds to the outside of the image encoding device 500 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 516 is also a transmission unit that transmits a bitstream (encoded data).
  • the inverse quantization unit 517 performs processing related to inverse quantization. For example, the inverse quantization unit 517 receives the quantization coefficient qcoeff supplied from the quantization unit 514 and the transform information Tinfo supplied from the control unit 501, and calculates the quantization coefficient qcoeff based on the transform information Tinfo. Scale (inverse quantize) the value of . Note that this inverse quantization is inverse processing of the quantization performed in the quantization section 514 . The inverse quantization unit 517 supplies the transform coefficient Coeff_IQ obtained by such inverse quantization to the inverse orthogonal transform unit 518 .
  • the inverse orthogonal transform unit 518 performs processing related to inverse orthogonal transform. For example, the inverse orthogonal transform unit 518 receives the transform coefficient Coeff_IQ supplied from the inverse quantization unit 517 and the transform information Tinfo supplied from the control unit 501, 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 513 . The inverse orthogonal transformation unit 518 supplies the prediction residual D′ obtained by such inverse orthogonal transformation to the calculation unit 519 .
  • the inverse orthogonal transformation unit 518 performs the inverse processing of the processing performed by the orthogonal transformation unit 513 . That is, as in the case of the orthogonal transform section 513, the inverse orthogonal transform section 518 can perform any inverse coefficient transform, not limited to the inverse orthogonal transform.
  • This inverse coefficient transform is inverse processing of the coefficient transform executed by the orthogonal transform unit 513 . 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 518 can also be said to be an inverse coefficient transform unit.
  • the calculation unit 519 receives the prediction residual D′ supplied from the inverse orthogonal transform unit 518 and the predicted image P supplied from the prediction unit 522 .
  • the calculation unit 519 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 519 supplies the derived local decoded image Rlocal to the in-loop filter unit 520 and the frame memory 521 .
  • the in-loop filter unit 520 performs processing related to in-loop filtering.
  • the in-loop filter unit 520 converts the local decoded image Rlocal supplied from the calculation unit 519, the filter information Finfo supplied from the control unit 501, and the input image (original image) supplied from the rearrangement buffer 511 into Input.
  • the information input to the in-loop filter unit 520 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 520. good.
  • the in-loop filter unit 520 appropriately performs filtering on the local decoded image Rlocal based on the filter information Finfo.
  • the in-loop filter unit 520 also uses the input image (original image) and other input information for the filtering process as necessary.
  • the in-loop filter unit 520 includes a bilateral filter, a deblocking filter (DBF (DeBlocking Filter)), an adaptive offset filter (SAO (Sample Adaptive Offset)), and an adaptive loop filter (ALF (Adaptive Loop Filter)). Apply two in-loop filters in this order. 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 520 is arbitrary and is not limited to the above example.
  • the in-loop filter unit 520 may apply a Wiener filter or the like.
  • the in-loop filter unit 520 supplies the filtered locally decoded image Rlocal to the frame memory 521 .
  • the in-loop filter section 520 supplies the filter-related information to the encoding section 515 .
  • the frame memory 521 performs processing related to storage of data regarding images. For example, the frame memory 521 receives the local decoded image Rlocal supplied from the calculation unit 519 and the filtered local decoded image Rlocal supplied from the in-loop filter unit 520, and holds (stores) them. Also, the frame memory 521 reconstructs the decoded image R for each picture using the local decoded image Rlocal and holds it (stores it in the buffer in the frame memory 521). The frame memory 521 supplies the decoded image R (or part thereof) to the prediction section 522 in response to a request from the prediction section 522 .
  • the prediction unit 522 performs processing related to prediction image generation.
  • the prediction unit 522 uses prediction mode information Pinfo supplied from the control unit 501, an input image (original image) supplied from the rearrangement buffer 511, and a decoded image R (or part thereof) read from the frame memory 521. is input.
  • the prediction unit 522 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 522 supplies the generated predicted image P to the calculation units 512 and 519 .
  • the prediction unit 522 supplies the prediction mode selected by the above process, that is, information about the optimum prediction mode to the encoding unit 515 as necessary.
  • the rate control unit 523 performs processing related to rate control. For example, the rate control unit 523 controls the quantization operation rate of the quantization unit 514 based on the code amount of the encoded data accumulated in the accumulation buffer 516 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.
  • the present technology described above may be applied to the encoding unit 515 in the image encoding device 500 configured as described above.
  • Bypass Encoding/Bypass Decoding of Last Coefficient Position> may be applied. For example, if the encoding unit 515 applies method #1 in encoding the quantized coefficient qcoeff, and sps_high_throughput_flag is true, the prefix part of the last coefficient position (last_sig_coeff_ ⁇ x,y ⁇ _prefix) as the bypass code bin. may be encoded. Similarly, the encoding unit 515 performs ⁇ 3. Bypass Encoding/Bypass Decoding of Last Coefficient Position> can be applied. By doing so, the image encoding device 500 can achieve ⁇ 3.
  • the image coding apparatus 500 can reduce the amount of context coding bins generated, and can suppress an increase in the processing amount of coding and decoding.
  • the image encoding device 500 can reduce the processing amount of CABAC in encoding high bit depth and high bit rate image data, and improve throughput.
  • Skipping encoding/decoding of last coefficient position> may be applied. For example, if the encoding unit 515 applies method #2 in encoding the quantized coefficient qcoeff and sps_high_throughput_flag is true, encoding of the last coefficient position may be skipped (omitted). Similarly, the encoding unit 515 performs ⁇ 4. Skipping of encoding/decoding of last coefficient position> can be applied. By doing so, the image encoding device 500 can achieve ⁇ 4. Skipping of encoding/decoding of last coefficient position>, the same effect as the effect of each method described above can be obtained.
  • the image coding apparatus 500 can reduce the amount of context coding bins generated, and can suppress an increase in the processing amount of coding and decoding.
  • the image encoding device 500 can reduce the processing amount of CABAC in encoding high bit depth and high bit rate image data, and improve throughput.
  • step S501 the rearrangement buffer 511 is controlled by the control unit 501 to rearrange the frames of the input moving image data from the display order to the encoding order.
  • step S502 the control unit 501 sets a processing unit for the input image held by the rearrangement buffer 511 (divides into blocks).
  • step S ⁇ b>503 the control unit 501 determines (sets) encoding parameters for the input image held by the rearrangement buffer 511 .
  • step S504 the prediction unit 522 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 522 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 S505 the calculation unit 512 calculates the difference between the input image and the prediction image of the optimum mode selected by the prediction processing in step S504. That is, the calculation unit 512 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 S506 the orthogonal transform unit 513 performs orthogonal transform processing on the prediction residual D generated by the processing in step S505 to derive the transform coefficient Coeff.
  • step S507 the quantization unit 514 quantizes the transform coefficient Coeff obtained by the processing in step S506 by using the quantization parameter calculated by the control unit 501, and derives the quantization coefficient qcoeff.
  • step S508 the inverse quantization unit 517 inversely quantizes the quantized coefficient qcoeff generated by the processing in step S507 with the characteristic corresponding to the quantization characteristic in step S507, and derives the transform coefficient Coeff_IQ.
  • step S509 the inverse orthogonal transform unit 518 inverse orthogonally transforms the transform coefficient Coeff_IQ obtained by the process of step S508 by a method corresponding to the orthogonal transform process of step S506, and derives the prediction residual D'.
  • step S510 the calculation unit 519 adds the predicted image obtained by the prediction processing in step S504 to the prediction residual D′ derived by the processing in step S509, thereby obtaining a locally decoded decoded image. Generate.
  • step S511 the in-loop filtering unit 520 performs in-loop filtering on the locally decoded decoded image derived by the processing in step S510.
  • step S512 the frame memory 521 stores the locally decoded decoded image derived by the process of step S510 and the locally decoded decoded image filtered in step S511.
  • step S513 the encoding unit 515 executes encoding processing, encodes the quantization coefficient qcoeff and various encoding parameters obtained by the processing in step S507, and generates a bitstream of encoded data.
  • step S514 the accumulation buffer 516 accumulates the bitstream obtained in step S513 and outputs it to the outside of the image encoding device 500.
  • This bitstream is transmitted to the decoding side via, for example, a transmission path or a recording medium.
  • the rate control unit 523 performs rate control as necessary.
  • step S514 ends, the image encoding process ends.
  • the present technology described above may be applied to the encoding process executed in step S513 of such image encoding process.
  • Bypass Encoding/Bypass Decoding of Last Coefficient Position> may be applied.
  • the encoding unit 515 applies method #1 in encoding the quantized coefficient qcoeff, and sps_high_throughput_flag is true, the prefix part of the last coefficient position (last_sig_coeff_ ⁇ x,y ⁇ _prefix) as the bypass code bin. may be encoded.
  • the encoding unit 515 performs ⁇ 3.
  • Bypass Encoding/Bypass Decoding of Last Coefficient Position> can be applied. By doing so, the image encoding device 500 can achieve ⁇ 3.
  • the image coding apparatus 500 can reduce the amount of context coding bins generated, and can suppress an increase in the processing amount of coding and decoding.
  • the image encoding device 500 can reduce the processing amount of CABAC in encoding high bit depth and high bit rate image data, and improve throughput.
  • Skipping encoding/decoding of last coefficient position> may be applied. For example, if the encoding unit 515 applies method #2 in encoding the quantized coefficient qcoeff and sps_high_throughput_flag is true, encoding of the last coefficient position may be skipped (omitted). Similarly, the encoding unit 515 performs ⁇ 4. Skipping of encoding/decoding of last coefficient position> can be applied. By doing so, the image encoding device 500 can achieve ⁇ 4. Skipping of encoding/decoding of last coefficient position>, the same effect as the effect of each method described above can be obtained.
  • the image coding apparatus 500 can reduce the amount of context coding bins generated, and can suppress an increase in the processing amount of coding and decoding.
  • the image encoding device 500 can reduce the processing amount of CABAC in encoding high bit depth and high bit rate image data, and improve throughput.
  • FIG. 31 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 600 shown in FIG. 31 is a device that generates moving image data by decoding coded data (bitstream) of moving images.
  • the image decoding device 600 can decode the encoded data using the decoding method described in any of the above non-patent documents.
  • FIG. 31 shows main components such as processing units (blocks) and data flow, and what is shown in FIG. 31 is not necessarily all. That is, the image decoding device 600 may have processing units not shown as blocks in FIG. Also, the image decoding device 600 may have processes and data flows not indicated by arrows or the like in FIG.
  • the image decoding device 600 includes an accumulation buffer 611, a decoding unit 612, an inverse quantization unit 613, an inverse orthogonal transform unit 614, an arithmetic unit 615, an in-loop filter unit 616, a rearrangement buffer 617, a frame memory 618 and a prediction unit 619 .
  • the prediction unit 619 includes an intra prediction unit, an inter prediction unit, and the like (not shown).
  • the accumulation buffer 611 acquires and holds (stores) the bitstream input to the image decoding device 600 .
  • the accumulation buffer 611 supplies the accumulated bitstream to the decoding unit 612 at predetermined timing or when predetermined conditions are met.
  • the decoding unit 612 performs processing related to image decoding. For example, the decoding unit 612 receives as input the bit stream supplied from the accumulation buffer 611, and according to the definition of the syntax table, variable-length decodes the syntax value of each syntax element from the bit string, 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, transform information Tinfo, and filter information Finfo. That is, the decoding unit 612 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 612 derives the quantization coefficient qcoeff by referring to the syntax regarding the quantization coefficient qcoeff obtained by decoding the bitstream.
  • the decoding unit 612 supplies the quantized coefficient qcoeff to the inverse quantization unit 613 .
  • the decoding unit 612 supplies encoding parameters such as parsed header information Hinfo, prediction mode information Pinfo, transformation information Tinfo, and filter information Finfo to each block.
  • the decoding unit 612 supplies the header information Hinfo to the inverse quantization unit 613 , the inverse orthogonal transform unit 614 , the prediction unit 619 and the in-loop filter unit 616 .
  • the decoding unit 612 also supplies the prediction mode information Pinfo to the inverse quantization unit 613 and the prediction unit 619 .
  • the decoding unit 612 also supplies the transform information Tinfo to the inverse quantization unit 613 and the inverse orthogonal transform unit 614 .
  • the decoding unit 612 also supplies the filter information Finfo to the in-loop filter unit 616 .
  • each encoding parameter may be supplied to any processing unit.
  • other information may be supplied to any processing unit.
  • the inverse quantization unit 613 has at least a configuration necessary for performing processing related to inverse quantization. For example, the inverse quantization unit 613 receives the transformation information Tinfo and the quantization coefficient qcoeff supplied from the decoding unit 612, and scales (dequantizes) the value of the quantization coefficient qcoeff based on the transformation information Tinfo. , to derive the transform coefficients Coeff_IQ after inverse quantization. The inverse quantization unit 613 supplies the derived transform coefficient Coeff_IQ to the inverse orthogonal transform unit 614 .
  • this inverse quantization is performed as an inverse process of quantization by the quantization unit 514 of the image encoding device 500 . Also, this inverse quantization is the same processing as the inverse quantization by the inverse quantization unit 517 of the image encoding device 500 . That is, the inverse quantization unit 517 of the image encoding device 500 performs the same processing (inverse quantization) as the inverse quantization unit 613 does.
  • the inverse orthogonal transform unit 614 performs processing related to inverse orthogonal transform. For example, the inverse orthogonal transform unit 614 receives the transform coefficient Coeff_IQ supplied from the inverse quantization unit 613 and the transform information Tinfo supplied from the decoding unit 612, 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 614 performs inverse secondary transform on the 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 614 supplies the derived prediction residual D′ to the calculation unit 615 .
  • this inverse orthogonal transformation is performed as inverse processing of the orthogonal transformation by the orthogonal transformation unit 513 of the image encoding device 500 .
  • this inverse orthogonal transform is the same process as the inverse orthogonal transform by the inverse orthogonal transform unit 518 of the image encoding device 500 . That is, the inverse orthogonal transform unit 518 of the image encoding device 500 performs the same processing (inverse orthogonal transform) as the inverse orthogonal transform unit 614 does.
  • the inverse orthogonal transform unit 614 can perform arbitrary inverse coefficient transforms, not limited to inverse orthogonal transforms, like the inverse orthogonal transform unit 518 of the image encoding device 500 .
  • This inverse coefficient transform is inverse processing of the coefficient transform executed by the orthogonal transform unit 513 of the image encoding device 500 . 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 614 can also be said to be an inverse coefficient transform section.
  • the calculation unit 615 performs processing related to addition of information regarding images. For example, the calculation unit 615 receives the prediction residual D′ supplied from the inverse orthogonal transformation unit 614 and the prediction image P supplied from the prediction unit 619 . The calculation unit 615 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 615 supplies the derived local decoded image Rlocal to the in-loop filter unit 616 and the frame memory 618 .
  • the in-loop filter unit 616 performs processing related to in-loop filtering. For example, the in-loop filter unit 616 receives the locally decoded image Rlocal supplied from the calculation unit 615 and the filter information Finfo supplied from the decoding unit 612 .
  • the information input to the in-loop filter unit 616 is arbitrary, and information other than these information may be input.
  • the in-loop filter unit 616 appropriately performs filtering on the local decoded image Rlocal based on the filter information Finfo.
  • the in-loop filter unit 616 includes a bilateral filter, a deblocking filter (DBF (DeBlocking Filter)), an adaptive offset filter (SAO (Sample Adaptive Offset)), and an adaptive loop filter (ALF (Adaptive Loop Filter)). Apply two in-loop filters in this order. 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 616 performs filter processing corresponding to the filter processing performed by the encoding side (for example, the in-loop filter unit 520 of the image encoding device 500).
  • the filtering process performed by the in-loop filtering unit 616 is arbitrary and is not limited to the above example.
  • the in-loop filter unit 616 may apply a Wiener filter or the like.
  • the in-loop filter unit 616 supplies the filtered locally decoded image Rlocal to the rearrangement buffer 617 and the frame memory 618 .
  • the rearrangement buffer 617 receives the local decoded image Rlocal supplied from the in-loop filter unit 616 and holds (stores) it.
  • the rearrangement buffer 617 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 617 rearranges the obtained decoded images R from decoding order to reproduction order.
  • the rearrangement buffer 617 outputs the rearranged R group of decoded images to the outside of the image decoding device 600 as moving image data.
  • a frame memory 618 performs processing related to storage of data relating to images. For example, the frame memory 618 receives the local decoded image Rlocal supplied from the calculation unit 615, reconstructs the decoded image R for each picture, and stores the reconstructed image in the buffer within the frame memory 618.
  • FIG. 1 A frame memory 618 performs processing related to storage of data relating to images. For example, the frame memory 618 receives the local decoded image Rlocal supplied from the calculation unit 615, reconstructs the decoded image R for each picture, and stores the reconstructed image in the buffer within the frame memory 618.
  • the frame memory 618 receives the in-loop filtered local decoded image Rlocal supplied from the in-loop filter unit 616, reconstructs the decoded image R for each picture, and stores it in the buffer in the frame memory 618. store to The frame memory 618 appropriately supplies the stored decoded image R (or part thereof) to the prediction unit 619 as a reference image.
  • the frame memory 618 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 619 performs processing related to prediction image generation. For example, the prediction unit 619 receives the prediction mode information Pinfo supplied from the decoding unit 612, performs prediction according to the prediction method specified by the prediction mode information Pinfo, and derives the prediction image P. In the derivation, the prediction unit 619 uses the pre-filter or post-filter decoded image R (or part thereof) stored in the frame memory 618 specified by the prediction mode information Pinfo as a reference image. The prediction unit 619 supplies the derived prediction image P to the calculation unit 615 .
  • 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.
  • the present technology described above may be applied to the decoding unit 612 .
  • Bypass Encoding/Bypass Decoding of Last Coefficient Position> may be applied. For example, if the decoding unit 612 applies method #1 in decoding the bitstream and sps_high_throughput_flag is true, the prefix part of the last coefficient position (last_sig_coeff_ ⁇ x,y ⁇ _prefix) included in the bitstream is transferred to the bypass code bin. can be decoded as Similarly, the decoding unit 612 performs ⁇ 3. Bypass Encoding/Bypass Decoding of Last Coefficient Position> can be applied. By doing so, the image decoding device 600 satisfies ⁇ 3.
  • the image decoding device 600 can reduce the amount of context coding bins generated, and can suppress an increase in the processing amount of encoding and decoding. For example, the image decoding device 600 can reduce the processing amount of CABAC in decoding high bit depth/high bit rate image data and improve throughput.
  • Skipping encoding/decoding of last coefficient position> may be applied. For example, if the decoding unit 612 applies method #2 in decoding the bitstream and sps_high_throughput_flag is true, decoding of the last coefficient position may be skipped (omitted). Similarly, the decoding unit 612 performs ⁇ 4. Skipping of encoding/decoding of last coefficient position> can be applied. By doing so, the image decoding device 600 satisfies ⁇ 4. Skipping of encoding/decoding of last coefficient position>, the same effect as the effect of each method described above can be obtained.
  • the image decoding device 600 can reduce the amount of context coding bins generated, and can suppress an increase in the processing amount of encoding and decoding. For example, the image decoding device 600 can reduce the processing amount of CABAC in decoding high bit depth/high bit rate image data and improve throughput.
  • the accumulation buffer 611 acquires and holds (accumulates) encoded data (bitstream) supplied from the outside of the image decoding device 600 in step S601.
  • step S602 the decoding unit 612 performs decoding processing, decodes the encoded data (bitstream), and obtains the quantization coefficient qcoeff. Also, the decoding unit 612 parses (analyzes and acquires) various coding parameters from the coded data (bitstream) by this decoding.
  • step S603 the inverse quantization unit 613 performs inverse quantization, which is the inverse process of the quantization performed on the encoding side, on the quantized coefficient qcoeff obtained by the process of step S602, and converts the transform coefficient Coeff_IQ into get
  • step S604 the inverse orthogonal transform unit 614 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 S603, and predictive residual D ' get.
  • step S605 the prediction unit 619 executes prediction processing using a prediction method specified by the encoding side based on the information parsed in step S602, and refers to the reference image stored in the frame memory 618. to generate a predicted image P.
  • step S606 the calculation unit 615 adds the prediction residual D' obtained in step S604 and the prediction image P obtained in step S605 to derive the local decoded image Rlocal.
  • step S607 the in-loop filtering unit 616 performs in-loop filtering on the local decoded image Rlocal obtained by the processing in step S606.
  • step S608 the rearrangement buffer 617 derives the decoded image R using the filtered local decoded image Rlocal obtained by the process of step S607, 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 600 as a moving image.
  • step S609 the frame memory 618 stores at least one of the local decoded image Rlocal obtained by the process of step S606 and the filtered local decoded image Rlocal obtained by the process of step S607. .
  • step S609 ends, the image decoding process ends.
  • the above-described present technology may be applied to the encoding processing executed in step S602 of such image decoding processing.
  • Bypass Encoding/Bypass Decoding of Last Coefficient Position> may be applied.
  • the decoding unit 612 applies method #1 in decoding the bitstream and sps_high_throughput_flag is true, the prefix part of the last coefficient position (last_sig_coeff_ ⁇ x,y ⁇ _prefix) included in the bitstream is transferred to the bypass code bin. can be decoded as Similarly, the decoding unit 612 performs ⁇ 3.
  • Bypass Encoding/Bypass Decoding of Last Coefficient Position> can be applied. By doing so, the image decoding device 600 satisfies ⁇ 3.
  • the image decoding device 600 can reduce the amount of context coding bins generated, and can suppress an increase in the processing amount of encoding and decoding. For example, the image decoding device 600 can reduce the processing amount of CABAC in decoding high bit depth/high bit rate image data and improve throughput.
  • Skipping encoding/decoding of last coefficient position> may be applied. For example, if the decoding unit 612 applies method #1 in decoding the bitstream and sps_high_throughput_flag is true, decoding of the last coefficient position may be skipped (omitted). Similarly, the decoding unit 612 performs ⁇ 4. Skipping of encoding/decoding of last coefficient position> can be applied. By doing so, the image decoding device 600 satisfies ⁇ 4. Skipping of encoding/decoding of last coefficient position>, the same effect as the effect of each method described above can be obtained.
  • the image decoding device 600 can reduce the amount of context coding bins generated, and can suppress an increase in the processing amount of encoding and decoding. For example, the image decoding device 600 can reduce the processing amount of CABAC in decoding high bit depth/high bit rate image data and improve throughput.
  • 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. 33 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.
  • the present technology can also take the following configuration.
  • (1) In the case of high-throughput mode in which the context-encoding bin after the last-coefficient position of the image data is processed as the bypass-encoding bin, the prefix part of the last-coefficient position included in the image data is used as the bypass-encoding bin.
  • An image processing device comprising an encoding unit for encoding.
  • (2) The image processing device according to (1), wherein the encoding unit encodes the prefix part of the last coefficient position as a context encoding bin when not in the high throughput mode.
  • (3) The image processing device according to (1) or (2), wherein the encoding unit encodes the suffix part of the last coefficient position included in the image data as a bypass encoding bin.
  • the encoding unit generates the number of context-encoding bins based on a reference value for the number of context-encoding bins and a transform block size immediately before encoding the last coefficient position, when not in the high-throughput mode.
  • the image processing apparatus according to any one of (4) to (6), wherein the quantity is derived.
  • the prefix part of the last-coefficient position included in the image data is used as the bypass-encoding bin.
  • An image processing device comprising: a decoder that decodes as coded bins. (12) The image processing device according to (11), wherein the decoding unit decodes the prefix part of the last coefficient position as a context coding bin when not in the high throughput mode. (13) The image processing device according to (11) or (12), wherein the decoding unit decodes the suffix part of the last coefficient position included in the encoded data as a bypass encoding bin.
  • the decoding unit determines the amount of generated context-encoding bins.
  • the image processing device according to any one of (14) to (16). (18) bypassing the last coefficient position prefix part included in the encoded data of the image data in a high-throughput mode in which context encoding bins after the last coefficient position of the image data are processed as bypass encoding bins; An image processing method that decodes as encoding bins.
  • An encoding unit that skips encoding of the last coefficient position included in the image data in a high throughput mode in which the context encoding bin after the last coefficient position of the image data is processed as a bypass encoding bin.
  • An image processing device comprising: (22) The image processing device according to (21), wherein the encoding unit sets the last coefficient position to the lower right coordinate in the transform block. (23) The image processing device according to (21) or (22), wherein the encoding unit encodes a prefix part and a suffix part of the last coefficient position when the high throughput mode is not set.
  • An image processing apparatus comprising: a decoding unit that skips decoding of the last coefficient position in a high throughput mode in which context coding bins after the last coefficient position of image data are processed as bypass coding bins.
  • a decoding unit sets the last coefficient position to the lower right coordinate in the transform block.
  • the decoding unit decodes a prefix part and a suffix part of the last coefficient position when not in the high throughput mode.
  • the decoding unit decodes the prefix part as a context coding bin, and decodes the suffix part as a bypass coding bin.
  • the decoding unit performs alignment processing in the decoding process immediately before decoding the first sub-block coefficient flag included in the encoded data.
  • the image processing device according to 1. (36) The image processing device according to (35), wherein the decoding unit sets a variable iVlCurrRange indicating a range in arithmetic coding to 256 in the alignment process. (37) The image processing device according to (35) or (36), wherein the decoding unit further sets the generation amount of the number of context-encoding bins to 0 immediately before decoding the first sub-block coefficient flag.
  • the decoding unit determines the number of context-encoding bins based on a reference value for the number of context-encoding bins and the transform block size.
  • the image processing apparatus according to any one of (35) to (37), wherein the generated amount is derived.
  • An image processing method skipping decoding of the last coefficient position in a high throughput mode in which context coding bins after the last coefficient position of the image data are processed as bypass coding bins.

Landscapes

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

Abstract

本開示は、符号化や復号の処理量の増大を抑制することができるようにする画像処理装置および方法に関する。画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、そのラスト係数位置のプリフィックス部をバイパス符号化ビンとして符号化・復号する。また、ハイスループットモードの場合、そのラスト係数位置の符号化・復号をスキップする。本開示は、例えば、画像処理装置、画像符号化装置、画像復号装置、送信装置、受信装置、送受信装置、情報処理装置、撮像装置、再生装置、電子機器、画像処理方法、または情報処理方法等に適用することができる。

Description

画像処理装置および方法
 本開示は、画像処理装置および方法に関し、特に、符号化や復号の処理量の増大を抑制することができるようにした画像処理装置および方法に関する。
 従来、動画像の予測残差を導出し、係数変換し、量子化して符号化する符号化方法が提案された(例えば、非特許文献1および非特許文献2参照)。このような画像符号化では、高ビット深度・高ビットレートの場合、より多くのコンテキスト符号化ビンやバイパス符号化ビンが発生するため、CABAC(Context-based Adaptive Binary Arithmetic Code)の処理量が増加するおそれがあった。そこで、CABACのスループットを改善するために、バイパス符号化ビンの符号化処理や復号処理を簡略化するとともに、変換ブロック内のコンテキスト符号化ビン(ラスト係数位置を除く)をバイパス符号化ビンに置き換える方法が提案された(例えば、非特許文献3参照)。
Benjamin Bross, Jianle Chen, Shan Liu, "Versatile Video Coding (Draft 10)", JVET-T2001-v2, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29, version 1 - date 2020-10-27 Jianle Chen, Yan Ye, Seung Hwan Kim, "Algorithm description for Versatile Video Coding and Test Model 11 (VTM 11)", JVET-T2002-v1, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29, version 1 - date 2020-10-27 Fan Wang, Zhihuang Xie, Yue Yu, Haoping Yu, Dong Wang,"AHG8: a combination of JVET-V0059 option 2 and JVET-V0122 for high bit depth and high bit rate extensions", JVET-V0178-v1, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29, 2021-04-27
 しかしながら、この方法では、変換ブロックにおいて、コンテキスト符号化ビン全体のうち約8%乃至10%程度がラスト係数位置であった。そのため、そのラスト係数位置に対してもバイパス符号化ビンに置き換えることで、CABACのスループットをさらに改善することができる可能性があった。
 本開示は、このような状況に鑑みてなされたものであり、符号化や復号の処理量の増大を抑制することができるようにするものである。
 本技術の一側面の画像処理装置は、画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記画像データに含まれる前記ラスト係数位置のプリフィックス部をバイパス符号化ビンとして符号化する符号化部を備える画像処理装置である。
 本技術の一側面の画像処理方法は、画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記画像データに含まれる前記ラスト係数位置のプリフィックス部をバイパス符号化ビンとして符号化する画像処理方法である。
 本技術の他の側面の画像処理装置は、画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記画像データの符号化データに含まれる前記ラスト係数位置のプリフィックス部をバイパス符号化ビンとして復号する復号部を備える画像処理装置である。
 本技術の他の側面の画像処理方法は、画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記画像データの符号化データに含まれる前記ラスト係数位置のプリフィックス部をバイパス符号化ビンとして復号する画像処理方法である。
 本技術のさらに他の側面の画像処理装置は、画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記画像データに含まれる前記ラスト係数位置の符号化をスキップする符号化部を備える画像処理装置である。
 本技術のさらに他の側面の画像処理方法は、画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記画像データに含まれる前記ラスト係数位置の符号化をスキップする画像処理方法である。
 本技術のさらに他の側面の画像処理装置は、画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記ラスト係数位置の復号をスキップする復号部を備える画像処理装置である。
 本技術のさらに他の側面の画像処理方法は、画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記ラスト係数位置の復号をスキップする画像処理方法である。
 本技術の一側面の画像処理装置および方法においては、画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、その画像データに含まれるラスト係数位置のプリフィックス部がバイパス符号化ビンとして符号化される。
 本技術の他の側面の画像処理装置および方法においては、画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、その画像データの符号化データに含まれるラスト係数位置のプリフィックス部がバイパス符号化ビンとして復号される。
 本技術のさらに他の側面の画像処理装置および方法においては、画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、その画像データに含まれるラスト係数位置の符号化がスキップされる。
 本技術のさらに他の側面の画像処理装置および方法においては、画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、そのラスト係数位置の復号がスキップされる。
符号化ビンの発生量について説明する図である。 RRCに関する疑似コードの例を示す図である。 RRCのビットストリームの例を示す図である。 TSRCに関する疑似コードの例を示す図である。 TSRCのビットストリームの例を示す図である。 RRCに関するシンタックスの例を示す図である。 RRCに関するセマンティクスの例を示す図である。 コンテキスト符号化ビン数の割合の例を示す図である。 ハイスループットモードの場合の符号化・復号の方法の例を説明する図である。 RRCに関する疑似コードの例を示す図である。 RRCのビットストリームの例を示す図である。 符号化装置の主な構成例を示すブロック図である。 Non-TS残差符号化部の主な構成例を示すブロック図である。 符号化処理の流れの例を示すフローチャートである。 Non-TS残差符号化処理の流れの例を示すフローチャートである。 復号装置の主な構成例を示すブロック図である。 Non-TS残差復号部の主な構成例を示すブロック図である。 復号処理の流れの例を示すフローチャートである。 Non-TS残差復号処理の流れの例を示すフローチャートである。 ハイスループットモードの場合の符号化・復号の方法の例を説明する図である。 RRCに関する疑似コードの例を示す図である。 RRCのビットストリームの例を示す図である。 RRCに関するシンタックスの例を示す図である。 RRCに関するセマンティクスの例を示す図である。 Non-TS残差符号化部の主な構成例を示すブロック図である。 Non-TS残差符号化処理の流れの例を示すフローチャートである。 Non-TS残差復号部の主な構成例を示すブロック図である。 Non-TS残差復号処理の流れの例を示すフローチャートである。 画像符号化装置の主な構成例を示すブロック図である。 画像符号化処理の流れの例を示すフローチャートである。 画像復号装置の主な構成例を示すブロック図である。 画像復号処理の流れの例を示すフローチャートである。 コンピュータの主な構成例を示すブロック図である。
 以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、以下の順序で説明する。
 1.技術内容や技術用語をサポートする文献等
 2.CABAC
 3.ラスト係数位置のバイパス符号化・バイパス復号
 4.ラスト係数位置の符号化・復号のスキップ
 5.実施の形態(画像符号化装置)
 6.実施の形態(画像復号装置)
 7.付記
 <1.技術内容や技術用語をサポートする文献等>
 本技術で開示される範囲は、実施の形態に記載されている内容だけではなく、出願当時において公知である以下の非特許文献等に記載されている内容や以下の非特許文献において参照されている他の文献の内容等も含まれる。
 非特許文献1:(上述)
 非特許文献2:(上述)
 非特許文献3:(上述)
 非特許文献4:Recommendation ITU-T H.264 (04/2017) "Advanced video coding for generic audiovisual services", April 2017
 非特許文献5:Recommendation ITU-T H.265 (02/18) "High efficiency video coding", february 2018
 つまり、上述の非特許文献に記載されている内容もサポート要件を判断する際の根拠となる。例えば、上述の非特許文献に記載されているQuad-Tree Block Structure、QTBT(Quad Tree Plus Binary Tree) Block Structureが実施例において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。また、例えば、パース(Parsing)、シンタックス(Syntax)、セマンティクス(Semantics)等の技術用語についても同様に、実施例において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たす。
 また、本明細書において、画像(ピクチャ)の部分領域や処理単位として説明に用いる「ブロック」(処理部を示すブロックではない)は、特に言及しない限り、ピクチャ内の任意の部分領域を示し、その大きさ、形状、および特性等は限定されない。例えば、「ブロック」には、上述の非特許文献に記載されているTB(Transform Block)、TU(Transform Unit)、PB(Prediction Block)、PU(Prediction Unit)、SCU(Smallest Coding Unit)、CU(Coding Unit)、LCU(Largest Coding Unit)、CTB(Coding Tree Block)、CTU(Coding Tree Unit)、サブブロック、マクロブロック、タイル、またはスライス等、任意の部分領域(処理単位)が含まれる。
 また、このようなブロックのサイズを指定するに当たって、直接的にブロックサイズを指定するだけでなく、間接的にブロックサイズを指定するようにしてもよい。例えばサイズを識別する識別情報を用いてブロックサイズを指定するようにしてもよい。また、例えば、基準とするブロック(例えばLCUやSCU等)のサイズとの比または差分によってブロックサイズを指定するようにしてもよい。例えば、シンタックス要素等としてブロックサイズを指定する情報を伝送する場合に、その情報として、上述のような間接的にサイズを指定する情報を用いるようにしてもよい。このようにすることにより、その情報の情報量を低減させることができ、符号化効率を向上させることができる場合もある。また、このブロックサイズの指定には、ブロックサイズの範囲の指定(例えば、許容されるブロックサイズの範囲の指定等)も含む。
 <2.CABAC>
  <コンテキスト符号化ビンの発生量>
 例えば、非特許文献1や非特許文献2に記載の画像符号化方式(以下、VVC(Versatile Video Coding)とも称する)では、CABAC(Context-based Adaptive Binary Arithmetic Code)が用いられる。CABACは、2値算術符号化および2値シンボルの生起確率を周囲のパラメータの状態(コンテキスト)に基づいて推定するコンテキスト適応処理を用いたエントロピ符号化手法である。
 図1に示される表は、このようなCABACにおける、CG(Coefficient Group; 係数符号化グループ; サブブロック)単位で発生する平均的なコンテキスト符号化ビン数(ctx bins/CoefGroup)と、そのCG単位で発生するバイパス符号化ビン数(ep bins/CoefGroup)を、QP(量子化パラメータ)毎に示している。図1に示される表においては、シーケンスグループ(Sequence Group)AとシーケンスグループBのそれぞれについて、コンテキスト符号化ビン数とバイパス符号化ビン数とが示されている。シーケンスグループAは、符号化が難しく、符号化ビンが多く発生するシーケンスグループであり、シーケンスグループBは、シーケンスグループAに比べて符号化が容易で、符号化ビンが少ないシーケンスグループであるとする。
 シーケンスグループAおよびシーケンスグループBのいずれにおいても、QP=12の場合よりもQP=-13(より高ビットレート)の方が、発生するコンテキスト符号化ビン数およびバイパス符号化ビン数は多い。シーケンスグループAのQP=-13の場合をシーケンスグループBのQP=12の場合とで発生量を比較すると、コンテキスト符号化ビン数は約15倍、バイパス符号化ビン数は約257倍となる。このように、高ビット深度・高ビットレートの符号化では、コンテキスト符号化ビンやバイパス符号化ビンの発生量が増大し、CABACの単位当たりの処理量が増大するおそれがあった。
 そこで、CABACのスループットを改善するために、非特許文献3に記載のように、バイパス符号化ビンの符号化処理や復号処理を簡略化するとともに、変換ブロック内のコンテキスト符号化ビン(ラスト係数位置を除く)をバイパス符号化ビンに置き換える方法が提案された。
 図2は、その非特許文献3に記載の符号化・復号の方法の概要を示す疑似コードである。図2は、RRC(Regular Residual Coding)の場合の符号化・復号の方法を示す。この方法の場合、“For last significant coefficient position”に示されるように、最後の有効な係数の位置を示すラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)がコンテキスト符号化ビンとして符号化(コンテキスト符号化とも称する)・復号(コンテキスト復号)され、ラスト係数位置のサフィックス部(last_sig_coeff_{x,y}_suffix)がバイパス符号化ビンとして符号化(バイパス符号化とも称する)・復号(バイパス復号とも称する)される。
 また、ラスト係数位置の符号化・復号の後に係数データがサブブロック毎に符号化・復号されるが、その際、“For each coefficient group”に示されるように、ハイスループットモードの場合、ラスト係数位置より後ろのコンテキスト符号化ビンがバイパス符号化ビンとして符号化・復号される。このように、コンテキスト符号化ビンをバイパス符号化ビンに置き換えることにより、コンテキスト符号化ビンのまま符号化・復号する場合よりも、CABACの処理量を低減させることができる。
 また、そのサブブロック毎の符号化・復号の直前において、“For remBinsPass1 and alignment”に記載のように、ハイスループットモードの場合、パラメータremCcbs(図2においてはremBinPass1)が0に設定され、CABACバイパスアラインメント(CABAC bypass alignment)が行われる。パラメータremCcbsは、コンテキスト符号化ビン数の発生量を示すパラメータである。つまり、コンテキスト符号化ビン数の発生量が0に設定され、コンテキスト符号化ビンとして符号化・復号されていたビンの符号化・復号の方法として、バイパス符号化・バイパス復号が選択される。CABACバイパスアラインメントにおいては、例えば、パラメータivlCurrRangeが256に設定される。パラメータivlCurrRangeは、算術符号化における範囲を示すパラメータである。パラメータivlCurrRangeおよびパラメータivlOffsetにより符号化エンジンの状態が表される。パラメータivlCurrRangeが256に設定されることにより、バイパス符号化ビンの符号化・復号を簡略化することができる。
 このような符号化により生成されるビットストリームの一部の構成例を図3に示す。図3に示されるように、ビットストリームにおいては、ラスト係数位置に関する符号化ビン(last_sig_coeff_x_prefix11、last_sig_coeff_y_prefix12、last_sig_coeff_x_suffix13、およびlast_sig_coeff_y_suffix14)が形成され、その後に、サブブロック毎の符号化ビン(Coefficient bits16-1、sb_coded_flag15-2、Coefficient bits16-2、sb_coded_flag15-3、Coefficient bits16-3、sb_coded_flag15-4、Coefficient bits16-4、sb_coded_flag15-5、およびCoefficient bits16-5)が形成される。sb_coded_flag15-2乃至sb_coded_flag15-5を互いに区別して説明する必要が無い場合、sb_coded_flag15とも称する。また、Coefficient bits16-1乃至Coefficient bits16-5を互いに区別して説明する必要が無い場合、Coefficient bits16とも称する。
 last_sig_coeff_x_prefix11およびlast_sig_coeff_y_prefix12は、コンテキスト符号化ビンである。last_sig_coeff_x_suffix13およびlast_sig_coeff_y_suffix14は、バイパス符号化ビンである。sb_coded_flag15およびCoefficient bits16は、サブブロック毎のバイパス符号化ビン群である。このサブブロック毎の符号化・復号の直前において、すなわち、Coefficient bits16-1の処理の直前において、CABACバイパスアラインメント処理が行われる(Align)。
 図4は、非特許文献3に記載の符号化・復号の方法の概要を示す疑似コードである。図4は、TSRC(Transform-Skip Residual Coding)の場合の符号化・復号の方法を示す。“For RemCcbs and alignment”に示されるように、ハイスループットモードの場合、パラメータremCcbsが0に設定され、CABACバイパスアラインメント(CABAC bypass alignment)が行われる。
 また、その後において、“For each coefficient group”に示されるように、ハイスループットモードの場合、ラスト係数位置より後ろのコンテキスト符号化ビンがバイパス符号化ビンとして符号化・復号される。
 このような符号化により生成されるビットストリームの一部の構成例を図5に示す。図5に示されるように、ビットストリームにおいては、サブブロック毎の符号化ビン(sb_coded_flag21-1、Coefficient bits22-1、sb_coded_flag21-2、Coefficient bits22-2、sb_coded_flag21-3、Coefficient bits22-3、sb_coded_flag21-4、Coefficient bits22-4、sb_coded_flag21-5、およびCoefficient bits22-5)が形成される。sb_coded_flag21-1乃至sb_coded_flag21-5を互いに区別して説明する必要が無い場合、sb_coded_flag21とも称する。また、Coefficien2t bits22-1乃至Coefficient bits22-5を互いに区別して説明する必要が無い場合、Coefficient bits22とも称する。
 sb_coded_flag21およびCoefficient bits22は、サブブロック毎のバイパス符号化ビン群である。このサブブロック毎の符号化・復号の直前において、すなわち、sb_coded_flag21-1の処理の直前において、CABACバイパスアラインメント処理が行われる(Align)。
 図6は、この非特許文献3に記載の符号化・復号方法の、RRCの場合のシンタックスの例を示す図である。図7は、そのシンタックスに対応する各パラメータのセマンティクスの例を示す図である。
 以上のような符号化・復号方法では、図8に示されるグラフのように、変換ブロックにおいて、コンテキスト符号化ビン全体のうち約8%乃至10%程度をラスト係数位置が占めていた。図8に示される棒グラフは、高ビットレートのビットストリームにおける構成要素の割合の例を示している。複数の棒グラフは、それぞれ、互いに異なるビットストリームについての情報を示す。グレーの棒グラフは、ビットストリーム全体に占めるコンテキスト符号化ビン数のうち、変換ブロック内のシンタックスが占める割合を示す。黒の棒グラフは、ビットストリーム全体に占めるコンテキスト符号化ビン数のうち、ラスト係数位置が占める割合を示す。図8に示されるように、高ビットレートのビットストリームの場合、全コンテキスト符号化ビン数のうち約90%を係数符号化が占め、全コンテキスト符号化ビン数のうち約10%をラスト係数位置が占めていた。つまり、非特許文献3に記載の方法では、全コンテキスト符号化ビンの約80%がバイパス符号化ビンに置き換えられるが、約10%(ラスト係数位置)がコンテキスト符号化ビンとして扱われる必要があった。そのため、そのラスト係数位置に対してもバイパス符号化ビンに置き換えることで、CABACのスループットをさらに改善することができる可能性があった。
 <3.ラスト係数位置のバイパス符号化・バイパス復号>
  <方法#1>
 そこで、例えば、図9に示される表の最上段に示されるように、CABACハイスループットモードの場合、ラスト係数位置のプリフィックス部をバイパス符号化・バイパス復号してもよい(方法#1)。
 CABACハイスループットモードは、通常モードの場合(ハイスループットモードでない場合)よりもCABACのスループットを向上させるように処理を行うモードである。例えば、コンテキスト符号化ビンをバイパス符号化ビンとして処理(符号化・復号)したり、符号化・復号の処理を簡略化したりすることにより、スループットを向上させることができる。このCABACハイスループットモードは、例えば、通常よりも高ビット深度や高ビットレートの符号化対象に対して適用されてもよい。例えば、ビット深度が10ビットの画像が標準である場合に、ビット深度が12ビットの画像を符号化対象とする際に適用されてもよい。
 なお、以下においては、符号化・復号としてCABACを適用する場合について説明するが、本技術は、CABAC以外の符号化・復号にも適用し得る。したがって、上述のCABACハイスループットモードもCABACに限定されない。つまり、このモードは、単にハイスループットモードとしてもよい。
 例えば、画像処理装置が、画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、その画像データに含まれるラスト係数位置のプリフィックス部をバイパス符号化ビンとして符号化する符号化部を備えてもよい。また、例えば、画像処理方法において、画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、その画像データに含まれるラスト係数位置のプリフィックス部をバイパス符号化ビンとして符号化してもよい。
 例えば、画像処理装置が、画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、その画像データの符号化データに含まれるラスト係数位置のプリフィックス部をバイパス符号化ビンとして復号する復号部を備えてもよい。また、例えば、画像処理方法において、画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、その画像データの符号化データに含まれるラスト係数位置のプリフィックス部をバイパス符号化ビンとして復号してもよい。
 図10は、本技術を適用した場合の符号化(復号)の概要を示す疑似コードの例を示す図である。図10の例においては、“For each coefficient group”の前に“For last significant coefficient position”が実行される。そして、その“For last significant coefficient position”に示されるように、sps_high_throughput_flagが真である(0でない)場合、last_sig_coeff_{x,y}_prefixがバイパス符号化ビンとして符号化・復号される(bypass_coding of last_sig_coeff_{x,y}_prefix)。
 sps_high_throughput_flagは、CABACハイスループットモードが適用されるか否かを示すフラグ情報である。sps_high_throughput_flagが真(例えば1)の場合、CABACハイスループットモードが適用されることを示す。sps_high_throughput_flagが偽(例えば0)の場合、通常モードが適用される(CABACハイスループットモードでない)ことを示す。last_sig_coeff_{x,y}_prefixは、最後の有効な係数のX方向またはY方向の位置(ラスト係数位置)のプリフィックス部を示す。
 このように符号化することにより、図11に示されるように、ビットストリームにおいては、ラスト係数位置に関する符号化ビン(last_sig_coeff_x_prefix101、last_sig_coeff_y_prefix102、last_sig_coeff_x_suffix103、およびlast_sig_coeff_y_suffix104)が形成され、その後に、サブブロック毎の符号化ビン(Coefficient bits106-1、sb_coded_flag105-2、Coefficient bits106-2、sb_coded_flag105-3、Coefficient bits106-3、sb_coded_flag105-4、Coefficient bits106-4、sb_coded_flag105-5、およびCoefficient bits106-5)が形成される。sb_coded_flag105-2乃至sb_coded_flag105-5を互いに区別して説明する必要が無い場合、sb_coded_flag105とも称する。また、Coefficient bits106-1乃至Coefficient bits106-5を互いに区別して説明する必要が無い場合、Coefficient bits106とも称する。
 last_sig_coeff_x_prefix101は、X方向のラスト係数位置のプリフィックス部の符号化ビンを示す。last_sig_coeff_y_prefix102は、Y方向のラスト係数位置のプリフィックス部の符号化ビンを示す。上述したように、CABACハイスループットモードが適用される場合、ラスト係数位置のプリフィックス部をバイパス符号化ビンとして処理するので、last_sig_coeff_x_prefix101およびlast_sig_coeff_y_prefix102は、バイパス符号化ビンである。
 図3等を参照して説明したように、非特許文献3に記載の方法では、CABACハイスループットモードが適用される場合も、ラスト係数位置のプリフィックス部(例えば、ast_sig_coeff_x_prefix11およびlast_sig_coeff_y_prefix12)が、コンテキスト符号化ビンとして符号化・復号された。これに対して、方法#1においては、CABACハイスループットモードが適用される場合、そのラスト係数位置のプリフィックス部(last_sig_coeff_x_prefix101およびlast_sig_coeff_y_prefix102)をバイパス符号化ビンとして符号化・復号する。バイパス符号化ビンは、コンテキスト符号化ビンに比べると処理量が軽い。したがって、コンテキスト符号化ビンの発生量を低減させることができ、符号化や復号の処理量の増大を抑制することができる。例えば、高ビット深度・高ビットレートの符号化におけるCABACの処理量を軽減し、スループットを向上させることができる。
 なお、図11において、sb_coded_flag105は、サブブロック係数フラグであり、サブブロック内の全ての係数が0であるか否かを示すフラグ情報である。したがって、sb_coded_flag105は、サブブロック毎に設定される。なお、この場合、ラスト係数位置を送っているため、ラスト係数が含まれる係数グループのsb_coded_flagは符号化・復号がスキップされ、その値が1と推定される。Coefficient bits106は、サブブロック毎の係数の符号化ビンである。つまり、係数は、サブブロック(変換ブロック)毎に符号化・復号される。
 非特許文献3に記載の方法の場合と同様に、CABACハイスループットモードの場合、ラスト係数位置より後ろのコンテキスト符号化ビンがバイパス符号化ビンとして符号化・復号される。つまり、図10において、“For each coefficient group”に示されるように、CABACハイスループットモードが適用される場合、各サブブロックはバイパス符号化・バイパス復号される。つまり、図11において、sb_coded_flag105およびCoefficient bits106は、バイパス符号化ビンにより構成される。このように、コンテキスト符号化ビンをバイパス符号化ビンに置き換えることにより、コンテキスト符号化ビンのまま符号化・復号する場合よりも、CABACの処理量を低減させることができる。
  <方法#1-1>
 例えば、上述の方法#1が適用される場合において、図9に示される表の上から2段目に示されるように、非CABACハイスループットモードの場合、ラスト係数位置のプリフィックス部をコンテキスト符号化・コンテキスト復号してもよい(方法#1-1)。つまり、ラスト係数位置のプリフィックス部は、ハイスループットモードでない場合、コンテキスト符号化ビンとして符号化・復号されてもよい。
 例えば、画像処理装置において、符号化部が、ハイスループットモードでない場合、ラスト係数位置のプリフィックス部をコンテキスト符号化ビンとして符号化してもよい。また、画像処理装置において、復号部が、ハイスループットモードでない場合、ラスト係数位置のプリフィックス部をコンテキスト符号化ビンとして復号してもよい。
 図10の例においては、“For last significant coefficient position”に示されるように、sps_high_throughput_flagが偽である場合(sps_high_throughput_flag ==0)、last_sig_coeff_{x,y}_preffixがコンテキスト符号化ビンとして符号化・復号される(context_coding of last_sig_coeff_{x,y}_preffix)。
 このようにすることにより、ハイスループットモードの場合のみ、ラスト係数位置のプリフィックス部をバイパス符号化ビンとして処理することができる。
  <方法#1-2>
 例えば、上述の方法#1が適用される場合において、図9に示される表の上から3段目に示されるように、ラスト係数位置のサフィックス部をバイパス符号化・バイパス復号してもよい(方法#1-2)。
 例えば、画像処理装置において、符号化部が、画像データに含まれるラスト係数位置のサフィックス部をバイパス符号化ビンとして符号化してもよい。また、画像処理装置において、復号部が、符号化データに含まれるラスト係数位置のサフィックス部をバイパス符号化ビンとして復号してもよい。
 図10の例においては、“For last significant coefficient position”に示されるように、CABACハイスループットモードであるか否かに関わらず、last_sig_coeff_{x,y}_suffixがバイパス符号化ビンとして符号化・復号される(bypass_coding of last_sig_coeff_{x,y}_suffix)。last_sig_coeff_{x,y}_suffixは、最後の有効な係数のX方向またはY方向の位置(ラスト係数位置)のサフィックス部を示す。
 図11において、last_sig_coeff_x_suffix103は、X方向のラスト係数位置のサフィックス部の符号化ビンを示す。last_sig_coeff_y_suffix104は、Y方向のラスト係数位置のサフィックス部の符号化ビンを示す。この方法#1-2の場合、上述したように、ラスト係数位置のサフィックス部をバイパス符号化ビンとして符号化・復号するので、last_sig_coeff_x_suffix103およびlast_sig_coeff_y_suffix104は、バイパス符号化ビンである。つまり、ラスト係数位置と各サブブロックに関するコンテキスト符号化ビン(図11のlast_sig_coeff_x_prefix101乃至Coefficient bits106)が全てバイパス符号化ビンとして符号化・復号される。
 このようにすることにより、コンテキスト符号化ビンの発生量を低減させることができ、符号化や復号の処理量の増大を抑制することができる。例えば、高ビット深度・高ビットレートの符号化におけるCABACの処理量を軽減し、スループットを向上させることができる。
  <方法#1-3>
 例えば、上述の方法#1が適用される場合において、図9に示される表の上から4段目に示されるように、CABACハイスループットモードの場合、ラスト係数位置の符号化・復号の直前に、CABACバイパスアラインメント処理を行ってもよい(方法#1-3)。
 例えば、画像処理装置において、符号化部が、ハイスループットモードの場合、ラスト係数位置の符号化の直前において、符号化プロセスのアラインメント処理を行ってもよい。また、画像処理装置において、復号部が、ハイスループットモードの場合、ラスト係数位置の復号の直前において、復号プロセスのアラインメント処理を行ってもよい。
 図10の例においては、“For last significant coefficient position”の前の“For remBinsPass1 and alignment”において、sps_high_throughput_flagが真である(0でない)場合、CABACバイパスアラインメントが実行される(CABAC bypass alignment)。つまり、CABACハイスループットモードの場合、図11に示されるように、last_sig_coeff_x_prefix101の処理の直前において、CABACバイパスアラインメント処理が行われる(Align)。CABACバイパスアラインメントは、CABACのプロセスを調整する処理である。この処理を行うことにより、複数のバイパス符号化ビンを簡単に並列に処理することができるようになる。つまり、ラスト係数位置の符号化・復号の直前に、CABACバイパスアラインメント処理を行うことにより、ラスト係数位置のバイパス符号化ビンも簡単に並列に処理することができる。したがって、符号化や復号の処理量の増大を抑制することができる。
 なお、上述したように、本技術は、CABAC以外の符号化・復号にも適用し得る。したがって、上述のCABACバイパスアラインメントもCABACに限定されない。つまり、この処理は、単に、符号化プロセス(または復号プロセス)を調整する処理(アラインメント処理)としてもよい。
  <方法#1-3-1>
 例えば、上述の方法#1-3が適用される場合において、図9に示される表の上から5段目に示されるように、CABACバイパスアラインメント処理において、パラメータiVlCurrRangeを256に設定してもよい(方法#1-3-1)。
 パラメータivlCurrRangeは、算術符号化における範囲を示すパラメータである。パラメータivlCurrRangeおよびパラメータivlOffsetにより符号化エンジンの状態が表される。
 例えば、画像処理装置において、符号化部が、アラインメント処理において、算術符号化における範囲を示す変数iVlCurrRangeを256に設定してもよい。また、画像処理装置において、復号部が、アラインメント処理において、算術符号化における範囲を示す変数iVlCurrRangeを256に設定してもよい。
 パラメータivlCurrRangeを256に固定することにより、バイパス符号化ビンの符号化・復号が簡略化され、ビットストリームの1ビットをそのままバイパス符号化ビンとして処理することができるようになる。これにより、複数のバイパス符号化ビンを並列処理することができる。つまり、ラスト係数位置の符号化・復号の直前にこの設定が行われることにより、ラスト係数位置を含む係数符号化全体のバイパス符号化ビンを簡単に並列に処理することができる。したがって、符号化や復号の処理量の増大を抑制することができる。
  <方法#1-3-2>
 例えば、上述の方法#1-3が適用される場合において、図9に示される表の上から6段目に示されるように、CABACバイパスアラインメント処理を行う際に、さらに、コンテキスト符号化ビン数の発生量を0に設定してもよい(方法#1-3-2)。
 例えば、画像処理装置において、符号化部が、ラスト係数位置の符号化の直前において、さらに、コンテキスト符号化ビン数の発生量を0に設定してもよい。また、画像処理装置において、復号部が、ラスト係数位置の復号の直前において、さらに、コンテキスト符号化ビン数の発生量を0に設定してもよい。
 図10の例においては、“For remBinsPass1 and alignment”において、sps_high_throughput_flagが真である(0でない)場合、パラメータremCcbs(図10においてはremBinPass1)が0に設定される(remBinPass1 = 0)。つまり、CABACハイスループットモードの場合、パラメータremCcbsが0に設定される。パラメータremCcbsは、コンテキスト符号化ビン数の発生量を示すパラメータである。つまり、バイパス符号化が選択される。ラスト係数位置の符号化・復号の前においてパラメータremCcbsを0に設定することにより、ラスト係数位置を含む係数符号化全体の符号化ビンをバイパス符号化ビンとして処理することができる。したがって、コンテキスト符号化ビンの発生量を低減させることができ、符号化や復号の処理量の増大を抑制することができる。
  <方法#1-3-3>
 例えば、上述の方法#1-3が適用される場合において、図9に示される表の最下段に示されるように、非CABACハイスループットモードの場合、コンテキスト符号化ビン数の基準値と変換ブロックサイズに基づいて、コンテキスト符号化ビン数の発生量を導出してもよい(方法#1-3-3)。
 例えば、画像処理装置において、符号化部が、ハイスループットモードでない場合、ラスト係数位置の符号化の直前において、コンテキスト符号化ビン数の基準値と変換ブロックサイズに基づいて、コンテキスト符号化ビン数の発生量を導出してもよい。また、画像処理装置において、復号部が、ハイスループットモードでない場合、ラスト係数位置の復号の直前において、コンテキスト符号化ビン数の基準値と変換ブロックサイズに基づいて、コンテキスト符号化ビン数の発生量を導出してもよい。
 図10の例においては、“For remBinsPass1 and alignment”において、sps_high_throughput_flagが偽である場合(sps_high_throughput_flag ==0)、CABACバイパスアラインメントが実行されない。また、パラメータctxBinSampleRatioBase、パラメータTbWidth、およびパラメータTbHeightに基づいて、パラメータremCcbs(図10においてはremBinPass1)が導出される(remBinsPass1 = ( ( 1 << ( log2TbWidth + log2TbHeight ) ) * 7 ) >> 2)。
 パラメータctxBinSampleRatioBaseは、コンテキスト符号化ビン数の基準値を示す。図10の例においては、パラメータctxBinSampleRatioBaseは7に設定されている。パラメータTbWidthは、変換ブロックの横方向のサイズ(幅)を示す。パラメータTbHeightは、変換ブロックの縦方向のサイズ(高さ)を示す。つまり、以下の式(1)により、パラメータremCcbsが導出される。
 remCcbs = ctxBinSampleRatioBase * ( TbWidth * TbHeight  >>  4 )
 ・・・(1)
 このようにすることにより、ハイスループットモードでない場合に、ラスト係数位置のプリフィックス部をコンテキスト符号化ビンとして処理することができる。
  <符号化装置>
 図12は、本技術を適用した画像処理装置の一態様である符号化装置の構成の一例を示すブロック図である。図12に示される符号化装置200は、CABACを用いて量子化係数を符号化する装置である。
 この量子化係数は、符号化対象である画像データを用いて生成されたデータである。例えば、その画像データに対してその予測画像が導出される。そして、その画像データと予測画像との差分(予測残差)が導出される。そして、その予測残差が係数変換(例えば直交変換)されることにより変換係数が生成される。そして、その変換係数が量子化されることにより、量子化係数が生成される。このように上述の量子化係数が生成されてもよい。また、上述の処理のうち、例えば、係数変換がスキップ(省略)されてもよい。
 なお、図12においては、処理部やデータの流れ等の主なものを示しており、図12に示されるものが全てとは限らない。つまり、符号化装置200が、図12においてブロックとして示されていない処理部を有してもよい。また、符号化装置200が、図12において矢印等として示されていない処理やデータの流れを有してもよい。
 図12に示されるように、符号化装置200は、選択部211、TS残差符号化部212、およびNon-TS残差符号化部213を有する。
 選択部211は、実行する符号化処理の選択に関する処理を行う。例えば、選択部211は、量子化係数を取得してもよい。また、選択部211は、transform_skip_flagやcIdxを取得してもよい。transform_skip_flagは、変換スキップフラグであり、そのフラグに対応する変換ブロックに対する係数変換(例えば直交変換)がスキップ(省略)されたか否かを示すフラグ情報である。transform_skip_flagが真(例えば1)である場合、係数変換がスキップされたことを示す。transform_skip_flagが偽(例えば0)である場合、係数変換が適用されたことを示す。cIdxは、輝度成分や色成分等といった色コンポーネントを識別するためのコンポーネント識別子である。
 選択部211は、transform_skip_flagおよびcIdxに基づいて、量子化係数に対してTSRC(TS残差符号化モードでの符号化)を適用するか、RRC(Non-TS残差符号化モードでの符号化)を適用するかを、変換ブロック毎に選択してもよい。例えば、transform_skip_flag[cIdx]が真である場合、選択部211は、TSRCの適用を選択し、量子化係数をTS残差符号化部212へ供給してもよい。また、transform_skip_flag[cIdx]が偽である場合、選択部211は、RRCの適用を選択し、量子化係数をNon-TS残差符号化部213へ供給してもよい。
 TS残差符号化部212は、TS残差符号化モードでの符号化(TSRC)に関する処理を実行する。例えば、TS残差符号化部212は、選択部211から供給される量子化係数を取得してもよい。また、TS残差符号化部212は、その量子化係数を、TS残差符号化モードで符号化してもよい。例えば、TS残差符号化部212は、非特許文献3に記載の方法と同様の方法で、量子化係数を符号化(TSRC)してもよい。そして、TS残差符号化部212は、その符号化により生成したビットストリームを、符号化装置200の外部に出力してもよい。
 Non-TS残差符号化部213(符号化部)は、Non-TS残差符号化モードでの符号化(RRC)に関する処理を実行する。例えば、Non-TS残差符号化部213は、選択部211から供給される量子化係数を取得してもよい。また、Non-TS残差符号化部213は、その量子化係数を、Non-TS残差符号化モードで符号化してもよい。例えば、Non-TS残差符号化部213は、図9等を参照して上述したいずれかの方法を適用して、量子化係数を符号化(RRC)してもよい。そして、Non-TS残差符号化部213は、その符号化により生成したビットストリームを、符号化装置200の外部に出力してもよい。
  <Non-TS残差符号化部>
 図13は、図12のNon-TS残差符号化部213の主な構成例を示すブロック図である。なお、図13においては、処理部やデータの流れ等の主なものを示しており、図13に示されるものが全てとは限らない。つまり、Non-TS残差符号化部213が、図13においてブロックとして示されていない処理部を有してもよい。また、Non-TS残差符号化部213が、図13において矢印等として示されていない処理やデータの流れを有してもよい。
 図13に示されるように、Non-TS残差符号化部213は、設定部231、ラスト係数位置符号化部232、およびサブブロック符号化部233を有する。
 設定部231は、パラメータの設定に関する処理を行う。例えば、設定部231は、ctxBinSampleRatioBaseを取得してもよい。ctxBinSampleRatioBaseは、コンテキスト符号化ビン数の基準値を示すパラメータである。また、設定部231は、TbWidthおよびTbHeightを取得してもよい。TbWidthは、変換ブロックの横方向の大きさ(幅)を示すパラメータである。TbHeightは、変換ブロックの縦方向の大きさ(高さ)を示すパラメータである。また、設定部231は、sps_high_throughput_flagを取得してもよい。sps_high_throughput_flagは、上述のように、CABACハイスループットモードが適用されるか否かを示すフラグ情報である。
 例えば、sps_high_throughput_flagが真である場合、設定部231は、上述した方法#1-3を適用し、ラスト係数位置の符号化の直前において、CABACバイパスアラインメント処理を行ってもよい。その場合、設定部231は、例えば、上述した方法#1-3-1を適用し、そのCABACバイパスアラインメント処理において、パラメータiVlCurrRangeを256に設定してもよい。また、設定部231は、上述した方法#1-3-2を適用し、さらに、コンテキスト符号化ビン数の発生量を0に設定してもよい。つまり、設定部231は、コンテキスト符号化ビン数の発生量を示すパラメータremCcbsを0に設定してもよい。
 また、sps_high_throughput_flagが偽である場合、設定部231は、上述した方法#1-3-3を適用し、コンテキスト符号化ビン数の基準値(ctxBinSampleRatioBase)と変換ブロックサイズ(TbWidth, TbHeight)に基づいて、コンテキスト符号化ビン数の発生量(remCcbs)を導出してもよい。例えば、設定部231は、上述した式(1)を用いてremCcbsを導出してもよい。
 例えば、設定部231は、値を設定したremCcbsをラスト係数位置符号化部232へ供給してもよい。また、設定部231は、CABACバイパスアラインメント処理を行った場合、設定したiVlCurrRangeをラスト係数位置符号化部232へ供給してもよい。
 ラスト係数位置符号化部232は、ラスト係数位置の符号化に関する処理を行う。例えば、ラスト係数位置符号化部232は、sps_high_throughput_flagを取得してもよい。また、ラスト係数位置符号化部232は、量子化係数を取得してもよい。また、ラスト係数位置符号化部232は、設定部231から供給されるremCcbsを取得してもよい。また、ラスト係数位置符号化部232は、設定部231から供給されるiVlCurrRangeを取得してもよい。
 例えば、ラスト係数位置符号化部232は、X方向およびY方向のラスト係数位置(LastSignificantCoef{X, Y})に基づいて、ラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)とサフィックス部(last_sig_coeff_{x,y}_suffix)を設定してもよい。last_sig_coeff_{x,y}_prefixは、X方向のラスト係数位置のプリフィックス部(last_sig_coeff_x_prefix)とY方向のラスト係数位置のプリフィックス部(last_sig_coeff_y_prefix)とをまとめて簡略表記したものである。同様に、last_sig_coeff_{x,y}_suffixは、X方向のラスト係数位置のサフィックス部(last_sig_coeff_x_suffix)とY方向のラスト係数位置のサフィックス部(last_sig_coeff_y_suffix)とをまとめて簡略表記したものである。
 また、ラスト係数位置符号化部232は、上述した方法#1を適用し、sps_high_throughput_flagが真である場合、ラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)をバイパス符号ビンとして符号化してもよい。また、ラスト係数位置符号化部232は、上述した方法#1-1を適用し、sps_high_throughput_flagが偽である場合、ラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)をコンテキスト符号化ビンとして符号化してもよい。さらに、ラスト係数位置符号化部232は、上述した方法#1-2を適用し、CABACハイスループットモードであるか否かに関わらず、ラスト係数位置のサフィックス部(last_sig_coeff_{x,y}_suffix)をバイパス符号ビンとして符号化してもよい。
 例えば、ラスト係数位置符号化部232は、以上のような符号化により生成したラスト係数位置のプリフィックス部に対応する符号化ビンおよびサフィックス部に対応する符号化ビンをビットストリームとして符号化装置200の外部に出力してもよい。また、ラスト係数位置符号化部232は、remCcbsをサブブロック符号化部233へ供給してもよい。また、ラスト係数位置符号化部232は、iVlCurrRangeをサブブロック符号化部233へ供給してもよい。また、ラスト係数位置符号化部232は、ラスト係数位置(LastSignificantCoef{X, Y})をサブブロック符号化部233へ供給してもよい。
 サブブロック符号化部233は、サブブロック毎の係数等の符号化に関する処理を行う。例えば、サブブロック符号化部233は、量子化係数を取得してもよい。また、サブブロック符号化部233は、ラスト係数位置符号化部232から供給されるremCcbsを取得してもよい。また、サブブロック符号化部233は、ラスト係数位置符号化部232から供給されるiVlCurrRangeを取得してもよい。また、サブブロック符号化部233は、ラスト係数位置符号化部232から供給されるラスト係数位置(LastSignificantCoef{X, Y})を取得してもよい。
 例えば、サブブロック符号化部233は、ラスト係数位置符号化部232から供給される情報を用いて、サブブロック係数フラグ(sb_coded_flag)や量子化係数を、サブブロック毎に符号化してもよい。例えば、サブブロック符号化部233は、サブブロック係数フラグ(sb_coded_flag)や量子化係数をバイパス符号化ビンとして符号化してもよい。
 例えば、サブブロック符号化部233は、このような符号化により生成したサブブロック毎のバイパス符号化ビン群(サブブロック係数フラグ(sb_coded_flag)や量子化係数のバイパス符号化ビン)をビットストリームとして符号化装置200の外部に出力してもよい。
 このような構成とすることにより、符号化装置200は、<3.ラスト係数位置のバイパス符号化・バイパス復号>において上述した各方法を適用することができる。つまり、符号化装置200は、<3.ラスト係数位置のバイパス符号化・バイパス復号>において上述した各方法の効果と同様の効果を得ることができる。したがって、符号化装置200は、コンテキスト符号化ビンの発生量を低減させることができ、符号化や復号の処理量の増大を抑制することができる。例えば、符号化装置200は、高ビット深度・高ビットレートの符号化におけるCABACの処理量を軽減し、スループットを向上させることができる。
  <符号化処理の流れ>
 符号化装置200により実行される符号化処理の流れの例を、図14のフローチャートを参照して説明する。
 符号化処理が開始されると、符号化装置200は、ステップS101において、コンポーネント識別子cIdxに対応する変換ブロックの変換モード情報(transform_skip_flag等)を符号化する。
 ステップS102において、選択部211は、TS残差符号化モードで符号化するか否かを判定する。例えばtransform_skip_flag[cIdx]が真であり、TS残差符号化モードで符号化すると判定された場合、処理はステップS103へ進む。
 ステップS103において、TS残差符号化部212は、TS残差符号化モードで量子化係数を符号化する。例えば、TS残差符号化部212は、非特許文献3に記載の方法と同様の方法で、量子化係数を符号化(TSRC)してもよい。ステップS103の処理が終了すると、符号化処理が終了する。
 また、ステップS102において、transform_skip_flag[cIdx]が偽であり、Non-TS残差符号化モードで符号化すると判定された場合、処理はステップS104へ進む。
 ステップS104において、Non-TS残差符号化部213は、Non-TS残差符号化処理を実行することにより、Non-TS残差符号化モードで量子化係数を符号化する。例えば、Non-TS残差符号化部213は、図9等を参照して上述したいずれかの方法を適用して、量子化係数を符号化(RRC)してもよい。ステップS104の処理が終了すると、符号化処理が終了する。
  <Non-TS残差符号化処理の流れ>
 次に、図14のステップS104において実行されるNon-TS残差符号化処理の流れの例を、図15のフローチャートを参照して説明する。
 Non-TS残差符号化処理が開始されると、Non-TS残差符号化部213の設定部231は、ステップS131において、CABACハイスループットモードであるか否かを判定する。
 sps_high_throughput_flagが真である(つまり、CABACハイスループットモードである)と判定された場合、処理はステップS132へ進む。ステップS132において、設定部231は、上述した方法#1-3-2を適用し、コンテキスト符号化ビン数の発生量(remCcbs)を0に設定する。これにより、それ以降の符号化においてバイパス符号化が選択される。
 ステップS133において、設定部231は、上述した方法#1-3を適用し、CABACバイパスアラインメントを実施する。その際、設定部231は、上述した方法#1-3-1を適用し、パラメータiVlCurrRangeを256に設定してもよい。これにより、バイパス符号化ビンの符号化が簡略化され、さらに複数のバイパス符号化ビンを並列処理することができる。ステップS133の処理が終了すると処理はステップS135へ進む。
 また、ステップS131において、sps_high_throughput_flagが偽である(つまり、非CABACハイスループットモードである)と判定された場合、処理はステップS134へ進む。ステップS134において、設定部231は、上述した方法#1-3-3を適用し、コンテキスト符号化ビン数の基準値(ctxBinSampleRatioBase)と変換ブロックサイズ(TbWidth, TbHeight)に基づいて、コンテキスト符号化ビン数の発生量(remCcbs)を導出する。ステップS134の処理が終了すると処理はステップS135へ進む。
 ステップS135において、ラスト係数位置符号化部232は、X方向およびY方向のラスト係数位置(LastSignificantCoef{X, Y})に基づいて、ラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)とサフィックス部(last_sig_coeff_{x,y}_suffix)を設定する。
 ステップS136において、ラスト係数位置符号化部232は、CABACハイスループットモードであるか否かを判定する。
 sps_high_throughput_flagが真である(つまり、CABACハイスループットモードである)と判定された場合、処理はステップS137へ進む。ステップS137において、ラスト係数位置符号化部232は、上述した方法#1を適用し、ラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)をバイパス符号ビンとして符号化する。ステップS137の処理が終了すると、処理はステップS139へ進む。
 また、ステップS136において、sps_high_throughput_flagが偽である(つまり、非CABACハイスループットモードである)と判定された場合、処理はステップS138へ進む。ステップS138において、ラスト係数位置符号化部232は、上述した方法#1-1を適用し、ラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)をコンテキスト符号化ビンとして符号化する。ステップS138の処理が終了すると、処理はステップS139へ進む。
 ステップS139において、ラスト係数位置符号化部232は、上述した方法#1-2を適用し、ラスト係数位置のサフィックス部(last_sig_coeff_{x,y}_suffix)をバイパス符号ビンとして符号化する。
 ステップS140において、サブブロック符号化部233は、サブブロック毎に係数等を符号化する。ステップS140の処理が終了すると、Non-TS残差符号化処理が終了し、処理は図14に戻る。
 以上のように各処理を実行することにより、符号化装置200は、<3.ラスト係数位置のバイパス符号化・バイパス復号>において上述した各方法を適用することができる。つまり、符号化装置200は、<3.ラスト係数位置のバイパス符号化・バイパス復号>において上述した各方法の効果と同様の効果を得ることができる。したがって、符号化装置200は、コンテキスト符号化ビンの発生量を低減させることができ、符号化や復号の処理量の増大を抑制することができる。例えば、符号化装置200は、高ビット深度・高ビットレートの符号化におけるCABACの処理量を軽減し、スループットを向上させることができる。
  <復号装置>
 図16は、本技術を適用した画像処理装置の一態様である復号装置の構成の一例を示すブロック図である。図16に示される復号装置300は、CABACを用いてビットストリームを復号し、量子化係数を生成(復元)する装置である。
 この量子化係数は、符号化装置200の場合と同様に、符号化対象である画像データを用いて生成されたデータである。つまり、復号対象のビットストリームは、本技術を適用した画像処理装置(例えば符号化装置200)が、その量子化係数を符号化して生成したものである。
 なお、図16においては、処理部やデータの流れ等の主なものを示しており、図16に示されるものが全てとは限らない。つまり、復号装置300が、図16においてブロックとして示されていない処理部を有してもよい。また、復号装置300が、図16において矢印等として示されていない処理やデータの流れを有してもよい。
 図16に示されるように、復号装置300は、選択部311、TS残差復号部312、およびNon-TS残差復号部313を有する。
 選択部311は、実行する復号処理の選択に関する処理を行う。例えば、選択部311は、ビットストリームを取得してもよい。また、選択部311は、transform_skip_flagやcIdxを取得してもよい。
 選択部311は、transform_skip_flagおよびcIdxに基づいて、ビットストリームに対してTSRC(TS残差符号化モードでの復号)を適用するか、RRC(Non-TS残差符号化モードでの復号)を適用するかを、変換ブロック毎に選択してもよい。例えば、transform_skip_flag[cIdx]が真である場合、選択部311は、TSRCの適用を選択し、ビットストリームをTS残差復号部312へ供給してもよい。また、transform_skip_flag[cIdx]が偽である場合、選択部311は、RRCの適用を選択し、ビットストリームをNon-TS残差復号部313へ供給してもよい。
 TS残差復号部312は、TS残差符号化モードでの復号(TSRC)に関する処理を実行する。例えば、TS残差復号部312は、選択部311から供給されるビットストリームを取得してもよい。また、TS残差復号部312は、そのビットストリームを、TS残差符号化モードで復号し、量子化係数を生成(復元)してもよい。例えば、TS残差復号部312は、非特許文献3に記載の方法と同様の方法で、ビットストリームを復号(TSRC)してもよい。そして、TS残差復号部312は、その復号により生成(復元)した量子化係数を、復号装置300の外部に出力してもよい。
 Non-TS残差復号部313(復号部)は、Non-TS残差符号化モードでの復号(RRC)に関する処理を実行する。例えば、Non-TS残差復号部313は、選択部311から供給されるビットストリームを取得してもよい。また、Non-TS残差復号部313は、そのビットストリームを、Non-TS残差符号化モードで復号し、量子化係数を生成(復元)してもよい。例えば、Non-TS残差復号部313は、図9等を参照して上述したいずれかの方法を適用して、ビットストリームを復号(RRC)してもよい。そして、Non-TS残差復号部313は、その復号により生成(復元)した量子化係数を、復号装置300の外部に出力してもよい。
  <Non-TS残差復号部>
 図17は、図16のNon-TS残差復号部313の主な構成例を示すブロック図である。なお、図17においては、処理部やデータの流れ等の主なものを示しており、図17に示されるものが全てとは限らない。つまり、Non-TS残差復号部313が、図17においてブロックとして示されていない処理部を有してもよい。また、Non-TS残差復号部313が、図17において矢印等として示されていない処理やデータの流れを有してもよい。
 図17に示されるように、Non-TS残差復号部313は、設定部331、ラスト係数位置復号部332、およびサブブロック復号部333を有する。
 設定部331は、パラメータの設定に関する処理を行う。例えば、設定部331は、ctxBinSampleRatioBaseを取得してもよい。また、設定部331は、TbWidthおよびTbHeightを取得してもよい。また、設定部331は、sps_high_throughput_flagを取得してもよい。
 例えば、sps_high_throughput_flagが真である場合、設定部331は、上述した方法#1-3を適用し、ラスト係数位置の復号の直前において、CABACバイパスアラインメント処理を行ってもよい。その場合、設定部331は、例えば、上述した方法#1-3-1を適用し、そのCABACバイパスアラインメント処理において、パラメータiVlCurrRangeを256に設定してもよい。また、設定部331は、上述した方法#1-3-2を適用し、さらに、コンテキスト符号化ビン数の発生量(remCcbs)を0に設定してもよい。
 また、sps_high_throughput_flagが偽である場合、設定部331は、上述した方法#1-3-3を適用し、コンテキスト符号化ビン数の基準値(ctxBinSampleRatioBase)と変換ブロックサイズ(TbWidth, TbHeight)に基づいて、コンテキスト符号化ビン数の発生量(remCcbs)を導出してもよい。例えば、設定部331は、上述した式(1)を用いてremCcbsを導出してもよい。
 例えば、設定部331は、値を設定したremCcbsをラスト係数位置復号部332へ供給してもよい。また、設定部331は、CABACバイパスアラインメント処理を行った場合、設定したiVlCurrRangeをラスト係数位置復号部332へ供給してもよい。
 ラスト係数位置復号部332は、ラスト係数位置の復号に関する処理を行う。例えば、ラスト係数位置復号部332は、sps_high_throughput_flagを取得してもよい。また、ラスト係数位置復号部332は、ビットストリームを取得してもよい。また、ラスト係数位置復号部332は、設定部331から供給されるremCcbsを取得してもよい。また、ラスト係数位置復号部332は、設定部331から供給されるiVlCurrRangeを取得してもよい。
 例えば、ラスト係数位置復号部332は、上述した方法#1を適用し、sps_high_throughput_flagが真である場合、ビットストリームに含まれるラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)をバイパス符号ビンとして復号してもよい。また、ラスト係数位置復号部332は、上述した方法#1-1を適用し、sps_high_throughput_flagが偽である場合、ビットストリームに含まれるラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)をコンテキスト符号化ビンとして復号してもよい。さらに、ラスト係数位置復号部332は、上述した方法#1-2を適用し、CABACハイスループットモードであるか否かに関わらず、ビットストリームに含まれるラスト係数位置のサフィックス部(last_sig_coeff_{x,y}_suffix)をバイパス符号ビンとして復号してもよい。
 また、ラスト係数位置復号部332は、ビットストリームを復号して得られたラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)とサフィックス部(last_sig_coeff_{x,y}_suffix)に基づいて、X方向およびY方向のラスト係数位置(LastSignificantCoef{X, Y})を設定してもよい。
 例えば、ラスト係数位置復号部332は、remCcbsをサブブロック復号部333へ供給してもよい。また、ラスト係数位置復号部332は、iVlCurrRangeをサブブロック復号部333へ供給してもよい。また、ラスト係数位置復号部332は、ラスト係数位置(LastSignificantCoef{X, Y})をサブブロック復号部333へ供給してもよい。
 サブブロック復号部333は、サブブロック毎の係数等の復号に関する処理を行う。例えば、サブブロック復号部333は、ビットストリームを取得してもよい。また、サブブロック復号部333は、ラスト係数位置復号部332から供給されるremCcbsを取得してもよい。また、サブブロック復号部333は、ラスト係数位置復号部332から供給されるiVlCurrRangeを取得してもよい。また、サブブロック復号部333は、ラスト係数位置復号部332から供給されるラスト係数位置(LastSignificantCoef{X, Y})を取得してもよい。
 例えば、サブブロック復号部333は、ラスト係数位置復号部332から供給される情報を用いてビットストリームを復号し、サブブロック毎に、サブブロック係数フラグ(sb_coded_flag)や量子化係数を生成(復元)してもよい。例えば、サブブロック復号部333は、ビットストリームに含まれるサブブロック係数フラグ(sb_coded_flag)や量子化係数をバイパス符号化ビンとして復号してもよい。
 例えば、サブブロック復号部333は、このような復号により生成(復元)したサブブロック毎の量子化係数を復号装置300の外部に出力してもよい。
 このような構成とすることにより、復号装置300は、<3.ラスト係数位置のバイパス符号化・バイパス復号>において上述した各方法を適用することができる。つまり、復号装置300は、<3.ラスト係数位置のバイパス符号化・バイパス復号>において上述した各方法の効果と同様の効果を得ることができる。したがって、復号装置300は、コンテキスト符号化ビンの発生量を低減させることができ、符号化や復号の処理量の増大を抑制することができる。例えば、復号装置300は、高ビット深度・高ビットレートの復号におけるCABACの処理量を軽減し、スループットを向上させることができる。
  <復号処理の流れ>
 復号装置300により実行される復号処理の流れの例を、図18のフローチャートを参照して説明する。
 復号処理が開始されると、復号装置300は、ステップS201において、コンポーネント識別子cIdxに対応する変換ブロックの変換モード情報(transform_skip_flag等)の符号化データを復号する。
 ステップS202において、選択部311は、TS残差符号化モードで復号するか否かを判定する。例えばtransform_skip_flag[cIdx]が真であり、TS残差符号化モードで復号すると判定された場合、処理はステップS203へ進む。
 ステップS203において、TS残差復号部312は、TS残差符号化モードでビットストリームを復号し、量子化係数を生成(復元)する。例えば、TS残差復号部312は、非特許文献3に記載の方法と同様の方法で、ビットストリームを復号(TSRC)してもよい。ステップS203の処理が終了すると、復号処理が終了する。
 また、ステップS202において、transform_skip_flag[cIdx]が偽であり、Non-TS残差符号化モードで復号すると判定された場合、処理はステップS204へ進む。
 ステップS204において、Non-TS残差復号部313は、Non-TS残差復号処理を実行することにより、Non-TS残差符号化モードでビットストリームを復号し、量子化係数を生成(復元)する。例えば、Non-TS残差復号部313は、図9等を参照して上述したいずれかの方法を適用して、ビットストリームを復号(RRC)してもよい。ステップS204の処理が終了すると、復号処理が終了する。
  <Non-TS残差復号処理の流れ>
 次に、図18のステップS204において実行されるNon-TS残差復号処理の流れの例を、図19のフローチャートを参照して説明する。
 Non-TS残差復号処理が開始されると、Non-TS残差復号部313の設定部331は、ステップS231において、CABACハイスループットモードであるか否かを判定する。
 sps_high_throughput_flagが真である(つまり、CABACハイスループットモードである)と判定された場合、処理はステップS232へ進む。ステップS232において、設定部331は、上述した方法#1-3-2を適用し、コンテキスト符号化ビン数の発生量(remCcbs)を0に設定する。これにより、それ以降の復号においてバイパス復号が選択される。
 ステップS233において、設定部331は、上述した方法#1-3を適用し、CABACバイパスアラインメントを実施する。その際、設定部331は、上述した方法#1-3-1を適用し、パラメータiVlCurrRangeを256に設定してもよい。これにより、バイパス符号化ビンの復号が簡略化され、さらに複数のバイパス符号化ビンを並列処理することができる。
 ステップS234において、ラスト係数位置復号部332は、上述した方法#1を適用し、ビットストリームに含まれるラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)をバイパス符号ビンとして復号する。ステップS234の処理が終了すると、処理はステップS237へ進む。
 また、ステップS231において、sps_high_throughput_flagが偽である(つまり、非CABACハイスループットモードである)と判定された場合、処理はステップS235へ進む。ステップS235において、設定部331は、上述した方法#1-3-3を適用し、コンテキスト符号化ビン数の基準値(ctxBinSampleRatioBase)と変換ブロックサイズ(TbWidth, TbHeight)に基づいて、コンテキスト符号化ビン数の発生量(remCcbs)を導出する。
 ステップS236において、ラスト係数位置復号部332は、上述した方法#1-1を適用し、ビットストリームに含まれるラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)をコンテキスト符号化ビンとして復号する。ステップS236の処理が終了すると、処理はステップS237へ進む。
 ステップS237において、ラスト係数位置復号部332は、上述した方法#1-2を適用し、ビットストリームに含まれるラスト係数位置のサフィックス部(last_sig_coeff_{x,y}_suffix)をバイパス符号ビンとして復号する。
 ステップS238において、ラスト係数位置復号部332は、ステップS234またはステップS236の処理により得られたラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)と、ステップS237の処理により得られたラスト係数位置のサフィックス部(last_sig_coeff_{x,y}_suffix)とに基づいて、X方向およびY方向のラスト係数位置(LastSignificantCoef{X, Y})を設定する。
 ステップS239において、サブブロック復号部333は、ビットストリームを復号し、サブブロック毎に、サブブロック係数フラグ(sb_coded_flag)や量子化係数を生成(復元)する。例えば、サブブロック復号部333は、ビットストリームに含まれるサブブロック係数フラグ(sb_coded_flag)や量子化係数をバイパス符号化ビンとして復号してもよい。ステップS239の処理が終了すると、Non-TS残差復号処理が終了し、処理は図18に戻る。
 以上のように各処理を実行することにより、復号装置300は、<3.ラスト係数位置のバイパス符号化・バイパス復号>において上述した各方法を適用することができる。つまり、復号装置300は、<3.ラスト係数位置のバイパス符号化・バイパス復号>において上述した各方法の効果と同様の効果を得ることができる。したがって、復号装置300は、コンテキスト符号化ビンの発生量を低減させることができ、符号化や復号の処理量の増大を抑制することができる。例えば、復号装置300は、高ビット深度・高ビットレートの復号におけるCABACの処理量を軽減し、スループットを向上させることができる。
 <4.ラスト係数位置の符号化・復号のスキップ>
  <方法#2>
 また、例えば、図20に示される表の最上段に示されるように、CABACハイスループットモードの場合、ラスト係数位置の符号化・復号をスキップ(省略)してもよい(方法#2)。
 例えば、画像処理装置が、画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、その画像データに含まれるラスト係数位置の符号化をスキップ(省略)する符号化部を備えてもよい。また、例えば、画像処理方法において、画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、その画像データに含まれるラスト係数位置の符号化をスキップ(省略)してもよい。
 例えば、画像処理装置が、画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、そのラスト係数位置の復号をスキップ(省略)する復号部を備えてもよい。また、例えば、画像処理方法において、画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、そのラスト係数位置の復号をスキップ(省略)してもよい。
 図21は、この場合の本技術を適用した場合の符号化(復号)の概要を示す疑似コードの例を示す図である。図21の例においては、"For last significant coefficient position"に示されるように、sps_high_throughput_flagが真である(0でない)場合、last_sig_coeff_{x,y}_prefixおよびlast_sig_coeff_{x,y}_suffixの符号化・復号がスキップ(省略)される。
 このように符号化することにより、図22に示されるように、ビットストリームには、ラスト係数位置に対応する符号化ビンが含まれない。図23にこの場合のRRCに関するシンタックスの例を示す。図23のシンタックスにおいて、グレーの行で示されるように、sps_high_throughput_flagが偽の場合のみ、last_sig_coeff_{x,y}_prefixおよびlast_sig_coeff_{x,y}_suffixが伝送される。換言するに、sps_high_throughput_flagが真である(0でない)場合、last_sig_coeff_{x,y}_prefixおよびlast_sig_coeff_{x,y}_suffixは伝送されない。
 図24にこの場合のセマンティクスの例を示す。図24に示されるように、last_sig_coeff_{x,y}_prefixおよびlast_sig_coeff_{x,y}_suffixが伝送されない場合、これらの値は0と推定される。
 図3等を参照して説明したように、非特許文献3に記載の方法では、CABACハイスループットモードが適用される場合も、ラスト係数位置のプリフィックス部およびサフィックス部(例えば、ast_sig_coeff_x_prefix11乃至last_sig_coeff_y_suffix14)が符号化・復号された。これに対して、方法#1においては、CABACハイスループットモードが適用される場合、そのラスト係数位置の符号化・復号がスキップされるため、これらの符号化ビンが発生しない。したがって、コンテキスト符号化ビンの発生量を低減させることができ、符号化や復号の処理量の増大を抑制することができる。例えば、高ビット深度・高ビットレートの符号化におけるCABACの処理量を軽減し、スループットを向上させることができる。
 なお、この場合も、サブブロック毎の係数等の符号化・復号は行われるため、図22の例のビットストリームにおいては、サブブロック毎の符号化ビン(sb_coded_flag401-1、Coefficient bits402-1、sb_coded_flag401-2、Coefficient bits402-2、sb_coded_flag401-3、Coefficient bits402-3、sb_coded_flag401-4、Coefficient bits402-4、sb_coded_flag401-5、およびCoefficient bits402-5)が形成される。sb_coded_flag401-1乃至sb_coded_flag401-5を互いに区別して説明する必要が無い場合、sb_coded_flag401とも称する。また、Coefficient bits402-1乃至Coefficient bits402-5を互いに区別して説明する必要が無い場合、Coefficient bits402とも称する。
 sb_coded_flag105は、サブブロック係数フラグであり、サブブロック内の全ての係数が0であるか否かを示すフラグ情報である。したがって、sb_coded_flag105は、サブブロック毎に設定される。Coefficient bits106は、サブブロック毎の係数の符号化ビンである。つまり、係数は、サブブロック(変換ブロック)毎に符号化・復号される。
 非特許文献3に記載の方法の場合と同様に、CABACハイスループットモードの場合、ラスト係数位置より後ろのコンテキスト符号化ビンがバイパス符号化ビンとして符号化・復号される。つまり、図21において、"For each coefficient group"に示されるように、CABACハイスループットモードが適用される場合、各サブブロックはバイパス符号化・バイパス復号される。つまり、図22において、sb_coded_flag401およびCoefficient bits402は、バイパス符号化ビンにより構成される。上述のように、CABACハイスループットの場合、last_sig_coeff_{x,y}_{prefix,suffix}の符号化・復号をスキップすることにより、RRCの係数符号化全体をバイパス符号化ビンで処理することができる。バイパス符号化ビンは、コンテキスト符号化ビンに比べると処理量が軽い。したがって、このようにコンテキスト符号化ビンをバイパス符号化ビンに置き換えることにより、コンテキスト符号化ビンのまま符号化・復号する場合よりも、CABACの処理量を低減させることができる。
 なお、sb_coded_flag401-1の符号化・復号はスキップ(省略)してもよい。sb_coded_flag401-1の符号化・復号をスキップする場合、その値は1と推定される。また、sb_coded_flag401-1を符号化・復号する場合、ラスト係数位置が含まれるはずであった係数グループに関して、実際に有意係数があるのか否か判定し、有意係数がない場合、係数グループの復号をスキップするようにしてもよい。
  <方法#2-1>
 例えば、上述の方法#2が適用される場合において、図20に示される表の上から2段目に示されるように、ラスト係数位置を変換ブロック内の右下座標に設定してもよい(方法#2-1)。
 例えば、画像処理装置において、符号化部が、ラスト係数位置を変換ブロック内の右下座標に設定してもよい。また、画像処理装置において、復号部が、ラスト係数位置を変換ブロック内の右下座標に設定してもよい。
 例えば、図24のセマンティクスに示されるように、CABACハイスループットモードの場合、X方向のラスト係数位置(LastSignificantCoeffX)およびY方向のラスト係数位置(LastSignificantCoeffY)は、それぞれ、以下の式(2)および式(3)のように設定されてもよい。
 LastSignificantCoeffX = (1<<log2TbWidth) - 1
 ・・・(2)
 LastSignificantCoeffY = (1<<log2TbHeight) - 1
 ・・・(3)
 高ビットレートの符号化対象の場合、ラスト係数位置は、変換ブロックの右下に集中する。そこでラスト係数位置を変換ブロックの右下であると仮定することで、符号化効率への影響を抑えつつラスト係数の符号化に要するビン数を削減することができる。換言するに、ラスト係数位置を変換ブロックの右下に固定することにより、ラスト係数位置の符号化・復号をスキップすることができる。
  <方法#2-2>
 例えば、上述の方法#2が適用される場合において、図20に示される表の上から3段目に示されるように、非CABACハイスループットモードの場合、ラスト係数位置の符号化・復号を行ってもよい(方法#2-2)。
 例えば、画像処理装置において、符号化部が、ハイスループットモードでない場合、ラスト係数位置のプリフィックス部およびサフィックス部を符号化してもよい。また、画像処理装置において、復号部が、ハイスループットモードでない場合、ラスト係数位置のプリフィックス部およびサフィックス部を復号してもよい。
 図23のシンタックスにおいて、グレーの行で示されるように、sps_high_throughput_flagが偽の場合のみ、last_sig_coeff_{x,y}_prefixおよびlast_sig_coeff_{x,y}_suffixが伝送される。換言するに、ハイスループットモードでない場合、ラスト係数位置のプリフィックス部およびサフィックス部が符号化・復号される。このようにすることにより、ハイスループットモードの場合のみ、ラスト係数位置の符号化・復号をスキップすることができる。
  <方法#2-2-1>
 例えば、上述の方法#2-2が適用される場合において、図20に示される表の上から4段目に示されるように、(非CABACハイスループットモードの場合、)ラスト係数位置のプリフィックス部をコンテキスト符号化・コンテキスト復号し、ラスト係数位置のサフィックス部をバイパス符号化・バイパス復号してもよい(方法#2-2-1)。
 例えば、画像処理装置において、符号化部が、ラスト係数位置のプリフィックス部をコンテキスト符号化ビンとして符号化し、ラスト係数位置のサフィックス部をバイパス符号化ビンとして符号化してもよい。また、画像処理装置において、復号部が、ラスト係数位置のプリフィックス部をコンテキスト符号化ビンとして復号し、ラスト係数位置のサフィックス部をバイパス符号化ビンとして復号してもよい。
 図21の疑似コードに示されるように、非CABACハイスループットモードの場合(sps_high_throughput_flag == 0)、ラスト係数位置のプリフィックス部がコンテキスト符号化ビンとして符号化・復号され(context_coding of last_sig_coeff_{x,y}_prefix)、ラスト係数位置のサフィックス部がバイパス符号化ビンとして符号化・復号される(bypass_coding of last_sig_coeff_{x,y}_suffix)。
 このように、ラスト係数位置のサフィックス部がバイパス符号化ビンとして符号化・復号することにより、コンテキスト符号化ビンのまま符号化・復号する場合よりも、CABACの処理量を低減させることができる。
  <方法#2-3>
 例えば、上述の方法#2が適用される場合において、図20に示される表の上から5段目に示されるように、CABACハイスループットモードの場合、最初のサブブロック係数フラグの符号化・復号の直前に、CABACバイパスアラインメント処理を行ってもよい(方法#2-3)。
 例えば、画像処理装置において、符号化部が、ハイスループットモードの場合、画像データに含まれる最初のサブブロック係数フラグの符号化の直前において、符号化プロセスのアラインメント処理を行ってもよい。また、画像処理装置において、復号部が、ハイスループットモードの場合、符号化データに含まれる最初のサブブロック係数フラグの復号の直前において、復号プロセスのアラインメント処理を行ってもよい。
 図21の例においては、"For each coefficient group"の前の"For remBinsPass1 and alignment"において、sps_high_throughput_flagが真である(0でない)場合、CABACバイパスアラインメントが実行される(CABAC bypass alignment)。つまり、CABACハイスループットモードの場合、図22に示されるように、sb_coded_flag401-1の処理の直前において、CABACバイパスアラインメント処理が行われる(Align)。CABACバイパスアラインメントは、CABACのプロセスを調整する処理である。この処理を行うことにより、複数のバイパス符号化ビンを簡単に並列に処理することができるようになる。つまり、最初のサブブロック係数フラグの符号化・復号の直前に、CABACバイパスアラインメント処理を行うことにより、サブブロック毎の係数等に対応するバイパス符号化ビンを簡単に並列に処理することができる。なお、上述のように、CABACハイスループットモードの場合、ラスト係数位置の符号化・復号が省略されるので、このCABACバイパスアラインメントにより、実質的に全てのバイパス符号化ビンを簡単に並列に処理することができる。したがって、符号化や復号の処理量の増大を抑制することができる。
 なお、この場合も本技術は、CABAC以外の符号化・復号にも適用し得る。したがって、この場合のCABACバイパスアラインメントもCABACに限定されない。つまり、この処理は、単に、符号化プロセス(または復号プロセス)を調整する処理(アラインメント処理)としてもよい。
  <方法#2-3-1>
 例えば、上述の方法#2-3が適用される場合において、図20に示される表の上から6段目に示されるように、CABACバイパスアラインメント処理において、算術符号化における範囲を示すパラメータiVlCurrRangeを256に設定してもよい(方法#2-3-1)。
 例えば、画像処理装置において、符号化部が、アラインメント処理において、算術符号化における範囲を示す変数iVlCurrRangeを256に設定してもよい。また、画像処理装置において、復号部が、アラインメント処理において、算術符号化における範囲を示す変数iVlCurrRangeを256に設定してもよい。
 上述のようにCABACハイスループットモードの場合ラスト係数位置の符号化・復号が省略されるので、最初のサブブロック係数フラグの符号化・復号の直前にこの設定が行われることにより、係数符号化全体のバイパス符号化ビンを簡単に並列に処理することができる。したがって、符号化や復号の処理量の増大を抑制することができる。
  <方法#2-3-2>
 例えば、上述の方法#2-3が適用される場合において、図20に示される表の上から7段目に示されるように、CABACバイパスアラインメント処理を行う際に、さらに、コンテキスト符号化ビン数の発生量を0に設定してもよい(方法#2-3-2)。
 例えば、画像処理装置において、符号化部が、最初のサブブロック係数フラグの符号化の直前において、さらに、コンテキスト符号化ビン数の発生量を0に設定してもよい。また、画像処理装置において、復号部が、最初のサブブロック係数フラグの復号の直前において、さらに、コンテキスト符号化ビン数の発生量を0に設定してもよい。
 図21の例においては、"For remBinsPass1 and alignment"において、sps_high_throughput_flagが真である(0でない)場合、パラメータremCcbs(図21においてはremBinPass1)が0に設定される(remBinPass1 = 0)。つまり、CABACハイスループットモードの場合、コンテキスト符号化ビン数の発生量を示すパラメータremCcbsが0に設定される。つまり、バイパス符号化が選択される。
 上述のようにCABACハイスループットモードの場合ラスト係数位置の符号化・復号が省略されるので、最初のサブブロック係数フラグの符号化・復号の直前にこの設定が行われることにより、係数符号化全体のバイパス符号化ビンをバイパス符号化ビンとして処理することができる。したがって、コンテキスト符号化ビンの発生量を低減させることができ、符号化や復号の処理量の増大を抑制することができる。
  <方法#2-3-3>
 例えば、上述の方法#2-3が適用される場合において、図20に示される表の最下段に示されるように、非CABACハイスループットモードの場合、コンテキスト符号化ビン数の基準値と変換ブロックサイズに基づいて、コンテキスト符号化ビン数の発生量を導出してもよい(方法#2-3-3)。
 例えば、画像処理装置において、符号化部が、ハイスループットモードでない場合、最初のサブブロック係数フラグの符号化の直前において、コンテキスト符号化ビン数の基準値と変換ブロックサイズに基づいて、コンテキスト符号化ビン数の発生量を導出してもよい。また、画像処理装置において、復号部が、ハイスループットモードでない場合、最初のサブブロック係数フラグの復号の直前において、コンテキスト符号化ビン数の基準値と変換ブロックサイズに基づいて、コンテキスト符号化ビン数の発生量を導出してもよい。
 図21の例においては、"For remBinsPass1 and alignment"において、sps_high_throughput_flagが偽である場合(sps_high_throughput_flag ==0)、CABACバイパスアラインメントが実行されない。また、パラメータctxBinSampleRatioBase、パラメータTbWidth、およびパラメータTbHeightに基づいて、パラメータremCcbs(図21においてはremBinPass1)が導出される(remBinsPass1 = ( ( 1 << ( log2TbWidth + log2TbHeight ) ) * 7 ) >> 2)。図21の例においては、パラメータctxBinSampleRatioBaseは7に設定されている。つまり、上述の式(1)により、パラメータremCcbsが導出される。
 このようにすることにより、ハイスループットモードでない場合に、ラスト係数位置のプリフィックス部をコンテキスト符号化ビンとして処理することができる。
  <符号化装置>
 この場合も、本技術は、符号化装置200(図12)に適用することができる。この場合、Non-TS残差符号化部213は、図20等を参照して上述したいずれかの方法を適用して、量子化係数を符号化(RRC)してもよい。
  <Non-TS残差符号化部>
 図25は、この場合のNon-TS残差符号化部213の主な構成例を示すブロック図である。なお、図25においては、処理部やデータの流れ等の主なものを示しており、図25に示されるものが全てとは限らない。つまり、Non-TS残差符号化部213が、図25においてブロックとして示されていない処理部を有してもよい。また、Non-TS残差符号化部213が、図25において矢印等として示されていない処理やデータの流れを有してもよい。
 図25に示されるように、この場合も、Non-TS残差符号化部213は、設定部231、ラスト係数位置符号化部232、およびサブブロック符号化部233を有する。
 設定部231は、パラメータの設定に関する処理を行う。例えば、設定部231は、コンテキスト符号化ビン数の基準値(ctxBinSampleRatioBase)を取得してもよい。また、設定部231は、変換ブロックサイズ(TbWidthおよびTbHeight)を取得してもよい。また、設定部231は、CABACハイスループットモードが適用されるか否かを示すフラグ情報(sps_high_throughput_flag)を取得してもよい。
 例えば、sps_high_throughput_flagが真である場合、設定部231は、上述した方法#2-3を適用し、最初のサブブロック係数フラグの符号化の直前において、CABACバイパスアラインメント処理を行ってもよい。その場合、設定部231は、例えば、上述した方法#2-3-1を適用し、そのCABACバイパスアラインメント処理において、パラメータiVlCurrRangeを256に設定してもよい。また、設定部231は、上述した方法#2-3-2を適用し、さらに、コンテキスト符号化ビン数の発生量(remCcbs)を0に設定してもよい。
 また、sps_high_throughput_flagが偽である場合、設定部231は、上述した方法#2-3-3を適用し、コンテキスト符号化ビン数の基準値(ctxBinSampleRatioBase)と変換ブロックサイズ(TbWidth, TbHeight)に基づいて、コンテキスト符号化ビン数の発生量(remCcbs)を導出してもよい。例えば、設定部231は、上述した式(1)を用いてremCcbsを導出してもよい。
 例えば、設定部231は、値を設定したremCcbsをラスト係数位置符号化部232へ供給してもよい。また、設定部231は、CABACバイパスアラインメント処理を行った場合、設定したiVlCurrRangeをラスト係数位置符号化部232へ供給してもよい。
 ラスト係数位置符号化部232は、ラスト係数位置の符号化に関する処理を行う。例えば、ラスト係数位置符号化部232は、sps_high_throughput_flagを取得してもよい。また、ラスト係数位置符号化部232は、量子化係数を取得してもよい。
 例えば、ラスト係数位置符号化部232は、X方向およびY方向のラスト係数位置(LastSignificantCoef{X, Y})に基づいて、ラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)とサフィックス部(last_sig_coeff_{x,y}_suffix)を設定してもよい。例えば、CABACハイスループットモードの場合、ラスト係数位置符号化部232は、ラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)とサフィックス部(last_sig_coeff_{x,y}_suffix)を、それぞれ、0に設定してもよい。
 また、ラスト係数位置符号化部232は、上述した方法#2を適用し、sps_high_throughput_flagが真である場合、ラスト係数位置の符号化をスキップ(省略)してもよい。また、ラスト係数位置符号化部232は、上述した方法#2-1を適用し、ラスト係数位置を変換ブロック内の右下座標に設定してもよい。また、ラスト係数位置符号化部232は、上述した方法#2-2を適用し、sps_high_throughput_flagが偽である場合、ラスト係数位置を符号化してもよい。その符号化において、ラスト係数位置符号化部232は、上述した方法#2-2-1を適用し、ラスト係数位置のプリフィックス部をコンテキスト符号化し、ラスト係数位置のサフィックス部をバイパス符号化してもよい。
 例えば、ラスト係数位置符号化部232は、ラスト係数位置を符号化した場合、生成したラスト係数位置のプリフィックス部に対応する符号化ビンおよびサフィックス部に対応する符号化ビンをビットストリームとして符号化装置200の外部に出力してもよい。また、ラスト係数位置符号化部232は、remCcbsをサブブロック符号化部233へ供給してもよい。また、ラスト係数位置符号化部232は、ラスト係数位置(LastSignificantCoef{X, Y})をサブブロック符号化部233へ供給してもよい。
 サブブロック符号化部233は、サブブロック毎の係数等の符号化に関する処理を行う。例えば、サブブロック符号化部233は、量子化係数を取得してもよい。また、サブブロック符号化部233は、設定部231から供給されるremCcbsを取得してもよい。また、サブブロック符号化部233は、設定部231から供給されるiVlCurrRangeを取得してもよい。また、サブブロック符号化部233は、ラスト係数位置符号化部232から供給されるラスト係数位置(LastSignificantCoef{X, Y})を取得してもよい。
 例えば、サブブロック符号化部233は、設定部231やラスト係数位置符号化部232から供給される情報を用いて、サブブロック係数フラグ(sb_coded_flag)や量子化係数を、サブブロック毎に符号化してもよい。例えば、サブブロック符号化部233は、サブブロック係数フラグ(sb_coded_flag)や量子化係数をバイパス符号化ビンとして符号化してもよい。
 例えば、サブブロック符号化部233は、このような符号化により生成したサブブロック毎のバイパス符号化ビン群(サブブロック係数フラグ(sb_coded_flag)や量子化係数のバイパス符号化ビン)をビットストリームとして符号化装置200の外部に出力してもよい。
 このような構成とすることにより、符号化装置200は、<4.ラスト係数位置の符号化・復号のスキップ>において上述した各方法を適用することができる。つまり、符号化装置200は、<4.ラスト係数位置の符号化・復号のスキップ>において上述した各方法の効果と同様の効果を得ることができる。したがって、符号化装置200は、コンテキスト符号化ビンの発生量を低減させることができ、符号化や復号の処理量の増大を抑制することができる。例えば、符号化装置200は、高ビット深度・高ビットレートの符号化におけるCABACの処理量を軽減し、スループットを向上させることができる。
  <符号化処理の流れ>
 この場合も、符号化装置200により実行される符号化処理は、図14のフローチャートを参照して場合と同様の流れで実行される。
  <Non-TS残差符号化処理の流れ>
 次に、この場合のNon-TS残差符号化処理(この場合の符号化処理のステップS104(図14)において実行される処理)の流れの例を、図26のフローチャートを参照して説明する。
 Non-TS残差符号化処理が開始されると、Non-TS残差符号化部213の設定部231は、ステップS301において、CABACハイスループットモードであるか否かを判定する。
 sps_high_throughput_flagが真である(つまり、CABACハイスループットモードである)と判定された場合、処理はステップS302へ進む。ステップS302において、ラスト係数位置符号化部232は、上述した方法#2-1を適用し、ラスト係数位置を変換ブロック内の右下座標に設定する。
 ステップS303において、ラスト係数位置符号化部232は、上述した方法#2を適用し、ラスト係数位置の符号化をスキップ(省略)する。また、ラスト係数位置符号化部232は、ラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)とサフィックス部(last_sig_coeff_{x,y}_suffix)を、それぞれ0に設定する。
 ステップS304において、設定部231は、上述した方法#2-3-2を適用し、コンテキスト符号化ビン数の発生量(remCcbs)を0に設定する。これにより、それ以降の符号化においてバイパス符号化が選択される。
 ステップS305において、設定部231は、上述した方法#2-3を適用し、CABACバイパスアラインメントを実施する。その際、設定部231は、上述した方法#2-3-1を適用し、パラメータiVlCurrRangeを256に設定してもよい。これにより、バイパス符号化ビンの符号化が簡略化され、さらに複数のバイパス符号化ビンを並列処理することができる。ステップS305の処理が終了すると処理はステップS310へ進む。
 また、ステップS301において、sps_high_throughput_flagが偽である(つまり、非CABACハイスループットモードである)と判定された場合、処理はステップS306へ進む。ステップS306において、ラスト係数位置符号化部232は、X方向およびY方向のラスト係数位置(LastSignificantCoef{X, Y})に基づいて、ラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)とサフィックス部(last_sig_coeff_{x,y}_suffix)を設定する。
 ステップS307およびステップS308において、ラスト係数位置符号化部232は、上述した方法#2-2を適用し、ラスト係数位置のプリフィックス部およびサフィックス部を符号化する。例えば、ラスト係数位置符号化部232は、上述した方法#2-2-1を適用し、ステップS307において、ラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)をコンテキスト符号化ビンとして符号化し、ステップS308において、ラスト係数位置のサフィックス部(last_sig_coeff_{x,y}_suffix)をバイパス符号ビンとして符号化する。
 ステップS309において、設定部231は、上述した方法#2-3-3を適用し、コンテキスト符号化ビン数の基準値(ctxBinSampleRatioBase)と変換ブロックサイズ(TbWidth, TbHeight)に基づいて、コンテキスト符号化ビン数の発生量(remCcbs)を導出する。ステップS309の処理が終了すると処理はステップS310へ進む。
 ステップS310において、サブブロック符号化部233は、サブブロック毎に係数等を符号化する。ステップS310の処理が終了すると、Non-TS残差符号化処理が終了し、処理は図14に戻る。
 以上のように各処理を実行することにより、符号化装置200は、<4.ラスト係数位置の符号化・復号のスキップ>において上述した各方法を適用することができる。つまり、符号化装置200は、<4.ラスト係数位置の符号化・復号のスキップ>において上述した各方法の効果と同様の効果を得ることができる。したがって、符号化装置200は、コンテキスト符号化ビンの発生量を低減させることができ、符号化や復号の処理量の増大を抑制することができる。例えば、符号化装置200は、高ビット深度・高ビットレートの符号化におけるCABACの処理量を軽減し、スループットを向上させることができる。
  <復号装置>
 この場合も、本技術は、復号装置300(図16)に適用することができる。この場合、Non-TS残差復号部313は、図20等を参照して上述したいずれかの方法を適用して、ビットストリームを復号(RRC)してもよい。
  <Non-TS残差復号部>
 図27は、この場合のNon-TS残差復号部313の主な構成例を示すブロック図である。なお、図27においては、処理部やデータの流れ等の主なものを示しており、図27に示されるものが全てとは限らない。つまり、Non-TS残差復号部313が、図27においてブロックとして示されていない処理部を有してもよい。また、Non-TS残差復号部313が、図27において矢印等として示されていない処理やデータの流れを有してもよい。
 図27に示されるように、この場合も、Non-TS残差復号部313は、設定部331、ラスト係数位置復号部332、およびサブブロック復号部333を有する。
 設定部331は、パラメータの設定に関する処理を行う。例えば、設定部331は、ctxBinSampleRatioBaseを取得してもよい。また、設定部331は、TbWidthおよびTbHeightを取得してもよい。また、設定部331は、sps_high_throughput_flagを取得してもよい。
 例えば、sps_high_throughput_flagが真である場合、設定部331は、上述した方法#2-3を適用し、最初のサブブロック係数フラグの復号の直前において、CABACバイパスアラインメント処理を行ってもよい。その場合、設定部331は、例えば、上述した方法#2-3-1を適用し、そのCABACバイパスアラインメント処理において、パラメータiVlCurrRangeを256に設定してもよい。また、設定部331は、上述した方法#2-3-2を適用し、さらに、コンテキスト符号化ビン数の発生量(remCcbs)を0に設定してもよい。
 また、sps_high_throughput_flagが偽である場合、設定部331は、上述した方法#2-3-3を適用し、コンテキスト符号化ビン数の基準値(ctxBinSampleRatioBase)と変換ブロックサイズ(TbWidth, TbHeight)に基づいて、コンテキスト符号化ビン数の発生量(remCcbs)を導出してもよい。例えば、設定部331は、上述した式(1)を用いてremCcbsを導出してもよい。
 例えば、設定部331は、値を設定したremCcbsをサブブロック復号部333へ供給してもよい。また、設定部331は、CABACバイパスアラインメント処理を行った場合、設定したiVlCurrRangeをサブブロック復号部333へ供給してもよい。
 ラスト係数位置復号部332は、ラスト係数位置の復号に関する処理を行う。例えば、ラスト係数位置復号部332は、sps_high_throughput_flagを取得してもよい。また、ラスト係数位置復号部332は、ビットストリームを取得してもよい。
 例えば、ラスト係数位置復号部332は、上述した方法#2を適用し、sps_high_throughput_flagが真である場合、ラスト係数位置の復号をスキップしてもよい。そして、ラスト係数位置復号部332は、上述した方法#2-1を適用し、ラスト係数位置を変換ブロック内の右下座標に設定してもよい。また、ラスト係数位置復号部332は、上述した方法#2-2を適用し、sps_high_throughput_flagが偽である場合、ビットストリームに含まれるラスト係数位置(のプリフィックス部に対応する符号化ビンおよびサフィックス部に対応する符号化ビン)を復号してもよい。例えば、ラスト係数位置復号部332は、上述した方法#2-2-1を適用し、ビットストリームに含まれるラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)をコンテキスト復号し、ラスト係数位置のサフィックス部(last_sig_coeff_{x,y}_suffix)をバイパス復号してもよい。
 また、ラスト係数位置復号部332は、sps_high_throughput_flagが偽である場合、ビットストリームを復号して得られたラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)とサフィックス部(last_sig_coeff_{x,y}_suffix)に基づいて、X方向およびY方向のラスト係数位置(LastSignificantCoef{X, Y})を設定してもよい。
 例えば、ラスト係数位置復号部332は、ラスト係数位置(LastSignificantCoef{X, Y})をサブブロック復号部333へ供給してもよい。
 サブブロック復号部333は、サブブロック毎の係数等の復号に関する処理を行う。例えば、サブブロック復号部333は、ビットストリームを取得してもよい。また、サブブロック復号部333は、設定部331から供給されるremCcbsを取得してもよい。また、サブブロック復号部333は、設定部331から供給されるiVlCurrRangeを取得してもよい。また、サブブロック復号部333は、ラスト係数位置復号部332から供給されるラスト係数位置(LastSignificantCoef{X, Y})を取得してもよい。
 例えば、サブブロック復号部333は、設定部331およびラスト係数位置復号部332から供給される情報を用いてビットストリームを復号し、サブブロック毎に、サブブロック係数フラグ(sb_coded_flag)や量子化係数を生成(復元)してもよい。例えば、サブブロック復号部333は、ビットストリームに含まれるサブブロック係数フラグ(sb_coded_flag)や量子化係数をバイパス符号化ビンとして復号してもよい。
 例えば、サブブロック復号部333は、このような復号により生成(復元)したサブブロック毎の量子化係数を復号装置300の外部に出力してもよい。
 このような構成とすることにより、復号装置300は、<4.ラスト係数位置の符号化・復号のスキップ>において上述した各方法を適用することができる。つまり、復号装置300は、<4.ラスト係数位置の符号化・復号のスキップ>において上述した各方法の効果と同様の効果を得ることができる。したがって、復号装置300は、コンテキスト符号化ビンの発生量を低減させることができ、符号化や復号の処理量の増大を抑制することができる。例えば、復号装置300は、高ビット深度・高ビットレートの復号におけるCABACの処理量を軽減し、スループットを向上させることができる。
  <復号処理の流れ>
 この場合も、復号装置300により実行される復号処理は、図18のフローチャートを参照して場合と同様の流れで実行される。
  <Non-TS残差復号処理の流れ>
 次に、この場合のNon-TS残差復号処理(この場合の復号処理のステップS204(図18)において実行される処理)の流れの例を、図28のフローチャートを参照して説明する。
 Non-TS残差復号処理が開始されると、Non-TS残差復号部313のラスト係数位置復号部332は、ステップS331において、CABACハイスループットモードであるか否かを判定する。
 sps_high_throughput_flagが真である(つまり、CABACハイスループットモードである)と判定された場合、処理はステップS332へ進む。ステップS332において、ラスト係数位置復号部332は、上述した方法#2を適用し、ラスト係数位置の復号をスキップ(省略)する。これにより、コンテキスト符号化ビンの発生量を低減させることができる。さらに、ラスト係数位置復号部332は、上述した方法#2-1を適用し、ラスト係数位置を変換ブロック内の右下座標に設定する。これにより、符号化効率への影響を抑えつつラスト係数の符号化に要するビン数を削減することができる。
 ステップS333において、設定部331は、上述した方法#2-3-2を適用し、コンテキスト符号化ビン数の発生量(remCcbs)を0に設定する。これにより、それ以降の復号においてバイパス復号が選択される。
 ステップS334において、設定部331は、上述した方法#2-3を適用し、CABACバイパスアラインメントを実施する。その際、設定部331は、上述した方法#2-3-1を適用し、パラメータiVlCurrRangeを256に設定してもよい。これにより、バイパス符号化ビンの復号が簡略化され、さらに複数のバイパス符号化ビンを並列処理することができる。ステップS334の処理が終了すると、処理はステップS339へ進む。
 また、ステップS331において、sps_high_throughput_flagが偽である(つまり、非CABACハイスループットモードである)と判定された場合、処理はステップS335へ進む。ステップS335およびステップS336において、ラスト係数位置復号部332は、上述した方法#2-2を適用し、ビットストリームに含まれるラスト係数位置のプリフィックス部およびサフィックス部を復号する。例えば、ラスト係数位置復号部332は、上述した方法#2-2-1を適用し、ステップS335において、ビットストリームに含まれるラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)をコンテキスト符号化ビンとして復号し、ステップS336において、ビットストリームに含まれるラスト係数位置のサフィックス部(last_sig_coeff_{x,y}_suffix)をバイパス符号ビンとして復号する。
 ステップS337において、ラスト係数位置復号部332は、ステップS335の処理により得られたラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)と、ステップS336の処理により得られたラスト係数位置のサフィックス部(last_sig_coeff_{x,y}_suffix)とに基づいて、X方向およびY方向のラスト係数位置(LastSignificantCoef{X, Y})を設定する。
 ステップS338において、設定部331は、上述した方法#2-3-3を適用し、コンテキスト符号化ビン数の基準値(ctxBinSampleRatioBase)と変換ブロックサイズ(TbWidth, TbHeight)に基づいて、コンテキスト符号化ビン数の発生量(remCcbs)を導出する。ステップS338の処理が終了すると、処理はステップS339に進む。
 ステップS339において、サブブロック復号部333は、ビットストリームを復号し、サブブロック毎に、サブブロック係数フラグ(sb_coded_flag)や量子化係数を生成(復元)する。例えば、サブブロック復号部333は、ビットストリームに含まれるサブブロック係数フラグ(sb_coded_flag)や量子化係数をバイパス符号化ビンとして復号してもよい。ステップS339の処理が終了すると、Non-TS残差復号処理が終了し、処理は図18に戻る。
 以上のように各処理を実行することにより、復号装置300は、<4.ラスト係数位置の符号化・復号のスキップ>において上述した各方法を適用することができる。つまり、復号装置300は、<4.ラスト係数位置の符号化・復号のスキップ>において上述した各方法の効果と同様の効果を得ることができる。したがって、復号装置300は、コンテキスト符号化ビンの発生量を低減させることができ、符号化や復号の処理量の増大を抑制することができる。例えば、復号装置300は、高ビット深度・高ビットレートの復号におけるCABACの処理量を軽減し、スループットを向上させることができる。
 <5.実施の形態(画像符号化装置)>
  <画像符号化装置>
 以上に説明した本技術は任意の構成に適用することができる。例えば、この本技術は、画像符号化装置に適用し得る。図29は、本技術を適用した画像処理装置の一態様である画像符号化装置の構成の一例を示すブロック図である。図29に示される画像符号化装置500は、動画像の画像データを符号化する装置である。例えば、画像符号化装置500は、上述の非特許文献のいずれかに記載の符号化方式で動画像の画像データを符号化することができる。
 なお、図29においては、処理部(ブロック)やデータの流れ等の主なものを示しており、図29に示されるものが全てとは限らない。つまり、画像符号化装置500が、図29においてブロックとして示されていない処理部を有していてもよい。また、画像符号化装置500が、図29において矢印等として示されていない処理やデータの流れを有していてもよい。
 図29に示されるように画像符号化装置500は、制御部501、並べ替えバッファ511、演算部512、直交変換部513、量子化部514、符号化部515、蓄積バッファ516、逆量子化部517、逆直交変換部518、演算部519、インループフィルタ部520、フレームメモリ521、予測部522、およびレート制御部523を有する。
   <制御部>
 制御部501は、外部、または予め指定された処理単位のブロックサイズに基づいて、並べ替えバッファ511により保持されている動画像データを処理単位のブロック(CU, PU, 変換ブロックなど)へ分割する。また、制御部501は、各ブロックへ供給する符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfo等)を、例えば、RDO(Rate-Distortion Optimization)に基づいて、決定する。
 これらの符号化パラメータの詳細については後述する。制御部501は、以上のような符号化パラメータを決定すると、それを各ブロックへ供給する。具体的には、以下の通りである。
 ヘッダ情報Hinfoは、各ブロックに供給される。予測モード情報Pinfoは、符号化部515と予測部522とに供給される。変換情報Tinfoは、符号化部515、直交変換部513、量子化部514、逆量子化部517、および逆直交変換部518に供給される。フィルタ情報Finfoは、インループフィルタ部520に供給される。
   <並べ替えバッファ>
 画像符号化装置500には、動画像データの各フィールド(入力画像)がその再生順(表示順)に入力される。並べ替えバッファ511は、各入力画像をその再生順(表示順)に取得し、保持(記憶)する。並べ替えバッファ511は、制御部501の制御に基づいて、その入力画像を符号化順(復号順)に並べ替えたり、処理単位のブロックに分割したりする。並べ替えバッファ511は、処理後の各入力画像を演算部512に供給する。また、並べ替えバッファ511は、その各入力画像(元画像)を、予測部522やインループフィルタ部520にも供給する。
   <演算部>
 演算部512は、処理単位のブロックに対応する画像I、および予測部522より供給される予測画像Pを入力とし、画像Iから予測画像Pを以下の式に示されるように減算して、予測残差Dを導出し、それを直交変換部513に供給する。
 D = I - P
   <直交変換部>
 直交変換部513は、演算部512から供給される予測残差Dと、制御部501から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、予測残差Dに対して直交変換を行い、変換係数Coeffを導出する。例えば、直交変換部513は、予測残差Dに対してプライマリ変換を行ってプライマリ変換係数を生成し、ST識別子に基づいて、そのプライマリ変換係数に対してセカンダリ変換を行い、セカンダリ変換係数を生成する。直交変換部513は、その得られたセカンダリ変換係数を変換係数Coeffとして量子化部514に供給する。なお、直交変換部513は、直交変換に限らず、任意の係数変換を行うことができる。つまり、変換係数Coeffは、予測残差Dに対して任意の係数変換が行われて導出されてもよい。したがって、直交変換部513は、係数変換部とも言える。
   <量子化部>
 量子化部514は、直交変換部513から供給される変換係数Coeffと、制御部501から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数Coeffをスケーリング(量子化)する。なお、この量子化のレートは、レート制御部523により制御される。量子化部514は、このように量子化された変換係数のレベル値である量子化係数qcoeffを、符号化部515および逆量子化部517に供給する。
   <符号化部>
 符号化部515は、量子化部514から供給された量子化係数qcoeffと、制御部501から供給される各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)と、インループフィルタ部520から供給されるフィルタ係数等のフィルタに関する情報と、予測部522から供給される最適な予測モードに関する情報とを入力とする。符号化部515は、量子化係数qcoeffを可変長符号化(例えば、算術符号化)し、ビット列(符号化データ)を生成する。
 さらに、符号化部515は、インループフィルタ部520から供給されるフィルタに関する情報をフィルタ情報Finfoに含め、予測部522から供給される最適な予測モードに関する情報を予測モード情報Pinfoに含める。そして、符号化部515は、上述した各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)を符号化し、ビット列を生成する。
 また、符号化部515は、以上のように生成された各種情報のビット列(符号化データ)を多重化し、符号化データのビットストリームを生成する。符号化部515は、そのビットストリームを蓄積バッファ516に供給する。
   <蓄積バッファ>
 蓄積バッファ516は、符号化部515において得られた符号化データのビットストリームを、一時的に保持する。蓄積バッファ516は、所定のタイミングにおいて、保持している符号化データのビットストリームを画像符号化装置500の外部に出力する。例えば、このビットストリームは、任意の記録媒体、任意の伝送媒体、任意の情報処理装置等を介して復号側に伝送される。すなわち、蓄積バッファ516は、ビットストリーム(符号化データ)を伝送する伝送部でもある。
   <逆量子化部>
 逆量子化部517は、逆量子化に関する処理を行う。例えば、逆量子化部517は、量子化部514から供給される量子化係数qcoeffと、制御部501から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、量子化係数qcoeffの値をスケーリング(逆量子化)する。なお、この逆量子化は、量子化部514において行われる量子化の逆処理である。逆量子化部517は、このような逆量子化により得られた変換係数Coeff_IQを、逆直交変換部518に供給する。
   <逆直交変換部>
 逆直交変換部518は、逆直交変換に関する処理を行う。例えば、逆直交変換部518は、逆量子化部517から供給される変換係数Coeff_IQと、制御部501から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆直交変換を行い、予測残差D'を導出する。この逆直交変換は、直交変換部513において行われる直交変換の逆処理である。逆直交変換部518は、このような逆直交変換により得られた予測残差D'を演算部519に供給する。
 換言するに、逆直交変換部518は、直交変換部513が実行する処理の逆処理を実行する。つまり、直交変換部513の場合と同様に、逆直交変換部518は、逆直交変換に限らず任意の逆係数変換を行うことができる。この逆係数変換は、直交変換部513が実行する係数変換の逆処理である。つまり、予測残差D'は、変換係数Coeff_IQに対して任意の逆係数変換が行われて導出されてもよい。したがって、逆直交変換部518は、逆係数変換部とも言える。
   <演算部>
 演算部519は、逆直交変換部518から供給される予測残差D'と、予測部522から供給される予測画像Pとを入力とする。演算部519は、その予測残差D'と、その予測残差D'に対応する予測画像Pとを加算し、局所復号画像Rlocalを導出する。演算部519は、導出した局所復号画像Rlocalをインループフィルタ部520およびフレームメモリ521に供給する。
   <インループフィルタ部>
 インループフィルタ部520は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部520は、演算部519から供給される局所復号画像Rlocalと、制御部501から供給されるフィルタ情報Finfoと、並べ替えバッファ511から供給される入力画像(元画像)とを入力とする。なお、インループフィルタ部520に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。例えば、必要に応じて、予測モード、動き情報、符号量目標値、量子化パラメータQP、ピクチャタイプ、ブロック(CU、CTU等)の情報等がインループフィルタ部520に入力されるようにしてもよい。
 インループフィルタ部520は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。インループフィルタ部520は、必要に応じて入力画像(元画像)や、その他の入力情報もそのフィルタ処理に用いる。
 例えば、インループフィルタ部520は、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
 もちろん、インループフィルタ部520が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部520がウィーナーフィルタ等を適用するようにしてもよい。
 インループフィルタ部520は、フィルタ処理された局所復号画像Rlocalをフレームメモリ521に供給する。なお、例えばフィルタ係数等のフィルタに関する情報を復号側に伝送する場合、インループフィルタ部520は、そのフィルタに関する情報を符号化部515に供給する。
   <フレームメモリ>
 フレームメモリ521は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ521は、演算部519から供給される局所復号画像Rlocalや、インループフィルタ部520から供給されるフィルタ処理された局所復号画像Rlocalを入力とし、それを保持(記憶)する。また、フレームメモリ521は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(フレームメモリ521内のバッファへ格納する)。フレームメモリ521は、予測部522の要求に応じて、その復号画像R(またはその一部)を予測部522に供給する。
   <予測部>
 予測部522は、予測画像の生成に関する処理を行う。例えば、予測部522は、制御部501から供給される予測モード情報Pinfoと、並べ替えバッファ511から供給される入力画像(元画像)と、フレームメモリ521から読み出す復号画像R(またはその一部)を入力とする。予測部522は、予測モード情報Pinfoや入力画像(元画像)を用い、インター予測やイントラ予測等の予測処理を行い、復号画像Rを参照画像として参照して予測を行い、その予測結果に基づいて動き補償処理を行い、予測画像Pを生成する。予測部522は、生成した予測画像Pを演算部512および演算部519に供給する。また、予測部522は、以上の処理により選択した予測モード、すなわち最適な予測モードに関する情報を、必要に応じて符号化部515に供給する。
   <レート制御部>
 レート制御部523は、レート制御に関する処理を行う。例えば、レート制御部523は、蓄積バッファ516に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部514の量子化動作のレートを制御する。
 なお、これらの処理部(制御部501、並べ替えバッファ511乃至レート制御部523)は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
 以上のような構成の画像符号化装置500において、符号化部515に対して、上述した本技術を適用してもよい。
 例えば、符号化部515に対して、<3.ラスト係数位置のバイパス符号化・バイパス復号>において上述した各方法を適用してもよい。例えば、符号化部515が、量子化係数qcoeffの符号化において方法#1を適用し、sps_high_throughput_flagが真である場合、ラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)をバイパス符号ビンとして符号化してもよい。同様に、符号化部515は、量子化係数qcoeffの符号化において、<3.ラスト係数位置のバイパス符号化・バイパス復号>において上述した各方法を適用することができる。このようにすることにより、画像符号化装置500は、<3.ラスト係数位置のバイパス符号化・バイパス復号>において上述した各方法の効果と同様の効果を得ることができる。したがって、画像符号化装置500は、コンテキスト符号化ビンの発生量を低減させることができ、符号化や復号の処理量の増大を抑制することができる。例えば、画像符号化装置500は、高ビット深度・高ビットレートの画像データの符号化におけるCABACの処理量を軽減し、スループットを向上させることができる。
 また、例えば、符号化部515に対して、<4.ラスト係数位置の符号化・復号のスキップ>において上述した各方法を適用してもよい。例えば、符号化部515が、量子化係数qcoeffの符号化において方法#2を適用し、sps_high_throughput_flagが真である場合、ラスト係数位置の符号化をスキップ(省略)してもよい。同様に、符号化部515は、量子化係数qcoeffの符号化において、<4.ラスト係数位置の符号化・復号のスキップ>において上述した各方法を適用することができる。このようにすることにより、画像符号化装置500は、<4.ラスト係数位置の符号化・復号のスキップ>において上述した各方法の効果と同様の効果を得ることができる。したがって、画像符号化装置500は、コンテキスト符号化ビンの発生量を低減させることができ、符号化や復号の処理量の増大を抑制することができる。例えば、画像符号化装置500は、高ビット深度・高ビットレートの画像データの符号化におけるCABACの処理量を軽減し、スループットを向上させることができる。
  <画像符号化処理の流れ>
 次に、以上のような構成の画像符号化装置500により実行される画像符号化処理の流れの例を、図30のフローチャートを参照して説明する。
 画像符号化処理が開始されると、ステップS501において、並べ替えバッファ511は、制御部501に制御されて、入力された動画像データのフレームの順を表示順から符号化順に並べ替える。
 ステップS502において、制御部501は、並べ替えバッファ511が保持する入力画像に対して、処理単位を設定する(ブロック分割を行う)。
 ステップS503において、制御部501は、並べ替えバッファ511が保持する入力画像についての符号化パラメータを決定(設定)する。
 ステップS504において、予測部522は、予測処理を行い、最適な予測モードの予測画像等を生成する。例えば、この予測処理において、予測部522は、イントラ予測を行って最適なイントラ予測モードの予測画像等を生成し、インター予測を行って最適なインター予測モードの予測画像等を生成し、それらの中から、コスト関数値等に基づいて最適な予測モードを選択する。
 ステップS505において、演算部512は、入力画像と、ステップS504の予測処理により選択された最適なモードの予測画像との差分を演算する。つまり、演算部512は、入力画像と予測画像との予測残差Dを生成する。このようにして求められた予測残差Dは、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
 ステップS506において、直交変換部513は、ステップS505の処理により生成された予測残差Dに対する直交変換処理を行い、変換係数Coeffを導出する。
 ステップS507において、量子化部514は、制御部501により算出された量子化パラメータを用いる等して、ステップS506の処理により得られた変換係数Coeffを量子化し、量子化係数qcoeffを導出する。
 ステップS508において、逆量子化部517は、ステップS507の処理により生成された量子化係数qcoeffを、そのステップS507の量子化の特性に対応する特性で逆量子化し、変換係数Coeff_IQを導出する。
 ステップS509において、逆直交変換部518は、ステップS508の処理により得られた変換係数Coeff_IQを、ステップS506の直交変換処理に対応する方法で逆直交変換し、予測残差D'を導出する。
 ステップS510において、演算部519は、ステップS509の処理により導出された予測残差D'に、ステップS504の予測処理により得られた予測画像を加算することにより、局所的に復号された復号画像を生成する。
 ステップS511において、インループフィルタ部520は、ステップS510の処理により導出された、局所的に復号された復号画像に対して、インループフィルタ処理を行う。
 ステップS512において、フレームメモリ521は、ステップS510の処理により導出された、局所的に復号された復号画像や、ステップS511においてフィルタ処理された、局所的に復号された復号画像を記憶する。
 ステップS513において、符号化部515は、符号化処理を実行し、ステップS507の処理により得られた量子化係数qcoeffや各種符号化パラメータ等を符号化し、符号化データのビットストリームを生成する。
 ステップS514において、蓄積バッファ516は、ステップS513において得られたビットストリームを蓄積し、それを画像符号化装置500の外部に出力する。このビットストリームは、例えば、伝送路や記録媒体を介して復号側に伝送される。また、レート制御部523は、必要に応じてレート制御を行う。
 ステップS514の処理が終了すると、画像符号化処理が終了する。
 このような画像符号化処理のステップS513において実行される符号化処理において、上述した本技術を適用してもよい。
 例えば、その符号化処理において、<3.ラスト係数位置のバイパス符号化・バイパス復号>において上述した各方法を適用してもよい。例えば、符号化部515が、量子化係数qcoeffの符号化において方法#1を適用し、sps_high_throughput_flagが真である場合、ラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)をバイパス符号ビンとして符号化してもよい。同様に、符号化部515は、量子化係数qcoeffの符号化において、<3.ラスト係数位置のバイパス符号化・バイパス復号>において上述した各方法を適用することができる。このようにすることにより、画像符号化装置500は、<3.ラスト係数位置のバイパス符号化・バイパス復号>において上述した各方法の効果と同様の効果を得ることができる。したがって、画像符号化装置500は、コンテキスト符号化ビンの発生量を低減させることができ、符号化や復号の処理量の増大を抑制することができる。例えば、画像符号化装置500は、高ビット深度・高ビットレートの画像データの符号化におけるCABACの処理量を軽減し、スループットを向上させることができる。
 また、その符号化処理において、<4.ラスト係数位置の符号化・復号のスキップ>において上述した各方法を適用してもよい。例えば、符号化部515が、量子化係数qcoeffの符号化において方法#2を適用し、sps_high_throughput_flagが真である場合、ラスト係数位置の符号化をスキップ(省略)してもよい。同様に、符号化部515は、量子化係数qcoeffの符号化において、<4.ラスト係数位置の符号化・復号のスキップ>において上述した各方法を適用することができる。このようにすることにより、画像符号化装置500は、<4.ラスト係数位置の符号化・復号のスキップ>において上述した各方法の効果と同様の効果を得ることができる。したがって、画像符号化装置500は、コンテキスト符号化ビンの発生量を低減させることができ、符号化や復号の処理量の増大を抑制することができる。例えば、画像符号化装置500は、高ビット深度・高ビットレートの画像データの符号化におけるCABACの処理量を軽減し、スループットを向上させることができる。
 <6.実施の形態(画像復号装置)>
  <画像復号装置>
 以上に説明した本技術は任意の構成に適用することができる。例えば、この本技術は、画像復号装置に適用し得る。図31は、本技術を適用した画像処理装置の一態様である画像復号装置の構成の一例を示すブロック図である。図31に示される画像復号装置600は、動画像の符号化データ(ビットストリーム)を復号することによって、動画像データを生成する装置である。例えば、画像復号装置600は、上述の非特許文献のいずれかに記載の復号方式で符号化データを復号することができる。
 なお、図31においては、処理部(ブロック)やデータの流れ等の主なものを示しており、図31に示されるものが全てとは限らない。つまり、画像復号装置600が、図31においてブロックとして示されていない処理部を有していてもよい。また、画像復号装置600が、図31において矢印等として示されていない処理やデータの流れを有していてもよい。
 図31に示されるように画像復号装置600は、蓄積バッファ611、復号部612、逆量子化部613、逆直交変換部614、演算部615、インループフィルタ部616、並べ替えバッファ617、フレームメモリ618、および予測部619を備えている。なお、予測部619は、不図示のイントラ予測部およびインター予測部等を備えている。
   <蓄積バッファ>
 蓄積バッファ611は、画像復号装置600に入力されたビットストリームを取得し、保持(記憶)する。蓄積バッファ611は、所定のタイミングにおいて、または、所定の条件が整う等した場合、蓄積しているビットストリームを復号部612に供給する。
   <復号部>
 復号部612は、画像の復号に関する処理を行う。例えば、復号部612は、蓄積バッファ611から供給されるビットストリームを入力とし、シンタックステーブルの定義に沿って、そのビット列から、各シンタックス要素のシンタックス値を可変長復号し、パラメータを導出する。
 シンタックス要素およびシンタックス要素のシンタックス値から導出されるパラメータには、例えば、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなどの情報が含まれる。つまり、復号部612は、ビットストリームから、これらの情報をパースする(解析して取得する)。これらの情報について以下に説明する。
   <ヘッダ情報Hinfo>
 ヘッダ情報Hinfoは、例えば、VPS(Video Parameter Set)/SPS(Sequence Parameter Set)/PPS(Picture Parameter Set)/SH(スライスヘッダ)などのヘッダ情報を含む。ヘッダ情報Hinfoには、例えば、画像サイズ(横幅PicWidth、縦幅PicHeight)、ビット深度(輝度bitDepthY, 色差bitDepthC)、色差アレイタイプChromaArrayType、CUサイズの最大値MaxCUSize/最小値MinCUSize、4分木分割(Quad-tree分割ともいう)の最大深度MaxQTDepth/最小深度MinQTDepth、2分木分割(Binary-tree分割)の最大深度MaxBTDepth/最小深度MinBTDepth、変換スキップブロックの最大値MaxTSSize(最大変換スキップブロックサイズともいう)、各符号化ツールのオンオフフラグ(有効フラグともいう)などを規定する情報が含まれる。
 例えば、ヘッダ情報Hinfoに含まれる符号化ツールのオンオフフラグとしては、以下に示す変換、量子化処理に関わるオンオフフラグがある。なお、符号化ツールのオンオフフラグは、該符号化ツールに関わるシンタックスが符号化データ中に存在するか否かを示すフラグとも解釈することができる。また、オンオフフラグの値が1(真)の場合、該符号化ツールが使用可能であることを示し、オンオフフラグの値が0(偽)の場合、該符号化ツールが使用不可であることを示す。なお、フラグ値の解釈は逆であってもよい。
 コンポーネント間予測有効フラグ(ccp_enabled_flag):コンポーネント間予測(CCP(Cross-Component Prediction),CC予測とも称する)が使用可能であるか否かを示すフラグ情報である。例えば、このフラグ情報が「1」(真)の場合、使用可能であることが示され、「0」(偽)の場合、使用不可であることが示される。
 なお、このCCPは、コンポーネント間線形予測(CCLMまたはCCLMP)とも称する。
   <予測モード情報Pinfo>
 予測モード情報Pinfoには、例えば、処理対象PB(予測ブロック)のサイズ情報PBSize(予測ブロックサイズ)、イントラ予測モード情報IPinfo、動き予測情報MVinfo等の情報が含まれる。
 イントラ予測モード情報IPinfoには、例えば、JCTVC-W1005, 7.3.8.5 Coding Unit syntax中のprev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode、およびそのシンタックスから導出される輝度イントラ予測モードIntraPredModeY等が含まれる。
 また、イントラ予測モード情報IPinfoには、例えば、コンポーネント間予測フラグ(ccp_flag(cclmp_flag))、多クラス線形予測モードフラグ(mclm_flag)、色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)、色差MPM識別子(chroma_mpm_idx)、および、これらのシンタックスから導出される輝度イントラ予測モード(IntraPredModeC)等が含まれる。
 コンポーネント間予測フラグ(ccp_flag(cclmp_flag))は、コンポーネント間線形予測を適用するか否かを示すフラグ情報である。例えば、ccp_flag==1のとき、コンポーネント間予測を適用することを示し、ccp_flag==0のとき、コンポーネント間予測を適用しないことを示す。
 多クラス線形予測モードフラグ(mclm_flag)は、線形予測のモードに関する情報(線形予測モード情報)である。より具体的には、多クラス線形予測モードフラグ(mclm_flag)は、多クラス線形予測モードにするか否かを示すフラグ情報である。例えば、「0」の場合、1クラスモード(単一クラスモード)(例えばCCLMP)であることを示し、「1」の場合、2クラスモード(多クラスモード)(例えばMCLMP)であることを示す。
 色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)は、色差コンポーネントの画素位置のタイプ(色差サンプル位置タイプとも称する)を識別する識別子である。例えば色フォーマットに関する情報である色差アレイタイプ(ChromaArrayType)が420形式を示す場合、色差サンプル位置タイプ識別子は、以下の式のような割り当て方となる。
  chroma_sample_loc_type_idx == 0:Type2
  chroma_sample_loc_type_idx == 1:Type3
  chroma_sample_loc_type_idx == 2:Type0
  chroma_sample_loc_type_idx == 3:Type1
 なお、この色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)は、色差コンポーネントの画素位置に関する情報(chroma_sample_loc_info())として(に格納されて)伝送される。
 色差MPM識別子(chroma_mpm_idx)は、色差イントラ予測モード候補リスト(intraPredModeCandListC)の中のどの予測モード候補を色差イントラ予測モードとして指定するかを表す識別子である。
 動き予測情報MVinfoには、例えば、merge_idx, merge_flag, inter_pred_idc, ref_idx_LX, mvp_lX_flag, X={0,1}, mvd等の情報が含まれる(例えば、JCTVC-W1005, 7.3.8.6 Prediction Unit Syntaxを参照)。
 もちろん、予測モード情報Pinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
   <変換情報Tinfo>
 変換情報Tinfoには、例えば、以下の情報が含まれる。もちろん、変換情報Tinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
  処理対象変換ブロックの横幅サイズ(TBWSize)および縦幅サイズ(TBHSize)
  変換スキップフラグ(transform_skip_flag(ts_flagとも称する))
  スキャン識別子(scanIdx)
  量子化パラメータ(qp)
  量子化マトリックス(scaling_matrix(例えば、JCTVC-W1005, 7.3.4 Scaling list data syntax))
 なお、TBWSizeおよびTBHSizeの代わりに、log2TBWSizeおよびlog2TBHSizeが変換情報Tinfo含まれてもよい。log2TBWSizeは、2を底とするTBWSizeの対数値である。log2TBHSizeは、2を底とするTBHSizeの対数値である。また、画像復号装置600において、変換スキップフラグは、逆係数変換(逆プライマリ変換および逆セカンダリ変換)をスキップか否かを示すフラグである。
   <フィルタ情報Finfo>
 フィルタ情報Finfoには、例えば、以下に示す各フィルタ処理に関する制御情報が含まれる。
  デブロッキングフィルタ(DBF)に関する制御情報
  画素適応オフセット(SAO)に関する制御情報
  適応ループフィルタ(ALF)に関する制御情報
  その他の線形・非線形フィルタに関する制御情報
 より具体的には、例えば、各フィルタを適用するピクチャや、ピクチャ内の領域を指定する情報や、CU単位のフィルタOn/Off制御情報、スライス、タイルの境界に関するフィルタOn/Off制御情報などが含まれる。もちろん、フィルタ情報Finfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
 復号部612の説明に戻る。復号部612は、ビットストリームを復号して得られた量子化係数qcoeffに関するシンタックスを参照して量子化係数qcoeffを導出する。復号部612は、その量子化係数qcoeffを、逆量子化部613に供給する。
 また、復号部612は、パースしたヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfo等の符号化パラメータを各ブロックへ供給する。例えば、復号部612は、ヘッダ情報Hinfoを、逆量子化部613、逆直交変換部614、予測部619、インループフィルタ部616へ供給する。また、復号部612は、予測モード情報Pinfoを、逆量子化部613および予測部619へ供給する。また、復号部612は、変換情報Tinfoを、逆量子化部613および逆直交変換部614へ供給する。また、復号部612は、フィルタ情報Finfoを、インループフィルタ部616へ供給する。
 もちろん、上述の例は一例であり、この例に限定されない。例えば、各符号化パラメータが任意の処理部に供給されるようにしてもよい。また、その他の情報が、任意の処理部に供給されるようにしてもよい。
   <逆量子化部>
 逆量子化部613は、少なくとも、逆量子化に関する処理を行うために必要な構成を有する。例えば、逆量子化部613は、復号部612から供給される変換情報Tinfoおよび量子化係数qcoeffを入力とし、その変換情報Tinfoに基づいて、量子化係数qcoeffの値をスケーリング(逆量子化)し、逆量子化後の変換係数Coeff_IQを導出する。逆量子化部613は、導出した変換係数Coeff_IQを逆直交変換部614に供給する。
 なお、この逆量子化は、画像符号化装置500の量子化部514による量子化の逆処理として行われる。また、この逆量子化は、画像符号化装置500の逆量子化部517による逆量子化と同様の処理である。つまり、画像符号化装置500の逆量子化部517は、この逆量子化部613と同様の処理(逆量子化)を行う。
   <逆直交変換部>
 逆直交変換部614は、逆直交変換に関する処理を行う。例えば、逆直交変換部614は、逆量子化部613から供給される変換係数Coeff_IQ、および、復号部612から供給される変換情報Tinfoを入力とし、その変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆直交変換処理を行い、予測残差D'を導出する。例えば、逆直交変換部614は、ST識別子に基づいて、変換係数Coeff_IQに対して逆セカンダリ変換を行ってプライマリ変換係数を生成し、そのプライマリ変換係数に対してプライマリ変換を行い、予測残差D'を生成する。逆直交変換部614は、導出した予測残差D'を演算部615に供給する。
 なお、この逆直交変換は、画像符号化装置500の直交変換部513による直交変換の逆処理として行われる。また、この逆直交変換は、画像符号化装置500の逆直交変換部518による逆直交変換と同様の処理である。つまり、画像符号化装置500の逆直交変換部518は、この逆直交変換部614と同様の処理(逆直交変換)を行う。
 したがって、逆直交変換部614は、画像符号化装置500の逆直交変換部518と同様に、逆直交変換に限らず任意の逆係数変換を行うことができる。この逆係数変換は、画像符号化装置500の直交変換部513が実行する係数変換の逆処理である。つまり、予測残差D'は、変換係数Coeff_IQに対して任意の逆係数変換が行われて導出されてもよい。したがって、逆直交変換部614は、逆係数変換部とも言える。
   <演算部>
 演算部615は、画像に関する情報の加算に関する処理を行う。例えば、演算部615は、逆直交変換部614から供給される予測残差D'と、予測部619から供給される予測画像Pとを入力とする。演算部615は、以下の式に示されるように、予測残差D'とその予測残差D'に対応する予測画像P(予測信号)とを加算し、局所復号画像Rlocalを導出する。演算部615は、導出した局所復号画像Rlocalを、インループフィルタ部616およびフレームメモリ618に供給する。
 Rlocal = D' + P
   <インループフィルタ部>
 インループフィルタ部616は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部616は、演算部615から供給される局所復号画像Rlocalと、復号部612から供給されるフィルタ情報Finfoとを入力とする。なお、インループフィルタ部616に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。
 インループフィルタ部616は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。
 例えば、インループフィルタ部616は、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
 インループフィルタ部616は、符号化側(例えば画像符号化装置500のインループフィルタ部520)により行われたフィルタ処理に対応するフィルタ処理を行う。もちろん、インループフィルタ部616が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部616がウィーナーフィルタ等を適用するようにしてもよい。
 インループフィルタ部616は、フィルタ処理された局所復号画像Rlocalを並べ替えバッファ617およびフレームメモリ618に供給する。
   <並べ替えバッファ>
 並べ替えバッファ617は、インループフィルタ部616から供給された局所復号画像Rlocalを入力とし、それを保持(記憶)する。並べ替えバッファ617は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(バッファ内に格納する)。並べ替えバッファ617は、得られた復号画像Rを、復号順から再生順に並べ替える。並べ替えバッファ617は、並べ替えた復号画像R群を動画像データとして画像復号装置600の外部に出力する。
   <フレームメモリ>
 フレームメモリ618は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ618は、演算部615より供給される局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ618内のバッファへ格納する。
 また、フレームメモリ618は、インループフィルタ部616から供給される、インループフィルタ処理された局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ618内のバッファへ格納する。フレームメモリ618は、適宜、その記憶している復号画像R(またはその一部)を参照画像として予測部619に供給する。
 なお、フレームメモリ618が、復号画像の生成に係るヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなどを記憶するようにしても良い。
   <予測部>
 予測部619は、予測画像の生成に関する処理を行う。例えば、予測部619は、復号部612から供給される予測モード情報Pinfoを入力とし、その予測モード情報Pinfoによって指定される予測方法により予測を行い、予測画像Pを導出する。その導出の際、予測部619は、その予測モード情報Pinfoによって指定される、フレームメモリ618に格納されたフィルタ前またはフィルタ後の復号画像R(またはその一部)を、参照画像として利用する。予測部619は、導出した予測画像Pを、演算部615に供給する。
 なお、これらの処理部(蓄積バッファ611乃至予測部619)は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
 以上のような構成の画像復号装置600において、復号部612に対して、上述した本技術を適用してもよい。
 例えば、復号部612に対して、<3.ラスト係数位置のバイパス符号化・バイパス復号>において上述した各方法を適用してもよい。例えば、復号部612が、ビットストリームの復号において方法#1を適用し、sps_high_throughput_flagが真である場合、ビットストリームに含まれるラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)をバイパス符号ビンとして復号してもよい。同様に、復号部612は、ビットストリームの復号において、<3.ラスト係数位置のバイパス符号化・バイパス復号>において上述した各方法を適用することができる。このようにすることにより、画像復号装置600は、<3.ラスト係数位置のバイパス符号化・バイパス復号>において上述した各方法の効果と同様の効果を得ることができる。したがって、画像復号装置600は、コンテキスト符号化ビンの発生量を低減させることができ、符号化や復号の処理量の増大を抑制することができる。例えば、画像復号装置600は、高ビット深度・高ビットレートの画像データの復号におけるCABACの処理量を軽減し、スループットを向上させることができる。
 また、例えば、復号部612に対して、<4.ラスト係数位置の符号化・復号のスキップ>において上述した各方法を適用してもよい。例えば、復号部612が、ビットストリームの復号において方法#2を適用し、sps_high_throughput_flagが真である場合、ラスト係数位置の復号をスキップ(省略)してもよい。同様に、復号部612は、ビットストリームの復号において、<4.ラスト係数位置の符号化・復号のスキップ>において上述した各方法を適用することができる。このようにすることにより、画像復号装置600は、<4.ラスト係数位置の符号化・復号のスキップ>において上述した各方法の効果と同様の効果を得ることができる。したがって、画像復号装置600は、コンテキスト符号化ビンの発生量を低減させることができ、符号化や復号の処理量の増大を抑制することができる。例えば、画像復号装置600は、高ビット深度・高ビットレートの画像データの復号におけるCABACの処理量を軽減し、スループットを向上させることができる。
  <画像復号処理の流れ>
 次に、以上のような構成の画像復号装置600により実行される画像復号処理の流れの例を、図32のフローチャートを参照して説明する。
 画像復号処理が開始されると、蓄積バッファ611は、ステップS601において、画像復号装置600の外部から供給される符号化データ(ビットストリーム)を取得して保持する(蓄積する)。
 ステップS602において、復号部612は、復号処理を実行し、その符号化データ(ビットストリーム)を復号して量子化係数qcoeffを得る。また、復号部612は、この復号により、符号化データ(ビットストリーム)から各種符号化パラメータをパースする(解析して取得する)。
 ステップS603において、逆量子化部613は、ステップS602の処理により得られた量子化係数qcoeffに対して、符号化側で行われた量子化の逆処理である逆量子化を行い、変換係数Coeff_IQを得る。
 ステップS604において、逆直交変換部614は、ステップS603において得られた変換係数Coeff_IQに対して、符号化側で行われた直交変換処理の逆処理である逆直交変換処理を行い、予測残差D'を得る。
 ステップS605において、予測部619は、ステップS602においてパースされた情報に基づいて、符号化側より指定される予測方法で予測処理を実行し、フレームメモリ618に記憶されている参照画像を参照する等して、予測画像Pを生成する。
 ステップS606において、演算部615は、ステップS604において得られた予測残差D'と、ステップS605において得られた予測画像Pとを加算し、局所復号画像Rlocalを導出する。
 ステップS607において、インループフィルタ部616は、ステップS606の処理により得られた局所復号画像Rlocalに対して、インループフィルタ処理を行う。
 ステップS608において、並べ替えバッファ617は、ステップS607の処理により得られたフィルタ処理された局所復号画像Rlocalを用いて復号画像Rを導出し、その復号画像R群の順序を復号順から再生順に並べ替える。再生順に並べ替えられた復号画像R群は、動画像として画像復号装置600の外部に出力される。
 また、ステップS609において、フレームメモリ618は、ステップS606の処理により得られた局所復号画像Rlocal、および、ステップS607の処理により得られたフィルタ処理後の局所復号画像Rlocalの内、少なくとも一方を記憶する。
 ステップS609の処理が終了すると、画像復号処理が終了する。
 このような画像復号処理のステップS602において実行される符号化処理において、上述した本技術を適用してもよい。
 例えば、その復号処理において、<3.ラスト係数位置のバイパス符号化・バイパス復号>において上述した各方法を適用してもよい。例えば、復号部612が、ビットストリームの復号において方法#1を適用し、sps_high_throughput_flagが真である場合、ビットストリームに含まれるラスト係数位置のプリフィックス部(last_sig_coeff_{x,y}_prefix)をバイパス符号ビンとして復号してもよい。同様に、復号部612は、ビットストリームの復号において、<3.ラスト係数位置のバイパス符号化・バイパス復号>において上述した各方法を適用することができる。このようにすることにより、画像復号装置600は、<3.ラスト係数位置のバイパス符号化・バイパス復号>において上述した各方法の効果と同様の効果を得ることができる。したがって、画像復号装置600は、コンテキスト符号化ビンの発生量を低減させることができ、符号化や復号の処理量の増大を抑制することができる。例えば、画像復号装置600は、高ビット深度・高ビットレートの画像データの復号におけるCABACの処理量を軽減し、スループットを向上させることができる。
 また、その復号処理において、<4.ラスト係数位置の符号化・復号のスキップ>において上述した各方法を適用してもよい。例えば、復号部612が、ビットストリームの復号において方法#1を適用し、sps_high_throughput_flagが真である場合、ラスト係数位置の復号をスキップ(省略)してもよい。同様に、復号部612は、ビットストリームの復号において、<4.ラスト係数位置の符号化・復号のスキップ>において上述した各方法を適用することができる。このようにすることにより、画像復号装置600は、<4.ラスト係数位置の符号化・復号のスキップ>において上述した各方法の効果と同様の効果を得ることができる。したがって、画像復号装置600は、コンテキスト符号化ビンの発生量を低減させることができ、符号化や復号の処理量の増大を抑制することができる。例えば、画像復号装置600は、高ビット深度・高ビットレートの画像データの復号におけるCABACの処理量を軽減し、スループットを向上させることができる。
 <7.付記>
  <コンピュータ>
 上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
 図33は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
 図33に示されるコンピュータ900において、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、RAM(Random Access Memory)903は、バス904を介して相互に接続されている。
 バス904にはまた、入出力インタフェース910も接続されている。入出力インタフェース910には、入力部911、出力部912、記憶部913、通信部914、およびドライブ915が接続されている。
 入力部911は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部912は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部913は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部914は、例えば、ネットワークインタフェースよりなる。ドライブ915は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア921を駆動する。
 以上のように構成されるコンピュータでは、CPU901が、例えば、記憶部913に記憶されているプログラムを、入出力インタフェース910およびバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。RAM903にはまた、CPU901が各種の処理を実行する上において必要なデータなども適宜記憶される。
 コンピュータが実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア921に記録して適用することができる。その場合、プログラムは、リムーバブルメディア921をドライブ915に装着することにより、入出力インタフェース910を介して、記憶部913にインストールすることができる。
 また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部914で受信し、記憶部913にインストールすることができる。
 その他、このプログラムは、ROM902や記憶部913に、あらかじめインストールしておくこともできる。
  <本技術の適用対象>
 本技術は、任意の画像符号化方式や復号方式に適用することができる。つまり、上述した本技術と矛盾しない限り、変換(逆変換)、量子化(逆量子化)、符号化(復号)、予測等、画像符号化・復号に関する各種処理の仕様は任意であり、上述した例に限定されない。また、上述した本技術と矛盾しない限り、これらの処理の内の一部を省略してもよい。
 また本技術は、複数の視点(ビュー(view))の画像を含む多視点画像を符号化する多視点画像符号化システムに適用することができる。また本技術は、複数の視点(ビュー(view))の画像を含む多視点画像の符号化データを復号する多視点画像復号システムに適用することができる。その場合、各視点(ビュー(view))の符号化や復号において、本技術を適用するようにすればよい。
 さらに本技術は、所定のパラメータについてスケーラビリティ(scalability)機能を有するように複数レイヤ化(階層化)された階層画像を符号化する階層画像符号化(スケーラブル符号化)システムに適用することができる。また、本技術は、所定のパラメータについてスケーラビリティ(scalability)機能を有するように複数レイヤ化(階層化)された階層画像の符号化データを復号する階層画像復号(スケーラブル復号)システムに適用することができる。その場合、各階層(レイヤ)の符号化や復号において、本技術を適用するようにすればよい。
 また、本技術は、任意の構成に適用することができる。例えば、本技術は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信などにおける送信機や受信機(例えばテレビジョン受像機や携帯電話機)、または、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録したり、これら記憶媒体から画像を再生したりする装置(例えばハードディスクレコーダやカメラ)などの、様々な電子機器に応用され得る。
 また、例えば、本技術は、システムLSI(Large Scale Integration)等としてのプロセッサ(例えばビデオプロセッサ)、複数のプロセッサ等を用いるモジュール(例えばビデオモジュール)、複数のモジュール等を用いるユニット(例えばビデオユニット)、または、ユニットにさらにその他の機能を付加したセット(例えばビデオセット)等、装置の一部の構成として実施することもできる。
 また、例えば、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。例えば、本技術を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングとして実施するようにしてもよい。例えば、コンピュータ、AV(Audio Visual)機器、携帯型情報処理端末、IoT(Internet of Things)デバイス等の任意の端末に対して、画像(動画像)に関するサービスを提供するクラウドサービスにおいて本技術を実施するようにしてもよい。
 なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
  <本技術を適用可能な分野や用途>
 本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
 例えば、本技術は、観賞用コンテンツ等の提供の用に供されるシステムやデバイスに適用することができる。また、例えば、本技術は、交通状況の監理や自動運転制御等、交通の用に供されるシステムやデバイスにも適用することができる。さらに、例えば、本技術は、セキュリティの用に供されるシステムやデバイスにも適用することができる。また、例えば、本技術は、機械等の自動制御の用に供されるシステムやデバイスに適用することができる。さらに、例えば、本技術は、農業や畜産業の用に供されるシステムやデバイスにも適用することができる。また、本技術は、例えば火山、森林、海洋等の自然の状態や野生生物等を監視するシステムやデバイスにも適用することができる。さらに、例えば、本技術は、スポーツの用に供されるシステムやデバイスにも適用することができる。
  <その他>
 なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
 また、符号化データ(ビットストリーム)に関する各種情報(メタデータ等)は、符号化データに関連づけられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(または同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
 なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。
 また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
 例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
 また、例えば、上述したプログラムは、任意の装置において実行されるようにしてもよい。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
 また、例えば、1つのフローチャートの各ステップを、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。さらに、1つのステップに複数の処理が含まれる場合、その複数の処理を、1つの装置が実行するようにしてもよいし、複数の装置が分担して実行するようにしてもよい。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
 また、コンピュータが実行するプログラムは、以下のような特徴を有していてもよい。例えば、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしてもよい。また、プログラムを記述するステップの処理が並列に実行されるようにしてもよい。さらに、プログラムを記述するステップの処理が、呼び出されとき等の必要なタイミングで個別に実行されるようにしてもよい。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。また、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と組み合わせて実行されるようにしてもよい。
 また、例えば、本技術に関する複数の技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
 なお、本技術は以下のような構成も取ることができる。
 (1) 画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記画像データに含まれる前記ラスト係数位置のプリフィックス部をバイパス符号化ビンとして符号化する符号化部
 を備える画像処理装置。
 (2) 前記符号化部は、前記ハイスループットモードでない場合、前記ラスト係数位置の前記プリフィックス部をコンテキスト符号化ビンとして符号化する
 (1)に記載の画像処理装置。
 (3) 前記符号化部は、前記画像データに含まれる前記ラスト係数位置のサフィックス部をバイパス符号化ビンとして符号化する
 (1)または(2)に記載の画像処理装置。
 (4) 前記符号化部は、前記ハイスループットモードの場合、前記ラスト係数位置の符号化の直前において、符号化プロセスのアラインメント処理を行う
 (1)乃至(3)のいずれかに記載の画像処理装置。
 (5) 前記符号化部は、前記アラインメント処理において、算術符号化における範囲を示す変数iVlCurrRangeを256に設定する
 (4)に記載の画像処理装置。
 (6) 前記符号化部は、前記ラスト係数位置の符号化の直前において、さらに、コンテキスト符号化ビン数の発生量を0に設定する
 (4)または(5)に記載の画像処理装置。
 (7) 前記符号化部は、前記ハイスループットモードでない場合、前記ラスト係数位置の符号化の直前において、コンテキスト符号化ビン数の基準値と変換ブロックサイズに基づいて、コンテキスト符号化ビン数の発生量を導出する
 (4)乃至(6)のいずれかに記載の画像処理装置。
 (8) 画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記画像データに含まれる前記ラスト係数位置のプリフィックス部をバイパス符号化ビンとして符号化する
 画像処理方法。
 (11) 画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記画像データの符号化データに含まれる前記ラスト係数位置のプリフィックス部をバイパス符号化ビンとして復号する復号部
 を備える画像処理装置。
 (12) 前記復号部は、前記ハイスループットモードでない場合、前記ラスト係数位置の前記プリフィックス部をコンテキスト符号化ビンとして復号する
 (11)に記載の画像処理装置。
 (13) 前記復号部は、前記符号化データに含まれる前記ラスト係数位置のサフィックス部をバイパス符号化ビンとして復号する
 (11)または(12)に記載の画像処理装置。
 (14) 前記復号部は、前記ハイスループットモードの場合、前記ラスト係数位置の復号の直前において、復号プロセスのアラインメント処理を行う
 (11)乃至(13)のいずれかに記載の画像処理装置。
 (15) 前記復号部は、前記アラインメント処理において、算術符号化における範囲を示す変数iVlCurrRangeを256に設定する
 (14)に記載の画像処理装置。
 (16) 前記復号部は、前記ラスト係数位置の復号の直前において、さらに、コンテキスト符号化ビン数の発生量を0に設定する
 (14)または(15)に記載の画像処理装置。
 (17) 前記復号部は、前記ハイスループットモードでない場合、前記ラスト係数位置の復号の直前において、コンテキスト符号化ビン数の基準値と変換ブロックサイズに基づいて、コンテキスト符号化ビン数の発生量を導出する
 (14)乃至(16)のいずれかに記載の画像処理装置。
 (18) 画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記画像データの符号化データに含まれる前記ラスト係数位置のプリフィックス部をバイパス符号化ビンとして復号する
 画像処理方法。
 (21) 画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記画像データに含まれる前記ラスト係数位置の符号化をスキップする符号化部
 を備える画像処理装置。
 (22) 前記符号化部は、前記ラスト係数位置を変換ブロック内の右下座標に設定する
 (21)に記載の画像処理装置。
 (23) 前記符号化部は、前記ハイスループットモードでない場合、前記ラスト係数位置のプリフィックス部およびサフィックス部を符号化する
 (21)または(22)に記載の画像処理装置。
 (24) 前記符号化部は、前記プリフィックス部をコンテキスト符号化ビンとして符号化し、前記サフィックス部をバイパス符号化ビンとして符号化する
 (23)に記載の画像処理装置。
 (25) 前記符号化部は、前記ハイスループットモードの場合、前記画像データに含まれる最初のサブブロック係数フラグの符号化の直前において、符号化プロセスのアラインメント処理を行う
 (21)乃至(24)のいずれかに記載の画像処理装置。
 (26) 前記符号化部は、前記アラインメント処理において、算術符号化における範囲を示す変数iVlCurrRangeを256に設定する
 (25)に記載の画像処理装置。
 (27) 前記符号化部は、前記最初のサブブロック係数フラグの符号化の直前において、さらに、コンテキスト符号化ビン数の発生量を0に設定する
 (25)または(26)に記載の画像処理装置。
 (28) 前記符号化部は、前記ハイスループットモードでない場合、前記最初のサブブロック係数フラグの符号化の直前において、コンテキスト符号化ビン数の基準値と変換ブロックサイズに基づいて、コンテキスト符号化ビン数の発生量を導出する
 (25)乃至(27)のいずれかに記載の画像処理装置。
 (29) 画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記画像データに含まれる前記ラスト係数位置の符号化をスキップする
 画像処理方法。
 (31) 画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記ラスト係数位置の復号をスキップする復号部
 を備える画像処理装置。
 (32) 前記復号部は、前記ラスト係数位置を変換ブロック内の右下座標に設定する
 (31)に記載の画像処理装置。
 (33) 前記復号部は、前記ハイスループットモードでない場合、前記ラスト係数位置のプリフィックス部およびサフィックス部を復号する
 (31)または(32)に記載の画像処理装置。
 (34) 前記復号部は、前記プリフィックス部をコンテキスト符号化ビンとして復号し、前記サフィックス部をバイパス符号化ビンとして復号する
 (33)に記載の画像処理装置。
 (35) 前記復号部は、前記ハイスループットモードの場合、前記符号化データに含まれる最初のサブブロック係数フラグの復号の直前において、復号プロセスのアラインメント処理を行う
 (31)乃至(34)のいずれかに記載の画像処理装置。
 (36) 前記復号部は、前記アラインメント処理において、算術符号化における範囲を示す変数iVlCurrRangeを256に設定する
 (35)に記載の画像処理装置。
 (37) 前記復号部は、前記最初のサブブロック係数フラグの復号の直前において、さらに、コンテキスト符号化ビン数の発生量を0に設定する
 (35)または(36)に記載の画像処理装置。
 (38) 前記復号部は、前記ハイスループットモードでない場合、前記最初のサブブロック係数フラグの復号の直前において、コンテキスト符号化ビン数の基準値と変換ブロックサイズに基づいて、コンテキスト符号化ビン数の発生量を導出する
 (35)乃至(37)のいずれかに記載の画像処理装置。
 (39) 画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記ラスト係数位置の復号をスキップする
 画像処理方法。
 200 符号化装置, 211 選択部, 212 TS残差符号化部, 213 Non-TS残差符号化部, 231 設定部, 232 ラスト係数位置符号化部, 233 サブブロック符号化部, 300 復号装置, 311 選択部, 312 TS残差復号部, 313 Non-TS残差復号部, 331 設定部, 332 ラスト係数位置復号部, 333 サブブロック復号部, 500 画像符号化装置, 515 符号化部, 600 画像復号装置, 612 復号部, 900 コンピュータ

Claims (20)

  1.  画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記画像データに含まれる前記ラスト係数位置のプリフィックス部をバイパス符号化ビンとして符号化する符号化部
     を備える画像処理装置。
  2.  前記符号化部は、前記ハイスループットモードでない場合、前記ラスト係数位置の前記プリフィックス部をコンテキスト符号化ビンとして符号化する
     請求項1に記載の画像処理装置。
  3.  前記符号化部は、前記画像データに含まれる前記ラスト係数位置のサフィックス部をバイパス符号化ビンとして符号化する
     請求項1に記載の画像処理装置。
  4.  前記符号化部は、前記ハイスループットモードの場合、前記ラスト係数位置の符号化の直前において、符号化プロセスのアラインメント処理を行う
     請求項1に記載の画像処理装置。
  5.  前記符号化部は、前記アラインメント処理において、算術符号化における範囲を示す変数iVlCurrRangeを256に設定する
     請求項4に記載の画像処理装置。
  6.  前記符号化部は、前記ラスト係数位置の符号化の直前において、さらに、コンテキスト符号化ビン数の発生量を0に設定する
     請求項4に記載の画像処理装置。
  7.  前記符号化部は、前記ハイスループットモードでない場合、前記ラスト係数位置の符号化の直前において、コンテキスト符号化ビン数の基準値と変換ブロックサイズに基づいて、コンテキスト符号化ビン数の発生量を導出する
     請求項4に記載の画像処理装置。
  8.  画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記画像データに含まれる前記ラスト係数位置のプリフィックス部をバイパス符号化ビンとして符号化する
     画像処理方法。
  9.  画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記画像データの符号化データに含まれる前記ラスト係数位置のプリフィックス部をバイパス符号化ビンとして復号する復号部
     を備える画像処理装置。
  10.  画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記画像データの符号化データに含まれる前記ラスト係数位置のプリフィックス部をバイパス符号化ビンとして復号する
     画像処理方法。
  11.  画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記画像データに含まれる前記ラスト係数位置の符号化をスキップする符号化部
     を備える画像処理装置。
  12.  前記符号化部は、前記ラスト係数位置を変換ブロック内の右下座標に設定する
     請求項11に記載の画像処理装置。
  13.  前記符号化部は、前記ハイスループットモードでない場合、前記ラスト係数位置のプリフィックス部およびサフィックス部を符号化する
     請求項11に記載の画像処理装置。
  14.  前記符号化部は、前記プリフィックス部をコンテキスト符号化ビンとして符号化し、前記サフィックス部をバイパス符号化ビンとして符号化する
     請求項13に記載の画像処理装置。
  15.  前記符号化部は、前記ハイスループットモードの場合、前記画像データに含まれる最初のサブブロック係数フラグの符号化の直前において、符号化プロセスのアラインメント処理を行う
     請求項11に記載の画像処理装置。
  16.  前記符号化部は、前記アラインメント処理において、算術符号化における範囲を示す変数iVlCurrRangeを256に設定する
     請求項15に記載の画像処理装置。
  17.  前記符号化部は、前記最初のサブブロック係数フラグの符号化の直前において、さらに、コンテキスト符号化ビン数の発生量を0に設定する
     請求項15に記載の画像処理装置。
  18.  画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記画像データに含まれる前記ラスト係数位置の符号化をスキップする
     画像処理方法。
  19.  画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記ラスト係数位置の復号をスキップする復号部
     を備える画像処理装置。
  20.  画像データの、ラスト係数位置より後ろのコンテキスト符号化ビンをバイパス符号化ビンとして処理するハイスループットモードの場合、前記ラスト係数位置の復号をスキップする
     画像処理方法。
PCT/JP2022/024461 2021-06-24 2022-06-20 画像処理装置および方法 Ceased WO2022270451A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
US18/570,084 US20240275970A1 (en) 2021-06-24 2022-06-20 Image processing device and method
JP2023530452A JP7816353B2 (ja) 2021-06-24 2022-06-20 画像処理装置および方法
CN202280042888.8A CN117529915A (zh) 2021-06-24 2022-06-20 图像处理装置和方法
EP22828368.5A EP4362460A4 (en) 2021-06-24 2022-06-20 Image processing device and method
MX2023015282A MX2023015282A (es) 2021-06-24 2022-06-20 Dispositivo y metodo de procesamiento de imagenes.
KR1020237042535A KR20240024808A (ko) 2021-06-24 2022-06-20 화상 처리 장치 및 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202163214327P 2021-06-24 2021-06-24
US63/214,327 2021-06-24

Publications (1)

Publication Number Publication Date
WO2022270451A1 true WO2022270451A1 (ja) 2022-12-29

Family

ID=84545668

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/024461 Ceased WO2022270451A1 (ja) 2021-06-24 2022-06-20 画像処理装置および方法

Country Status (7)

Country Link
US (1) US20240275970A1 (ja)
EP (1) EP4362460A4 (ja)
JP (1) JP7816353B2 (ja)
KR (1) KR20240024808A (ja)
CN (1) CN117529915A (ja)
MX (1) MX2023015282A (ja)
WO (1) WO2022270451A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2024524426A (ja) * 2021-06-28 2024-07-05 ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド ビデオコーディング用の残差および係数のコーディング

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4325848A4 (en) * 2021-04-12 2025-01-29 Guangdong Oppo Mobile Telecommunications Corp., Ltd. ENCODING METHODS, DECODING METHODS, ENCODER, DECODER AND STORAGE MEDIUM

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10123053B2 (en) * 2011-05-23 2018-11-06 Texas Instruments Incorporated Acceleration of bypass binary symbol processing in video coding
US9503717B2 (en) * 2012-01-09 2016-11-22 Texas Instruments Incorporated Context adaptive binary arithmetic coding (CABAC) with scalable throughput and coding efficiency
US9654139B2 (en) * 2012-01-19 2017-05-16 Huawei Technologies Co., Ltd. High throughput binarization (HTB) method for CABAC in HEVC
KR102795463B1 (ko) * 2018-09-24 2025-04-15 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 종속 스칼라 양자화를 사용하거나 이와 조합하는 데에 적합한 변환 계수의 효율적인 코딩
US11695960B2 (en) * 2019-06-14 2023-07-04 Qualcomm Incorporated Transform and last significant coefficient position signaling for low-frequency non-separable transform in video coding
WO2021058655A1 (en) * 2019-09-24 2021-04-01 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Arithmetic encoders and decoders, video encoders and decoders, methods for encoding or decoding symbols, and methods for encoding or decoding video content
EP4325848A4 (en) * 2021-04-12 2025-01-29 Guangdong Oppo Mobile Telecommunications Corp., Ltd. ENCODING METHODS, DECODING METHODS, ENCODER, DECODER AND STORAGE MEDIUM
WO2022232061A1 (en) * 2021-04-26 2022-11-03 Innopeak Technology, Inc. Bypass alignment in video coding

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
"Advanced video coding for generic audiovisual services", RECOMMENDATION ITU-T H.264 (04/2017, April 2017 (2017-04-01)
"High efficiency video coding", RECOMMENDATION ITU-T H.265 (02/18, February 2018 (2018-02-01)
BENJAMIN BROSSJIANLE CHENSHAN LIU: "Versatile Video Coding (Draft 10", JVET-T2001-V2, JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29, VERSION 1, 27 October 2020 (2020-10-27)
F. WANG (OPPO), Z. XIE (OPPO), Y. YU (OPPO), H. YU (OPPO), D. WANG (OPPO): "AHG8: a combination of JVET-V0059 option 2 and JVET-V0122 for high bit depth and high bit rate extensions", 22. JVET MEETING; 20210420 - 20210428; TELECONFERENCE; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), no. JVET-V0178 ; m56945, 27 April 2021 (2021-04-27), XP030294422 *
FAN WANGZHIHUANG XIEYUE YUHAOPING YUDONG WANG: "AHG8: a combination of JVET-V0059 option 2 and JVET-V0122 for high bit depth and high bit rate extensions", JVET-V0178-V1, JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29, 27 April 2021 (2021-04-27)
JIANLE CHENYAN YESEUNG HWAN KIM: "Algorithm description for Versatile Video Coding and Test Model 11 (VTM 11", JVET-T2002-VL, JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29, VERSION 1, 27 October 2020 (2020-10-27)
See also references of EP4362460A4

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2024524426A (ja) * 2021-06-28 2024-07-05 ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド ビデオコーディング用の残差および係数のコーディング
JP7685630B2 (ja) 2021-06-28 2025-05-29 ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド ビデオコーディング用の残差および係数のコーディング

Also Published As

Publication number Publication date
MX2023015282A (es) 2024-01-23
JPWO2022270451A1 (ja) 2022-12-29
CN117529915A (zh) 2024-02-06
US20240275970A1 (en) 2024-08-15
EP4362460A4 (en) 2025-01-15
EP4362460A1 (en) 2024-05-01
JP7816353B2 (ja) 2026-02-18
KR20240024808A (ko) 2024-02-26

Similar Documents

Publication Publication Date Title
US12177435B2 (en) Image processing device and method
US20250142070A1 (en) Image processing device and method
JP7666708B2 (ja) 画像処理装置および方法
WO2022255395A1 (ja) 画像処理装置および方法
JP7816353B2 (ja) 画像処理装置および方法
US20260006201A1 (en) Image processing device and method
JP7704252B2 (ja) 画像処理装置および方法
WO2023053957A1 (ja) 画像処理装置および方法
JP7670210B2 (ja) 画像処理装置および方法
WO2023195330A1 (ja) 画像処理装置および方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22828368

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023530452

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 18570084

Country of ref document: US

Ref document number: MX/A/2023/015282

Country of ref document: MX

WWE Wipo information: entry into national phase

Ref document number: 202280042888.8

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2022828368

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2022828368

Country of ref document: EP

Effective date: 20240124