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

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

Info

Publication number
WO2020184314A1
WO2020184314A1 PCT/JP2020/009027 JP2020009027W WO2020184314A1 WO 2020184314 A1 WO2020184314 A1 WO 2020184314A1 JP 2020009027 W JP2020009027 W JP 2020009027W WO 2020184314 A1 WO2020184314 A1 WO 2020184314A1
Authority
WO
WIPO (PCT)
Prior art keywords
conversion
unit
inverse
dimensional
matrix calculation
Prior art date
Application number
PCT/JP2020/009027
Other languages
English (en)
French (fr)
Inventor
健史 筑波
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Priority to US17/436,077 priority Critical patent/US11882311B2/en
Publication of WO2020184314A1 publication Critical patent/WO2020184314A1/ja
Priority to US18/540,952 priority patent/US20240121438A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process

Definitions

  • the present disclosure relates to an image processing device and a method, and more particularly to an image processing device and a method capable of suppressing an increase in processing delay.
  • DCT Discrete Cosine Transform
  • DST Discrete Sine Transform
  • DCT-8 Discrete Sine Transform-8
  • DST-7 / DCT-8 a high-speed algorithm supporting Dual Implementation whose results match the matrix calculation has been proposed (see, for example, Non-Patent Document 1).
  • a method of flipping / rotating a two-dimensional residual signal and applying DST-7 has been proposed (see, for example, Non-Patent Document 2).
  • the sum of the input signals having the same coefficient is obtained in the first cycle, and the matrix operation is executed in the second cycle. That is, at least two cycles are required, which may increase the processing delay.
  • the two-dimensional residual signals are rearranged before the orthogonal conversion and after the inverse orthogonal conversion. Since the number of cycles increases by the amount of this rearrangement processing, there is a possibility that the processing delay may increase.
  • the present disclosure has been made in view of such a situation, and makes it possible to suppress an increase in processing delay in orthogonal conversion processing and inverse orthogonal conversion processing.
  • the image processing device of one aspect of the present technology is input via a selection unit that switches the data path of the one-dimensional input signal sequence of residual data in the forward direction or the reverse direction, and the data path switched by the selection unit.
  • This is an image processing apparatus including a matrix calculation unit that performs a one-dimensional orthogonal conversion matrix calculation on the one-dimensional input signal sequence.
  • the image processing method of one aspect of the present technology switches the data path of the one-dimensional input signal string of residual data in the forward direction or the reverse direction, and the one-dimensional input signal string input via the switched data path.
  • it is an image processing method that performs a matrix operation of one-dimensional orthogonal conversion.
  • the image processing apparatus of the other aspect of the present technology includes a matrix calculation unit that performs a matrix calculation of inverse one-dimensional orthogonal conversion with respect to a one-dimensional input signal string of conversion coefficients, and the inverse one-dimensional orthogonal conversion by the matrix calculation unit.
  • This is an image processing device including a selection unit that switches the data path of the one-dimensional input signal string in which the matrix calculation is performed in the forward direction or the reverse direction.
  • the matrix calculation of the inverse one-dimensional orthogonal conversion is performed on the one-dimensional input signal sequence of the conversion coefficient, and the matrix calculation of the inverse one-dimensional orthogonal transformation is performed.
  • This is an image processing method for switching the data path of a one-dimensional input signal sequence in the forward direction or the reverse direction.
  • the data path of the one-dimensional input signal string of the residual data is switched in the forward direction or the reverse direction, and the one-dimensional input is input through the switched data path.
  • a one-dimensional orthogonal transformation matrix operation is performed on the input signal sequence.
  • a matrix operation of an inverse one-dimensional orthogonal conversion is performed on a one-dimensional input signal string of a conversion coefficient, and a matrix operation of the inverse one-dimensional orthogonal conversion is performed.
  • the data path of the divided one-dimensional input signal sequence is switched in the forward direction or the reverse direction.
  • Non-Patent Document 1 (above)
  • Non-Patent Document 2 (above)
  • Non-Patent Document 3 Recommendation ITU-T H.264 (04/2017) "Advanced video coding for generic audiovisual services", April 2017
  • Non-Patent Document 4 Recommendation ITU-T H.265 (12/2016) "High efficiency video coding", December 2016
  • Non-Patent Document 5 J. Chen, E. Alshina, GJ Sullivan, J.-R. Ohm, J.
  • Non-Patent Document 7 Jianle Chen, Yan Ye, Seung Hwan Kim, "Algorithm description for Versatile Video Coding and Test Model 4 (VTM 4)", JVET-M1002-v2, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29/WG 11 13th Meeting: Marrakech, MA, 9-18 Jan.
  • Non-Patent Document 8 Takeshi Tsukuba, Masaru Ikeda, Teruhiko Suzuki, "CE6: Transform Matrix Replacement (CE 6.1.8.1)", JVET-K0123-v2, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29/WG 11 11th Meeting: Ljubljana, SI, 10-18 July 2018
  • Non-Patent Document 9 Sunmi Yoo, Jungah Choi, Jin Heo, Jangwon Choi, Ling Li, Jaehyun Lim, Seung Hwan Kim, "Non-CE7: Residual rearrangement for transform skipped blocks", JVET-M0278_v2, Joint Video Experts Team (JVET) ) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29/WG 11 13th Meeting: Marrakech, MA, 9-18 Jan.
  • Non-Patent Document 10 Xin Zhao, Xiang Li, Shan Liu, "CE6 related: Unification of Transform Skip mode and MTS”, JVET-M0501-v2, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29/WG 11 13th Meeting: Marrakech, MA, 9-18 Jan. 2019
  • the contents described in the above-mentioned non-patent documents are also the basis for determining the support requirements.
  • Quad-Tree Block Structure and QTBT Quad Tree Plus Binary Tree
  • the Quad-Tree Block Structure and QTBT Quad Tree Plus Binary Tree
  • they are within the disclosure range of the present technology. It shall meet the support requirements of the claims.
  • technical terms such as Parsing, Syntax, and Semantics are also claimed, even if they are not directly described in the examples. Shall meet the support requirements in the range of.
  • a "block” (not a block indicating a processing unit) used in the description as a partial area of an image (picture) or a processing unit indicates an arbitrary partial area in the picture unless otherwise specified. Its size, shape, characteristics, etc. are not limited.
  • “block” includes TB (Transform Block), TU (Transform Unit), PB (Prediction Block), PU (Prediction Unit), SCU (Smallest Coding Unit), and CU described in the above-mentioned non-patent documents.
  • the block size may be specified using the identification information that identifies the size.
  • the block size may be specified by the ratio or difference with the size of the reference block (for example, LCU or SCU).
  • the designation of the block size also includes the designation of the range of the block size (for example, the designation of the range of the allowable block size).
  • the encoding includes not only the entire process of converting an image into a bitstream but also a part of the process. For example, it not only includes processing that includes prediction processing, orthogonal transformation, quantization, arithmetic coding, etc., but also includes processing that collectively refers to quantization and arithmetic coding, prediction processing, quantization, and arithmetic coding. Including processing, etc.
  • decoding includes not only the entire process of converting a bitstream into an image, but also some processes.
  • processing that includes inverse arithmetic decoding, inverse quantization, inverse orthogonalization, prediction processing, etc. but also processing that includes inverse arithmetic decoding and inverse quantization, inverse arithmetic decoding, inverse quantization, and prediction processing.
  • DCT Discrete Cosine Transform
  • DST Discrete Sine Transform
  • DCT-8 can be selected as the orthogonal transform for MTS.
  • This high-speed algorithm is a method of reducing the number of operations by utilizing the following characteristics of DST-7 (DCT-8).
  • P1 The characteristic that the sum of two coefficients in the conversion basis vector is equal to another coefficient
  • P2) The characteristic that there is repetition in the conversion basis vector
  • P3) The characteristic that there is a conversion basis vector that has only one kind of coefficient
  • Non-Patent Document 2 a method of flipping / rotating a two-dimensional residual signal and applying DST-7 has been proposed.
  • DST-7 / DCT-8 is an odd-numbered DCT / DST conversion, and there is a risk that the hardware (H / W) mounting cost will be higher than the even-numbered DCT-2.
  • the high-speed algorithm described in Non-Patent Document 1 can reduce the number of operations in software implementation.
  • the characteristic of P1 is used in the high-speed algorithm of Non-Patent Document 1
  • the sum of the input signals having the same coefficient is obtained in the first cycle, and the matrix operation is executed in the second cycle. .. That is, since at least two cycles are required, there is no merit from the viewpoint of reducing the delay (reducing the number of cycles).
  • this method since the two-dimensional residual signals are rearranged before or after the orthogonal conversion, there is a possibility that the number of cycles may increase by the amount of the rearranging processing.
  • Non-Patent Document 8 attention is paid to the fact that DST-7 / DCT-8 is a similar orthogonal transformation (point symmetry / rotational symmetry) as a method for simplifying the transformation matrix of DST-7 / DCT-8. Then, a method of replacing the transformation matrix of DCT-8 with FlipDST-7 (line symmetry / mirror image symmetry with DST-7) obtained by flipping the transformation matrix of DST-7 is described.
  • this DST-7 / DCT-8 (or FlipDST-7) is a similar orthogonal transformation (P1 / P2 below) and the linearity of matrix operation, 1 by DCT-8 (or FlipDST-7)
  • Dimensional orthogonal conversion is realized by one-dimensional input signal rearrangement processing (data path switching), code inversion processing, and one-dimensional orthogonal conversion by DST-7.
  • the inverse conversion corresponding to DCT-8 (or FlipDST-7) is realized by the sign inversion processing of the input signal, the rearrangement processing of the output signal (switching of the data path), and the inverse conversion of the DST-7.
  • DST-7 ⁇ DCT-8 Point symmetry (rotational symmetry)
  • DST-7 ⁇ Flip DST-7 Line symmetry (mirror image symmetry)
  • the coefficient of the (k, l) component of the transformation matrix of DCT-8 can be obtained by multiplying the (k, Nl-1) component (-1) k of the transformation matrix of DST-7. That is, the DCT-8 has a point symmetry (rotational symmetry) relationship with the DST-7.
  • the transformation matrix of DCT-8 is obtained by flipping the transformation matrix of DST-7 and inverting the sign (positive or negative) of the conversion coefficient at odd positions.
  • the sign (positive or negative) of the conversion coefficient at the odd position is opposite between the transformation matrix of FlipDST-7 and the transformation matrix of DCT-8.
  • the convolution operation by the residual signal x and DCT-8 is equivalent to the rearrangement of the residual signal x + the orthogonal transformation by DST-7 + the sign inversion. Further, the convolution operation by the residual signal x and FlipDST-7 is equivalent to the rearrangement of the residual signal x + the orthogonal conversion by DST-7.
  • the matrix form corresponding to the equations (19) and (20) can be expressed as the following equations (24) and (25).
  • the matrix D is also called a sign inversion matrix.
  • the matrix J is a permutation matrix that rearranges the matrix components in the reverse order in the column direction, and is a flip of the identity matrix I in the column direction.
  • the matrix J is also called a flip matrix.
  • ⁇ Concept 1> The rearrangement of the input signal in the orthogonal conversion and the rearrangement of the output signal in the inverse orthogonal conversion as described above are realized by switching the data path.
  • the one-dimensional orthogonal conversion unit 10 that performs one-dimensional orthogonal conversion by FlipDST-7 is subjected to one-dimensional orthogonal conversion processing (input signal) based on the above equation (25).
  • This is realized by a combination of the selector 11 that performs (switching of the data path of) and the matrix calculation unit 12 that performs one-dimensional orthogonal conversion by DST-7.
  • an inverse one-dimensional orthogonal transformation unit that performs an inverse one-dimensional orthogonal transformation (inverse transformation of a one-dimensional orthogonal transformation) by FlipDST-7 based on the above equation (30). 20 is realized by a combination of the matrix calculation unit 21 that performs the inverse conversion of the DST-7 and the selector 22 that rearranges the output signals (switches the data path of the output signal).
  • the one-dimensional orthogonal conversion unit 30 that performs the one-dimensional orthogonal conversion by the DCT-8 is subjected to the one-dimensional input signal rearrangement processing (1D) based on the above equation (24).
  • a matrix calculation unit 32 that performs one-dimensional orthogonal conversion by DST-7 and a code inversion unit 33 that performs code inversion processing on the output signal after the one-dimensional orthogonal conversion. Realized by combination.
  • the inverse one-dimensional orthogonal transformation unit 40 that performs the inverse one-dimensional orthogonal transformation (inverse transformation of the one-dimensional orthogonal transformation) by DCT-8 based on the above equation (29).
  • the code inversion unit 41 that performs code inversion processing on the input signal
  • the matrix calculation unit 42 that performs inverse conversion of DST-7
  • the selector 43 that rearranges the output signals (switches the data path of the output signal). Realized by combination.
  • Non-Patent Document 9 proposed a technique for rearranging residual signals in a residual domain (pixel domain) for two-dimensional conversion skip. Further, in Non-Patent Document 10, one-dimensional uniform transformation (IDT (Identify Transform)) is introduced in adaptive orthogonal transformation, and two-dimensional transformation skip and horizontal and vertical one-dimensional transformation skip are adaptive orthogonal transformation (MTS). ), A method was proposed.
  • IDT Identify Transform
  • MTS adaptive orthogonal transformation
  • Non-Patent Document 9 since the two-dimensional residual signal is rearranged after the two-dimensional conversion is skipped, the number of cycles may increase due to the rearrangement processing from the viewpoint of hardware implementation. .. In addition, the two-dimensional signal rearrangement processing may increase the circuit scale from the viewpoint of hardware implementation. Further, there is a possibility that the residual sorting process cannot be applied as it is to the one-dimensional conversion skip introduced in Non-Patent Document 10.
  • Non-Patent Document 10 improvement in encoder efficiency can be expected by applying the residual rearrangement processing for the two-dimensional transformation skip introduced in Non-Patent Document 9. , It is necessary to perform residual sorting processing after adaptive orthogonal transformation, and there is a risk that the number of cycles will increase from the viewpoint of hardware implementation. In addition, the residual sorting process introduced in Non-Patent Document 9 may not be directly applied to the one-dimensional conversion skip.
  • the map f (f: a ⁇ a) that corresponds a itself to the element a ⁇ V is a linear map from V to V, and is called the identity map or identity transformation of V.
  • the matrix T IDT is a transformation matrix of identity transformation.
  • the transformation matrix T IDT of N rows and N columns is an identity matrix I.
  • the exchange of matrix products is established as in the following equation (34).
  • the matrix J is a permutation matrix that rearranges the matrix components in the reverse order in the column direction, and is a flip of the unit matrix I in the column direction.
  • the matrix J is also referred to as a flip matrix.
  • a one-dimensional orthogonal conversion unit 50 that performs one-dimensional conversion skipping and residual rearrangement processing (IDT * Flip) based on the above equation (39) is used as a one-dimensional input signal.
  • This is realized by a combination of the selector 51 that performs the rearrangement processing (switching of the data path of the input signal) and the matrix calculation unit 52 that performs the one-dimensional uniform conversion.
  • an inverse one-dimensional orthogonal conversion unit 60 that performs one-dimensional conversion skip and inverse processing (IDT * Flip) -1 of residual rearrangement processing based on the above equation (40). Is realized by a combination of a matrix calculation unit 61 that performs (reverse) one-dimensional uniform conversion and a selector 62 that performs one-dimensional output signal rearrangement processing (switching of data paths of output signals).
  • horizontal one-dimensional conversion skip and residual sorting processing For example, horizontal one-dimensional conversion skip and residual sorting processing, horizontal one-dimensional input signal sorting processing (data path switching), horizontal one-dimensional uniform conversion, and vertical one-dimensional uniform conversion. It is realized by one-dimensional orthogonal transformation.
  • the reverse processing of horizontal one-dimensional conversion skip and residual sorting processing is performed by vertical inverse one-dimensional orthogonal transformation, horizontal (inverse) one-dimensional equality transformation, and (inverse) one-dimensional. It is realized by the rearrangement processing (switching of data path) of the one-dimensional output signal in the horizontal direction after the uniform conversion.
  • 1D conversion skip in the vertical direction and residual sorting processing are performed, 1D orthogonal conversion in the horizontal direction, 1D input signal sorting processing in the vertical direction (switching of data paths), and 1 in the vertical direction. It is realized by the dimension equality transformation.
  • the reverse processing of the vertical one-dimensional conversion skip and the residual sorting processing is performed by the vertical (reverse) one-dimensional equality conversion and the vertical one-dimensional after the (reverse) one-dimensional equality conversion. It is realized by rearrangement processing of output signals (switching of data paths) and inverse one-dimensional orthogonal conversion in the horizontal direction.
  • the two-dimensional conversion skip and the residual rearrangement processing are performed, the horizontal one-dimensional input signal rearrangement processing (data path switching), the horizontal one-dimensional uniform conversion, and the vertical one-dimensional input. It is realized by signal rearrangement processing (switching of data path) and one-dimensional uniform conversion in the vertical direction.
  • the reverse processing of the two-dimensional conversion skip and the residual sorting processing is performed on the vertical (reverse) one-dimensional equality conversion and the vertical one-dimensional output signal after the (reverse) one-dimensional equality conversion. Sorting process (switching data paths), horizontal (reverse) one-dimensional equality conversion, and horizontal one-dimensional output signal sorting processing (data path switching) after (reverse) one-dimensional equality conversion. ) And.
  • the increase in the circuit scale can be suppressed and the reduction in the coding efficiency can be suppressed as compared with the method described in Non-Patent Document 9 and the method described in Non-Patent Document 10. Further, the one-dimensional transformation skip and the residual rearrangement processing can be executed as the adaptive orthogonal transformation and one mode.
  • ⁇ Concept 4> In order to incorporate the one-dimensional conversion skip (IDT) into the framework of adaptive orthogonal conversion (MTS), a modified conversion type derivation unit and a flip flag derivation unit have been added to the parameter derivation unit (conversion type) provided in the orthogonal conversion unit. You may.
  • IDT one-dimensional conversion skip
  • MTS adaptive orthogonal conversion
  • the two-dimensional conversion skip is not performed, the one-dimensional input signal (or one-dimensional output signal) is not rearranged (data path switching), and only in the case of the two-dimensional conversion skip, the one-dimensional input signal ( Alternatively, it may be possible to perform sorting processing (switching of data paths) of (one-dimensional output signal).
  • FIG. 4 is a block diagram showing an example of the configuration of a one-dimensional orthogonal conversion device, which is an aspect of an image processing device to which the present technology is applied.
  • the one-dimensional orthogonal conversion device 100 shown in FIG. 4 is a device that performs one-dimensional orthogonal conversion of residual data.
  • the one-dimensional orthogonal conversion device 100 includes a selector 101 and a matrix calculation unit 102.
  • the selector 101 performs processing related to control of the data path of the input signal x [n] of the matrix calculation unit 102. For example, the selector 101 selects either a forward data path or a reverse data path of the input signal x [n].
  • the selector 101 makes this selection based on the flip flag bFlip, which is the flag information that controls this selection.
  • the flip flag bFlip is derived based on the parameters related to the orthogonal transformation.
  • the matrix calculation unit 102 performs a one-dimensional orthogonal conversion matrix calculation for the input signal x [n]. For example, the matrix calculation unit 102 performs a one-dimensional orthogonal conversion matrix operation corresponding to DST-7, a one-dimensional orthogonal conversion matrix operation corresponding to DCT-2, and a one-dimensional orthogonal conversion matrix operation corresponding to IDT. be able to.
  • the matrix calculation unit 102 performs a one-dimensional orthogonal transformation matrix operation corresponding to parameters such as a conversion type trType, a conversion size nTbS, and an effective conversion size nonZeroS. That is, the matrix calculation unit 102 selects and executes one of the above-mentioned matrix operations based on these parameters.
  • the matrix calculation unit 102 switches to the orthogonal conversion corresponding to the conversion type trType, the conversion size nTbS, and the effective conversion size nonZeroS in step S101. That is, the matrix calculation unit 102 selects the type of one-dimensional orthogonal transformation to be executed (for example, DST-7, DCT-2, or IDT) based on these parameters.
  • the type of one-dimensional orthogonal transformation to be executed for example, DST-7, DCT-2, or IDT
  • step S102 the selector 101 determines whether or not the supplied flip flag bFlip is false. If it is determined that the flip flag is False, the process proceeds to step S103.
  • the selector 101 selects a forward data path. That is, in step S103, the selector 101 enables the forward data path and invalidates the reverse data path. By this selection, the input signal x [n] is input to the matrix calculation unit 102 in that order without being flipped, as in the example of FIG. When the selection of the data path is completed, the process proceeds to step S105.
  • step S102 If it is determined in step S102 that the flip flag is true (not false), the process proceeds to step S104.
  • the selector 101 selects the data path in the opposite direction. That is, in step S104, the selector 101 enables the data path in the reverse direction and invalidates the data path in the forward direction. By this selection, the input signal x [n] is flipped and input to the matrix calculation unit 102 as in the example of FIG. When the selection of the data path is completed, the process proceeds to step S105.
  • step S105 the matrix calculation unit 102 executes a matrix calculation of the input signal x [n] and the orthogonal transformation selected in step S101, and outputs the output signal X [n]. That is, the matrix calculation unit 102 performs a matrix operation for one-dimensional orthogonal conversion of either DST-7, DCT-2, or IDT. When this matrix operation is completed, the one-dimensional orthogonal conversion process is completed.
  • the matrix calculation unit 102 performs a matrix operation for one-dimensional orthogonal conversion of the DST-7 (which may be DCT-2), so that, for example, the FlipDST-7 (Equation (25)) described above in ⁇ Concept 1> can be calculated.
  • the processing unit that performs one-dimensional orthogonal conversion it is possible to suppress an increase in processing delay (number of cycles) and circuit scale.
  • the matrix calculation unit 102 performs the matrix operation of the one-dimensional orthogonal conversion of the IDT, so that, for example, in the hardware implementation of the IDT * Flip (Equation (39)) described in ⁇ Concept 3>, the processing delay. It is possible to suppress an increase in (number of cycles) and circuit scale. In addition, the coding efficiency can be improved as compared with the case where the matrix operation of the one-dimensional orthogonal conversion of IDT * Flip is performed. Further, by performing the processing in this way, this processing can be executed as one mode of the adaptive orthogonal transformation.
  • FIG. 8 is a block diagram showing an example of the configuration of an inverse one-dimensional orthogonal conversion device, which is an aspect of an image processing device to which the present technology is applied.
  • the inverse one-dimensional orthogonal conversion device 150 shown in FIG. 8 is a device that performs inverse one-dimensional orthogonal conversion of conversion coefficients.
  • the inverse one-dimensional orthogonal transforming device 150 includes a matrix calculation unit 151 and a selector 152.
  • the matrix calculation unit 151 performs a matrix operation for inverse one-dimensional orthogonal conversion with respect to the input signal X [n]. For example, the matrix calculating unit 151, a matrix calculation of the inverse one-dimensional orthogonal transformation corresponding to the DST-7 -1, the matrix calculation of the inverse one-dimensional orthogonal transformation corresponding to the DCT-2 -1, and the reverse one-dimensional corresponding to IDT Matrix operations for orthogonal transformation can be performed.
  • the matrix calculation unit 151 performs an inverse one-dimensional orthogonal transformation matrix operation corresponding to parameters such as conversion type trType, conversion size nTbS, and effective conversion size nonZeroS. That is, the matrix calculation unit 151 selects and executes any of the above-mentioned matrix operations based on these parameters.
  • the selector 152 performs processing related to control of the data path of the output signal x [n] of the matrix calculation unit 151. For example, the selector 152 selects either the forward data path or the reverse data path of the output signal x [n].
  • This is a data path to be output to the outside of the inverse one-dimensional orthogonal conversion device 150 instead. That is, the output signal x [n] of the matrix calculation unit 151 is output to the outside of the inverse one-dimensional orthogonal converter 150 via the one selected by the selector 152 from the forward data path and the reverse data path. Will be done.
  • the selector 152 makes this selection based on the flip flag bFlip, which is the flag information that controls this selection.
  • the flip flag bFlip is derived based on the parameters related to the inverse orthogonal transformation.
  • the matrix calculation unit 151 switches to the inverse orthogonal conversion corresponding to the conversion type trType, the conversion size nTbS, and the effective conversion size nonZeroS in step S151. That is, the matrix calculation unit 151 selects the type of inverse one-dimensional orthogonal transformation to be executed (for example, DST-7 -1 , DCT-2 -1 , or IDT) based on these parameters.
  • the type of inverse one-dimensional orthogonal transformation to be executed for example, DST-7 -1 , DCT-2 -1 , or IDT
  • step S152 the matrix calculation unit 151 executes a matrix calculation of the input signal X [n] and the inverse orthogonal transformation selected in step S151, and outputs an output signal x [n]. That is, the matrix calculation unit 151 performs a matrix operation for inverse one-dimensional orthogonal conversion of either DST-7 -1 , DCT-2 -1 , or IDT.
  • step S153 the selector 152 determines whether or not the supplied flip flag bFlip is false. If it is determined that the flip flag is False, the process proceeds to step S154.
  • the selector 152 selects a forward data path. That is, in step S154, the selector 152 enables the forward data path and invalidates the reverse data path. By this selection, the output signal x [n] is output to the outside of the inverse one-dimensional orthogonal converter 150 in that order without being flipped, as in the example of FIG. When the data path selection is completed, the inverse one-dimensional orthogonal conversion process is completed.
  • step S153 If it is determined in step S153 that the flip flag is true (not false), the process proceeds to step S155.
  • the selector 152 selects the data path in the opposite direction. That is, in step S155, the selector 152 enables the data path in the reverse direction and invalidates the data path in the forward direction. By this selection, the output signal x [n] is flipped and output to the outside of the inverse one-dimensional orthogonal converter 150 as in the example of FIG. When the data path selection is completed, the inverse one-dimensional orthogonal conversion process is completed.
  • the matrix calculation unit 151 performs a matrix operation for inverse one-dimensional orthogonal transformation of DST-7 -1 (which may be DCT-2 -1 ), so that, for example, Flip DST-7 -1 described above in ⁇ Concept 1> is performed.
  • DST-7 -1 which may be DCT-2 -1
  • Flip DST-7 -1 described above in ⁇ Concept 1> is performed.
  • the processing unit that performs the inverse one-dimensional orthogonal conversion of the equation (30) it is possible to suppress an increase in the processing delay (number of cycles) and the circuit scale.
  • the matrix calculation unit 151 performs the matrix operation of the (inverse) one-dimensional orthogonal transformation of the IDT, so that, for example, the above-mentioned (IDT * Flip) -1 (Equation (40)) in ⁇ Concept 3> can be obtained.
  • the processing unit that performs inverse one-dimensional orthogonal conversion it is possible to suppress an increase in processing delay (number of cycles) and circuit scale.
  • the coding efficiency can be improved as compared with the case of performing the matrix operation of the inverse one-dimensional orthogonal transformation of (IDT * Flip) -1 . Further, by performing the processing in this way, this processing can be executed as one mode of the inverse adaptive orthogonal transformation.
  • FIG. 12 is a block diagram showing an example of the configuration of a one-dimensional orthogonal conversion device, which is an aspect of an image processing device to which the present technology is applied.
  • the one-dimensional orthogonal conversion device 200 shown in FIG. 12 is a device that performs one-dimensional orthogonal conversion of residual data.
  • the one-dimensional orthogonal conversion device 200 includes a selector 201, a matrix calculation unit 202, and a code inversion unit 203.
  • the selector 201 performs processing related to control of the data path of the input signal x [n] of the matrix calculation unit 202. For example, the selector 201 selects either the forward data path or the reverse data path of the input signal x [n].
  • the selector 201 makes this selection based on the flip flag bFlip, which is the flag information that controls this selection.
  • the flip flag bFlip is derived based on the parameters related to the orthogonal transformation.
  • the matrix calculation unit 202 performs a one-dimensional orthogonal conversion matrix calculation for the input signal x [n].
  • the matrix calculation unit 202 can perform a one-dimensional orthogonal transformation matrix operation corresponding to DST-7 and a one-dimensional orthogonal transformation matrix operation corresponding to DCT-2.
  • the matrix calculation unit 202 performs a one-dimensional orthogonal conversion matrix operation corresponding to parameters such as a conversion type trType, a conversion size nTbS, and an effective conversion size nonZeroS. That is, the matrix calculation unit 202 selects and executes one of the above-mentioned matrix operations based on these parameters.
  • the code inversion unit 203 inverts the code of the odd-numbered signal of the output signal X [n] of the matrix calculation unit 202 and outputs the code to the outside of the one-dimensional orthogonal conversion device 200. Further, the code inversion unit 203 can output the code of each signal of the output signal X [n] of the matrix calculation unit 202 to the outside of the one-dimensional orthogonal conversion device 200 as it is without inverting the code. That is, the code inversion unit 203 can select whether or not to perform the code inversion as described above.
  • the code inversion unit 203 makes this selection based on the code inversion flag bSign, which is the flag information that controls this selection.
  • the sign inversion flag bSign is derived based on the parameters related to the orthogonal transformation.
  • the matrix calculation unit 202 switches to the orthogonal conversion corresponding to the conversion type trType, the conversion size nTbS, and the effective conversion size nonZeroS in step S201. That is, the matrix calculation unit 202 selects the type of one-dimensional orthogonal transformation to be performed (for example, DST-7 or DCT-2) based on these parameters.
  • step S202 the selector 201 determines whether or not the supplied flip flag bFlip is false. If it is determined that the flip flag is False, the process proceeds to step S203.
  • the selector 201 selects a forward data path. That is, in step S203, the selector 201 enables the forward data path and invalidates the reverse data path. By this selection, the input signal x [n] is input to the matrix calculation unit 202 in that order without being flipped, as in the example of FIG. When the selection of the data path is completed, the process proceeds to step S205.
  • step S202 If it is determined in step S202 that the flip flag is true (not false), the process proceeds to step S204.
  • the selector 201 selects the data path in the opposite direction. That is, in step S204, the selector 201 enables the data path in the reverse direction and invalidates the data path in the forward direction. By this selection, the input signal x [n] is flipped and input to the matrix calculation unit 202 as in the example of FIG. When the selection of the data path is completed, the process proceeds to step S205.
  • step S205 the matrix calculation unit 202 executes a matrix calculation of the input signal x [n] and the orthogonal transformation selected in step S201, and outputs the output signal X [n]. That is, the matrix calculation unit 202 performs the matrix calculation of the one-dimensional orthogonal conversion of the DST-7 or the DCT-2.
  • step S206 the code inversion unit 203 determines whether or not the supplied code inversion flag bSign is false. When it is determined that the code inversion flag is False, the code inversion unit 203 converts the output signal X [n] into a one-dimensional orthogonal converter 200 without performing code inversion as in the example of FIG. Output to the outside of. Then, the one-dimensional orthogonal conversion process is completed.
  • step S206 If it is determined in step S206 that the sign inversion flag is true (not false), the process proceeds to step S207.
  • the code inversion unit 203 performs code inversion with respect to the output signal X [n]. That is, the code inversion unit 203 inverts the sign (positive / negative) of the odd-numbered signal of the output signal X [n], for example, as in the following equation (41) and the example of FIG.
  • the code inversion unit 203 outputs the output signal X [n] whose code is inverted in this way to the outside of the one-dimensional orthogonal converter 200. Then, the one-dimensional orthogonal conversion process is completed.
  • the matrix calculation unit 202 performs the matrix calculation of the one-dimensional orthogonal conversion of the DST-7 (which may be DCT-2), so that, for example, the DCT-8 (Equation (24)) described in ⁇ Concept 2> can be calculated.
  • the processing unit that performs one-dimensional orthogonal conversion it is possible to suppress an increase in processing delay (number of cycles) and circuit scale.
  • FIG. 16 is a block diagram showing an example of the configuration of an inverse one-dimensional orthogonal conversion device, which is an aspect of an image processing device to which the present technology is applied.
  • the inverse one-dimensional orthogonal conversion device 250 shown in FIG. 16 is an apparatus that performs inverse one-dimensional orthogonal conversion of conversion coefficients.
  • the inverse one-dimensional orthogonal transforming apparatus 250 includes a code inversion unit 251, a matrix calculation unit 252, and a selector 253.
  • the code inversion unit 251 inverts the code of the odd-numbered signal of the input signal X [n] and supplies it to the matrix calculation unit 252. Further, the code inversion unit 251 can supply the input signal X [n] to the matrix calculation unit 252 as it is without inverting the code of each signal. That is, the code inversion unit 251 can select whether or not to perform the code inversion as described above with respect to the input signal X [n] of the matrix calculation unit 252.
  • the code inversion unit 251 makes this selection based on the code inversion flag bSign, which is the flag information that controls this selection.
  • the sign inversion flag bSign is derived based on the parameters related to the inverse orthogonal transformation.
  • the matrix calculation unit 252 performs a matrix calculation of inverse one-dimensional orthogonal conversion for the input signal X [n]. For example, the matrix calculation unit 252 can perform the matrix operation of the inverse one-dimensional orthogonal transformation corresponding to DST-7 -1 and the matrix operation of the inverse one-dimensional orthogonal transformation corresponding to DCT-2 -1 . The matrix calculation unit 252 performs a matrix operation for inverse one-dimensional orthogonal conversion corresponding to parameters such as conversion type trType, conversion size nTbS, and effective conversion size nonZeroS. That is, the matrix calculation unit 252 selects and executes one of the above-mentioned matrix operations based on these parameters.
  • parameters such as conversion type trType, conversion size nTbS, and effective conversion size nonZeroS. That is, the matrix calculation unit 252 selects and executes one of the above-mentioned matrix operations based on these parameters.
  • the selector 253 performs processing related to the control of the data path of the output signal x [n] of the matrix calculation unit 252. For example, the selector 253 selects either the forward data path or the reverse data path of the output signal x [n].
  • This is a data path to be output to the outside of the inverse one-dimensional orthogonal converter 250 instead. That is, the output signal x [n] of the matrix calculation unit 252 is output to the outside of the inverse one-dimensional orthogonal converter 250 via the one selected by the selector 253 from the forward data path and the reverse data path. Will be done.
  • the selector 253 makes this selection based on the flip flag bFlip, which is the flag information that controls this selection.
  • the flip flag bFlip is derived based on the parameters related to the inverse orthogonal transformation.
  • the matrix calculation unit 252 switches to the inverse orthogonal conversion corresponding to the conversion type trType, the conversion size nTbS, and the effective conversion size nonZeroS in step S251. That is, the matrix calculation unit 252 selects the type of inverse one-dimensional orthogonal transformation to be executed (for example, DST-7 -1 or DCT-2 -1 ) based on these parameters.
  • step S252 the code inversion unit 251 determines whether or not the supplied code inversion flag bSign is false. When it is determined that the code inversion flag is False, the code inversion unit 251 supplies the input signal X [n] to the matrix calculation unit 252 without performing code inversion as in the example of FIG. To do. That is, if it is determined in step S252 that the sign inversion flag is False, the process proceeds to step S254.
  • step S252 If it is determined in step S252 that the sign inversion flag is True, the process proceeds to step S253.
  • step S253 the code inversion unit 251 performs code inversion with respect to the input signal X [n]. That is, the code inversion unit 251 inverts the sign (positive / negative) of the odd-numbered signal of the input signal X [n] and supplies it to the matrix calculation unit 252, for example, as in the above equation (41) and the example of FIG. To do.
  • the process of step S253 proceeds to step S254.
  • step S254 the matrix calculation unit 252 executes the matrix calculation of the input signal X [n] and the inverse orthogonal transformation selected in step S251, and outputs the output signal x [n]. That is, the matrix calculation unit 252 performs the matrix calculation of the inverse one-dimensional orthogonal conversion of DST-7 -1 or DCT-2 -1 .
  • step S255 the selector 253 determines whether or not the supplied flip flag bFlip is false. If it is determined that the flip flag is False, the process proceeds to step S256.
  • the selector 253 selects the forward data path. That is, in step S256, the selector 253 enables the forward data path and invalidates the reverse data path. By this selection, the output signal x [n] is output to the outside of the inverse one-dimensional orthogonal converter 250 in that order without being flipped, as in the example of FIG. When the data path selection is completed, the inverse one-dimensional orthogonal conversion process is completed.
  • step S255 If it is determined in step S255 that the flip flag is true (not false), the process proceeds to step S257.
  • the selector 253 selects the data path in the opposite direction. That is, in step S257, the selector 253 enables the data path in the reverse direction and invalidates the data path in the forward direction. By this selection, the output signal x [n] is flipped and output to the outside of the inverse one-dimensional orthogonal converter 250 as in the example of FIG. When the data path selection is completed, the inverse one-dimensional orthogonal conversion process is completed.
  • the matrix calculation unit 252 performs a matrix operation for one-dimensional orthogonal conversion of DST-7 -1 (may be DCT-2 -1 ), so that, for example, the DCT-8 -1 (which may be DCT-2 -1 ) described above in ⁇ Concept 2> is performed.
  • DST-7 -1 may be DCT-2 -1
  • DCT-8 -1 which may be DCT-2 -1
  • the processing unit that performs the one-dimensional orthogonal conversion of the equation (29) it is possible to suppress an increase in the processing delay (number of cycles) and the circuit scale.
  • FIG. 20 is a block diagram showing an example of the configuration of a parameter derivation device, which is an aspect of an image processing device to which the present technology is applied.
  • the parameter derivation device 300 shown in FIG. 20 is a parameter used in the above-mentioned one-dimensional orthogonal conversion device 100, inverse one-dimensional orthogonal conversion device 150, one-dimensional orthogonal conversion device 200, inverse one-dimensional orthogonal conversion device 250, and the like. It is a device that performs processing related to derivation.
  • the parameter derivation device 300 derives, for example, parameters for incorporating the one-dimensional transformation skip (IDT) into the framework of the adaptive orthogonal transformation (MTS).
  • IDT one-dimensional transformation skip
  • MTS adaptive orthogonal transformation
  • the parameter derivation device 300 includes a conversion type derivation unit 301, a modification conversion type derivation unit 302, and a flip flag derivation unit 303.
  • the conversion type derivation unit 301 derives the conversion type trTypeX based on the conversion information Tinfo in step S301.
  • the transformation type derivation unit 301 can, for example, derive the transformation skip flag transformSkipFlag, the parameters required for deriving the transformation types trTypeHor and trTypeVer of the horizontal / vertical one-dimensional transformation, the MTS enable flag mts_enabled_flag, and the intra explicit MTS enable flag explicit_mts_intra_enabled_flag.
  • Inter explicit MTS enabled flag explicit_mts_inter_enabled_flag SBT mode information (including on / off flag "SBT flag sbt_flag" for Sub-block Transform, SBT split information (sbt_auad_flag, sbt_pos_flag, sbt_horizontal_flag)), ISP mode information (on / off for Intra Sub-Paritition) Flag "ISP flag intra_subparitions_mode_flag (also called isp_flag)", ISP division information (intra_subpartitions_split_flag)), conversion block size (width nTbW, height nTbH (log2TbW, log2TbH for logarithmic base of 2)), conversion block The conversion type trTypeX is derived based on the information such as the coordinates (xTbY, yTbY), the color component identifier cIdx (or compID), and the intra prediction mode predMode
  • the conversion type derivation unit 301 derives the conversion type trTypeX as shown in the pseudo code 321 of FIG.
  • the parameter implicitMtsEnabled is derived, for example, as shown in the pseudo code 322 of FIG.
  • step S302 the modified conversion type derivation unit 302 derives the modified conversion type trTypeX'using the conversion type trTypeX derived in step S301.
  • the modified conversion type derivation unit 302 corresponds to DCT-8 with reference to the conversion type trTypeX, the CU prediction type cuPredMode, and the block size derived in step S301, as in the pseudo code 323 shown in FIG.
  • the conversion type to be used can be replaced with IDT.
  • the modified conversion type derivation unit 302 refers to the conversion type trTypeX, the CU prediction type cuPredMode, and the block size derived in step S301 as in the pseudo code 324 shown in FIG. 24, and FlipDST-7.
  • the conversion type corresponding to can be replaced with IDT.
  • step S303 When the process of step S303 is completed, the parameter derivation process is completed.
  • the parameter derivation device 300 makes the one-dimensional conversion skip (IDT) by the one-dimensional orthogonal conversion device 100 or the inverse one-dimensional orthogonal conversion device 150 into the framework of the adaptive orthogonal conversion (MTS). Can be incorporated.
  • IDT one-dimensional conversion skip
  • MTS adaptive orthogonal conversion
  • the parameter derivation device 300 does not perform the rearrangement processing (switching of the data path) of the one-dimensional input signal (or one-dimensional output signal) when it is not the two-dimensional conversion skip, and only in the case of the two-dimensional conversion skip. It is possible to perform sorting processing (switching of data paths) of one-dimensional input signals (or one-dimensional output signals).
  • the flip flag bFlipX may be set based on cuPredMode, residual rearrangement, or the like as in the pseudo code 331 of FIG.
  • implicitMtsEnabled and conversion type may be set as shown in the pseudo code 332 of FIG. 26, for example.
  • the parameter derivation device 300 described above can be combined with the above-mentioned one-dimensional orthogonal conversion device 100, inverse one-dimensional orthogonal conversion device 150, one-dimensional orthogonal conversion device 200, and inverse one-dimensional orthogonal conversion device 250 as one device. Good. That is, the parameters derived by the parameter derivation device 300 may be used by these devices.
  • the present technology described above can be applied to any device, device, system and the like.
  • the present technology can be applied to an image coding device that encodes image data.
  • FIG. 27 is a block diagram showing an example of the configuration of an image coding device, which is an aspect of an image processing device to which the present technology is applied.
  • the image coding device 500 shown in FIG. 27 is a device that encodes image data of a moving image.
  • the image coding apparatus 500 encodes the image data of a moving image by a coding method capable of forming a rectangular block, as in the case of VVC described in Non-Patent Document 6.
  • FIG. 27 shows the main things such as the processing unit and the data flow, and not all of them are shown in FIG. 27. That is, in the image coding apparatus 500, there may be a processing unit that is not shown as a block in FIG. 27, or there may be a processing or data flow that is not shown as an arrow or the like in FIG. 27. This also applies to other figures for explaining the processing unit and the like in the image coding apparatus 500.
  • the image coding device 500 includes a control unit 501, a sorting buffer 511, a calculation unit 512, a conversion quantization unit 513, a coding unit 514, and a storage buffer 515. Further, the image coding device 500 includes an inverse quantization inverse conversion unit 516, a calculation unit 517, an in-loop filter unit 518, a frame memory 519, a prediction unit 520, and a rate control unit 521.
  • the control unit 501 divides the moving image data held by the sorting buffer 511 into blocks (CU, PU, conversion block, etc.) of the processing unit based on the block size of the external or predetermined processing unit. .. Further, the control unit 501 determines the coding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, filter information Finfo, etc.) to be supplied to each block based on, for example, RDO (Rate-Distortion Optimization). To do. For example, the control unit 501 can set a conversion skip flag or the like.
  • control unit 501 determines the coding 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 coding unit 514 and the prediction unit 520.
  • the conversion information Tinfo is supplied to the coding unit 514, the conversion quantization unit 513, and the inverse quantization inverse conversion unit 516.
  • the filter information Finfo is supplied to the in-loop filter unit 518.
  • ⁇ Sort buffer> Each field (input image) of moving image data is input to the image coding device 500 in the reproduction order (display order).
  • the sorting buffer 511 acquires and retains (stores) each input image in its reproduction order (display order).
  • the sorting buffer 511 sorts the input images in the coding order (decoding order) or divides the input images into blocks of processing units based on the control of the control unit 501.
  • the sorting buffer 511 supplies each input image after processing to the calculation unit 512.
  • the calculation unit 512 subtracts the prediction image P supplied from the prediction unit 520 from the image corresponding to the block of the processing unit supplied from the sorting buffer 511, derives the residual data D, and converts it into a conversion quantum. It is supplied to the chemical unit 513.
  • the conversion quantization unit 513 performs processing related to orthogonal conversion and quantization. For example, the conversion quantization unit 513 can acquire the residual data supplied from the calculation unit 512, perform orthogonal conversion on the residual data, and derive the conversion coefficient Coeff. Further, the conversion quantization unit 513 can scale (quantize) the conversion coefficient Coeff to derive the quantization coefficient level. Further, the conversion quantization unit 513 can supply the quantization coefficient level to the coding unit 514 and the inverse quantization inverse conversion unit 516.
  • the conversion quantization unit 513 can acquire the prediction mode information Pinfo and conversion information Tinfo supplied from the control unit 501, and can perform processing such as orthogonal conversion and quantization based on the information. Further, the rate of quantization performed by the conversion quantization unit 513 is controlled by the rate control unit 521.
  • the coding unit 514 includes a quantization coefficient level supplied from the conversion quantization unit 513 and various coding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, filter information Finfo, etc.) supplied from the control unit 501. ), Information about the filter such as the filter coefficient supplied from the in-loop filter unit 518, and information about the optimum prediction mode supplied from the prediction unit 520 are input.
  • the coding unit 514 performs entropy coding (lossless coding) such as CABAC (Context-based Adaptive Binary Arithmetic Code) or CAVLC (Context-based Adaptive Variable Length Code) on the quantization coefficient level to perform a bit string. Generate (encoded data).
  • entropy coding lossless coding
  • CABAC Context-based Adaptive Binary Arithmetic Code
  • CAVLC Context-based Adaptive Variable Length Code
  • the coding unit 514 derives the residual information Rinfo from the quantization coefficient level, encodes the residual information Rinfo, and generates a bit string.
  • the coding unit 514 includes the information about the filter supplied from the in-loop filter unit 518 in the filter information Finfo, and includes the information about the optimum prediction mode supplied from the prediction unit 520 in the prediction mode information Pinfo. Then, the coding unit 514 encodes the various coding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, filter information Finfo, etc.) described above to generate a bit string.
  • the coding unit 514 multiplexes the bit strings of the various information generated as described above to generate the coded data.
  • the coding unit 514 supplies the coded data to the storage buffer 515.
  • the storage buffer 515 temporarily holds the coded data obtained by the coding unit 514.
  • the storage buffer 515 outputs the held coded data as, for example, a bit stream or the like to the outside of the image coding device 500 at a predetermined timing.
  • this coded data is transmitted to the decoding side via an arbitrary recording medium, an arbitrary transmission medium, an arbitrary information processing device, or the like. That is, the storage buffer 515 is also a transmission unit that transmits encoded data (bit stream).
  • Inverse quantization inverse conversion unit 516 performs processing related to inverse quantization and inverse orthogonal transformation.
  • the inverse quantization inverse conversion unit 516 takes the quantization coefficient level supplied from the conversion quantization unit 513 and the conversion information Tinfo supplied from the control unit 501 as inputs, and quantizes based on the conversion information Tinfo. Scale (inverse quantization) the value of the conversion coefficient level.
  • This inverse quantization is an inverse process of quantization performed in the conversion quantization unit 513.
  • the inverse quantization inverse conversion unit 516 performs inverse orthogonal transformation on the conversion coefficient based on the conversion coefficient Coeff_IQ obtained by such inverse quantization and the conversion information Tinfo, and obtains the residual data D'. Derived. It should be noted that this inverse orthogonal transformation is an inverse process of the orthogonal transformation performed in the conversion quantization unit 513.
  • the inverse quantization inverse conversion unit 516 supplies the obtained residual data D'to the arithmetic unit 517.
  • the calculation unit 517 inputs the residual data D'supplied from the inverse quantization inverse conversion unit 516 and the prediction image P supplied from the prediction unit 520.
  • the calculation unit 517 adds the residual data D'and the predicted image corresponding to the residual data D'to derive a locally decoded image.
  • the calculation unit 517 supplies the derived locally decoded image to the in-loop filter unit 518 and the frame memory 519.
  • the in-loop filter unit 518 performs processing related to the in-loop filter processing.
  • the in-loop filter unit 518 inputs the locally decoded image supplied from the calculation unit 517, the filter information Finfo supplied from the control unit 501, and the input image (original image) supplied from the sorting buffer 511.
  • the information input to the in-loop filter unit 518 is arbitrary, and information other than these information may be input. For example, even if the prediction mode, motion information, code amount target value, quantization parameter QP, picture type, block (CU, CTU, etc.) information and the like are input to the in-loop filter unit 518, if necessary. Good.
  • the in-loop filter unit 518 appropriately filters the locally decoded image based on the filter information Finfo.
  • the in-loop filter unit 518 also uses an input image (original image) and other input information for the filter processing, if necessary.
  • the in-loop filter unit 518 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)).
  • DPF DeBlocking Filter
  • SAO Sample Adaptive Offset
  • ALF adaptive Loop Filter
  • the filter processing performed by the in-loop filter unit 518 is arbitrary and is not limited to the above example.
  • the in-loop filter unit 518 may apply a Wiener filter or the like.
  • the in-loop filter unit 518 supplies the filtered locally decoded image to the frame memory 519.
  • the in-loop filter unit 518 supplies information about the filter to the coding unit 514.
  • the frame memory 519 performs processing related to storage of data related to images. For example, the frame memory 519 receives the locally decoded image supplied from the arithmetic unit 517 and the filtered locally decoded image supplied from the in-loop filter unit 518 as inputs, and holds (stores) them. Further, the frame memory 519 reconstructs and holds the decoded image for each picture unit using the locally decoded image (stored in the buffer in the frame memory 519). The frame memory 519 supplies the decoded image (or a part thereof) to the prediction unit 520 in response to the request of the prediction unit 520.
  • the prediction unit 520 performs a process related to the generation of the prediction image.
  • the prediction unit 520 receives the prediction mode information Pinfo supplied from the control unit 501, the input image (original image) supplied from the sorting buffer 511, and the decoded image (or a part thereof) read from the frame memory 519. Input.
  • the prediction unit 520 performs prediction processing such as inter-prediction and intra-prediction using the prediction mode information Pinfo and the input image (original image), makes a prediction by referring to the decoded image as a reference image, and based on the prediction result. Motion compensation processing is performed to generate a predicted image.
  • the prediction unit 520 supplies the generated prediction image to the calculation unit 512 and the calculation unit 517. Further, the prediction unit 520 supplies information regarding the prediction mode selected by the above processing, that is, the optimum prediction mode, to the coding unit 514 as needed.
  • the rate control unit 521 performs processing related to rate control. For example, the rate control unit 521 controls the rate of the quantization operation of the conversion quantization unit 513 based on the code amount of the coded data stored in the storage buffer 515 so that overflow or underflow does not occur.
  • FIG. 28 is a block diagram showing a main configuration example of the transformation quantization unit 513 of FIG. 27.
  • the conversion quantization unit 513 includes a selection unit 531, an orthogonal conversion unit 532, a quantization unit 533, and a selection unit 534.
  • the orthogonal conversion unit 532 performs orthogonal conversion on the residual data r input via the selection unit 531 and generates a conversion coefficient.
  • the orthogonal conversion unit 532 supplies the conversion coefficient to the quantization unit 533.
  • the quantization unit 533 quantizes the conversion coefficient supplied from the orthogonal conversion unit 532 and generates a quantization coefficient level.
  • the quantization unit 533 supplies the generated quantization coefficient level to the coding unit 514 and the inverse quantization inverse conversion unit 516 (both in FIG. 27).
  • the selection unit 531 supplies the residual data r input to the conversion quantization unit 513 to the selection unit 534. Further, the selection unit 534 supplies the residual data r'to the coding unit 514 and the inverse quantization inverse conversion unit 516.
  • transQuantBypassFlag is decoded / encoded in CU / TU units.
  • transformSkipFlag may be decoded / encoded as part of the MTS index (mts_idx).
  • FIG. 29 is a block diagram showing a main configuration example of the orthogonal conversion unit 532 of FIG. 28.
  • the orthogonal conversion unit 532 has a parameter derivation unit 551, a primary horizontal conversion unit 552, a normalization unit 553, a buffer 554, a primary vertical conversion unit 555, and a normalization unit 556.
  • the parameter derivation unit 551 performs processing related to derivation of parameters related to orthogonal conversion.
  • the parameter derivation unit 551 takes the conversion information Tinfo as an input and derives various parameters related to orthogonal conversion such as the horizontal conversion type trTypeHor, the vertical conversion type trTypeVer, the horizontal flip flag flipHor, and the vertical flip flag flipVer. Can be done.
  • the parameter derivation unit 551 may supply the derived parameters to the primary horizontal conversion unit 552, the normalization unit 553, the primary vertical conversion unit 555, and the normalization unit 556.
  • the primary horizontal conversion unit 552 performs processing related to the primary horizontal conversion, which is a one-dimensional conversion in the horizontal direction.
  • the residual r is subjected to primary horizontal conversion, and the obtained intermediate output signal tmp1 is supplied to the normalization unit 553.
  • the normalization unit 553 performs normalization processing on the intermediate output signal tmp1. For example, the normalization unit 553 takes the intermediate output signal tmp1 and the shift amount fwdShift1 as inputs, normalizes (scales) the intermediate output signal tmp1 with the shift amount fwdShift1 as shown in the following equation (42), and obtains normalization.
  • the intermediate output signal tmp2 after conversion is supplied to the buffer 554.
  • the buffer 554 temporarily holds the intermediate output signal tmp2 supplied from the normalization unit 553 and supplies it to the primary vertical conversion unit 555 at a predetermined timing or the like.
  • the primary vertical conversion unit 555 performs processing related to the primary vertical conversion, which is a one-dimensional conversion in the vertical direction.
  • the normalization unit 556 performs normalization processing on the intermediate output signal tmp3. For example, the normalization unit 556 takes the intermediate output signal tmp3 and the shift amount fwdShift2 as inputs, normalizes (scales) the intermediate output signal tmp3 with the shift amount fwdShift2 as shown in the following equation (43), and obtains the conversion.
  • the coefficient coef is supplied to the quantization unit 533 (FIG. 28).
  • the above-mentioned one-dimensional orthogonal conversion device 100 or one-dimensional orthogonal conversion device 200 may be applied as the primary horizontal conversion unit 552.
  • the orthogonal conversion unit 532 (that is, the image coding apparatus 500) performs the one-dimensional orthogonal conversion processing in the primary horizontal conversion as described in the first embodiment and the second embodiment. This can be done, and the effects described in the first embodiment and the second embodiment can be obtained. Therefore, the image coding apparatus 500 can suppress an increase in processing delay in the orthogonal conversion process and the inverse orthogonal conversion process.
  • the above-mentioned one-dimensional orthogonal conversion device 100 or one-dimensional orthogonal conversion device 200 may be applied as the primary vertical conversion unit 555.
  • the orthogonal conversion unit 532 that is, the image coding apparatus 500
  • the image coding apparatus 500 performs the one-dimensional orthogonal conversion processing in the primary vertical conversion as described in the first embodiment and the second embodiment. This can be done, and the effects described in the first embodiment and the second embodiment can be obtained. Therefore, the image coding apparatus 500 can suppress an increase in processing delay in the orthogonal conversion process and the inverse orthogonal conversion process.
  • one-dimensional orthogonal conversion device 100 or one-dimensional orthogonal conversion device 200 may be applied to both the primary horizontal conversion unit 552 and the primary vertical conversion unit 555.
  • the above-mentioned parameter derivation device 300 may be applied as the parameter derivation unit 551.
  • the orthogonal converter 532 that is, the image coding apparatus 500
  • the image coding apparatus 500 can derive various parameters as described in the third embodiment, and has been described in the third embodiment. The effect can be obtained. Therefore, the image coding apparatus 500 can suppress an increase in processing delay in the orthogonal conversion process and the inverse orthogonal conversion process.
  • the image coding apparatus 500 can also incorporate the one-dimensional transformation skip (IDT) into the framework of adaptive orthogonal transformation (MTS).
  • IDT one-dimensional transformation skip
  • MTS adaptive orthogonal transformation
  • the parameter derivation unit 551 can derive the implicit MTS enable flag implicitMtsEnabled with reference to the conversion information Tinfo as follows.
  • implictMtsEnabled 1 is set.
  • ISP intrasubblock split mode
  • SBT sub-block conversion mode
  • TH1 32
  • SBT sub-block conversion mode
  • the correction conversion type trTypeX'and the flip flag flipX can also be set by the following calculation.
  • the upper 1 bit of the conversion type trTypeX before modification corresponds to the flag value related to flip control
  • the lower 1 bit corresponds to the flag value indicating DCT-2 or DST-7.
  • parameter derivation unit 551 can derive the variables nonZeroW and nonZeroH regarding the size of the non-zero region as shown in the following equations (44) and (45).
  • the parameter derivation unit 551 uses the shift amount fwdShift1 used for normalization after the primary horizontal conversion, the shift amount fwdShift2 used after the extension of the residual after the primary vertical conversion or conversion skip, and the shift amount used for the extension of the residual of the conversion skip. Derive fwdTsShift.
  • fwdTsShift dynamicRange --bitDepth-((log2TbH + log2TbH) ⁇ 1) ... (48)
  • step S501 the sorting buffer 511 is controlled by the control unit 501 to sort the frame order of the input moving image data from the display order to the coding order.
  • step S502 the control unit 501 sets a processing unit (block division is performed) for the input image held by the sorting buffer 511.
  • step S503 the control unit 501 determines (sets) the coding parameters for the input image held by the sorting buffer 511.
  • the prediction unit 520 performs prediction processing and generates a prediction image or the like of the optimum prediction mode. For example, in this prediction process, the prediction unit 520 performs intra-prediction to generate a prediction image or the like of the optimum intra-prediction mode, and performs inter-prediction to generate a prediction image or the like of the optimum inter-prediction mode.
  • the optimum prediction mode is selected 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 the residual data D between the input image and the predicted image. The amount of residual data D obtained in this way is reduced as compared with 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 conversion quantization unit 513 performs conversion quantization processing on the residual data D generated by the processing of step S505 according to the conversion information Tinfo and the like generated in step S503.
  • step S507 the inverse quantization inverse conversion unit 516 performs the inverse quantization inverse conversion process.
  • This inverse quantization inverse conversion process is an inverse process of the conversion quantization process in step S506, and the same process is executed on the decoding side (image decoding device 600) described later. Therefore, the description of this inverse quantization inverse conversion process will be given when the decoding side (image decoding device 600) is described. Then, the description can be applied to this inverse quantization inverse conversion process (step S507).
  • the inverse quantization inverse conversion unit 516 performs inverse quantization and inverse orthogonal transformation on the input coefficient data (quantization coefficient level) as appropriate, and generates residual data D'.
  • the inverse quantization inverse conversion unit 516 supplies the residual data D'to the arithmetic unit 517.
  • step S508 the calculation unit 517 locally decodes the residual data D'derived by the inverse quantization inverse conversion process of step S507 by adding the predicted image obtained by the prediction process of step S504. Generate the decoded image.
  • step S509 the in-loop filter unit 518 performs an in-loop filter process on the locally decoded decoded image derived by the process of step S508.
  • step S510 the frame memory 519 stores the locally decoded decoded image derived by the process of step S508 and the locally decoded decoded image filtered in step S509.
  • step S511 the coding unit 514 encodes the quantization coefficient level obtained by the process of step S506 and the conversion mode information generated in step S503.
  • the coding unit 514 encodes the quantization coefficient level, which is information about an image, by arithmetic coding or the like to generate coded data.
  • the coding unit 514 encodes various coding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo). Further, the coding unit 514 derives the residual information RInfo from the quantization coefficient level and encodes the residual information RInfo.
  • step S512 the storage buffer 515 accumulates the coded data thus obtained and outputs it, for example, as a bit stream to the outside of the image coding device 500.
  • This bit stream is transmitted to the decoding side via, for example, a transmission line or a recording medium.
  • step S512 the rate control unit 521 performs rate control as needed.
  • the image coding process is completed.
  • step S532 the orthogonal conversion unit 532 performs orthogonal conversion processing to perform orthogonal conversion of the residual data r and generate a conversion coefficient.
  • step S533 the quantization unit 533 performs quantization on the conversion coefficient generated in step S532 to generate a quantization coefficient level.
  • step S533 the conversion quantization process is completed, and the process returns to FIG.
  • step S552 the parameter derivation unit 551 derives the correction conversion type (trTypeHor', trTypeVer') in each direction and the flip flag (flipHor, flipVer) in each direction from the conversion information Tinfo.
  • step S553 the parameter derivation unit 551 derives the shift amount (fwdShift1, fwdShift2) in each direction.
  • buffer 554 holds its intermediate output signal tmp2.
  • x [n] is subjected to one-dimensional orthogonal conversion in the vertical direction
  • step S557 When the process of step S557 is completed, the process proceeds to step S560.
  • step S551 If it is determined in step S551 that the conversion skip flag is true, the process proceeds to step S558.
  • step S558 the parameter derivation unit 551 derives the shift amount (fwdTsShift, fwdShift2) at the time of skipping the two-dimensional conversion.
  • the processing of the primary horizontal conversion unit 552 and the primary vertical conversion unit 555 is skipped. That is, the normalization unit 553 and the normalization unit 556 perform the processing.
  • step S560 the process proceeds to step S560.
  • step S560 the normalization unit 556 normalizes each coefficient of the intermediate output signal tmp2 [y] [x] with the shift amount fwdShift2 as shown in the following equation (50), and the conversion coefficient coef [y] [x]. Output as.
  • step S560 When the process of step S560 is completed, the orthogonal conversion process is completed, and the process returns to FIG. 31.
  • the orthogonal conversion unit 532 (that is, the image coding device 500) can obtain the effects described in the first embodiment and the second embodiment in the primary horizontal conversion. Therefore, the image coding apparatus 500 can suppress an increase in processing delay in the orthogonal conversion process and the inverse orthogonal conversion process.
  • the one-dimensional orthogonal conversion process shown in FIG. 5 or the one-dimensional orthogonal conversion process shown in FIG. 13 may be applied.
  • the orthogonal conversion unit 532 that is, the image coding apparatus 500
  • the image coding apparatus 500 can obtain the effects described in the first embodiment and the second embodiment in the primary vertical conversion. Therefore, the image coding apparatus 500 can suppress an increase in processing delay in the orthogonal conversion process and the inverse orthogonal conversion process.
  • the parameter derivation process shown in FIG. 21 may be applied as the parameter derivation process performed in step S552.
  • the orthogonal conversion unit 532 that is, the image coding apparatus 500
  • the image coding apparatus 500 can obtain the effect described in the third embodiment in the primary vertical conversion. Therefore, the image coding apparatus 500 can suppress an increase in processing delay in the orthogonal conversion process and the inverse orthogonal conversion process.
  • FIG. 33 is a block diagram showing an example of the configuration of an image decoding device, which is an aspect of an image processing device to which the present technology is applied.
  • the image decoding device 600 shown in FIG. 33 is a device that decodes the coded data of the moving image.
  • the image decoding device 600 decodes the coded data of the moving image encoded by the coding method capable of forming a rectangular block like the VVC described in Non-Patent Document 6.
  • the image decoding device 600 can decode the coded data (bit stream) generated by the image coding device 500 described above.
  • FIG. 33 shows the main things such as the processing unit and the data flow, and not all of them are shown in FIG. 33. That is, in the image decoding apparatus 600, there may be a processing unit that is not shown as a block in FIG. 33, or there may be a processing or data flow that is not shown as an arrow or the like in FIG. 33. This also applies to other figures for explaining the processing unit and the like in the image decoding device 600.
  • the image decoding device 600 includes a storage buffer 611, a decoding unit 612, an inverse quantization inverse conversion unit 613, a calculation unit 614, an in-loop filter unit 615, a sorting buffer 616, a frame memory 617, and a prediction unit 618.
  • the prediction unit 618 includes an intra prediction unit (not shown) and an inter prediction unit.
  • the storage buffer 611 acquires and holds (stores) the bit stream input to the image decoding device 600.
  • the storage buffer 611 extracts the coded data included in the stored bit stream and supplies it to the decoding unit 612 at a predetermined timing or when a predetermined condition is satisfied.
  • the decoding unit 612 performs processing related to image decoding. For example, the decoding unit 612 takes the coded data supplied from the storage buffer 611 as an input, and entropy-decodes (reversibly decodes) the syntax value of each syntax element from the bit string according to the definition of the syntax table. , Derivation of parameters.
  • the syntax element and the parameters derived from the syntax value of the syntax element include, for example, information such as header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, residual information Rinfo, and filter information Finfo. That is, the decoding unit 612 parses (analyzes and acquires) this information from the bit stream. This information will be described below.
  • Header information Hinfo includes header information such as VPS (Video Parameter Set) / SPS (Sequence Parameter Set) / PPS (Picture Parameter Set) / PH (picture header) / SH (slice header).
  • the header information Hinfo includes, for example, image size (width PicWidth, height PicHeight), bit depth (brightness bitDepthY, color difference bitDepthC), color difference array type ChromaArrayType, maximum CU size MaxCUSize / minimum MinCUSize, quadtree division ( Maximum depth of Quad-tree division MaxQTDepth / Minimum depth MinQTDepth / Maximum depth of binary-tree division (Binary-tree division) MaxBTDepth / Minimum depth MinBTDepth, Maximum value of conversion skip block MaxTSSize (also called maximum conversion skip block size) ), Information that defines the on / off flag (also called the valid flag) of each coding tool is included.
  • the on / off flags of the coding tool included in the header information Hinfo there are the on / off flags related to the conversion and quantization processing shown below.
  • the on / off flag of the coding tool can also be interpreted as a flag indicating whether or not the syntax related to the coding tool exists in the coded data. Further, when the value of the on / off flag is 1 (true), it indicates that the coding tool can be used, and when the value of the on / off flag is 0 (false), it indicates that the coding tool cannot be used. Shown. The interpretation of the flag value may be reversed.
  • Inter-component prediction enabled flag (ccp_enabled_flag): Flag information indicating whether or not inter-component prediction (CCP (Cross-Component Prediction), also called CC prediction) can be used. For example, if this flag information is "1" (true), it indicates that it can be used, and if it is "0" (false), it indicates that it cannot be used.
  • CCP Cross-Component Prediction
  • This CCP is also called inter-component linear prediction (CCLM or CCLMP).
  • the prediction mode information Pinfo includes, for example, information such as size information PBSize (prediction block size) of the processing target PB (prediction block), intra prediction mode information IPinfo, and motion prediction information MVinfo.
  • Intra prediction mode information IPinfo includes, for example, prev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode in JCTVC-W1005, 7.3.8.5 Coding Unit syntax, and the brightness intra prediction mode IntraPredModeY derived from the syntax.
  • 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 color difference sample position type identifier (chroma_sample_loc_type_idx), a color difference MPM identifier (chroma_mpm_idx), and , IntraPredModeC, etc., which are derived from these syntaxes.
  • ccp_flag cclmp_flag
  • mclm_flag multi-class linear prediction mode flag
  • chroma_sample_loc_type_idx color difference MPM identifier
  • IntraPredModeC IntraPredModeC, etc.
  • the multi-class linear prediction mode flag is information regarding the mode of linear prediction (linear prediction mode information). More specifically, the multi-class linear prediction mode flag (mclm_flag) is flag information indicating whether or not to set the multi-class linear prediction mode. For example, "0" indicates that it is a one-class mode (single class mode) (for example, CCLMP), and "1" indicates that it is a two-class mode (multi-class mode) (for example, MCLMP). ..
  • the color difference sample position type identifier (chroma_sample_loc_type_idx) is an identifier that identifies the type of pixel position of the color difference component (also referred to as the color difference sample position type).
  • this color difference sample position type identifier (chroma_sample_loc_type_idx) is transmitted (stored in) as information (chroma_sample_loc_info ()) regarding the pixel position of the color difference component.
  • the color difference MPM identifier (chroma_mpm_idx) is an identifier indicating which prediction mode candidate in the color difference intra prediction mode candidate list (intraPredModeCandListC) is designated as the color difference intra prediction mode.
  • the information included in the prediction mode information Pinfo is arbitrary, and information other than this information may be included.
  • the conversion information Tinfo includes, for example, the following information.
  • the information included in the conversion information Tinfo is arbitrary, and information other than this information may be included.
  • Conversion skip flag (ts_flag): A flag indicating whether (reverse) primary conversion and (reverse) secondary conversion are skipped.
  • Scan identifier (scanIdx) Quantization parameters (qp) Quantization matrix (scaling_matrix (eg JCTVC-W1005, 7.3.4 Scaling list data syntax))
  • the residual information Rinfo includes, for example, the following syntax.
  • cbf (coded_block_flag): Residual data presence / absence flag last_sig_coeff_x_pos: Last non-zero coefficient X coordinate last_sig_coeff_y_pos: Last non-zero coefficient Y coordinate coded_sub_block_flag: Subblock non-zero coefficient presence / absence flag sig_coeff_flag: Non-zero coefficient presence / absence flag
  • gr1_flag Non-zero coefficient level Flag indicating whether it is greater than 1 (also called GR1 flag)
  • gr2_flag Flag indicating whether the level of non-zero coefficient is greater than 2 (also called GR2 flag) sign_flag: A sign indicating the sign of the nonzero coefficient (also called the sign sign) coeff_abs_level_remaining: Non-zero coefficient residual level (also called non-zero coefficient residual level) Such.
  • the information included in the residual information Rinfo is arbitrary, and information other than this information may be included.
  • the filter information Finfo includes, for example, control information related to each of the following filter processes.
  • Control information for deblocking filter (DBF) Control information for pixel adaptive offset (SAO)
  • Control information for adaptive loop filter (ALF) Control information for other linear and nonlinear filters
  • filter information Finfo is arbitrary, and information other than this information may be included.
  • the decoding unit 612 derives the quantization coefficient level of each coefficient position in each conversion block with reference to the residual information Rinfo.
  • the decoding unit 612 supplies the quantization coefficient level to the inverse quantization inverse conversion unit 613.
  • the decoding unit 612 supplies the parsed header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, and filter information Finfo to each block. Specifically, it is as follows.
  • the header information Hinfo is supplied to the inverse quantization inverse conversion unit 613, the prediction unit 618, and the in-loop filter unit 615.
  • the prediction mode information Pinfo is supplied to the inverse quantization and inverse conversion units 613 and the prediction unit 618.
  • the conversion information Tinfo is supplied to the inverse quantization inverse conversion unit 613.
  • the filter information Finfo is supplied to the in-loop filter unit 615.
  • each coding parameter may be supplied to an arbitrary processing unit.
  • other information may be supplied to an arbitrary processing unit.
  • the inverse quantization inverse conversion unit 613 performs processing related to inverse quantization and inverse orthogonal transformation. For example, the inverse quantization inverse conversion unit 613 acquires the coefficient data of the processing target supplied from the decoding unit 612.
  • the inverse quantization inverse conversion unit 613 can scale (inverse quantization) the value of the acquired coefficient data to derive the conversion coefficient Coeff_IQ. Further, the inverse quantization inverse conversion unit 613 can perform inverse coefficient conversion such as inverse orthogonal transformation on the conversion coefficient Coeff_IQ to derive residual data D'. Further, the inverse quantization inverse conversion unit 613 can supply the residual data D'to the arithmetic unit 614.
  • the inverse quantization inverse conversion unit 613 acquires the prediction mode information Pinfo and the conversion information Tinfo supplied from the decoding unit 612, and performs processing such as inverse quantization and inverse coefficient conversion based on the information. Can be done.
  • the calculation unit 614 performs processing related to addition of information related to images. For example, the calculation unit 614 inputs the residual data D'supplied from the inverse quantization inverse conversion unit 613 and the prediction image supplied from the prediction unit 618. The calculation unit 614 adds the residual data and the predicted image (predicted signal) corresponding to the residual data to derive a locally decoded image.
  • the calculation unit 614 supplies the derived locally decoded image to the in-loop filter unit 615 and the frame memory 617.
  • the in-loop filter unit 615 performs processing related to the in-loop filter processing.
  • the in-loop filter unit 615 inputs the locally decoded image supplied from the calculation unit 614 and the filter information Finfo supplied from the decoding unit 612.
  • the information input to the in-loop filter unit 615 is arbitrary, and information other than these information may be input.
  • the in-loop filter unit 615 appropriately filters the locally decoded image based on the filter information Finfo.
  • the in-loop filter unit 615 includes a bilateral filter, a deblocking filter (DBF (DeBlocking Filter)), an adaptive offset filter (SAO (Sample Adaptive Offset)), and an adaptive loop filter (ALF (Adaptive Loop Filter)). Apply two in-loop filters in this order. It should be noted that which filter is applied and which order is applied is arbitrary and can be appropriately selected.
  • the in-loop filter unit 615 performs a filter process corresponding to the filter process performed by the coding side (for example, the in-loop filter unit 518 of the image coding apparatus 500).
  • the filter processing performed by the in-loop filter unit 615 is arbitrary and is not limited to the above example.
  • the in-loop filter unit 615 may apply a Wiener filter or the like.
  • the in-loop filter unit 615 supplies the filtered locally decoded image to the sorting buffer 616 and the frame memory 617.
  • the sorting buffer 616 receives the locally decoded image supplied from the in-loop filter unit 615 as an input, and holds (stores) it.
  • the rearrangement buffer 616 reconstructs and holds (stores in the buffer) the decoded image for each picture unit using the locally decoded image.
  • the sorting buffer 616 sorts the obtained decoded images from the decoding order to the reproduction order.
  • the sorting buffer 616 outputs the sorted decoded image group as moving image data to the outside of the image decoding device 600.
  • the frame memory 617 performs processing related to storage of data related to images. For example, the frame memory 617 takes a locally decoded image supplied from the arithmetic unit 614 as an input, reconstructs the decoded image for each picture unit, and stores it in the buffer in the frame memory 617.
  • the frame memory 617 takes an in-loop filtered locally decoded image supplied from the in-loop filter unit 615 as an input, reconstructs the decoded image for each picture, and stores it in the buffer in the frame memory 617. To do.
  • the frame memory 617 appropriately supplies the stored decoded image (or a part thereof) to the prediction unit 618 as a reference image.
  • the frame memory 617 may store header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, filter information Finfo, etc. related to the generation of the decoded image.
  • FIG. 34 is a block diagram showing a main configuration example of the inverse quantization inverse conversion unit 613 of FIG. 33.
  • the inverse quantization inverse conversion unit 613 has a selection unit 631, an inverse quantization unit 632, an inverse orthogonal conversion unit 633, and a selection unit 634.
  • the inverse quantization unit 632 inversely quantizes the quantization coefficient level input via the selection unit 631 and generates a conversion coefficient.
  • the inverse quantization unit 632 supplies the generated conversion coefficient to the inverse orthogonal conversion unit 633.
  • the inverse orthogonal conversion unit 633 performs inverse orthogonal conversion on the conversion coefficient to generate residual data r'.
  • the inverse orthogonal conversion unit 633 supplies the residual data r'to the selection unit 634.
  • the residual data r' is input to the inverse quantization inverse conversion unit 613.
  • the selection unit 631 supplies the residual data r'to the selection unit 634. Further, the selection unit 634 supplies the residual data r'to the calculation unit 614. That is, the inverse quantization / inverse orthogonal transformation is skipped.
  • FIG. 35 is a block diagram showing a main configuration example of the inverse orthogonal conversion unit 633 of FIG. 34.
  • the inverse orthogonal conversion unit 633 includes a parameter derivation unit 651, an inverse primary vertical conversion unit 652, a normalization unit 653, a clip unit 654, a buffer 655, an inverse primary horizontal conversion unit 656, and a normalization unit. It has 657.
  • the parameter derivation unit 651 inputs the conversion information Tinfo, and derives the conversion type (trTypeHor, trTypeVer) in each direction and the flip flag (flipHor, flipVer) in each direction.
  • the parameter derivation unit 651 has the same function as the parameter derivation unit 551 in the orthogonal conversion unit 532. That is, the parameter derivation unit 651 derives various parameters in the same manner as the parameter derivation unit 551.
  • the parameter derivation unit 651 may supply the derived parameters to the inverse primary vertical conversion unit 652, the normalization unit 653, the clip unit 654, the inverse primary horizontal conversion unit 656, and the normalization unit 657.
  • the parameter derivation unit 651 describes the shift amount invShift1 used for normalization after the inverse primary vertical conversion, the shift amount invShift2 used after the inverse primary horizontal conversion or the expansion of the conversion coefficient at the time of conversion skip, and the conversion coefficient at the time of conversion skip. Derivation of the shift amount invTsShift used for stretching.
  • invTsShift dynamicRange --bitDepth-((log2TbW + log2TbH) ⁇ 1) ... (53)
  • the inverse primary vertical conversion unit 652 performs processing related to the inverse primary vertical conversion, which is an inverse one-dimensional conversion in the vertical direction. For example, the inverse primary vertical conversion unit 652 receives the conversion coefficient coef', the conversion information Tinfo, the prediction mode information PInfo (not shown), and the like, and performs the inverse primary vertical conversion with respect to the conversion coefficient coef'.
  • the intermediate output signal tmp1 is supplied to the normalization unit 653.
  • the normalization unit 653 performs normalization processing on the intermediate output signal tmp1. For example, the normalization unit 653 takes the intermediate output signal tmp1 and the shift amount invShift1 as inputs, normalizes (scales) the intermediate output signal tmp1 with the shift amount invShift1 as shown in the following equation (54), and obtains the normalization.
  • the intermediate output signal tmp2 after conversion is supplied to the clip unit 654.
  • the clip unit 654 inputs the intermediate output signal tmp2, the minimum value coefMin of the conversion coefficient, and the maximum value coefMax, and sets the value of the intermediate output signal tmp2 to the range of coefMin to coefMax as shown in the following equation (55).
  • the obtained clipped intermediate output signal tmp3 is supplied to the buffer 655.
  • the buffer 655 temporarily holds the intermediate output signal tmp3 supplied from the clip unit 654 and supplies it to the inverse primary horizontal conversion unit 656 at a predetermined timing or the like.
  • the inverse primary horizontal conversion unit 656 performs processing related to the inverse primary horizontal conversion, which is an inverse one-dimensional conversion in the horizontal direction.
  • the reverse primary horizontal conversion unit 656 receives the intermediate output signal tmp3, conversion information Tinfo, prediction mode information PInfo (not shown), and the like as inputs, and performs reverse primary horizontal conversion on the intermediate output signal tmp3 to obtain the result.
  • the intermediate output signal tmp4 is supplied to the normalization unit 657.
  • the normalization unit 657 performs normalization processing on the intermediate output signal tmp4. For example, the normalization unit 657 takes the intermediate output signal tmp4 and the shift amount invShift2 as inputs, normalizes (scales) the intermediate output signal tmp4 with the shift amount invShift2 as shown in the following equation (56), and obtains the normalization. The residual resi'after conversion is supplied to the selection unit 634.
  • the above-mentioned inverse one-dimensional orthogonal conversion device 150 or inverse one-dimensional orthogonal conversion device 250 may be applied as the inverse primary vertical conversion unit 652.
  • the inverse orthogonal transform unit 633 (that is, the image decoding apparatus 600) performs the inverse one-dimensional orthogonal transform in the inverse primary vertical transform as described in the first embodiment and the second embodiment.
  • the treatment can be performed, and the effects described in the first embodiment and the second embodiment can be obtained. Therefore, the image decoding device 600 can suppress an increase in processing delay in the inverse orthogonal conversion process.
  • the inverse one-dimensional orthogonal converter 150 or the inverse one-dimensional orthogonal converter 250 described above may be applied as the inverse primary horizontal converter 656.
  • the inverse orthogonal transform unit 633 (that is, the image decoding apparatus 600) performs the inverse one-dimensional orthogonal transform in the inverse primary horizontal transform as described in the first embodiment and the second embodiment.
  • the treatment can be performed, and the effects described in the first embodiment and the second embodiment can be obtained. Therefore, the image decoding device 600 can suppress an increase in processing delay in the inverse orthogonal conversion process.
  • inverse one-dimensional orthogonal conversion device 150 or inverse one-dimensional orthogonal conversion device 250 may be applied to both the inverse primary vertical conversion unit 652 and the inverse primary horizontal conversion unit 656.
  • the above-mentioned parameter derivation device 300 may be applied as the parameter derivation unit 651.
  • the inverse orthogonal converter 633 (that is, the image decoding device 600) can derive various parameters as described in the third embodiment, and has been described in the third embodiment. The effect can be obtained. Therefore, the image decoding device 600 can suppress an increase in processing delay in the inverse orthogonal conversion process.
  • the image decoding apparatus 600 can also incorporate the one-dimensional transformation skip (IDT) into the framework of adaptive orthogonal transformation (MTS).
  • IDT one-dimensional transformation skip
  • MTS adaptive orthogonal transformation
  • the storage buffer 611 acquires (stores) a bit stream (encoded data) supplied from the outside of the image decoding device 600 in step S601.
  • step S602 the decoding unit 612 extracts the coded data from the bit stream and decodes it to obtain coefficient data (quantization coefficient level or residual data r'). Further, the decoding unit 612 parses (analyzes and acquires) various coding parameters from the bit stream by this decoding.
  • step S603 the inverse quantization inverse conversion unit 613 performs the inverse quantization inverse conversion process and generates the residual data r (D').
  • the inverse quantization and inverse transformation processing will be described later.
  • step S604 the prediction unit 618 executes the prediction process by the prediction method specified by the coding side based on the information parsed in step S602, and refers to the reference image stored in the frame memory 617. Then, the predicted image P is generated.
  • step S605 the calculation unit 614 adds the residual data D'obtained in step S603 and the predicted image P obtained in step S604 to derive the locally decoded image Rlocal.
  • step S606 the in-loop filter unit 615 performs an in-loop filter process on the locally decoded image Rlocal obtained by the process of step S605.
  • step S607 the sorting buffer 616 derives the decoded image R using the filtered locally decoded image Rlocal obtained by the process of step S606, and arranges the decoded image R group in the order of decoding to reproduction. Change.
  • the decoded image R group sorted in the order of reproduction is output as a moving image to the outside of the image decoding device 600.
  • the frame memory 617 stores at least one of the locally decoded image Rlocal obtained by the process of step S605 and the locally decoded image Rlocal obtained by the process of step S606 after the filter processing. ..
  • step S608 When the process of step S608 is completed, the image decoding process is completed.
  • step S632 the inverse quantization unit 632 performs inverse quantization on the quantization coefficient level acquired via the selection unit 631 to generate a conversion coefficient or residual data r'.
  • the inverse quantization unit 632 supplies the conversion coefficient or residual data r to the inverse orthogonal conversion unit 633.
  • step S633 the inverse orthogonal conversion unit 633 performs inverse orthogonal conversion on the conversion coefficient to generate residual data r.
  • the inverse orthogonal conversion unit 633 supplies the residual data r to the selection unit 634.
  • the selection unit 634 supplies the residual data r to the calculation unit 614.
  • step S633 When the process of step S633 is completed, the inverse quantization inverse conversion process is completed, and the process returns to FIG. 36.
  • step S652 the parameter derivation unit 651 derives the correction conversion type (trTypeHor', trTypeVer') in each direction and the flip flag (flipHor, flipVer) in each direction from the conversion information Tinfo.
  • step S653 the parameter derivation unit 651 derives the shift amount (invShift1, invShift2) in each direction and the clip processing threshold (coefMin, coefMax).
  • nTbH-1 the intermediate output signal tmp2 [y] [x] as described in the above equation (55). .., nTbH-1) is clipped with reference to coefMin, coefMax, and the intermediate output signal tmp3 is derived.
  • buffer 655 holds its intermediate output signal tmp2.
  • step S658 When the process of step S658 is completed, the process proceeds to step S661.
  • step S651 If it is determined in step S651 that the conversion skip flag is true, the process proceeds to step S659.
  • step S659 the parameter derivation unit 651 derives the shift amount (invTsShift, invShift2) at the time of skipping the two-dimensional conversion.
  • the processing of the inverse primary vertical conversion unit 652 and the inverse primary horizontal conversion unit 656 is skipped. That is, the normalization unit 653 and the normalization unit 657 perform the processing.
  • step S660 the normalization unit 653 expands the conversion coefficient coef'[y] [x] by the shift amount invTsShift as the intermediate output signal tmp4 [y] [x] as shown in the following equation (57). Output.
  • step S661 the process proceeds to step S661.
  • step S661 the normalization unit 657 normalizes each coefficient of the intermediate output signal tmp4 [y] [x] with the shift amount invShift2 as in the above equation (56), and the residual resi'[y] [x]. ] Is output.
  • step S661 the process of step S661 is completed, the inverse orthogonal conversion process is completed, and the process returns to FIG. 37.
  • the inverse orthogonal conversion unit 633 (that is, the image decoding apparatus 600) can obtain the effects described in the first embodiment and the second embodiment in the inverse primary vertical conversion. Therefore, the image decoding device 600 can suppress an increase in processing delay in the inverse orthogonal conversion process.
  • the inverse orthogonal conversion unit 633 (that is, the image decoding apparatus 600) can obtain the effects described in the first embodiment and the second embodiment in the inverse primary horizontal conversion. Therefore, the image decoding device 600 can suppress an increase in processing delay in the inverse orthogonal conversion process.
  • the parameter derivation process shown in FIG. 21 may be applied as the parameter derivation process performed in step S652.
  • the inverse orthogonal converter 633 that is, the image decoding apparatus 600
  • the image decoding device 600 can suppress an increase in processing delay in the inverse orthogonal conversion process.
  • FIG. 39 is a block diagram showing a configuration example of computer hardware that executes the above-mentioned series of processes programmatically.
  • the CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • the input / output interface 810 is also connected to the bus 804.
  • An input unit 811, an output unit 812, a storage unit 813, a communication unit 814, and a drive 815 are connected to the input / output interface 810.
  • the input unit 811 includes, for example, a keyboard, a mouse, a microphone, a touch panel, an input terminal, and the like.
  • the output unit 812 includes, for example, a display, a speaker, an output terminal, and the like.
  • the storage unit 813 includes, for example, a hard disk, a RAM disk, a non-volatile memory, or the like.
  • the communication unit 814 is composed of, for example, a network interface.
  • the drive 815 drives a removable medium 821 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
  • the CPU 801 loads the program stored in the storage unit 813 into the RAM 803 via the input / output interface 810 and the bus 804 and executes the above-described series. Is processed.
  • the RAM 803 also appropriately stores data and the like necessary for the CPU 801 to execute various processes.
  • the program executed by the computer can be recorded and applied to the removable media 821 as a package media or the like, for example.
  • the program can be installed in the storage unit 813 via the input / output interface 810 by attaching the removable media 821 to the drive 815.
  • the program can also be provided via wired or wireless transmission media such as local area networks, the Internet, and digital satellite broadcasting.
  • the program can be received by the communication unit 814 and installed in the storage unit 813.
  • this program can be installed in advance in ROM 802 or storage unit 813.
  • the data unit in which the various information described above is set and the data unit targeted by the various processes are arbitrary and are not limited to the above-mentioned examples.
  • these information and processing are TU (Transform Unit), TB (Transform Block), PU (Prediction Unit), PB (Prediction Block), CU (Coding Unit), LCU (Largest Coding Unit), and subblock, respectively.
  • Blocks, tiles, slices, pictures, sequences, or components may be set, or the data of those data units may be targeted.
  • this data unit can be set for each information or process, and it is not necessary that the data unit of all the information or process is unified.
  • the storage location of these information is arbitrary, and may be stored in the header, parameter set, or the like of the above-mentioned data unit. Further, it may be stored in a plurality of places.
  • control information related to the present technology described in each of the above embodiments may be transmitted from the coding side to the decoding side.
  • control information for example, enabled_flag
  • control information for example, present_flag
  • control information indicating an object to which the present technology is applied (or an object to which the present technology is not applied
  • control information may be transmitted that specifies the block size (upper and lower limits, or both) to which the present technology is applied (or allowed or prohibited), frames, components, layers, and the like.
  • This technique can be applied to any image coding / decoding method. That is, as long as it does not contradict the above-mentioned technology, the specifications of various processes related to image coding / decoding such as conversion (inverse transformation), quantization (inverse quantization), coding (decoding), and prediction are arbitrary. It is not limited to the example. In addition, some of these processes may be omitted as long as they do not contradict the present technology described above.
  • this technology can be applied to a multi-viewpoint image coding / decoding system that encodes / decodes a multi-viewpoint image including images of a plurality of viewpoints (views).
  • the present technology may be applied to the coding / decoding of each viewpoint (view).
  • this technology is applied to a hierarchical image coding (scalable coding) / decoding system that encodes / decodes a hierarchical image that is layered (layered) so as to have a scalability function for a predetermined parameter. can do.
  • the present technology may be applied to the coding / decoding of each layer.
  • one-dimensional orthogonal conversion device 100 inverse one-dimensional orthogonal conversion device 150, one-dimensional orthogonal conversion device 200, inverse one-dimensional orthogonal conversion device 250, parameter derivation device 300, image code.
  • the computerization device 500 and the image decoding device 600 have been described, the present technology can be applied to any configuration.
  • this technology is a transmitter or receiver (for example, a television receiver or mobile phone) for satellite broadcasting, wired broadcasting such as cable TV, distribution on the Internet, and distribution to terminals by cellular communication, or It can be applied to various electronic devices such as devices (for example, hard disk recorders and cameras) that record images on media such as optical disks, magnetic disks, and flash memories, and reproduce images from these storage media.
  • devices for example, hard disk recorders and cameras
  • a processor as a system LSI (Large Scale Integration) or the like (for example, a video processor), a module using a plurality of processors (for example, a video module), a unit using a plurality of modules (for example, a video unit)
  • a processor as a system LSI (Large Scale Integration) or the like
  • a module using a plurality of processors for example, a video module
  • a unit using a plurality of modules for example, a video unit
  • it can be implemented as a configuration of a part of the device, such as a set (for example, a video set) in which other functions are added to the unit.
  • this technology can be applied to a network system composed of a plurality of devices.
  • the present technology may be implemented as cloud computing that is shared and jointly processed by a plurality of devices via a network.
  • this technology is implemented in a cloud service that provides services related to images (moving images) to arbitrary terminals such as computers, AV (AudioVisual) devices, portable information processing terminals, and IoT (Internet of Things) devices. You may try to do it.
  • the system means a set of a plurality of components (devices, modules (parts), etc.), and it does not matter whether all the components are in the same housing. Therefore, a plurality of devices housed in separate housings and connected via a network, and a device in which a plurality of modules are housed in one housing are both systems. ..
  • Systems, devices, processing units, etc. to which this technology is applied can be used in any field such as transportation, medical care, crime prevention, agriculture, livestock industry, mining, beauty, factories, home appliances, weather, nature monitoring, etc. .. The use is also arbitrary.
  • this technology can be applied to systems and devices used for providing ornamental contents and the like.
  • the present technology can be applied to systems and devices used for traffic such as traffic condition supervision and automatic driving control.
  • the present technology can be applied to systems and devices used for security purposes.
  • the present technology can be applied to a system or device used for automatic control of a machine or the like.
  • the present technology can be applied to systems and devices used for agriculture and livestock industry.
  • the present technology can also be applied to systems and devices for monitoring natural conditions such as volcanoes, forests and oceans, and wildlife. Further, for example, the present technology can be applied to systems and devices used for sports.
  • the "flag” is information for identifying a plurality of states, and is not only information used for identifying two states of true (1) or false (0), but also three or more states. It also contains information that can identify the state. Therefore, the value that this "flag” can take may be, for example, 2 values of 1/0 or 3 or more values. That is, the number of bits constituting this "flag” is arbitrary, and may be 1 bit or a plurality of bits.
  • the identification information (including the flag) is assumed to include not only the identification information in the bit stream but also the difference information of the identification information with respect to a certain reference information in the bit stream. In, the "flag” and “identification information” include not only the information but also the difference information with respect to the reference information.
  • various information (metadata, etc.) regarding the coded data may be transmitted or recorded in any form as long as it is associated with the coded data.
  • the term "associate" means, for example, to make the other data available (linkable) when processing one data. That is, the data associated with each other may be combined as one data or may be individual data.
  • the information associated with the coded data (image) may be transmitted on a transmission path different from the coded data (image).
  • the information associated with the coded data (image) may be recorded on a recording medium (or another recording area of the same recording medium) different from the coded data (image). Good.
  • this "association" may be a part of the data, not the entire data. For example, an image and information corresponding to the image may be associated with each other in an arbitrary unit such as a plurality of frames, one frame, or a part within the frame.
  • the configuration described as one device (or processing unit) may be divided and configured as a plurality of devices (or processing units).
  • the configurations described above as a plurality of devices (or processing units) may be collectively configured as one device (or processing unit).
  • a configuration other than the above may be added to the configuration of each device (or each processing unit).
  • a part of the configuration of one device (or processing unit) may be included in the configuration of another device (or other processing unit). ..
  • the above-mentioned program may be executed in any device.
  • the device may have necessary functions (functional blocks, etc.) so that necessary information can be obtained.
  • each step of one flowchart may be executed by one device, or may be shared and executed by a plurality of devices.
  • the plurality of processes may be executed by one device, or may be shared and executed by a plurality of devices.
  • a plurality of processes included in one step can be executed as processes of a plurality of steps.
  • the processes described as a plurality of steps can be collectively executed as one step.
  • the processing of the steps for writing the program may be executed in chronological order in the order described in the present specification, and may be executed in parallel or in calls. It may be executed individually at the required timing such as when it is broken. That is, as long as there is no contradiction, the processing of each step may be executed in an order different from the above-mentioned order. Further, the processing of the step for writing this program may be executed in parallel with the processing of another program, or may be executed in combination with the processing of another program.
  • a plurality of technologies related to this technology can be independently implemented independently as long as there is no contradiction.
  • any plurality of the present technologies can be used in combination.
  • some or all of the techniques described in any of the embodiments may be combined with some or all of the techniques described in other embodiments. It is also possible to carry out a part or all of any of the above-mentioned techniques in combination with other techniques not described above.
  • the present technology can also have the following configurations.
  • a selection unit that switches the data path of the one-dimensional input signal string of residual data in the forward or reverse direction, and An image processing device including a matrix calculation unit that performs a matrix operation for one-dimensional orthogonal transformation on the one-dimensional input signal sequence input via the data path switched by the selection unit.
  • the image processing apparatus according to (1) wherein the matrix calculation unit performs a matrix calculation of the one-dimensional orthogonal conversion corresponding to the conversion type, the conversion size, and the effective domain size.
  • the flag deriving unit derives the flag information of a value for switching the data path in the forward direction.
  • the image processing apparatus according to any one of 7).
  • the selection unit and the matrix calculation unit perform the data path switching and the matrix calculation of the one-dimensional orthogonal conversion in each of the horizontal direction and the vertical direction of the input signal array (1) to (8). ).
  • the image processing apparatus normalizes the one-dimensional input signal sequence in which the matrix calculation of the one-dimensional orthogonal conversion is performed in the horizontal direction, and the matrix calculation unit normalizes the matrix of the one-dimensional orthogonal conversion in the vertical direction.
  • the image processing apparatus according to (9), further comprising a normalization unit that normalizes the one-dimensional input signal sequence in which the calculation has been performed.
  • (11) The conversion coefficient of the input signal array in which the matrix calculation of the one-dimensional orthogonal transformation by the matrix calculation unit and the normalization by the normalization unit are performed in each of the horizontal direction and the vertical direction.
  • the image processing apparatus according to (10), further comprising a quantization unit for quantizing the above and deriving the quantization coefficient.
  • the image processing apparatus according to (11), further comprising a coding unit that encodes the quantization coefficient derived by the quantization unit.
  • the data path of the one-dimensional input signal string of the residual data is switched in the forward direction or the reverse direction.
  • a matrix calculation unit that performs a matrix operation for inverse one-dimensional orthogonal conversion with respect to a one-dimensional input signal string of conversion coefficients.
  • An image processing apparatus including a selection unit that switches the data path of the one-dimensional input signal string in which the matrix operation of the inverse one-dimensional orthogonal conversion is performed by the matrix calculation unit in the forward direction or the reverse direction.
  • the matrix calculation unit performs a matrix calculation of the inverse one-dimensional orthogonal transformation corresponding to the conversion type, the conversion size, and the effective domain size.
  • the matrix calculation unit performs the matrix operation of the inverse one-dimensional orthogonal transformation corresponding to DCT-2 -1 or the matrix operation of the inverse one-dimensional orthogonal transformation corresponding to DST-7 -1 (15). ).
  • the image processing apparatus 17.
  • a code inversion unit that inverts the code of the odd-numbered signal with respect to the one-dimensional input signal sequence is provided.
  • the matrix calculation unit performs the matrix calculation of the inverse one-dimensional orthogonal conversion on the one-dimensional input signal sequence in which the sign of the odd-th signal is inverted by the code inversion unit (14) to (17).
  • the image processing apparatus according to any one of.

Landscapes

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

Abstract

本開示は、処理遅延の増大を抑制することができるようにする画像処理装置および方法に関する。 残差データの1次元入力信号列のデータパスを順方向または逆方向に切り替え、その切り替えられたデータパスを介して入力される1次元入力信号列に対して、1次元直交変換の行列演算を行う。本開示は、例えば、画像処理装置、画像符号化装置、画像復号装置、送信装置、受信装置、送受信装置、情報処理装置、撮像装置、再生装置、電子機器、画像処理方法、または情報処理方法等に適用することができる。

Description

画像処理装置および方法
 本開示は、画像処理装置および方法に関し、特に、処理遅延の増大を抑制することができるようにした画像処理装置および方法に関する。
 従来、画像符号化において、適応直交変換(MTS(Multiple Transform Selection))が提案された。MTSには直交変換としてDCT(Discrete Cosine Transform)-2/DST(Discrete Sine Transform)-7/DCT-8を選択することができる。そのDST-7/DCT-8についてマトリックス演算と結果が一致するDual Implementationをサポートした高速アルゴリズムが提案された(例えば、非特許文献1参照)。また、2次元残差信号をフリップ/回転し、DST-7を適用する方法が提案された(例えば、非特許文献2参照)。
Xin Zhao, Xiang Li, Yi Luo, Shan Liu, "CE6: Fast DST-7/DCT-8 with dual implementation support (Test 6.2.3)", JVET-M0497, Joint Video Experts Team(JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 13th Meeting: Marrakech, MA, 9-18 Jan. 2019 Sung-Chang Lim, Jungwon Kang, Hahyun Lee, Jinho Lee, Seunghyun Cho, Hui Yong Kim, Nam-Uk Kim, Yung-Lyul Lee, Dae-Yeon Kim, Wook Je Jeong, "CE6: DST-VII with residual flipping (Test 1.4)", JVET-K0167r1, Joint Video Experts Team(JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 11th Meeting: Ljubljana, SI, 10-18 July 2018
 しかしながら、ハードウエア実装の場合、非特許文献1に記載の方法では、1サイクル目において、係数が共通になる入力信号の和を求め、2サイクル目において、行列演算を実行することになる。つまり、少なくとも2サイクルが必要になり、処理遅延が増大するおそれがあった。また、非特許文献2に記載の方法では、直交変換前や逆直交変換後に2次元残差信号の並び替えが行われる。この並び替え処理の分、サイクル数が増大するため、処理遅延が増大するおそれがあった。
 本開示は、このような状況に鑑みてなされたものであり、直交変換処理や逆直交変換処理における処理遅延の増大を抑制することができるようにするものである。
 本技術の一側面の画像処理装置は、残差データの1次元入力信号列のデータパスを順方向または逆方向に切り替える選択部と、前記選択部により切り替えられた前記データパスを介して入力される前記1次元入力信号列に対して、1次元直交変換の行列演算を行う行列演算部とを備える画像処理装置である。
 本技術の一側面の画像処理方法は、残差データの1次元入力信号列のデータパスを順方向または逆方向に切り替え、切り替えられた前記データパスを介して入力される前記1次元入力信号列に対して、1次元直交変換の行列演算を行う画像処理方法である。
 本技術の他の側面の画像処理装置は、変換係数の1次元入力信号列に対して、逆1次元直交変換の行列演算を行う行列演算部と、前記行列演算部により前記逆1次元直交変換の行列演算が行われた前記1次元入力信号列のデータパスを順方向または逆方向に切り替える選択部とを備える画像処理装置である。
 本技術の他の側面の画像処理方法は、変換係数の1次元入力信号列に対して、逆1次元直交変換の行列演算を行い、前記逆1次元直交変換の行列演算が行われた前記1次元入力信号列のデータパスを順方向または逆方向に切り替える画像処理方法である。
 本技術の一側面の画像処理装置および方法においては、残差データの1次元入力信号列のデータパスが順方向または逆方向に切り替えられ、その切り替えられたデータパスを介して入力される1次元入力信号列に対して、1次元直交変換の行列演算が行われる。
 本技術の他の側面の画像処理装置および方法においては、変換係数の1次元入力信号列に対して、逆1次元直交変換の行列演算が行われ、その逆1次元直交変換の行列演算が行われた1次元入力信号列のデータパスが順方向または逆方向に切り替えられる。
1次元直交変換および逆1次元直交変換の実現方法の例を説明する図である。 1次元直交変換および逆1次元直交変換の実現方法の例を説明する図である。 1次元直交変換および逆1次元直交変換の実現方法の例を説明する図である。 1次元直交変換装置の主な構成例を示すブロック図である。 1次元直交変換処理の流れの例を説明するフローチャートである。 1次元直交変換の様子の例を説明する図である。 1次元直交変換の様子の例を説明する図である。 逆1次元直交変換装置の主な構成例を示すブロック図である。 逆1次元直交変換処理の流れの例を説明するフローチャートである。 逆1次元直交変換の様子の例を説明する図である。 逆1次元直交変換の様子の例を説明する図である。 1次元直交変換装置の主な構成例を示すブロック図である。 1次元直交変換処理の流れの例を説明するフローチャートである。 1次元直交変換の様子の例を説明する図である。 1次元直交変換の様子の例を説明する図である。 逆1次元直交変換装置の主な構成例を示すブロック図である。 逆1次元直交変換処理の流れの例を説明するフローチャートである。 逆1次元直交変換の様子の例を説明する図である。 逆1次元直交変換の様子の例を説明する図である。 パラメータ導出装置の主な構成例を示すブロック図である。 パラメータ導出処理の流れの例を説明するフローチャートである。 変換タイプ導出方法の例を説明する図である。 修正変換タイプ導出方法の例を説明する図である。 修正変換タイプ導出方法の例を説明する図である。 フリップフラグ導出方法の例を説明する図である。 変換タイプ導出方法の例を説明する図である。 画像符号化装置の主な構成例を示すブロック図である。 変換量子化部の主な構成例を示すブロック図である。 直交変換部の主な構成例を示すブロック図である。 画像符号化処理の流れの例を示すフローチャートである。 変換量子化処理の流れの例を説明するフローチャートである。 直交変換処理の流れの例を説明するフローチャートである。 画像復号装置の主な構成例を示すブロック図である。 逆量子化逆変換部の主な構成例を示すブロック図である。 逆直交変換部の主な構成例を示すブロック図である。 画像復号処理の流れの例を示すフローチャートである。 逆量子化逆変換処理の流れの例を示すフローチャートである。 逆直交変換処理の流れの例を示すフローチャートである。 コンピュータの主な構成例を示すブロック図である。
 以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
 1.直交変換・逆直交変換のハードウエア実装
 2.第1の実施の形態(1次元直交変換装置・逆1次元直交変換装置への適用)
 3.第2の実施の形態(1次元直交変換装置・逆1次元直交変換装置への適用)
 4.第3の実施の形態(パラメータ導出装置への適用)
 5.第4の実施の形態(画像符号化装置への適用)
 6.第5の実施の形態(画像復号装置への適用)
 7.付記
 <1.直交変換・逆直交変換のハードウエア実装>
  <技術内容・技術用語をサポートする文献等>
 本技術で開示される範囲は、実施の形態に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献等に記載されている内容や以下の非特許文献において参照されている他の文献の内容等も含まれる。
 非特許文献1:(上述)
 非特許文献2:(上述)
 非特許文献3:Recommendation ITU-T H.264 (04/2017) "Advanced video coding for generic audiovisual services", April 2017
 非特許文献4:Recommendation ITU-T H.265 (12/2016) "High efficiency video coding", December 2016
 非特許文献5:J. Chen, E. Alshina, G. J. Sullivan, J.-R. Ohm, J. Boyce,"Algorithm Description of Joint Exploration Test Model (JEM7)", JVET-G1001, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 7th Meeting: Torino, IT, 13-21 July 2017
 非特許文献6: Benjamin Bross, Jianle Chen, Shan Liu,"Versatile Video Coding (Draft 4)", JVET-M1001-v5, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 13th Meeting: Marrakech, MA, 9-18 Jan. 2019
 非特許文献7: Jianle Chen, Yan Ye, Seung Hwan Kim, "Algorithm description for Versatile Video Coding and Test Model 4 (VTM 4)", JVET-M1002-v2, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 13th Meeting: Marrakech, MA, 9-18 Jan. 2019
 非特許文献8: Takeshi Tsukuba, Masaru Ikeda, Teruhiko Suzuki, "CE6: Transform Matrix Replacement (CE 6.1.8.1)", JVET-K0123-v2, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 11th Meeting: Ljubljana, SI, 10-18 July 2018
 非特許文献9: Sunmi Yoo, Jungah Choi, Jin Heo, Jangwon Choi, Ling Li, Jaehyun Lim, Seung Hwan Kim, "Non-CE7 : Residual rearrangement for transform skipped blocks", JVET-M0278_v2, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 13th Meeting: Marrakech, MA, 9-18 Jan. 2019
 非特許文献10: Xin Zhao, Xiang Li, Shan Liu, "CE6 related: Unification of Transform Skip mode and MTS", JVET-M0501-v2, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 13th Meeting: Marrakech, MA, 9-18 Jan. 2019
 つまり、上述の非特許文献に記載されている内容もサポート要件を判断する際の根拠となる。例えば、上述の非特許文献に記載されているQuad-Tree Block Structure、QTBT(Quad Tree Plus Binary Tree) Block Structureが実施例において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。また、例えば、パース(Parsing)、シンタックス(Syntax)、セマンティクス(Semantics)等の技術用語についても同様に、実施例において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。
 また、本明細書において、画像(ピクチャ)の部分領域や処理単位として説明に用いる「ブロック」(処理部を示すブロックではない)は、特に言及しない限り、ピクチャ内の任意の部分領域を示し、その大きさ、形状、および特性等は限定されない。例えば、「ブロック」には、上述の非特許文献に記載されているTB(Transform Block)、TU(Transform Unit)、PB(Prediction Block)、PU(Prediction Unit)、SCU(Smallest Coding Unit)、CU(Coding Unit)、LCU(Largest Coding Unit)、CTB(Coding Tree Block)、CTU(Coding Tree Unit)、変換ブロック、サブブロック、マクロブロック、タイル、またはスライス等、任意の部分領域(処理単位)が含まれるものとする。
 また、このようなブロックのサイズを指定するに当たって、直接的にブロックサイズを指定するだけでなく、間接的にブロックサイズを指定するようにしてもよい。例えばサイズを識別する識別情報を用いてブロックサイズを指定するようにしてもよい。また、例えば、基準となるブロック(例えばLCUやSCU等)のサイズとの比または差分によってブロックサイズを指定するようにしてもよい。例えば、シンタックス要素等としてブロックサイズを指定する情報を伝送する場合に、その情報として、上述のような間接的にサイズを指定する情報を用いるようにしてもよい。このようにすることにより、その情報の情報量を低減させることができ、符号化効率を向上させることができる場合もある。また、このブロックサイズの指定には、ブロックサイズの範囲の指定(例えば、許容されるブロックサイズの範囲の指定等)も含む。
 また、本明細書において、符号化とは、画像をビットストリームに変換する全体の処理だけではなく、一部の処理も含む。例えば、予測処理、直交変換、量子化、算術符号化等を包括した処理を含むだけではなく、量子化と算術符号化とを総称した処理、予測処理と量子化と算術符号化とを包括した処理、などを含む。同様に、復号とは、ビットストリームを画像に変換する全体の処理だけではなく、一部の処理も含む。例えば、逆算術復号、逆量子化、逆直交変換、予測処理等を包括した処理を含むだけではなく、逆算術復号と逆量子化とを包括した処理、逆算術復号と逆量子化と予測処理とを包括した処理、などを含む。
  <適応直交変換の直交変換・逆直交変換>
 従来、画像符号化において、適応直交変換(MTS(Multiple Transform Selection))が提案された。MTSには直交変換としてDCT(Discrete Cosine Transform)-2/DST(Discrete Sine Transform)-7/DCT-8を選択することができる。例えば非特許文献1に記載のように、そのDST-7/DCT-8についてマトリックス演算と結果が一致するDual Implementationをサポートした高速アルゴリズムが提案された。
 この高速アルゴリズムは、下記のようなDST-7(DCT-8)の特性を利用し、演算回数を削減する方法である。
 P1)変換基底ベクトル内にある2つの係数の和が、別の係数と等しいという特性
 P2)変換基底ベクトル内で繰り返しがあるという特性
 P3)1種類の係数しかでない変換基底ベクトルがあるという特性
 また、例えば非特許文献2に記載のように、2次元残差信号をフリップ/回転し、DST-7を適用する方法が提案された。
 DST-7/DCT-8は、奇数族のDCT/DST変換であり、偶数族のDCT-2と比較して、ハードウエア(H/W)実装コストが高くなるおそれがあった。非特許文献1に記載の高速アルゴリズムは、ソフトウエア実装において演算回数を削減することができる。ハードウエア実装の場合、基準動作クロックにおいて1サイクルで行列演算を並列実行することを考える。このとき、非特許文献1の高速アルゴリズムにおいて、P1の特性を利用する場合、1サイクル目で、係数が共通になる入力信号の和を求め、2サイクル目で、行列演算を実行することになる。つまり、少なくとも2サイクルが必要になるため、低遅延化(サイクル数の削減)の観点ではメリットがない。
 また、回路の動作クロックを基準動作クロックの2倍にすることで、基準動作クロックの1サイクル相当内に処理ができるように実装することは可能である。しかしながら、この方法の場合、要求スペックが倍になるため、実装コストが増大するおそれがあった。また、DST-7/DCT-8毎に直交変換の回路を持つ必要があり、回路規模が増大するおそれがあった。
 非特許文献2に記載の方法では、ZxDCT-8/DCT-8xZ相当の2次元直交変換を、2次元残差信号の並び替えとZxDST-7/DST-7xZ(Z=DCT-2 or DST-7)の2次元直交変換により実現している。しかしながら、この方法の場合、直交変換前や逆直交変換後に2次元残差信号を並び替えるため、その並び替え処理の分、サイクル数が増大するおそれがあった。
 ところで、例えば非特許文献8には、DST-7/DCT-8の変換行列の簡略化方法として、DST-7/DCT-8が相似直交変換(点対称/回転対称性)であることに着目し、DCT-8の変換行列を、DST-7の変換行列をフリップして得られるFlipDST-7(DST-7と線対称/鏡像対称)へ置き換える方法が記載されている。
 このDST-7/DCT-8(またはFlipDST-7)が相似直交変換である特性(下記のP1/P2)と、行列演算の線形性に着目し、DCT-8(またはFlipDST-7)による1次元直交変換を、1次元入力信号の並び替え処理(データパスの切り替え)、符号反転処理、DST-7による1次元直交変換により実現する。同様に、DCT-8(またはFlipDST-7)に対応する逆変換を、入力信号の符号反転処理、出力信号の並び替え処理(データパスの切り替え)、DST-7の逆変換により実現する。
 P1)DST-7⇔DCT-8:点対称性(回転対称性)
 P2)DST-7⇔FlipDST-7:線対称性(鏡像対称性)
  <DST-7/DCT-8の定義>
 非特許文献7より、DST-7の変換行列およびDCT-8の変換行列の各(k,l)成分の係数(k=0,...,N-1, l=0,...,N-1)は、以下の式(1)乃至式(3)のように定義される。
 [DST-7]
Figure JPOXMLDOC01-appb-I000001
 ・・・(1)
 [DCT-8]
Figure JPOXMLDOC01-appb-I000002
 ・・・(2)
 ただし、
Figure JPOXMLDOC01-appb-I000003
 ・・・(3)
  <DST-7/DCT-8の対称性>
 次に、DST-7/DCT-8の対称性について説明する。以下の式(4)を式(2)に代入すると、以下の式(5)が得られる。この式(5)は、以下の式(6)に変形することができ、積和の定理(product and sum formulas;cos(α - β) = cosαcosβ - sinαsinβ)を適用することにより、以下の式(7)が得られる。
Figure JPOXMLDOC01-appb-I000004
 ・・・(4)
Figure JPOXMLDOC01-appb-I000005
 ・・・(5)
Figure JPOXMLDOC01-appb-I000006
 ・・・(6)
Figure JPOXMLDOC01-appb-I000007
 ・・・(7)
 ここで、式(7)において、kは整数であることを考慮すると、以下の式(8)および式(9)が得られる。したがって、式(7)から式(10)が得られる。
Figure JPOXMLDOC01-appb-I000008
 ・・・(8)
Figure JPOXMLDOC01-appb-I000009
 ・・・(9)
Figure JPOXMLDOC01-appb-I000010
 ・・・(10)
 この式(10)に式(1)を代入すると以下の式(11)が得られる。また、式(4)から以下の式(12)が得られる。この式(12)を式(11)に代入すると式(13)が得られる。
Figure JPOXMLDOC01-appb-I000011
 ・・・(11)
Figure JPOXMLDOC01-appb-I000012
 ・・・(12)
Figure JPOXMLDOC01-appb-I000013
 ・・・(13)
 すなわち、DCT-8の変換行列の(k,l)成分の係数は、DST-7の変換行列の(k,N-l-1)成分(-1)kを乗じることで得られる。すなわち、DCT-8は、DST-7と点対称(回転対称)の関係にある。
 また、式(13)において、(-1)kの項を取り除くことで、以下の式(14)に示されるような、DST-7の線対称(鏡像対称)の関係にあるFlipDST-7が得られる。
Figure JPOXMLDOC01-appb-I000014
 ・・・(14)
 つまり、DCT-8の変換行列は、DST-7の変換行列のフリップ操作し、奇数位置の変換係数の符号(正負)を反転したものである。FlipDST-7の変換行列とDCT-8の変換行列とでは、奇数位置の変換係数の符号(正負)が逆になる。
  <DST-7/DCT-8/FlipDST-7による1次元直交変換>
 N点の1次元入力信号x(n)(n=0,...,N-1)と変換行列T(NxN)との畳み込み演算(1次元直交変換)後の1次元出力信号X(u)(u=0,...,N-1)は、以下の式(15)で定義できる。
Figure JPOXMLDOC01-appb-I000015
 ・・・(15)
 ここで、式(1)、式(2)、および式(14)を代入することでN点の1次元入力信号x(n)とN点DST-7/DCT-8/FlipDST-7との畳み込み演算(1次元直交変換)は、それぞれ以下の式(16)、式(17)、式(18)のように表すことができる。
 [DST-7]
Figure JPOXMLDOC01-appb-I000016
 ・・・(16)
 [DCT-8]
Figure JPOXMLDOC01-appb-I000017
 ・・・(17)
 [FlipDST-7]
Figure JPOXMLDOC01-appb-I000018
 ・・・(18)
 式(17)および式(18)に式(4)を代入すると、以下の式(19)および式(20)が得られる。
 [DCT-8]
Figure JPOXMLDOC01-appb-I000019
 ・・・(19)
 [FlipDST-7]
Figure JPOXMLDOC01-appb-I000020
 ・・・(20)
 つまり、残差信号xとDCT-8による畳み込み演算は、残差信号xの並び替え+DST-7による直交変換+符号反転と等価である。また、残差信号xとFlipDST-7による畳み込み演算は、残差信号xの並び替え+DST-7による直交変換と等価である。
  <DST-7/DCT-8/FlipDST-7による1次元直交変換の行列形式>
 次にDST-7/DCT-8/FlipDST-7による1次元直交変換の行列形式は、それぞれ以下の式(21)、式(22)、および式(23)のように表現することができる。
 [DST-7]
Figure JPOXMLDOC01-appb-I000021
 ・・・(21)
 [DCT-8]
Figure JPOXMLDOC01-appb-I000022
 ・・・(22)
 [FlipDST-7]
Figure JPOXMLDOC01-appb-I000023
 ・・・(23)
 なお、式中のベクトルxは、x=(x1,x2,...,xN)の1次元信号列であり、行ベクトルで表される。行列Tzは、N行N列の変換Z(Z=DST-7, DCT-8, FlipDST-7)の変換行列である。また、列ベクトルXtは、行列Tzと列ベクトルxtとの積(行列の積)であり、入力信号xを変換Z(Z=DST-7, DCT-8, FlipDST-7)によって1次元直交変換して得られる変換係数に対応する。また、式(19)および式(20)に対応する行列形式は、以下の式(24)および式(25)のように表すことができる。
 [DCT-8]
Figure JPOXMLDOC01-appb-I000024
 ・・・(24)
 [FlipDST-7]
Figure JPOXMLDOC01-appb-I000025
 ・・・(25)
 行列Dは、対角成分diag={1,-1,...,(-1)N-1}となるN行N列の対角行列であり、符号反転を行う行列である。行列Dを符号反転行列とも称する。なお、行列Dは、対称行列である(D=Dt)。行列Jは、行列成分を列方向に逆順に並び替える置換行列であり、単位行列Iを列方向にフリップしたものである。行列Jをフリップ行列とも称する。なお、行列Jは、対称行列である(J=Jt)。
 DST-7, DCT-8, FlipDST-7の変換行列は、直交行列(TztTz=I)であることから、式(21)乃至式(25)に対応する逆変換は、以下の式(26)乃至式(30)でそれぞれ表すことができる。
 [DST-7-1
Figure JPOXMLDOC01-appb-I000026
 ・・・(26)
 [DCT-8-1
Figure JPOXMLDOC01-appb-I000027
 ・・・(27)
 [FlipDST-7-1
Figure JPOXMLDOC01-appb-I000028
 ・・・(28)
 [DCT-8-1
Figure JPOXMLDOC01-appb-I000029
 ・・・(29)
 [FlipDST-7-1
Figure JPOXMLDOC01-appb-I000030
 ・・・(30)
  <コンセプト1>
 以上のような直交変換における入力信号の並び替えや逆直交変換における出力信号の並び替えを、データパスの切り替えにより実現する。例えば、図1のAに示されるように、上述の式(25)に基づき、FlipDST-7による1次元直交変換を行う1次元直交変換部10を、1次元入力信号の並び替え処理(入力信号のデータパスの切り替え)を行うセレクタ11と、DST-7による1次元直交変換を行う行列演算部12との組み合わせにより実現する。
 同様に、例えば、図1のBに示されるように、上述の式(30)に基づき、FlipDST-7による逆1次元直交変換(1次元直交変換の逆変換)を行う逆1次元直交変換部20を、DST-7の逆変換を行う行列演算部21と、出力信号の並び替え(出力信号のデータパスの切り替え)を行うセレクタ22との組み合わせにより実現する。
 このようにすることにより、ハードウエア実装する場合に、サイクル数を増加させずに、直交変換(逆直交変換)に要する回路規模の増大を抑制することができる。また、1次元直交変換部10や逆1次元直交変換部20の場合と同等の符号化効率を達成することができる。
  <コンセプト2>
 また、例えば、図2のAに示されるように、上述の式(24)に基づき、DCT-8による1次元直交変換を行う1次元直交変換部30を、1次元入力信号の並び替え処理(入力信号のデータパスの切り替え)を行うセレクタ31と、DST-7による1次元直交変換を行う行列演算部32と、1次元直交変換後の出力信号に対する符号反転処理を行う符号反転部33との組み合わせにより実現する。
 さらに、例えば、図2のBに示されるように、上述の式(29)に基づき、DCT-8による逆1次元直交変換(1次元直交変換の逆変換)を行う逆1次元直交変換部40を、入力信号に対する符号反転処理を行う符号反転部41と、DST-7の逆変換を行う行列演算部42と、出力信号の並び替え(出力信号のデータパスの切り替え)を行うセレクタ43との組み合わせにより実現する。
 このようにすることにより、ハードウエア実装する場合に、サイクル数を増加させずに、直交変換(逆直交変換)に要する回路規模の増大を抑制することができる。また、等価変換であるため、1次元直交変換部30や逆1次元直交変換部40の場合と同等の符号化効率を達成することができる。
  <変換スキップ>
 また、画像符号化において、変換スキップ(TS(Transform Skip))が提案された。TSでは、変換スキップとして最大32x32までの2次元変換スキップを選択することができる。
 例えば、非特許文献9では、2次元変換スキップについて、残差ドメイン(画素ドメイン)において残差信号を並び替える技術が提案された。また、非特許文献10では、適応直交変換において1次元の恒等変換(IDT(Identify Transform))を導入し、2次元変換スキップ、水平方向および垂直方向の1次元変換スキップを適応直交変換(MTS)の枠組みで行う方法が提案された。
 しかしながら、非特許文献9に記載の方法では、2次元変換スキップ後に2次元残差信号を並び替えるため、その並び替え処理の分、ハードウエア実装の観点で、サイクル数が増大するおそれがあった。また、2次元信号の並び替え処理は、ハードウエア実装の観点で回路規模が増大するおそれがあった。また、非特許文献10で導入された1次元変換スキップに対して、残差並び替え処理をそのまま適用することができないおそれがあった。
 また、非特許文献10に記載の方法では、非特許文献9で導入された2次元変換スキップに対する残差並び替え処理を適用することで符号子効率の改善を期待することができるが、その場合、適応直交変換後に残差並び替え処理を行う必要があり、ハードウエア実装の観点でサイクル数が増大するおそれがあった。また、非特許文献9で導入された残差並び替え処理を1次元変換スキップにそのまま適用することができないおそれがあった。
  <Identify Transform>
 V,V'を線形空間とする。元a∈Vに対し、a自身を対応させる写像f(f:a→a)は、VからVへの線形写像であり、Vの恒等写像または恒等変換と称する。
 次に、N点の1次元信号x[i](i=0,...,N-1)を1次元信号x[i]自身に対応させる恒等変換(IDT)の行列形式は、以下の式(31)のように定義できる。
Figure JPOXMLDOC01-appb-I000031
 ・・・(31)
 ここで、行列TIDTは、恒等変換の変換行列である。変換行列TIDTの各(k,l)成分の係数(k=0,...,N-1, l=0,...,N-1)は、クロネッカーのデルタ次の式(32)および式(33)のように定義される。
Figure JPOXMLDOC01-appb-I000032
 ・・・(32)
 ただし、
Figure JPOXMLDOC01-appb-I000033
 ・・・(33)
 すなわち、N行N列の変換行列TIDTは、単位行列Iである。一般的に、単位行列Iには、以下の式(34)のように行列の積の交換が成立する。
Figure JPOXMLDOC01-appb-I000034
 ・・・(34)
 式(34)を式(31)に代入すると、以下の式(35)が得られる。
Figure JPOXMLDOC01-appb-I000035
 ・・・(35)
 N点の1次元信号x[i](i=0,...,N-1)をx[i]=x[N-1-i](i=0,...,N-1)に並び替える(フリップする)線形写像gの行列形式は、以下の式(36)のように定義することができる。
Figure JPOXMLDOC01-appb-I000036
 ・・・(36)
 行列Jは、行列成分を列方向に逆順に並び替える置換行列であり、単位行列Iを列方向にフリップしたものである。行列Jをフリップ行列とも称する。なお、行列Jは、対称行列である(J=Jt=J-1)。
 したがって、式(35)および式(36)から、恒等変換fと並び替えgの合成変換(f*g)と合成変換(g*f)について、以下の式(37)が成立する。
Figure JPOXMLDOC01-appb-I000037
 ・・・(37)
 つまり、恒等変換fと並び替えgの合成変換(f*g)と合成変換(g*f)は等価である。また、合成変換(f*g)の逆変換(f*g)-1と合成変換(g*f)の逆変換(g*f)-1との間には、以下の式(38)が成立する。
Figure JPOXMLDOC01-appb-I000038
 ・・・(38)
  <コンセプト3>
 以上から、例えば、以下の式(39)に示されるように、1次元変換スキップと残差並び替え処理を、1次元入力信号の並び替え(データパスの切り替え)と1次元恒等変換により実現する。
Figure JPOXMLDOC01-appb-I000039
 ・・・(39)
 例えば、図3のAに示されるように、上述の式(39)に基づき、1次元変換スキップと残差並び替え処理(IDT*Flip)を行う1次元直交変換部50を、1次元入力信号の並び替え処理(入力信号のデータパスの切り替え)を行うセレクタ51と、1次元恒等変換を行う行列演算部52との組み合わせにより実現する。
 同様に、以下の式(40)に示されるように、1次元変換スキップと残差並び替え処理の逆処理を、(逆)1次元恒等変換と出力信号の並び替え(データパスの切り替え)により実現する。
Figure JPOXMLDOC01-appb-I000040
 ・・・(40)
 例えば、図3のBに示されるように、上述の式(40)に基づき、1次元変換スキップと残差並び替え処理の逆処理(IDT*Flip)-1を行う逆1次元直交変換部60を、(逆)1次元恒等変換を行う行列演算部61と、1次元出力信号の並び替え処理(出力信号のデータパスの切り替え)を行うセレクタ62との組み合わせにより実現する。
 例えば、水平方向の1次元変換スキップと残差並び替え処理とを、水平方向の1次元入力信号の並び替え処理(データパスの切り替え)と、水平方向の1次元恒等変換と、垂直方向の1次元直交変換とによって実現する。同様に、水平方向の1次元変換スキップと残差並び替え処理との逆処理を、垂直方向の逆1次元直交変換と、水平方向の(逆)1次元恒等変換と、(逆)1次元恒等変換後の水平方向の1次元出力信号の並び替え処理(データパスの切り替え)とによって実現する。
 また、垂直方向の1次元変換スキップと残差並び替え処理とを、水平方向の1次元直交変換と、垂直方向の1次元入力信号の並び替え処理(データパスの切り替え)と、垂直方向の1次元恒等変換とによって実現する。同様に、垂直方向の1次元変換スキップと残差並び替え処理との逆処理を、垂直方向の(逆)1次元恒等変換と、(逆)1次元恒等変換後の垂直方向の1次元出力信号の並び替え処理(データパスの切り替え)と、水平方向の逆1次元直交変換とによって実現する。
 さらに、2次元変換スキップと残差並び替え処理とを、水平方向の1次元入力信号の並び替え処理(データパスの切り替え)と、水平方向の1次元恒等変換と、垂直方向の1次元入力信号の並び替え処理(データパスの切り替え)と、垂直方向の1次元恒等変換とによって実現する。同様に、2次元変換スキップと残差並び替え処理との逆処理を、垂直方向の(逆)1次元恒等変換と、(逆)1次元恒等変換後の垂直方向の1次元出力信号の並び替え処理(データパスの切り替え)と、水平方向の(逆)1次元恒等変換と、(逆)1次元恒等変換後の水平方向の1次元出力信号の並び替え処理(データパスの切り替え)とによって実現する。
 このようにすることにより、ハードウエア実装の観点で、サイクル数を増大させずに、1次元変換スキップと残差並び替え処理に要する回路規模の増大を抑制することができる。また、同様に2次元変換スキップと残差並び替え処理に要する回路規模の増大を抑制することができる。
 つまり、非特許文献9に記載の手法や非特許文献10に記載の手法よりも、回路規模の増大を抑制することができ、さらに、符号化効率の低減を抑制することができる。また、1次元変換スキップと残差並び替え処理を適応直交変換と1モードとして実行することができる。
  <コンセプト4>
 1次元変換スキップ(IDT)を適応直交変換(MTS)の枠組みに組み込むため、直交変換部の備えるパラメータ導出部(変換タイプ)に対して、さらに、修正変換タイプ導出部とフリップフラグ導出部を追加してもよい。
  <コンセプト5>
 また、2次元変換スキップでない場合、1次元入力信号(または1次元出力信号)の並び替え処理(データパスの切り替え)を行わないようにし、2次元変換スキップの場合にのみ、1次元入力信号(または1次元出力信号)の並び替え処理(データパスの切り替え)を行うことができるようにしてもよい。
 <2.第1の実施の形態>
  <2-1.1次元直交変換装置への適用>
   <1次元直交変換装置>
 図4は、本技術を適用した画像処理装置の一態様である1次元直交変換装置の構成の一例を示すブロック図である。図4に示される1次元直交変換装置100は、残差データの1次元直交変換を行う装置である。図4に示されるように、1次元直交変換装置100は、セレクタ101および行列演算部102を有する。
 セレクタ101は、行列演算部102の入力信号x[n]のデータパスの制御に関する処理を行う。例えば、セレクタ101は、入力信号x[n]の順方向のデータパスと逆方向のデータパスとのいずれか一方を選択する。順方向のデータパスは、例えばn=0からn=N-1の順に並ぶ入力信号x[n]を、その並びのまま行列演算部102に入力させるデータパスである。逆方向のデータパスは、例えばn=0からn=N-1の順に並ぶ入力信号x[n]を、n=N-1からn=0の順(つまり逆順)に並べ替えて行列演算部102に入力させるデータパスである。つまり、入力信号x[n]は、順方向のデータパスおよび逆方向のデータパスの内、セレクタ101により選択された方を介して行列演算部102に入力される。
 セレクタ101は、この選択を制御するフラグ情報であるフリップフラグbFlipに基づいてこの選択を行う。フリップフラグbFlipは、直交変換に関するパラメータに基づいて導出される。
 行列演算部102は、入力信号x[n]に対する1次元直交変換の行列演算を行う。例えば、行列演算部102は、DST-7に対応する1次元直交変換の行列演算、DCT-2に対応する1次元直交変換の行列演算、およびIDTに対応する1次元直交変換の行列演算を行うことができる。行列演算部102は、変換タイプtrType、変換サイズnTbS、有効変換サイズnonZeroS等のパラメータに対応する1次元直交変換の行列演算を行う。つまり、行列演算部102は、これらのパラメータに基づいて上述の行列演算の内のいずれかを選択し、実行する。
   <1次元直交変換処理の流れ>
 この1次元直交変換装置100により実行される1次元直交変換処理の流れの例を、図5のフローチャートを参照して説明する。また、必要に応じて、図6および図7を参照して説明する。
 1次元直交変換処理が開始されると、行列演算部102は、ステップS101において、変換タイプtrType、変換サイズnTbS、および有効変換サイズnonZeroSに対応した直交変換に切り替える。つまり、行列演算部102は、これらのパラメータに基づいて、実行する1次元直交変換のタイプ(例えばDST-7, DCT-2, IDTのいずれか)を選択する。
 ステップS102において、セレクタ101は、供給されたフリップフラグbFlipが偽であるか否かを判定する。フリップフラグが偽(False)であると判定された場合、処理はステップS103に進む。
 この場合、セレクタ101は、順方向のデータパスを選択する。つまり、ステップS103において、セレクタ101は、順方向のデータパスを有効化し、逆方向のデータパスを無効化する。この選択により、入力信号x[n]は、図6の例のように、フリップされずにその順のまま、行列演算部102に入力されるようになる。データパスの選択が終了すると、処理はステップS105に進む。
 また、ステップS102において、フリップフラグが真(True)である(偽でない)と判定された場合、処理はステップS104に進む。
 この場合、セレクタ101は、逆方向のデータパスを選択する。つまり、ステップS104において、セレクタ101は、逆方向のデータパスを有効化し、順方向のデータパスを無効化する。この選択により、入力信号x[n]は、図7の例のように、フリップされて行列演算部102に入力されるようになる。データパスの選択が終了すると、処理はステップS105に進む。
 ステップS105において、行列演算部102は、入力信号x[n]と、ステップS101において選択された直交変換との行列演算を実行し、出力信号X[n]を出力する。つまり、行列演算部102は、DST-7, DCT-2、またはIDTのいずれかの1次元直交変換の行列演算を行う。この行列演算が終了すると1次元直交変換処理が終了する。
 例えば、行列演算部102が、DST-7(DCT-2でもよい)の1次元直交変換の行列演算を行うことにより、例えば、<コンセプト1>において上述したFlipDST-7(式(25))の1次元直交変換を行う処理部のハードウエア実装において、処理遅延(サイクル数)や回路規模の増大を抑制することができる。また、FlipDST-7の1次元直交変換の行列演算を行う場合と同等の符号化効率を達成することができる。
 また、例えば、行列演算部102が、IDTの1次元直交変換の行列演算を行うことにより、例えば、<コンセプト3>において上述したIDT*Flip(式(39))のハードウエア実装において、処理遅延(サイクル数)や回路規模の増大を抑制することができる。また、IDT*Flipの1次元直交変換の行列演算を行う場合よりも符号化効率を向上させることができる。さらに、このように処理を行うことにより、この処理を適応直交変換の1モードとして実行することができる。
  <2-2.逆1次元直交変換装置への適用>
   <逆1次元直交変換装置>
 図8は、本技術を適用した画像処理装置の一態様である逆1次元直交変換装置の構成の一例を示すブロック図である。図8に示される逆1次元直交変換装置150は、変換係数の逆1次元直交変換を行う装置である。図8に示されるように、逆1次元直交変換装置150は、行列演算部151およびセレクタ152を有する。
 行列演算部151は、入力信号X[n]に対する逆1次元直交変換の行列演算を行う。例えば、行列演算部151は、DST-7-1に対応する逆1次元直交変換の行列演算、DCT-2-1に対応する逆1次元直交変換の行列演算、およびIDTに対応する逆1次元直交変換の行列演算を行うことができる。行列演算部151は、変換タイプtrType、変換サイズnTbS、有効変換サイズnonZeroS等のパラメータに対応する逆1次元直交変換の行列演算を行う。つまり、行列演算部151は、これらのパラメータに基づいて上述の行列演算の内のいずれかを選択し、実行する。
 セレクタ152は、行列演算部151の出力信号x[n]のデータパスの制御に関する処理を行う。例えば、セレクタ152は、出力信号x[n]の順方向のデータパスと逆方向のデータパスとのいずれか一方を選択する。順方向のデータパスは、例えばn=0からn=N-1の順に並ぶ行列演算部151の出力信号x[n]を、その並びのまま逆1次元直交変換装置150の外部に出力させるデータパスである。逆方向のデータパスは、例えばn=0からn=N-1の順に並ぶ行列演算部151の出力信号x[n]を、n=N-1からn=0の順(つまり逆順)に並べ替えて逆1次元直交変換装置150の外部に出力させるデータパスである。つまり、行列演算部151の出力信号x[n]は、順方向のデータパスおよび逆方向のデータパスの内、セレクタ152により選択された方を介して逆1次元直交変換装置150の外部に出力される。
 セレクタ152は、この選択を制御するフラグ情報であるフリップフラグbFlipに基づいてこの選択を行う。フリップフラグbFlipは、逆直交変換に関するパラメータに基づいて導出される。
   <逆1次元直交変換処理の流れ>
 この逆1次元直交変換装置150により実行される逆1次元直交変換処理の流れの例を、図9のフローチャートを参照して説明する。また、必要に応じて、図10および図11を参照して説明する。
 逆1次元直交変換処理が開始されると、行列演算部151は、ステップS151において、変換タイプtrType、変換サイズnTbS、および有効変換サイズnonZeroSに対応した逆直交変換に切り替える。つまり、行列演算部151は、これらのパラメータに基づいて、実行する逆1次元直交変換のタイプ(例えばDST-7-1, DCT-2-1, IDTのいずれか)を選択する。
 ステップS152において、行列演算部151は、入力信号X[n]と、ステップS151において選択された逆直交変換との行列演算を実行し、出力信号x[n]を出力する。つまり、行列演算部151は、DST-7-1, DCT-2-1、またはIDTのいずれかの逆1次元直交変換の行列演算を行う。
 ステップS153において、セレクタ152は、供給されたフリップフラグbFlipが偽であるか否かを判定する。フリップフラグが偽(False)であると判定された場合、処理はステップS154に進む。
 この場合、セレクタ152は、順方向のデータパスを選択する。つまり、ステップS154において、セレクタ152は、順方向のデータパスを有効化し、逆方向のデータパスを無効化する。この選択により、出力信号x[n]は、図10の例のように、フリップされずにその順のまま、逆1次元直交変換装置150の外部に出力されるようになる。データパスの選択が終了すると、逆1次元直交変換処理が終了する。
 また、ステップS153において、フリップフラグが真(True)である(偽でない)と判定された場合、処理はステップS155に進む。
 この場合、セレクタ152は、逆方向のデータパスを選択する。つまり、ステップS155において、セレクタ152は、逆方向のデータパスを有効化し、順方向のデータパスを無効化する。この選択により、出力信号x[n]は、図11の例のように、フリップされて逆1次元直交変換装置150の外部に出力されるようになる。データパスの選択が終了すると、逆1次元直交変換処理が終了する。
 例えば、行列演算部151が、DST-7-1(DCT-2-1でもよい)の逆1次元直交変換の行列演算を行うことにより、例えば、<コンセプト1>において上述したFlipDST-7-1(式(30))の逆1次元直交変換を行う処理部のハードウエア実装において、処理遅延(サイクル数)や回路規模の増大を抑制することができる。また、FlipDST-7-1の逆1次元直交変換の行列演算を行う場合と同等の符号化効率を達成することができる。
 また、例えば、行列演算部151が、IDTの(逆)1次元直交変換の行列演算を行うことにより、例えば、<コンセプト3>において上述した(IDT*Flip)-1(式(40))の逆1次元直交変換を行う処理部のハードウエア実装において、処理遅延(サイクル数)や回路規模の増大を抑制することができる。また、(IDT*Flip)-1の逆1次元直交変換の行列演算を行う場合よりも符号化効率を向上させることができる。さらに、このように処理を行うことにより、この処理を逆適応直交変換の1モードとして実行することができる。
 <3.第2の実施の形態>
  <3-1.1次元直交変換装置への適用>
   <1次元直交変換装置>
 図12は、本技術を適用した画像処理装置の一態様である1次元直交変換装置の構成の一例を示すブロック図である。図12に示される1次元直交変換装置200は、残差データの1次元直交変換を行う装置である。図12に示されるように、1次元直交変換装置200は、セレクタ201、行列演算部202、および符号反転部203を有する。
 セレクタ201は、行列演算部202の入力信号x[n]のデータパスの制御に関する処理を行う。例えば、セレクタ201は、入力信号x[n]の順方向のデータパスと逆方向のデータパスとのいずれか一方を選択する。順方向のデータパスは、例えばn=0からn=N-1の順に並ぶ入力信号x[n]を、その並びのまま行列演算部202に入力させるデータパスである。逆方向のデータパスは、例えばn=0からn=N-1の順に並ぶ入力信号x[n]を、n=N-1からn=0の順(つまり逆順)に並べ替えて行列演算部202に入力させるデータパスである。つまり、入力信号x[n]は、順方向のデータパスおよび逆方向のデータパスの内、セレクタ201により選択された方を介して行列演算部202に入力される。
 セレクタ201は、この選択を制御するフラグ情報であるフリップフラグbFlipに基づいてこの選択を行う。フリップフラグbFlipは、直交変換に関するパラメータに基づいて導出される。
 行列演算部202は、入力信号x[n]に対する1次元直交変換の行列演算を行う。例えば、行列演算部202は、DST-7に対応する1次元直交変換の行列演算、およびDCT-2に対応する1次元直交変換の行列演算を行うことができる。行列演算部202は、変換タイプtrType、変換サイズnTbS、有効変換サイズnonZeroS等のパラメータに対応する1次元直交変換の行列演算を行う。つまり、行列演算部202は、これらのパラメータに基づいて上述の行列演算の内のいずれかを選択し、実行する。
 符号反転部203は、行列演算部202の出力信号X[n]の奇数番目の信号の符号を反転して、1次元直交変換装置200の外部に出力する。また、符号反転部203は、行列演算部202の出力信号X[n]の各信号の符号を反転させずに、そのまま1次元直交変換装置200の外部に出力することもできる。つまり、符号反転部203は、上述のような符号反転を行うか否かを選択することができる。
 符号反転部203は、この選択を制御するフラグ情報である符号反転フラグbSignに基づいてこの選択を行う。符号反転フラグbSignは、直交変換に関するパラメータに基づいて導出される。
   <1次元直交変換処理の流れ>
 この1次元直交変換装置200により実行される1次元直交変換処理の流れの例を、図13のフローチャートを参照して説明する。また、必要に応じて、図14および図15を参照して説明する。
 1次元直交変換処理が開始されると、行列演算部202は、ステップS201において、変換タイプtrType、変換サイズnTbS、および有効変換サイズnonZeroSに対応した直交変換に切り替える。つまり、行列演算部202は、これらのパラメータに基づいて、実行する1次元直交変換のタイプ(例えばDST-7またはDCT-2)を選択する。
 ステップS202において、セレクタ201は、供給されたフリップフラグbFlipが偽であるか否かを判定する。フリップフラグが偽(False)であると判定された場合、処理はステップS203に進む。
 この場合、セレクタ201は、順方向のデータパスを選択する。つまり、ステップS203において、セレクタ201は、順方向のデータパスを有効化し、逆方向のデータパスを無効化する。この選択により、入力信号x[n]は、図14の例のように、フリップされずにその順のまま、行列演算部202に入力されるようになる。データパスの選択が終了すると、処理はステップS205に進む。
 また、ステップS202において、フリップフラグが真(True)である(偽でない)と判定された場合、処理はステップS204に進む。
 この場合、セレクタ201は、逆方向のデータパスを選択する。つまり、ステップS204において、セレクタ201は、逆方向のデータパスを有効化し、順方向のデータパスを無効化する。この選択により、入力信号x[n]は、図15の例のように、フリップされて行列演算部202に入力されるようになる。データパスの選択が終了すると、処理はステップS205に進む。
 ステップS205において、行列演算部202は、入力信号x[n]と、ステップS201において選択された直交変換との行列演算を実行し、出力信号X[n]を出力する。つまり、行列演算部202は、DST-7またはDCT-2の1次元直交変換の行列演算を行う。
 ステップS206において、符号反転部203は、供給された符号反転フラグbSignが偽であるか否かを判定する。符号反転フラグが偽(False)であると判定された場合、符号反転部203は、図14の例のように、符号反転を行わずに、出力信号X[n]を1次元直交変換装置200の外部に出力する。そして1次元直交変換処理が終了する。
 また、ステップS206において、符号反転フラグが真(True)である(偽でない)と判定された場合、処理はステップS207に進む。
 この場合、符号反転部203は、出力信号X[n]に対して符号反転を行う。つまり、符号反転部203は、例えば以下の式(41)や図15の例のように、出力信号X[n]の奇数番目の信号の符号(正負)を反転する。
Figure JPOXMLDOC01-appb-I000041
 ・・・(41)
 符号反転部203は、このように符号反転した出力信号X[n]を1次元直交変換装置200の外部に出力する。そして1次元直交変換処理が終了する。
 例えば、行列演算部202が、DST-7(DCT-2でもよい)の1次元直交変換の行列演算を行うことにより、例えば、<コンセプト2>において上述したDCT-8(式(24))の1次元直交変換を行う処理部のハードウエア実装において、処理遅延(サイクル数)や回路規模の増大を抑制することができる。また、DCT-8の1次元直交変換の行列演算を行う場合と同等の符号化効率を達成することができる。
  <3-2.逆1次元直交変換装置への適用>
   <逆1次元直交変換装置>
 図16は、本技術を適用した画像処理装置の一態様である逆1次元直交変換装置の構成の一例を示すブロック図である。図16に示される逆1次元直交変換装置250は、変換係数の逆1次元直交変換を行う装置である。図16に示されるように、逆1次元直交変換装置250は、符号反転部251、行列演算部252、およびセレクタ253を有する。
 符号反転部251は、入力信号X[n]の奇数番目の信号の符号を反転して、行列演算部252に供給する。また、符号反転部251は、入力信号X[n]の各信号の符号を反転させずに、そのまま行列演算部252に供給することもできる。つまり、符号反転部251は、行列演算部252の入力信号X[n]に対して上述のような符号反転を行うか否かを選択することができる。
 符号反転部251は、この選択を制御するフラグ情報である符号反転フラグbSignに基づいてこの選択を行う。符号反転フラグbSignは、逆直交変換に関するパラメータに基づいて導出される。
 行列演算部252は、入力信号X[n]に対する逆1次元直交変換の行列演算を行う。例えば、行列演算部252は、DST-7-1に対応する逆1次元直交変換の行列演算、およびDCT-2-1に対応する逆1次元直交変換の行列演算を行うことができる。行列演算部252は、変換タイプtrType、変換サイズnTbS、有効変換サイズnonZeroS等のパラメータに対応する逆1次元直交変換の行列演算を行う。つまり、行列演算部252は、これらのパラメータに基づいて上述の行列演算の内のいずれかを選択し、実行する。
 セレクタ253は、行列演算部252の出力信号x[n]のデータパスの制御に関する処理を行う。例えば、セレクタ253は、出力信号x[n]の順方向のデータパスと逆方向のデータパスとのいずれか一方を選択する。順方向のデータパスは、例えばn=0からn=N-1の順に並ぶ行列演算部252の出力信号x[n]を、その並びのまま逆1次元直交変換装置250の外部に出力させるデータパスである。逆方向のデータパスは、例えばn=0からn=N-1の順に並ぶ行列演算部252の出力信号x[n]を、n=N-1からn=0の順(つまり逆順)に並べ替えて逆1次元直交変換装置250の外部に出力させるデータパスである。つまり、行列演算部252の出力信号x[n]は、順方向のデータパスおよび逆方向のデータパスの内、セレクタ253により選択された方を介して逆1次元直交変換装置250の外部に出力される。
 セレクタ253は、この選択を制御するフラグ情報であるフリップフラグbFlipに基づいてこの選択を行う。フリップフラグbFlipは、逆直交変換に関するパラメータに基づいて導出される。
   <逆1次元直交変換処理の流れ>
 この逆1次元直交変換装置250により実行される逆1次元直交変換処理の流れの例を、図17のフローチャートを参照して説明する。また、必要に応じて、図18および図19を参照して説明する。
 逆1次元直交変換処理が開始されると、行列演算部252は、ステップS251において、変換タイプtrType、変換サイズnTbS、および有効変換サイズnonZeroSに対応した逆直交変換に切り替える。つまり、行列演算部252は、これらのパラメータに基づいて、実行する逆1次元直交変換のタイプ(例えばDST-7-1, DCT-2-1のいずれか)を選択する。
 ステップS252において、符号反転部251は、供給された符号反転フラグbSignが偽であるか否かを判定する。符号反転フラグが偽(False)であると判定された場合、符号反転部251は、図18の例のように、符号反転を行わずに、入力信号X[n]を行列演算部252に供給する。つまり、ステップS252において、符号反転フラグが偽(False)であると判定された場合、処理はステップS254に進む。
 また、ステップS252において、符号反転フラグが真(True)であると判定された場合、処理はステップS253に進む。
 ステップS253において、符号反転部251は、入力信号X[n]に対して符号反転を行う。つまり、符号反転部251は、例えば上述した式(41)や図19の例のように、入力信号X[n]の奇数番目の信号の符号(正負)を反転し、行列演算部252に供給する。ステップS253の処理が終了すると処理はステップS254に進む。
 ステップS254において、行列演算部252は、入力信号X[n]と、ステップS251において選択された逆直交変換との行列演算を実行し、出力信号x[n]を出力する。つまり、行列演算部252は、DST-7-1またはDCT-2-1の逆1次元直交変換の行列演算を行う。
 ステップS255において、セレクタ253は、供給されたフリップフラグbFlipが偽であるか否かを判定する。フリップフラグが偽(False)であると判定された場合、処理はステップS256に進む。
 この場合、セレクタ253は、順方向のデータパスを選択する。つまり、ステップS256において、セレクタ253は、順方向のデータパスを有効化し、逆方向のデータパスを無効化する。この選択により、出力信号x[n]は、図18の例のように、フリップされずにその順のまま、逆1次元直交変換装置250の外部に出力されるようになる。データパスの選択が終了すると、逆1次元直交変換処理が終了する。
 また、ステップS255において、フリップフラグが真(True)である(偽でない)と判定された場合、処理はステップS257に進む。
 この場合、セレクタ253は、逆方向のデータパスを選択する。つまり、ステップS257において、セレクタ253は、逆方向のデータパスを有効化し、順方向のデータパスを無効化する。この選択により、出力信号x[n]は、図19の例のように、フリップされて逆1次元直交変換装置250の外部に出力されるようになる。データパスの選択が終了すると、逆1次元直交変換処理が終了する。
 例えば、行列演算部252が、DST-7-1(DCT-2-1でもよい)の1次元直交変換の行列演算を行うことにより、例えば、<コンセプト2>において上述したDCT-8-1(式(29))の1次元直交変換を行う処理部のハードウエア実装において、処理遅延(サイクル数)や回路規模の増大を抑制することができる。また、DCT-8-1の逆1次元直交変換の行列演算を行う場合と同等の符号化効率を達成することができる。
 <4.第3の実施の形態>
  <パラメータ導出装置>
 図20は、本技術を適用した画像処理装置の一態様であるパラメータ導出装置の構成の一例を示すブロック図である。図20に示されるパラメータ導出装置300は、上述した1次元直交変換装置100、逆1次元直交変換装置150、1次元直交変換装置200、または逆1次元直交変換装置250等において使用されるパラメータの導出に関する処理を行う装置である。パラメータ導出装置300は、例えば、1次元変換スキップ(IDT)を適応直交変換(MTS)の枠組みに組み込むためのパラメータを導出する。例えば、パラメータ導出装置300は、そのパラメータとして、直交変換に関する情報である変換情報Tinfoから導出される変換タイプtrTypeX(X=Hor, Ver)を用いて、修正変換タイプtrTypeX'(X=Hor, Ver)やフリップフラグbFlipX(X=Hor, Ver)を導出し得る。
 図20に示されるように、パラメータ導出装置300は、変換タイプ導出部301、修正変換タイプ導出部302、およびフリップフラグ導出部303を有する。
 変換タイプ導出部301は、変換情報Tinfoを用いて変換タイプtrTypeX(X=Hor, Ver)を導出する。修正変換タイプ導出部302は、その変換タイプtrTypeXを用いて修正変換タイプtrTypeX'(X=Hor, Ver)を導出する。フリップフラグ導出部303は、その変換タイプtrTypeXを用いてフリップフラグbFlipX(X=Hor, Ver)を導出する。
  <パラメータ導出処理の流れ>
 このパラメータ導出装置300が行うパラメータ導出処理の流れの例を、図20のフローチャートを参照して説明する。
 パラメータ導出処理が開始されると、変換タイプ導出部301は、ステップS301において、変換情報Tinfoに基づいて、変換タイプtrTypeXを導出する。変換タイプ導出部301は、例えば、変換スキップフラグtransformSkipFlag、水平方向/垂直方向の1次元変換の変換タイプtrTypeHorおよびtrTypeVerを導出するために必要なパラメータ、MTS有効フラグmts_enabled_flag、イントラ明示的MTS有効フラグexplicit_mts_intra_enabled_flag、インター明示的MTS有効フラグexplicit_mts_inter_enabled_flag、SBTモード情報(Sub-block Transformに関するオンオフフラグ"SBTフラグsbt_flag", SBT分割情報(sbt_auad_flag, sbt_pos_flag, sbt_horizontal_flag)を含む)、ISPモード情報(Intra Sub-Parititionに関するオンオフフラグ"ISPフラグintra_subparitions_mode_flag(isp_flagとも称する)", ISP分割情報(intra_subpartitions_split_flag))、変換ブロックのサイズ(横幅nTbW, 縦幅nTbH(2を底とする対数値の場合、log2TbW, log2TbH))、変換ブロックの座標(xTbY, yTbY)、色コンポーネント識別子cIdx(またはcompID)、イントラ予測モードpredModeIntra等の情報を参照し、これらの値に基づいて変換タイプtrTypeXを導出する。
 例えば、非特許文献6に記載の方法の場合、変換タイプ導出部301は、図22の疑似コード321のように変換タイプtrTypeXを導出する。なお、パラメータimplicitMtsEnabledは、例えば、図22の疑似コード322のように導出される。
 ステップS302において、修正変換タイプ導出部302は、ステップS301において導出された変換タイプtrTypeXを用いて修正変換タイプtrTypeX'を導出する。
 例えば、修正変換タイプ導出部302は、図23に示される疑似コード323のように、ステップS301において導出された変換タイプtrTypeX、CU予測タイプcuPredMode、およびブロックサイズを参照して、DCT-8に相当する変換タイプをIDTへ置換することができる。また、例えば、修正変換タイプ導出部302は、図24に示される疑似コード324のように、ステップS301において導出された変換タイプtrTypeX、CU予測タイプcuPredMode、およびブロックサイズを参照して、FlipDST-7に相当する変換タイプをIDTへ置換することができる。
 ステップS303において、フリップフラグ導出部303は、ステップS301において導出された変換タイプtrTypeXを用いてフリップフラグbFlipX(X=Hor, Ver)を導出する。
 ステップS303の処理が終了するとパラメータ導出処理が終了する。
 以上のようにパラメータ導出処理を行うことにより、パラメータ導出装置300は、1次元直交変換装置100または逆1次元直交変換装置150による1次元変換スキップ(IDT)を適応直交変換(MTS)の枠組みに組み込むことができる。
  <フリップの制限>
 パラメータ導出装置300は、例えば、2次元変換スキップでない場合、1次元入力信号(または1次元出力信号)の並び替え処理(データパスの切り替え)を行わないようにし、2次元変換スキップの場合にのみ、1次元入力信号(または1次元出力信号)の並び替え処理(データパスの切り替え)を行うようにすることができる。
 例えば、図25の疑似コード331のように、変換スキップフラグtransform_skip_flagが偽の場合、フリップフラグbFlipX(X=Hor, Ver)を偽(=0)としてもよい。また、変換スキップフラグtransform_skip_flagが真の場合、図25の疑似コード331のようにcuPredModeやresidual rearrangement等に基づいてフリップフラグbFlipXを設定するようにしてもよい。
 なお、implicitMtsEnabledや変換タイプは、例えば、図26の疑似コード332のように設定するようにしてもよい。
 以上に説明したパラメータ導出装置300は、上述の1次元直交変換装置100、逆1次元直交変換装置150、1次元直交変換装置200、および逆1次元直交変換装置250と組み合わせて1つの装置としてもよい。つまり、パラメータ導出装置300が導出したパラメータをこれらの装置が利用するようにしてもよい。
 <5.第4の実施の形態>
  <画像符号化装置>
 以上において説明した本技術は、任意の装置、デバイス、システム等に適用することができる。例えば、画像データを符号化する画像符号化装置に、本技術を適用することができる。
 図27は、本技術を適用した画像処理装置の一態様である画像符号化装置の構成の一例を示すブロック図である。図27に示される画像符号化装置500は、動画像の画像データを符号化する装置である。例えば、画像符号化装置500は、非特許文献6に記載のVVCのように、長方形のブロックを構成し得る符号化方式で動画像の画像データを符号化する。
 なお、図27においては、処理部やデータの流れ等の主なものを示しており、図27に示されるものが全てとは限らない。つまり、画像符号化装置500において、図27においてブロックとして示されていない処理部が存在したり、図27において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、画像符号化装置500内の処理部等を説明する他の図においても同様である。
 図27に示されるように画像符号化装置500は、制御部501、並べ替えバッファ511、演算部512、変換量子化部513、符号化部514、および蓄積バッファ515を有する。また、画像符号化装置500は、逆量子化逆変換部516、演算部517、インループフィルタ部518、フレームメモリ519、予測部520、およびレート制御部521を有する。
   <制御部>
 制御部501は、外部、または予め指定された処理単位のブロックサイズに基づいて、並べ替えバッファ511により保持されている動画像データを処理単位のブロック(CU,PU, 変換ブロックなど)へ分割する。また、制御部501は、各ブロックへ供給する符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)を、例えば、RDO(Rate-Distortion Optimization)に基づいて、決定する。例えば、制御部501は、変換スキップフラグ等を設定することができる。
 これらの符号化パラメータの詳細については後述する。制御部501は、以上のような符号化パラメータを決定すると、それを各ブロックへ供給する。具体的には、以下の通りである。
 ヘッダ情報Hinfoは、各ブロックに供給される。予測モード情報Pinfoは、符号化部514と予測部520とに供給される。変換情報Tinfoは、符号化部514、変換量子化部513、および逆量子化逆変換部516に供給される。フィルタ情報Finfoは、インループフィルタ部518に供給される。
   <並べ替えバッファ>
 画像符号化装置500には、動画像データの各フィールド(入力画像)がその再生順(表示順)に入力される。並べ替えバッファ511は、各入力画像をその再生順(表示順)に取得し、保持(記憶)する。並べ替えバッファ511は、制御部501の制御に基づいて、その入力画像を符号化順(復号順)に並べ替えたり、処理単位のブロックに分割したりする。並べ替えバッファ511は、処理後の各入力画像を演算部512に供給する。
   <演算部>
 演算部512は、並べ替えバッファ511から供給される処理単位のブロックに対応する画像から、予測部520より供給される予測画像Pを減算して、残差データDを導出し、それを変換量子化部513に供給する。
   <変換量子化部>
 変換量子化部513は、直交変換と量子化に関する処理を行う。例えば、変換量子化部513は、演算部512から供給される残差データを取得し、その残差データに対して直交変換を行い、変換係数Coeffを導出することができる。また、変換量子化部513は、その変換係数Coeffをスケーリング(量子化)し、量子化係数levelを導出することができる。さらに、変換量子化部513は、その量子化係数levelを符号化部514および逆量子化逆変換部516に供給することができる。
 なお、変換量子化部513は、制御部501から供給される予測モード情報Pinfoや変換情報Tinfoを取得し、それらの情報に基づいて、直交変換や量子化等の処理を行うことができる。また、変換量子化部513が行う量子化のレートは、レート制御部521により制御される。
   <符号化部>
 符号化部514は、変換量子化部513から供給された量子化係数levelと、制御部501から供給される各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)と、インループフィルタ部518から供給されるフィルタ係数等のフィルタに関する情報と、予測部520から供給される最適な予測モードに関する情報とを入力とする。
 符号化部514は、量子化係数levelに対して、例えばCABAC(Context-based Adaptive Binary Arithmetic Code)やCAVLC(Context-based Adaptive Variable Length Code)等のエントロピ符号化(可逆符号化)を行い、ビット列(符号化データ)を生成する。
 また、符号化部514は、その量子化係数レベルから残差情報Rinfoを導出し、残差情報Rinfoを符号化し、ビット列を生成する。
 さらに、符号化部514は、インループフィルタ部518から供給されるフィルタに関する情報をフィルタ情報Finfoに含め、予測部520から供給される最適な予測モードに関する情報を予測モード情報Pinfoに含める。そして、符号化部514は、上述した各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)を符号化し、ビット列を生成する。
 また、符号化部514は、以上のように生成された各種情報のビット列を多重化し、符号化データを生成する。符号化部514は、その符号化データを蓄積バッファ515に供給する。
   <蓄積バッファ>
 蓄積バッファ515は、符号化部514において得られた符号化データを、一時的に保持する。蓄積バッファ515は、所定のタイミングにおいて、保持している符号化データを、例えばビットストリーム等として画像符号化装置500の外部に出力する。例えば、この符号化データは、任意の記録媒体、任意の伝送媒体、任意の情報処理装置等を介して復号側に伝送される。すなわち、蓄積バッファ515は、符号化データ(ビットストリーム)を伝送する伝送部でもある。
   <逆量子化逆変換部>
 逆量子化逆変換部516は、逆量子化と逆直交変換に関する処理を行う。例えば、逆量子化逆変換部516は、変換量子化部513から供給される量子化係数levelと、制御部501から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、量子化係数levelの値をスケーリング(逆量子化)する。なお、この逆量子化は、変換量子化部513において行われる量子化の逆処理である。また、逆量子化逆変換部516は、このような逆量子化により得られた変換係数Coeff_IQと変換情報Tinfoとに基づいて、変換係数に対して逆直交変換を行い、残差データD'を導出する。なお、この逆直交変換は、変換量子化部513において行われる直交変換の逆処理である。逆量子化逆変換部516は、得られた残差データD'を演算部517に供給する。
   <演算部>
 演算部517は、逆量子化逆変換部516から供給される残差データD'と、予測部520から供給される予測画像Pとを入力とする。演算部517は、その残差データD'と、その残差データD'に対応する予測画像とを加算し、局所復号画像を導出する。演算部517は、導出した局所復号画像をインループフィルタ部518およびフレームメモリ519に供給する。
   <インループフィルタ部>
 インループフィルタ部518は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部518は、演算部517から供給される局所復号画像と、制御部501から供給されるフィルタ情報Finfoと、並べ替えバッファ511から供給される入力画像(元画像)とを入力とする。なお、インループフィルタ部518に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。例えば、必要に応じて、予測モード、動き情報、符号量目標値、量子化パラメータQP、ピクチャタイプ、ブロック(CU、CTU等)の情報等がインループフィルタ部518に入力されるようにしてもよい。
 インループフィルタ部518は、そのフィルタ情報Finfoに基づいて、局所復号画像に対して適宜フィルタ処理を行う。インループフィルタ部518は、必要に応じて入力画像(元画像)や、その他の入力情報もそのフィルタ処理に用いる。
 例えば、インループフィルタ部518は、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用することができる。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
 もちろん、インループフィルタ部518が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部518がウィーナーフィルタ等を適用するようにしてもよい。
 インループフィルタ部518は、フィルタ処理された局所復号画像をフレームメモリ519に供給する。なお、例えばフィルタ係数等のフィルタに関する情報を復号側に伝送する場合、インループフィルタ部518は、そのフィルタに関する情報を符号化部514に供給する。
   <フレームメモリ>
 フレームメモリ519は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ519は、演算部517から供給される局所復号画像や、インループフィルタ部518から供給されるフィルタ処理された局所復号画像を入力とし、それを保持(記憶)する。また、フレームメモリ519は、その局所復号画像を用いてピクチャ単位毎の復号画像を再構築し、保持する(フレームメモリ519内のバッファへ格納する)。フレームメモリ519は、予測部520の要求に応じて、その復号画像(またはその一部)を予測部520に供給する。
   <予測部>
 予測部520は、予測画像の生成に関する処理を行う。例えば、予測部520は、制御部501から供給される予測モード情報Pinfoと、並べ替えバッファ511から供給される入力画像(元画像)と、フレームメモリ519から読み出す復号画像(またはその一部)を入力とする。予測部520は、予測モード情報Pinfoや入力画像(元画像)を用い、インター予測やイントラ予測等の予測処理を行い、復号画像を参照画像として参照して予測を行い、その予測結果に基づいて動き補償処理を行い、予測画像を生成する。予測部520は、生成した予測画像を演算部512および演算部517に供給する。また、予測部520は、以上の処理により選択した予測モード、すなわち最適な予測モードに関する情報を、必要に応じて符号化部514に供給する。
   <レート制御部>
 レート制御部521は、レート制御に関する処理を行う。例えば、レート制御部521は、蓄積バッファ515に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、変換量子化部513の量子化動作のレートを制御する。
  <変換量子化部>
 図28は、図27の変換量子化部513の主な構成例を示すブロック図である。図28に示されるように、変換量子化部513は、選択部531、直交変換部532、量子化部533、および選択部534を有する。
 直交変換部532は、選択部531を介して入力される残差データrに対して直交変換を行い、変換係数を生成する。直交変換部532は、その変換係数を量子化部533に供給する。
 量子化部533は、直交変換部532から供給される変換係数を量子化し、量子化係数levelを生成する。量子化部533は、生成した量子化係数levelを符号化部514や逆量子化逆変換部516(ともに図27)に供給する。
 選択部531および選択部534は、変換量子化バイパスフラグtransquantBypassFlag等に基づいて、係数データの供給元や供給先の選択を行う。例えば、transquantBypassFlag == 0 の場合、選択部531は、変換量子化部513に入力された残差データrを直交変換部532に供給する。また、選択部534は、量子化部533から供給される量子化係数levelを取得し、それを符号化部514や逆量子化逆変換部516に供給する。
 これに対して、transquantBypassFlag == 1 の場合、つまり直交変換および量子化がスキップされる場合、選択部531は、変換量子化部513に入力された残差データrを選択部534に供給する。また、選択部534は、その残差データr'を符号化部514や逆量子化逆変換部516に供給する。
 なお、変換量子化バイパスフラグ(transQuantBypassFlag)は、CU/TU単位で復号/符号化されているものとする。なお、transformSkipFlagは、MTS index(mts_idx)の一部として復号/符号化されていてもよい。
  <直交変換部>
 図29は、図28の直交変換部532の主な構成例を示すブロック図である。図29に示されるように、直交変換部532は、パラメータ導出部551、プライマリ水平変換部552、正規化部553、バッファ554、プライマリ垂直変換部555、および正規化部556を有する。
 パラメータ導出部551は、直交変換に関するパラメータの導出に関する処理を行う。例えば、パラメータ導出部551は、変換情報Tinfoを入力とし、水平方向変換タイプtrTypeHor、垂直方向変換タイプtrTypeVer、水平方向フリップフラグflipHor、および垂直方向フリップフラグflipVer等の直交変換に関する各種パラメータを導出することができる。パラメータ導出部551は、導出したパラメータをプライマリ水平変換部552、正規化部553、プライマリ垂直変換部555、および正規化部556に供給し得る。
 プライマリ水平変換部552は、水平方向の1次元変換であるプライマリ水平変換に関する処理を行う。例えば、プライマリ水平変換部552は、残差r、水平方向の修正変換タイプtrTypeHor'とフリップフラグflipHor、変換ブロックサイズ(nTbW, nTbH)、非ゼロ領域サイズnonZeroS(=nonZeroW)等の変換情報Tinfoを入力とし、残差rに対してプライマリ水平変換を行い、得られた中間出力信号tmp1を正規化部553に供給する。
 正規化部553は、中間出力信号tmp1に対する正規化処理を行う。例えば、正規化部553は、中間出力信号tmp1とシフト量fwdShift1を入力とし、以下の式(42)のように、中間出力信号tmp1をシフト量fwdShift1で正規化(スケーリング)し、得られた正規化後の中間出力信号tmp2をバッファ554に供給する。
Figure JPOXMLDOC01-appb-I000042
 ・・・(42)
 バッファ554は、正規化部553から供給される中間出力信号tmp2を一時的に保持し、所定のタイミング等において、プライマリ垂直変換部555に供給する。
 プライマリ垂直変換部555は、垂直方向の1次元変換であるプライマリ垂直変換に関する処理を行う。例えば、プライマリ垂直変換部555は、中間出力信号tmp2、垂直方向の修正変換タイプtrTypeVer'、フリップフラグflipVer、変換ブロックサイズ(nTbW, nTbH)、非ゼロ領域サイズnonZeroS(=nonZeroH)等の変換情報Tinfoを入力とし、中間出力信号tmp2に対してプライマリ垂直変換を行い、得られた中間出力信号tmp3を正規化部556に供給する。
 正規化部556は、中間出力信号tmp3に対する正規化処理を行う。例えば、正規化部556は、中間出力信号tmp3とシフト量fwdShift2を入力とし、以下の式(43)のように、中間出力信号tmp3をシフト量fwdShift2で正規化(スケーリング)し、得られた変換係数coefを量子化部533(図28)に供給する。
Figure JPOXMLDOC01-appb-I000043
 ・・・(43)
 このような直交変換部532において、プライマリ水平変換部552として、上述した1次元直交変換装置100や1次元直交変換装置200を適用してもよい。このようにすることにより、直交変換部532(すなわち画像符号化装置500)は、プライマリ水平変換において、第1の実施の形態や第2の実施の形態において説明したように1次元直交変換処理を行うことができ、第1の実施の形態や第2の実施の形態において説明した効果を得ることができる。したがって、画像符号化装置500は、直交変換処理や逆直交変換処理における処理遅延の増大を抑制することができる。
 同様に、このような直交変換部532において、プライマリ垂直変換部555として、上述した1次元直交変換装置100や1次元直交変換装置200を適用してもよい。このようにすることにより、直交変換部532(すなわち画像符号化装置500)は、プライマリ垂直変換において、第1の実施の形態や第2の実施の形態において説明したように1次元直交変換処理を行うことができ、第1の実施の形態や第2の実施の形態において説明した効果を得ることができる。したがって、画像符号化装置500は、直交変換処理や逆直交変換処理における処理遅延の増大を抑制することができる。
 もちろん、プライマリ水平変換部552およびプライマリ垂直変換部555の両方に、上述した1次元直交変換装置100や1次元直交変換装置200を適用してもよい。
 また、このような直交変換部532において、パラメータ導出部551として、上述したパラメータ導出装置300を適用してもよい。このようにすることにより、直交変換部532(すなわち画像符号化装置500)は、第3の実施の形態において説明したように各種パラメータを導出することができ、第3の実施の形態において説明した効果を得ることができる。したがって、画像符号化装置500は、直交変換処理や逆直交変換処理における処理遅延の増大を抑制することができる。また、画像符号化装置500は、1次元変換スキップ(IDT)を適応直交変換(MTS)の枠組みに組み込むことができる。
 また、パラメータ導出装置300を適用することにより、パラメータ導出部551は、暗黙的MTS有効フラグimplicitMtsEnabledを、変換情報Tinfoを参照して次のよう導出することができる。
 例えば、MTS有効フラグmtsEnabledがtrue(真)であって、次の条件を1つでも満たす場合、implictMtsEnabled=1と設定する。
  ・イントラサブブロック分割モード(ISP)でないとき
   (IntraSubPartitionSplitType==ISP_NO_SPLIT)
  ・サブブロック変換モード(SBT)であって、かつ、変換ブロックの長辺が所定閾値TH1(=32)以下のとき
   (sbt_flag==true && Max(nTbW, nTbH) <= TH1)
  ・イントラ明示的MTS有効フラグexplicitMtsIntraEnabledとインター明示的MTS有効フラグexplicitMtsInterEnabledの両方が0であって、かつ、CUタイプがイントラ予測のとき
   (explicitMtsIntraEnabled==true && explicitMtsInterEnabled==true && cuPredMode==MODE_INTRA)
 それ以外の場合は、implicitMtsEnabled = 0と設定する。
 さらに、パラメータ導出部551は、変換タイプtrTypeX (X=Hor, Ver)を、変換情報Tinfoを参照して次のよう導出することができる。
 (1)色コンポーネント識別子cIdxが0より大きいとき(色差を示す)
      trTypeHor = trTypeVer = 0
 (2)(1)以外であって、暗黙的MTS有効フラグimplicitMtsEnabledが真(true)のとき、
    (2-1)イントラサブブロック分割モードのとき
    (isp_flag==true (intraSubParittion!=ISP_NO_SPLIT))
        Table 8-15の定義に従って、イントラ予測モードintraPredModeに応じて変換タイプtrTypeX(X=Hor, Ver)を設定する。
    (2-2)サブブロック変換モードのとき
     (sbt_flag==true)
        Table 8-14の定義に従って、SBTモード情報(sbt_horizontal_flag, sbt_pos_flag)に応じて変換タイプtrTypeX(X=Hor, Ver)を設定する。
    (2-3)(2-1)、(2-2)以外のとき
    (explicitMtsIntraEnabled==false && explicitMtsInterEnabled)
        trTypeHor = (nTbW>=4 && nTbW<=16 && nTbW<=nTbH) ? 1: 0
        trTypeVer  = (nTbH>=4 && nTbH<=16 && nTbH <=nTbW) ? 1: 0
        つまり、変換ブロックのサイズが4x4以上16x16以下のとき、変換ブロックの長辺側に適用する直交変換をDST-7とし、短編側に適用する直交変換をDCT-2とする。
 (3)(1)、(2)以外のとき
    Table 8-13の定義に従い、MTS識別子mtsIdxに基づいて変換タイプtrTypeX(X=Hor, Ver)を設定する。
 また、パラメータ導出部551は、パラメータ導出装置300を適用することにより、以上のように導出した変換タイプtrTypeX(X=Hor, Ver)から、修正変換タイプtrTypeX'、フリップフラグflipX(X=Hor, Ver)を以下のように導出することができる。
  trTypeX == 0(DCT-2)のとき、
    trTypeX'= trTypeX (=0)
    flipX=0
  trTypeX == 1(DST-7)のとき、
    trTypeX'= trTypeX (=1)1
    flipX=0
  trTypeX == 2(FlipDST-7)のとき、
    trTypeX'=1
    flipX=1
 なお、修正変換タイプtrTypeX'、フリップフラグflipXは、下記演算によっても設定することができる。
  trTypeX' = (trTypeX && 0x01)       (X=Hor, Ver)   (M1)
  flipX = (trTypeX && 0x10)>>1   (X=Hor, Ver)      (M2)
 すなわち、修正前の変換タイプtrTypeXの上位1ビットは、フリップの制御に関するフラグ値に対応し、下位1ビットはDCT-2または、DST-7を示すフラグ値に対応する。
 また、パラメータ導出部551は、非ゼロ領域のサイズに関する変数nonZeroWとnonZeroHを以下の式(44)および式(45)のように導出することができる。
 nonZeroW = Min( nTbW, ( trTypeHor > 0 )  ?  16  :  32 )
 ・・・(44)
 nonZeroH = Min( nTbH, ( trTypeVer > 0 )  ?  16  :  32 )
 ・・・(45)
 パラメータ導出部551は、プライマリ水平変換後の正規化に用いるシフト量fwdShift1、プライマリ垂直変換後あるいは変換スキップ時の残差の伸張後に用いるシフト量fwdShift2、および変換スキップの残差の伸張に用いるシフト量fwdTsShiftを導出する。
 シフト量fwdShift1は、以下の式(46)のように、変換ブロックの横幅サイズ(log2TbW)、ビット深度bitDepth、変換行列の整数近似精度を表すパラメータtrShift(=6)、変換係数のレンジに関するパラメータdynamicRange(=15)に基づいて値が設定される。
 fwdShift1 = log2TbW + bitDepth + trShift + 1 - dynamicRange
 ・・・(46)
 シフト量fwdShift2は、以下の式(47)のように、変換ブロックの縦幅サイズ(log2TbH)と変換行列の整数近似精度を表すパラメータtrMatShift(=6)に基づいて値が設定される。
 fwdShift2 = log2TbH + trShift + 1
 ・・・(47)
 シフト量fwdTsShiftは、以下の式(48)のように、変換係数のレンジに関するパラメータdynamicRange(=15)、ビット深度bitDepth、変換ブロックのサイズ(log2TbW, log2TbH)に基づいて値が設定される。
 fwdTsShift = dynamicRange - bitDepth - ((log2TbH + log2TbH) ≫ 1)
 ・・・(48)
  <画像符号化処理の流れ>
 次に、以上のような画像符号化装置500により実行される各処理の流れについて説明する。最初に、図30のフローチャートを参照して、画像符号化処理の流れの例を説明する。
 画像符号化処理が開始されると、ステップS501において、並べ替えバッファ511は、制御部501に制御されて、入力された動画像データのフレームの順を表示順から符号化順に並べ替える。
 ステップS502において、制御部501は、並べ替えバッファ511が保持する入力画像に対して、処理単位を設定する(ブロック分割を行う)。
 ステップS503において、制御部501は、並べ替えバッファ511が保持する入力画像についての符号化パラメータを決定(設定)する。
 ステップS504において、予測部520は、予測処理を行い、最適な予測モードの予測画像等を生成する。例えば、この予測処理において、予測部520は、イントラ予測を行って最適なイントラ予測モードの予測画像等を生成し、インター予測を行って最適なインター予測モードの予測画像等を生成し、それらの中から、コスト関数値等に基づいて最適な予測モードを選択する。
 ステップS505において、演算部512は、入力画像と、ステップS504の予測処理により選択された最適なモードの予測画像との差分を演算する。つまり、演算部512は、入力画像と予測画像との残差データDを生成する。このようにして求められた残差データDは、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
 ステップS506において、変換量子化部513は、ステップS503において生成された変換情報Tinfo等に従って、ステップS505の処理により生成された残差データDに対して変換量子化処理を行う。
 ステップS507において、逆量子化逆変換部516は、逆量子化逆変換処理を行う。この逆量子化逆変換処理は、ステップS506の変換量子化処理の逆処理であり、後述する復号側(画像復号装置600)においても、同様の処理が実行される。したがって、この逆量子化逆変換処理の説明は、復号側(画像復号装置600)を説明する際に行う。そしてその説明は、この逆量子化逆変換処理(ステップS507)に適用することができる。この処理により、逆量子化逆変換部516は、入力された係数データ(量子化係数level)に対して、適宜、逆量子化や逆直交変換を行い、残差データD'を生成する。逆量子化逆変換部516は、その残差データD'を演算部517に供給する。
 ステップS508において、演算部517は、ステップS507の逆量子化逆変換処理により導出された残差データD'に、ステップS504の予測処理により得られた予測画像を加算することにより、局所的に復号された復号画像を生成する。
 ステップS509において、インループフィルタ部518は、ステップS508の処理により導出された、局所的に復号された復号画像に対して、インループフィルタ処理を行う。
 ステップS510において、フレームメモリ519は、ステップS508の処理により導出された、局所的に復号された復号画像や、ステップS509においてフィルタ処理された、局所的に復号された復号画像を記憶する。
 ステップS511において、符号化部514は、ステップS506の処理により得られた量子化係数levelや、ステップS503において生成された変換モード情報を符号化する。例えば、符号化部514は、画像に関する情報である量子化係数levelを、算術符号化等により符号化し、符号化データを生成する。また、このとき、符号化部514は、各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo)を符号化する。さらに、符号化部514は、量子化係数levelから残差情報RInfoを導出し、その残差情報RInfoを符号化する。
 ステップS512において、蓄積バッファ515は、このようにして得られた符号化データを蓄積し、例えばビットストリームとして、それを画像符号化装置500の外部に出力する。このビットストリームは、例えば、伝送路や記録媒体を介して復号側に伝送される。
 ステップS512において、レート制御部521は、必要に応じてレート制御を行う。ステップS512の処理が終了すると、画像符号化処理が終了する。
  <変換量子化処理の流れ>
 次に、図31のフローチャートを参照して、図30のステップS506において実行される変換量子化処理の流れの例を説明する。
 変換量子化処理が開始されると、選択部531および選択部534は、ステップS531において、変換量子化バイパスを行うか否かを判定する。変換量子化バイパスを行わないと判定された場合(つまり、transquantBypassFlag == 0 の場合)、処理はステップS532に進む。
 ステップS532において、直交変換部532は、直交変換処理を行うことにより残差データrを直交変換し、変換係数を生成する。
 ステップS533において、量子化部533は、ステップS532において生成された変換係数に対して量子化を行い、量子化係数levelを生成する。ステップS533の処理が終了すると変換量子化処理が終了し、処理は図30に戻る。
 また、ステップS531において、変換量子化バイパスを行うと判定された場合(つまり、transquantBypassFlag == 1 の場合)、変換量子化処理が終了し、処理は図30に戻る。
  <直交変換処理の流れ>
 次に、図31のステップS532において実行される直交変換処理の流れの例を、図32のフローチャートを参照して説明する。
 直交変換処理が開始されると、パラメータ導出部551は、ステップS551において、変換スキップフラグ(transform_skip_flag)が偽であるか否かを判定する。変換スキップフラグが偽(=0)であると判定されると処理はステップS552に進む。
 ステップS552において、パラメータ導出部551は、変換情報Tinfoから各方向の修正変換タイプ(trTypeHor', trTypeVer')と、各方向のフリップフラグ(flipHor, flipVer)とを導出する。
 ステップS553において、パラメータ導出部551は、各方向のシフト量(fwdShift1, fwdShift2)を導出する。
 ステップS554において、プライマリ水平変換部552は、残差信号resiの水平方向の1次元信号列resi[y][n](n=0,...,nTbW-1)を入力信号x[n](n=0,...,nTbW-1)とし、x[n]に対して水平方向の1次元直交変換を行い、中間出力信号tmp1[y][n](n=0,...,nSb)を導出する(y=0,...,nTbH-1)。
 ステップS555において、正規化部553は、上述の式(42)のように、中間出力信号tmp1[y][n]の各係数(x=0,...,nTbW-1,  y=0,...,nTbH-1)をプライマリ水平変換シフト量fwdShift1で正規化し、中間出力信号tmp2を導出する。ステップS556において、バッファ554は、その中間出力信号tmp2を保持する。
 ステップS557において、プライマリ垂直変換部555は、そのバッファ554から中間出力信号tmp2を読み出し、その中間出力信号tmp2の垂直方向の1次元出力列tmp2[n][x](n=0,...,nTbH-1)を入力信号x[n](n=0,...,nTbH-1)とし、x[n]に対して、垂直方向の1次元直交変換を行い、中間出力信号tmp3[n][x](n=0,...,nTbH-1)を導出する(x=0,...,nTbW-1)。
 ステップS557の処理が終了すると処理はステップS560に進む。
 また、ステップS551において、変換スキップフラグが真であると判定された場合、処理はステップS558に進む。
 ステップS558において、パラメータ導出部551は、2次元変換スキップ時のシフト量(fwdTsShift, fwdShift2)を導出する。この場合、プライマリ水平変換部552およびプライマリ垂直変換部555の処理はスキップされる。つまり、正規化部553および正規化部556が処理を行う。
 ステップS559において、正規化部553は、以下の式(49)のように、残差信号resi[y][x]をシフト量fwdTsShiftで伸張して、中間出力信号tmp2[y][x]として出力する(x=0,...,nTbW-1,  y=0,...,nTbH-1)。ステップS559の処理が終了すると、処理はステップS560に進む。
 tmp2[y][x] = resi[y][x] << tsShift
 ・・・(49)
 ステップS560において、正規化部556は、以下の式(50)のように、中間出力信号tmp2[y][x]の各係数をシフト量fwdShift2で正規化し、変換係数coef[y][x]として出力する。
Figure JPOXMLDOC01-appb-I000044
 ・・・(50)
 ステップS560の処理が終了すると直交変換処理が終了し、処理は図31に戻る。
 以上のような直交変換処理において、例えばステップS554で行われる水平方向の1次元直交変換処理として、図5に示される1次元直交変換処理や、図13により示される1次元直交変換処理を適用してもよい。このようにすることにより、直交変換部532(すなわち画像符号化装置500)は、プライマリ水平変換において、第1の実施の形態や第2の実施の形態において説明した効果を得ることができる。したがって、画像符号化装置500は、直交変換処理や逆直交変換処理における処理遅延の増大を抑制することができる。
 また、ステップS557で行われる垂直方向の1次元直交変換処理として、図5に示される1次元直交変換処理や、図13により示される1次元直交変換処理を適用してもよい。このようにすることにより、直交変換部532(すなわち画像符号化装置500)は、プライマリ垂直変換において、第1の実施の形態や第2の実施の形態において説明した効果を得ることができる。したがって、画像符号化装置500は、直交変換処理や逆直交変換処理における処理遅延の増大を抑制することができる。
 また、ステップS552において行われるパラメータの導出処理として、図21に示されるパラメータ導出処理を適用してもよい。このようにすることにより、直交変換部532(すなわち画像符号化装置500)は、プライマリ垂直変換において、第3の実施の形態において説明した効果を得ることができる。したがって、画像符号化装置500は、直交変換処理や逆直交変換処理における処理遅延の増大を抑制することができる。
 <6.第5の実施の形態>
  <画像復号装置>
 また、以上において説明した本技術は、画像データの符号化データを復号する画像復号装置に適用することもできる。
 図33は、本技術を適用した画像処理装置の一態様である画像復号装置の構成の一例を示すブロック図である。図33に示される画像復号装置600は、動画像の符号化データを復号する装置である。例えば、画像復号装置600は、非特許文献6に記載のVVCのように、長方形のブロックを構成し得る符号化方式で符号化された動画像の符号化データを復号する。例えば、画像復号装置600は、上述の画像符号化装置500により生成された符号化データ(ビットストリーム)を復号することができる。
 なお、図33においては、処理部やデータの流れ等の主なものを示しており、図33に示されるものが全てとは限らない。つまり、画像復号装置600において、図33においてブロックとして示されていない処理部が存在したり、図33において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、画像復号装置600内の処理部等を説明する他の図においても同様である。
 図33において、画像復号装置600は、蓄積バッファ611、復号部612、逆量子化逆変換部613、演算部614、インループフィルタ部615、並べ替えバッファ616、フレームメモリ617、および予測部618を備えている。なお、予測部618は、不図示のイントラ予測部、およびインター予測部を備えている。
   <蓄積バッファ>
 蓄積バッファ611は、画像復号装置600に入力されたビットストリームを取得し、保持(記憶)する。蓄積バッファ611は、所定のタイミングにおいて、または、所定の条件が整う等した場合、蓄積しているビットストリームに含まれる符号化データを抽出し、復号部612に供給する。
   <復号部>
 復号部612は、画像の復号に関する処理を行う。例えば、復号部612は、蓄積バッファ611から供給される符号化データを入力とし、シンタックステーブルの定義に沿って、そのビット列から、各シンタックス要素のシンタックス値をエントロピ復号(可逆復号)し、パラメータを導出する。
 シンタックス要素およびシンタックス要素のシンタックス値から導出されるパラメータには、例えば、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、残差情報Rinfo、フィルタ情報Finfoなどの情報が含まれる。つまり、復号部612は、ビットストリームから、これらの情報をパースする(解析して取得する)。これらの情報について以下に説明する。
    <ヘッダ情報Hinfo>
 ヘッダ情報Hinfoは、例えば、VPS(Video Parameter Set)/SPS(Sequence ParameterSet)/PPS(Picture Parameter Set)/PH(ピクチャヘッダ)/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)は、色差コンポーネントの画素位置のタイプ(色差サンプル位置タイプとも称する)を識別する識別子である。
 なお、この色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)は、色差コンポーネントの画素位置に関する情報(chroma_sample_loc_info())として(に格納されて)伝送される。
 色差MPM識別子(chroma_mpm_idx)は、色差イントラ予測モード候補リスト(intraPredModeCandListC)の中のどの予測モード候補を色差イントラ予測モードとして指定するかを表す識別子である。
 動き予測情報MVinfoには、例えば、merge_idx, merge_flag, inter_pred_idc, ref_idx_LX, mvp_lX_flag, X={0,1}, mvd等の情報が含まれる(例えば、JCTVC-W1005, 7.3.8.6 Prediction Unit Syntaxを参照)。
 もちろん、予測モード情報Pinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
    <変換情報Tinfo>
 変換情報Tinfoには、例えば、以下の情報が含まれる。もちろん、変換情報Tinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
 処理対象変換ブロックの横幅サイズTBWSizeおよび縦幅TBHSize(または、2を底とする各TBWSize、TBHSizeの対数値log2TBWSize、log2TBHSizeであってもよい)。変換スキップフラグ(ts_flag):(逆)プライマリ変換および(逆)セカンダリ変換をスキップか否かを示すフラグである。
  スキャン識別子(scanIdx)
  量子化パラメータ(qp)
  量子化マトリックス(scaling_matrix(例えば、JCTVC-W1005, 7.3.4 Scaling list data syntax))
    <残差情報Rinfo>
 残差情報Rinfo(例えば、JCTVC-W1005の7.3.8.11 Residual Coding syntaxを参照)には、例えば以下のシンタックスが含まれる。
  cbf(coded_block_flag):残差データ有無フラグ
  last_sig_coeff_x_pos:ラスト非ゼロ係数X座標
  last_sig_coeff_y_pos:ラスト非ゼロ係数Y座標
  coded_sub_block_flag:サブブロック非ゼロ係数有無フラグ
  sig_coeff_flag:非ゼロ係数有無フラグ
  gr1_flag:非ゼロ係数のレベルが1より大きいかを示すフラグ(GR1フラグとも呼ぶ)
  gr2_flag:非ゼロ係数のレベルが2より大きいかを示すフラグ(GR2フラグとも呼ぶ)
  sign_flag:非ゼロ係数の正負を示す符号(サイン符号とも呼ぶ)
  coeff_abs_level_remaining:非ゼロ係数の残余レベル(非ゼロ係数残余レベルとも呼ぶ)
など。
 もちろん、残差情報Rinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
    <フィルタ情報Finfo>
 フィルタ情報Finfoには、例えば、以下に示す各フィルタ処理に関する制御情報が含まれる。
  デブロッキングフィルタ(DBF)に関する制御情報
  画素適応オフセット(SAO)に関する制御情報
  適応ループフィルタ(ALF)に関する制御情報
  その他の線形・非線形フィルタに関する制御情報
 より具体的には、例えば、各フィルタを適用するピクチャや、ピクチャ内の領域を指定する情報や、CU単位のフィルタOn/Off制御情報、スライス、タイルの境界に関するフィルタOn/Off制御情報などが含まれる。もちろん、フィルタ情報Finfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
 復号部612の説明に戻り、復号部612は、残差情報Rinfoを参照して、各変換ブロック内の各係数位置の量子化係数levelを導出する。復号部612は、その量子化係数levelを、逆量子化逆変換部613に供給する。
 また、復号部612は、パースしたヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoを各ブロックへ供給する。具体的には以下の通りである。
 ヘッダ情報Hinfoは、逆量子化逆変換部613、予測部618、インループフィルタ部615に供給される。予測モード情報Pinfoは、逆量子化逆変換部613および予測部618に供給される。変換情報Tinfoは、逆量子化逆変換部613に供給される。フィルタ情報Finfoは、インループフィルタ部615に供給される。
 もちろん、上述の例は一例であり、この例に限定されない。例えば、各符号化パラメータが任意の処理部に供給されるようにしてもよい。また、その他の情報が、任意の処理部に供給されるようにしてもよい。
   <逆量子化逆変換部>
 逆量子化逆変換部613は、逆量子化および逆直交変換に関する処理を行う。例えば、逆量子化逆変換部613は、復号部612から供給される処理対象の係数データを取得する。
 また、逆量子化逆変換部613は、取得した係数データの値をスケーリング(逆量子化)し、変換係数Coeff_IQを導出することができる。また、逆量子化逆変換部613は、その変換係数Coeff_IQに対して例えば逆直交変換等の逆係数変換を行い、残差データD'を導出することができる。さらに、逆量子化逆変換部613は、その残差データD'を演算部614に供給することができる。
 なお、逆量子化逆変換部613は、復号部612から供給される予測モード情報Pinfoや変換情報Tinfoを取得し、それらの情報に基づいて、逆量子化や逆係数変換等の処理を行うことができる。
   <演算部>
 演算部614は、画像に関する情報の加算に関する処理を行う。例えば、演算部614は、逆量子化逆変換部613から供給される残差データD'と、予測部618から供給される予測画像とを入力とする。演算部614は、その残差データとその残差データに対応する予測画像(予測信号)とを加算し、局所復号画像を導出する。
 演算部614は、導出した局所復号画像を、インループフィルタ部615およびフレームメモリ617に供給する。
   <インループフィルタ部>
 インループフィルタ部615は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部615は、演算部614から供給される局所復号画像と、復号部612から供給されるフィルタ情報Finfoとを入力とする。なお、インループフィルタ部615に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。
 インループフィルタ部615は、そのフィルタ情報Finfoに基づいて、局所復号画像に対して適宜フィルタ処理を行う。例えば、インループフィルタ部615は、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
 インループフィルタ部615は、符号化側(例えば画像符号化装置500のインループフィルタ部518)により行われたフィルタ処理に対応するフィルタ処理を行う。もちろん、インループフィルタ部615が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部615がウィーナーフィルタ等を適用するようにしてもよい。
 インループフィルタ部615は、フィルタ処理された局所復号画像を並べ替えバッファ616およびフレームメモリ617に供給する。
   <並べ替えバッファ>
 並べ替えバッファ616は、インループフィルタ部615から供給された局所復号画像を入力とし、それを保持(記憶)する。並べ替えバッファ616は、その局所復号画像を用いてピクチャ単位毎の復号画像を再構築し、保持する(バッファ内に格納する)。並べ替えバッファ616は、得られた復号画像を、復号順から再生順に並べ替える。並べ替えバッファ616は、並べ替えた復号画像群を動画像データとして画像復号装置600の外部に出力する。
   <フレームメモリ>
 フレームメモリ617は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ617は、演算部614より供給される局所復号画像を入力とし、ピクチャ単位毎の復号画像を再構築して、フレームメモリ617内のバッファへ格納する。
 また、フレームメモリ617は、インループフィルタ部615から供給される、インループフィルタ処理された局所復号画像を入力とし、ピクチャ単位毎の復号画像を再構築して、フレームメモリ617内のバッファへ格納する。フレームメモリ617は、適宜、その記憶している復号画像(またはその一部)を参照画像として予測部618に供給する。
 なお、フレームメモリ617が、復号画像の生成に係るヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなどを記憶するようにしても良い。
  <逆量子化逆変換部>
 図34は、図33の逆量子化逆変換部613の主な構成例を示すブロック図である。図34に示されるように、逆量子化逆変換部613は、選択部631、逆量子化部632、逆直交変換部633、および選択部634を有する。
 逆量子化部632は、選択部631を介して入力される量子化係数levelを逆量子化し、変換係数を生成する。逆量子化部632は、その生成した変換係数を逆直交変換部633に供給する。逆直交変換部633は、その変換係数に対して逆直交変換を行い、残差データr'を生成する。逆直交変換部633は、その残差データr'を選択部634に供給する。
 選択部631および選択部634は、transquantBypassFlag等に基づいて、係数データの供給元や供給先の選択を行う。例えば、transquantBypassFlag == 0 の場合、選択部631は、逆量子化逆変換部613に入力された量子化係数levelを逆量子化部632に供給する。また、選択部634は、逆直交変換部633から供給される残差データr’を取得し、それを演算部614に供給する。
 また、transquantBypassFlag == 1 の場合、逆量子化逆変換部613には残差データr'が入力される。選択部631は、その残差データr'を選択部634に供給する。また、選択部634は、その残差データr'を演算部614に供給する。つまり、逆量子化・逆直交変換がスキップされる。
  <逆直交変換部>
 図35は、図34の逆直交変換部633の主な構成例を示すブロック図である。図35に示されるように、逆直交変換部633は、パラメータ導出部651、逆プライマリ垂直変換部652、正規化部653、クリップ部654、バッファ655、逆プライマリ水平変換部656、および正規化部657を有する。
 パラメータ導出部651は、変換情報Tinfoを入力とし、各方向の変換タイプ(trTypeHor, trTypeVer)と、各方向のフリップフラグ(flipHor, flipVer)を導出する。パラメータ導出部651は、直交変換部532におけるパラメータ導出部551と同様の機能を有する。つまり、パラメータ導出部651は、パラメータ導出部551と同様に、各種パラメータを導出する。パラメータ導出部651は、導出したパラメータを逆プライマリ垂直変換部652、正規化部653、クリップ部654、逆プライマリ水平変換部656、および正規化部657に供給し得る。
 なお、パラメータ導出部651は、逆プライマリ垂直変換後の正規化に用いるシフト量invShift1、逆プライマリ水平変換後あるいは変換スキップ時の変換係数の伸張後に用いるシフト量invShift2、および変換スキップ時の変換係数の伸張に用いるシフト量invTsShiftを導出する。
 シフト量invShift1は、変換行列の整数近似精度を表すパラメータtrMatShift(=6)に基づいて、例えば以下の式(51)のように値が設定される。
 invShift1 = trMatShift + 1
 ・・・(51)
 シフト量invShift2は、変換行列の整数近似精度を表すパラメータtrMatShift(=6)、変換係数のレンジに関するパラメータdynamicRange(=15)、およびビット深度bitDepthに基づいて、例えば以下の式(52)のように値が設定される。
 invShift2 = trMatShift + dynamicRange - 1 - bitDepth
 ・・・(52)
 シフト量invTsShiftは、変換係数のレンジに関するパラメータdynamicRange(=15)、ビット深度bitDepth、および変換ブロックのサイズ(log2TbW, log2TbH)に基づいて、例えば以下の式(53)のように値が設定される。
 invTsShift = dynamicRange - bitDepth -((log2TbW + log2TbH) ≫ 1)
 ・・・(53)
 逆プライマリ垂直変換部652は、垂直方向の逆1次元変換である逆プライマリ垂直変換に関する処理を行う。例えば、逆プライマリ垂直変換部652は、変換係数coef'、変換情報Tinfo、および予測モード情報PInfo(図示せず)等を入力とし、変換係数coef'に対して逆プライマリ垂直変換を行い、得られた中間出力信号tmp1を正規化部653に供給する。
 正規化部653は、中間出力信号tmp1に対する正規化処理を行う。例えば、正規化部653は、中間出力信号tmp1とシフト量invShift1を入力とし、以下の式(54)のように、中間出力信号tmp1をシフト量invShift1で正規化(スケーリング)し、得られた正規化後の中間出力信号tmp2をクリップ部654に供給する。
Figure JPOXMLDOC01-appb-I000045
 ・・・(54)
 クリップ部654は、中間出力信号tmp2、変換係数の最小値coefMin, 最大値coefMaxを入力とし、以下の式(55)のように、中間出力信号tmp2の値を、coefMin乃至coefMaxの範囲になるようにクリップし、得られたクリップ後の中間出力信号tmp3をバッファ655へ供給する。
Figure JPOXMLDOC01-appb-I000046
 ・・・(55)
 バッファ655は、クリップ部654から供給される中間出力信号tmp3を一時的に保持し、所定のタイミング等において、逆プライマリ水平変換部656に供給する。
 逆プライマリ水平変換部656は、水平方向の逆1次元変換である逆プライマリ水平変換に関する処理を行う。例えば、逆プライマリ水平変換部656は、中間出力信号tmp3、変換情報Tinfo、および予測モード情報PInfo(図示せず)等を入力とし、中間出力信号tmp3に対して逆プライマリ水平変換を行い、得られた中間出力信号tmp4を正規化部657に供給する。
 正規化部657は、中間出力信号tmp4に対する正規化処理を行う。例えば、正規化部657は、中間出力信号tmp4とシフト量invShift2を入力とし、以下の式(56)のように、中間出力信号tmp4をシフト量invShift2で正規化(スケーリング)し、得られた正規化後の残差resi'を選択部634に供給する。
Figure JPOXMLDOC01-appb-I000047
 ・・・(56)
 このような逆直交変換部633において、逆プライマリ垂直変換部652として、上述した逆1次元直交変換装置150や逆1次元直交変換装置250を適用してもよい。このようにすることにより、逆直交変換部633(すなわち画像復号装置600)は、逆プライマリ垂直変換において、第1の実施の形態や第2の実施の形態において説明したように逆1次元直交変換処理を行うことができ、第1の実施の形態や第2の実施の形態において説明した効果を得ることができる。したがって、画像復号装置600は、逆直交変換処理における処理遅延の増大を抑制することができる。
 同様に、このような逆直交変換部633において、逆プライマリ水平変換部656として、上述した逆1次元直交変換装置150や逆1次元直交変換装置250を適用してもよい。このようにすることにより、逆直交変換部633(すなわち画像復号装置600)は、逆プライマリ水平変換において、第1の実施の形態や第2の実施の形態において説明したように逆1次元直交変換処理を行うことができ、第1の実施の形態や第2の実施の形態において説明した効果を得ることができる。したがって、画像復号装置600は、逆直交変換処理における処理遅延の増大を抑制することができる。
 もちろん、逆プライマリ垂直変換部652および逆プライマリ水平変換部656の両方に、上述した逆1次元直交変換装置150や逆1次元直交変換装置250を適用してもよい。
 また、このような逆直交変換部633において、パラメータ導出部651として、上述したパラメータ導出装置300を適用してもよい。このようにすることにより、逆直交変換部633(すなわち画像復号装置600)は、第3の実施の形態において説明したように各種パラメータを導出することができ、第3の実施の形態において説明した効果を得ることができる。したがって、画像復号装置600は、逆直交変換処理における処理遅延の増大を抑制することができる。また、画像復号装置600は、1次元変換スキップ(IDT)を適応直交変換(MTS)の枠組みに組み込むことができる。
  <画像復号処理の流れ>
 次に、以上のような構成の画像復号装置600により実行される各処理の流れについて説明する。最初に、図36のフローチャートを参照して、画像復号処理の流れの例を説明する。
 画像復号処理が開始されると、蓄積バッファ611は、ステップS601において、画像復号装置600の外部から供給されるビットストリーム(符号化データ)を取得して保持する(蓄積する)。
 ステップS602において、復号部612は、そのビットストリームから符号化データを抽出して復号し、係数データ(量子化係数levelまたは残差データr')を得る。また、復号部612は、この復号により、ビットストリームから各種符号化パラメータをパースする(解析して取得する)。
 ステップS603において、逆量子化逆変換部613は、逆量子化逆変換処理を行い、残差データr(D')を生成する。逆量子化逆変換処理については後述する。
 ステップS604において、予測部618は、ステップS602においてパースされた情報に基づいて、符号化側より指定される予測方法で予測処理を実行し、フレームメモリ617に記憶されている参照画像を参照する等して、予測画像Pを生成する。
 ステップS605において、演算部614は、ステップS603において得られた残差データD'と、ステップS604において得られた予測画像Pとを加算し、局所復号画像Rlocalを導出する。
 ステップS606において、インループフィルタ部615は、ステップS605の処理により得られた局所復号画像Rlocalに対して、インループフィルタ処理を行う。
 ステップS607において、並べ替えバッファ616は、ステップS606の処理により得られたフィルタ処理された局所復号画像Rlocalを用いて復号画像Rを導出し、その復号画像R群の順序を復号順から再生順に並べ替える。再生順に並べ替えられた復号画像R群は、動画像として画像復号装置600の外部に出力される。
 また、ステップS608において、フレームメモリ617は、ステップS605の処理により得られた局所復号画像Rlocal、および、ステップS606の処理により得られたフィルタ処理後の局所復号画像Rlocalの内、少なくとも一方を記憶する。
 ステップS608の処理が終了すると、画像復号処理が終了する。
  <逆量子化逆変換処理の流れ>
 次に、図37のフローチャートを参照して、図36のステップS603において実行される逆量子化逆変換処理の流れの例を説明する。
 逆量子化逆変換処理が開始されると、選択部631および選択部634は、ステップS631において、変換量子化バイパスを行うか否かを判定する。変換量子化バイパスを行わないと判定された場合(つまり、transquantBypassFlag == 0 の場合)、処理はステップS632に進む。この場合、選択部631は、量子化係数levelを逆量子化部632に供給する。
 ステップS632において、逆量子化部632は、選択部631を介して取得した量子化係数levelに対して逆量子化を行い、変換係数または残差データr'を生成する。逆量子化部632は、その変換係数または残差データrを逆直交変換部633に供給する。
 ステップS633において、逆直交変換部633は、その変換係数に対して逆直交変換を行い、残差データrを生成する。逆直交変換部633は、その残差データrを選択部634に供給する。選択部634は、その残差データrを演算部614に供給する。
 ステップS633の処理が終了すると、逆量子化逆変換処理が終了し、処理は図36に戻る。
 また、ステップS631において、変換量子化バイパスを行うと判定された場合(つまり、transquantBypassFlag == 1 の場合)、逆量子化逆変換処理が終了し、処理は図36に戻る。
  <逆直交変換処理の流れ>
 次に、図37のステップS633において実行される逆直交変換処理の流れの例を、図38のフローチャートを参照して説明する。
 逆直交変換処理が開始されると、パラメータ導出部651は、ステップS651において、変換スキップフラグ(transform_skip_flag)が偽であるか否かを判定する。変換スキップフラグが偽(=0)であると判定されると処理はステップS652に進む。
 ステップS652において、パラメータ導出部651は、変換情報Tinfoから各方向の修正変換タイプ(trTypeHor', trTypeVer')と、各方向のフリップフラグ(flipHor, flipVer)とを導出する。
 ステップS653において、パラメータ導出部651は、各方向のシフト量(invShift1, invShift2)と、クリップ処理の閾値(coefMin, coefMax)を導出する。
 ステップS654において、逆プライマリ垂直変換部652は、変換係数coef'の垂直方向の1次元信号列coef[n][x](n=0,...,nTbH-1)を入力信号x[n](n=0,...,nTbH-1)とし、x[n]に対して垂直方向の逆1次元直交変換を行い、中間出力信号tmp1[n][x](n=0,...,nTbH-1)を導出する(x=0,...,nTbW-1)。
 ステップS655において、正規化部653は、上述の式(54)のように、中間出力信号tmp1[y][x]の各係数(x=0,...,nTbW-1,  y=0,...,nTbH-1)をシフト量InvShift1で正規化し、中間出力信号tmp2を導出する。
 ステップS656において、クリップ部654は、上述の式(55)のように、中間出力信号tmp2[y][x]の各係数(x=0,...,nTbW-1,  y=0,...,nTbH-1)をcoefMin, coefMaxを参照してクリップし、中間出力信号tmp3を導出する。ステップS657において、バッファ655は、その中間出力信号tmp2を保持する。
 ステップS658において、逆プライマリ水平変換部656は、そのバッファ655から中間出力信号tmp3を読み出し、その中間出力信号tmp3の水平方向の1次元出力列tmp3[y][n](n=0,...,nTbW-1)を入力信号x[n](n=0,...,nTbW-1)とし、x[n]に対して、水平方向の逆1次元直交変換を行い、中間出力信号tmp4[y][n](n=0,...,nTbW-1)を導出する(y=0,...,nTbH-1)。
 ステップS658の処理が終了すると処理はステップS661に進む。
 また、ステップS651において、変換スキップフラグが真であると判定された場合、処理はステップS659に進む。
 ステップS659において、パラメータ導出部651は、2次元変換スキップ時のシフト量(invTsShift, invShift2)を導出する。この場合、逆プライマリ垂直変換部652および逆プライマリ水平変換部656の処理はスキップされる。つまり、正規化部653および正規化部657が処理を行う。
 ステップS660において、正規化部653は、以下の式(57)のように、変換係数coef'[y][x]をシフト量invTsShiftで伸張して、中間出力信号tmp4[y][x]として出力する。ステップS661の処理が終了すると、処理はステップS661に進む。
 tmp4[y][x]=coef'[y][x] << invTsShift
 ・・・(57)
 ステップS661において、正規化部657は、上述の式(56)のように、中間出力信号tmp4[y][x]の各係数をシフト量invShift2で正規化し、残差resi'[y][x]として出力する。ステップS661の処理が終了すると逆直交変換処理が終了し、処理は図37に戻る。
 以上のような逆直交変換処理において、例えばステップS654で行われる垂直方向の逆1次元直交変換処理として、図9に示される逆1次元直交変換処理や、図17により示される逆1次元直交変換処理を適用してもよい。このようにすることにより、逆直交変換部633(すなわち画像復号装置600)は、逆プライマリ垂直変換において、第1の実施の形態や第2の実施の形態において説明した効果を得ることができる。したがって、画像復号装置600は、逆直交変換処理における処理遅延の増大を抑制することができる。
 また、ステップS658で行われる水平方向の逆1次元直交変換処理として、図9に示される逆1次元直交変換処理や、図17により示される逆1次元直交変換処理を適用してもよい。このようにすることにより、逆直交変換部633(すなわち画像復号装置600)は、逆プライマリ水平変換において、第1の実施の形態や第2の実施の形態において説明した効果を得ることができる。したがって、画像復号装置600は、逆直交変換処理における処理遅延の増大を抑制することができる。
 また、ステップS652において行われるパラメータの導出処理として、図21に示されるパラメータ導出処理を適用してもよい。このようにすることにより、逆直交変換部633(すなわち画像復号装置600)は、逆プライマリ垂直変換および逆プライマリ水平変換において、第3の実施の形態において説明した効果を得ることができる。したがって、画像復号装置600は、逆直交変換処理における処理遅延の増大を抑制することができる。
 <7.付記>
  <コンピュータ>
 上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。
 図39は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
 図39に示されるコンピュータ800において、CPU(Central Processing Unit)801、ROM(Read Only Memory)802、RAM(Random Access Memory)803は、バス804を介して相互に接続されている。
 バス804にはまた、入出力インタフェース810も接続されている。入出力インタフェース810には、入力部811、出力部812、記憶部813、通信部814、およびドライブ815が接続されている。
 入力部811は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部812は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部813は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部814は、例えば、ネットワークインタフェースよりなる。ドライブ815は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア821を駆動する。
 以上のように構成されるコンピュータでは、CPU801が、例えば、記憶部813に記憶されているプログラムを、入出力インタフェース810およびバス804を介して、RAM803にロードして実行することにより、上述した一連の処理が行われる。RAM803にはまた、CPU801が各種の処理を実行する上において必要なデータなども適宜記憶される。
 コンピュータが実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア821に記録して適用することができる。その場合、プログラムは、リムーバブルメディア821をドライブ815に装着することにより、入出力インタフェース810を介して、記憶部813にインストールすることができる。
 また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部814で受信し、記憶部813にインストールすることができる。
 その他、このプログラムは、ROM802や記憶部813に、あらかじめインストールしておくこともできる。
  <情報・処理の単位>
 以上において説明した各種情報が設定されるデータ単位や、各種処理が対象とするデータ単位は、それぞれ任意であり上述した例に限定されない。例えば、これらの情報や処理が、それぞれ、TU(Transform Unit)、TB(Transform Block)、PU(Prediction Unit)、PB(Prediction Block)、CU(Coding Unit)、LCU(Largest Coding Unit)、サブブロック、ブロック、タイル、スライス、ピクチャ、シーケンス、またはコンポーネント毎に設定されるようにしてもよいし、それらのデータ単位のデータを対象とするようにしてもよい。もちろん、このデータ単位は、情報や処理毎に設定され得るものであり、全ての情報や処理のデータ単位が統一されている必要はない。なお、これらの情報の格納場所は任意であり、上述したデータ単位のヘッダやパラメータセット等に格納されるようにしてもよい。また、複数個所に格納されるようにしてもよい。
  <制御情報>
 以上の各実施の形態において説明した本技術に関する制御情報を符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可(または禁止)するか否かを制御する制御情報(例えばenabled_flag)を伝送するようにしてもよい。また、例えば、上述した本技術を適用する対象(または適用しない対象)を示す制御情報(例えばpresent_flag)を伝送するようにしてもよい。例えば、本技術を適用する(または、適用を許可若しくは禁止する)ブロックサイズ(上限若しくは下限、またはその両方)、フレーム、コンポーネント、またはレイヤ等を指定する制御情報を伝送するようにしてもよい。
  <本技術の適用対象>
 本技術は、任意の画像符号化・復号方式に適用することができる。つまり、上述した本技術と矛盾しない限り、変換(逆変換)、量子化(逆量子化)、符号化(復号)、予測等、画像符号化・復号に関する各種処理の仕様は任意であり、上述した例に限定されない。また、上述した本技術と矛盾しない限り、これらの処理の内の一部を省略してもよい。
 また本技術は、複数の視点(ビュー(view))の画像を含む多視点画像の符号化・復号を行う多視点画像符号化・復号システムに適用することができる。その場合、各視点(ビュー(view))の符号化・復号において、本技術を適用するようにすればよい。
 さらに本技術は、所定のパラメータについてスケーラビリティ(scalability)機能を有するように複数レイヤ化(階層化)された階層画像の符号化・復号を行う階層画像符号化(スケーラブル符号化)・復号システムに適用することができる。その場合、各階層(レイヤ)の符号化・復号において、本技術を適用するようにすればよい。
 また、以上においては、本技術の適用例として、1次元直交変換装置100、逆1次元直交変換装置150、1次元直交変換装置200、逆1次元直交変換装置250、パラメータ導出装置300、画像符号化装置500、および画像復号装置600について説明したが、本技術は、任意の構成に適用することができる。
 例えば、本技術は、衛星放送、ケーブル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) 残差データの1次元入力信号列のデータパスを順方向または逆方向に切り替える選択部と、
 前記選択部により切り替えられた前記データパスを介して入力される前記1次元入力信号列に対して、1次元直交変換の行列演算を行う行列演算部と
 を備える画像処理装置。
 (2) 前記行列演算部は、変換タイプ、変換サイズ、および有効領域サイズに対応する前記1次元直交変換の行列演算を行う
 (1)に記載の画像処理装置。
 (3) 前記行列演算部は、DCT-2に対応する前記1次元直交変換の行列演算、または、DST-7に対応する前記1次元直交変換の行列演算を行う
 (2)に記載の画像処理装置。
 (4) 前記行列演算部は、1次元恒等変換の行列演算を行う
 (2)または(3)に記載の画像処理装置。
 (5) 直交変換に関する情報に基づいて変換タイプを導出する変換タイプ導出部をさらに備え、
 前記行列演算部は、前記変換タイプ導出部により導出された前記変換タイプの前記1次元直交変換の行列演算を行う
 (1)乃至(4)のいずれかに記載の画像処理装置。
 (6) 前記直交変換に関する情報に基づいて前記選択部の切り替えを制御するフラグ情報を導出するフラグ導出部をさらに備え、
 前記選択部は、前記フラグ情報に基づいて前記データパスを切り替える
 (5)に記載の画像処理装置。
 (7) 前記フラグ導出部は、2次元直交変換をスキップしない場合、前記データパスを順方向に切り替えさせる値の前記フラグ情報を導出し、
 前記選択部は、前記フラグ情報に基づいて、前記データパスを順方向に切り替える
 (6)に記載の画像処理装置。
 (8) 前記行列演算部により前記1次元直交変換の行列演算が行われた前記1次元入力信号列に対して、奇数番目の信号の符号を反転する符号反転部をさらに備える
 (1)乃至(7)のいずれかに記載の画像処理装置。
 (9) 前記選択部および前記行列演算部は、入力信号アレイの水平方向および垂直方向のそれぞれについて、前記データパスの切り替えと、前記1次元直交変換の行列演算とを行う
 (1)乃至(8)のいずれかに記載の画像処理装置。
 (10) 前記行列演算部により前記水平方向について前記1次元直交変換の行列演算が行われた前記1次元入力信号列を正規化し、前記行列演算部により前記垂直方向について前記1次元直交変換の行列演算が行われた前記1次元入力信号列を正規化する正規化部をさらに備える
 (9)に記載の画像処理装置。
 (11) 前記水平方向および前記垂直方向のそれぞれについて、前記行列演算部による前記1次元直交変換の行列演算と、前記正規化部による前記正規化とが行われた前記入力信号アレイである変換係数を量子化し、量子化係数を導出する量子化部をさらに備える
 (10)に記載の画像処理装置。
 (12) 前記量子化部により導出された前記量子化係数を符号化する符号化部をさらに備える
 (11)に記載の画像処理装置。
 (13) 残差データの1次元入力信号列のデータパスを順方向または逆方向に切り替え、
 切り替えられた前記データパスを介して入力される前記1次元入力信号列に対して、1次元直交変換の行列演算を行う
 画像処理方法。
 (14) 変換係数の1次元入力信号列に対して、逆1次元直交変換の行列演算を行う行列演算部と、
 前記行列演算部により前記逆1次元直交変換の行列演算が行われた前記1次元入力信号列のデータパスを順方向または逆方向に切り替える選択部と
 を備える画像処理装置。
 (15) 前記行列演算部は、変換タイプ、変換サイズ、および有効領域サイズに対応する前記逆1次元直交変換の行列演算を行う
 (14)に記載の画像処理装置。
 (16) 前記行列演算部は、DCT-2-1に対応する前記逆1次元直交変換の行列演算、または、DST-7-1に対応する前記逆1次元直交変換の行列演算を行う
 (15)に記載の画像処理装置。
 (17) 前記行列演算部は、1次元恒等変換の行列演算を行う
 (15)または(16)に記載の画像処理装置。
 (18) 前記1次元入力信号列に対して、奇数番目の信号の符号を反転する符号反転部をさらに備え、
 前記行列演算部は、前記符号反転部により前記奇数番目の信号の符号が反転された前記1次元入力信号列に対して、前記逆1次元直交変換の行列演算を行う
 (14)乃至(17)のいずれかに記載の画像処理装置。
 (19) 符号化データを復号し、前記変換係数を導出する復号部をさらに備え、
 前記行列演算部は、前記復号部により導出された前記変換係数の前記1次元入力信号列に対して、前記逆1次元直交変換の行列演算を行う
 (14)乃至(18)のいずれかに記載の画像処理装置。
 (20) 変換係数の1次元入力信号列に対して、逆1次元直交変換の行列演算を行い、
 前記逆1次元直交変換の行列演算が行われた前記1次元入力信号列のデータパスを順方向または逆方向に切り替える
 画像処理方法。
 100 1次元直交変換装置, 101 セレクタ, 102 行列演算部, 150 逆1次元直交変換装置, 151 行列演算部, 152 セレクタ, 200 1次元直交変換装置, 201 セレクタ, 202 行列演算部, 203 符号反転部, 250 逆1次元直交変換装置, 251 符号反転部, 252 行列演算部, 253 セレクタ, 300 パラメータ導出装置, 301 変換タイプ導出部, 302 修正変換タイプ導出部, 303 フリップフラグ導出部, 500 画像符号化装置, 513 変換量子化部, 514 符号化部, 516 逆量子化逆変換部, 532 直交変換部, 551 パラメータ導出部, 552 プライマリ水平変換部, 553 正規化部, 554 バッファ, 555 プライマリ垂直変換部, 556 正規化部, 600 画像復号装置, 612 復号部, 613 逆量子化逆変換部, 633 逆直交変換部, 651 パラメータ導出部, 652 逆プライマリ垂直変換部, 653 正規化部, 654 クリップ部, 655 バッファ, 656 逆プライマリ水平変換部, 657 正規化部

Claims (20)

  1.  残差データの1次元入力信号列のデータパスを順方向または逆方向に切り替える選択部と、
     前記選択部により切り替えられた前記データパスを介して入力される前記1次元入力信号列に対して、1次元直交変換の行列演算を行う行列演算部と
     を備える画像処理装置。
  2.  前記行列演算部は、変換タイプ、変換サイズ、および有効領域サイズに対応する前記1次元直交変換の行列演算を行う
     請求項1に記載の画像処理装置。
  3.  前記行列演算部は、DCT-2に対応する前記1次元直交変換の行列演算、または、DST-7に対応する前記1次元直交変換の行列演算を行う
     請求項2に記載の画像処理装置。
  4.  前記行列演算部は、1次元恒等変換の行列演算を行う
     請求項2に記載の画像処理装置。
  5.  直交変換に関する情報に基づいて変換タイプを導出する変換タイプ導出部をさらに備え、
     前記行列演算部は、前記変換タイプ導出部により導出された前記変換タイプの前記1次元直交変換の行列演算を行う
     請求項1に記載の画像処理装置。
  6.  前記直交変換に関する情報に基づいて前記選択部の切り替えを制御するフラグ情報を導出するフラグ導出部をさらに備え、
     前記選択部は、前記フラグ情報に基づいて前記データパスを切り替える
     請求項5に記載の画像処理装置。
  7.  前記フラグ導出部は、2次元直交変換をスキップしない場合、前記データパスを順方向に切り替えさせる値の前記フラグ情報を導出し、
     前記選択部は、前記フラグ情報に基づいて、前記データパスを順方向に切り替える
     請求項6に記載の画像処理装置。
  8.  前記行列演算部により前記1次元直交変換の行列演算が行われた前記1次元入力信号列に対して、奇数番目の信号の符号を反転する符号反転部をさらに備える
     請求項1に記載の画像処理装置。
  9.  前記選択部および前記行列演算部は、入力信号アレイの水平方向および垂直方向のそれぞれについて、前記データパスの切り替えと、前記1次元直交変換の行列演算とを行う
     請求項1に記載の画像処理装置。
  10.  前記行列演算部により前記水平方向について前記1次元直交変換の行列演算が行われた前記1次元入力信号列を正規化し、前記行列演算部により前記垂直方向について前記1次元直交変換の行列演算が行われた前記1次元入力信号列を正規化する正規化部をさらに備える
     請求項9に記載の画像処理装置。
  11.  前記水平方向および前記垂直方向のそれぞれについて、前記行列演算部による前記1次元直交変換の行列演算と、前記正規化部による前記正規化とが行われた前記入力信号アレイである変換係数を量子化し、量子化係数を導出する量子化部をさらに備える
     請求項10に記載の画像処理装置。
  12.  前記量子化部により導出された前記量子化係数を符号化する符号化部をさらに備える
     請求項11に記載の画像処理装置。
  13.  残差データの1次元入力信号列のデータパスを順方向または逆方向に切り替え、
     切り替えられた前記データパスを介して入力される前記1次元入力信号列に対して、1次元直交変換の行列演算を行う
     画像処理方法。
  14.  変換係数の1次元入力信号列に対して、逆1次元直交変換の行列演算を行う行列演算部と、
     前記行列演算部により前記逆1次元直交変換の行列演算が行われた前記1次元入力信号列のデータパスを順方向または逆方向に切り替える選択部と
     を備える画像処理装置。
  15.  前記行列演算部は、変換タイプ、変換サイズ、および有効領域サイズに対応する前記逆1次元直交変換の行列演算を行う
     請求項14に記載の画像処理装置。
  16.  前記行列演算部は、DCT-2-1に対応する前記逆1次元直交変換の行列演算、または、DST-7-1に対応する前記逆1次元直交変換の行列演算を行う
     請求項15に記載の画像処理装置。
  17.  前記行列演算部は、1次元恒等変換の行列演算を行う
     請求項15に記載の画像処理装置。
  18.  前記1次元入力信号列に対して、奇数番目の信号の符号を反転する符号反転部をさらに備え、
     前記行列演算部は、前記符号反転部により前記奇数番目の信号の符号が反転された前記1次元入力信号列に対して、前記逆1次元直交変換の行列演算を行う
     請求項14に記載の画像処理装置。
  19.  符号化データを復号し、前記変換係数を導出する復号部をさらに備え、
     前記行列演算部は、前記復号部により導出された前記変換係数の前記1次元入力信号列に対して、前記逆1次元直交変換の行列演算を行う
     請求項14に記載の画像処理装置。
  20.  変換係数の1次元入力信号列に対して、逆1次元直交変換の行列演算を行い、
     前記逆1次元直交変換の行列演算が行われた前記1次元入力信号列のデータパスを順方向または逆方向に切り替える
     画像処理方法。
PCT/JP2020/009027 2019-03-11 2020-03-04 画像処理装置および方法 WO2020184314A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/436,077 US11882311B2 (en) 2019-03-11 2020-03-04 Image processing device and method
US18/540,952 US20240121438A1 (en) 2019-03-11 2023-12-15 Image processing device and method

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201962816750P 2019-03-11 2019-03-11
US201962816670P 2019-03-11 2019-03-11
US62/816750 2019-03-11
US62/816670 2019-03-11
US201962817880P 2019-03-13 2019-03-13
US62/817880 2019-03-13

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US17/436,077 A-371-Of-International US11882311B2 (en) 2019-03-11 2020-03-04 Image processing device and method
US18/540,952 Division US20240121438A1 (en) 2019-03-11 2023-12-15 Image processing device and method

Publications (1)

Publication Number Publication Date
WO2020184314A1 true WO2020184314A1 (ja) 2020-09-17

Family

ID=72427878

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/009027 WO2020184314A1 (ja) 2019-03-11 2020-03-04 画像処理装置および方法

Country Status (2)

Country Link
US (2) US11882311B2 (ja)
WO (1) WO2020184314A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114007079A (zh) * 2021-10-09 2022-02-01 上海为旌科技有限公司 变换电路、方法、装置和编码器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020066641A1 (ja) * 2018-09-25 2020-04-02 ソニー株式会社 画像処理装置および方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4245019B2 (ja) * 2006-09-04 2009-03-25 ソニー株式会社 ビューファインダ、撮像装置および表示信号生成回路
CN111133758B (zh) * 2017-09-28 2022-05-10 夏普株式会社 图像解码装置以及图像编码装置
US10536720B2 (en) * 2018-05-07 2020-01-14 Tencent America LLC Method, apparatus and medium for decoding or encoding
WO2020013541A1 (ko) * 2018-07-12 2020-01-16 엘지전자 주식회사 비디오 신호를 처리하기 위한 방법 및 장치
US20200186835A1 (en) * 2018-12-07 2020-06-11 Qualcomm Incorporated Computation of asymmetric transform pairs for video coding using adjustment stages and dct-2

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020066641A1 (ja) * 2018-09-25 2020-04-02 ソニー株式会社 画像処理装置および方法

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
K. NASER ET AL.: "CE6-related: Reduction of the number of core transforms in AMT", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU- T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, JVET-K0265, 11TH MEETING, July 2018 (2018-07-01), Ljubljana, SI, pages 1 - 5, XP030198863 *
LIM, SUNG-CHANG ET AL.: "CE6: DST-VII with residual flipping (Test 1.4)", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, JVET-K0167 R1, 11TH MEETING, July 2018 (2018-07-01), Ljubljana, SI, pages 1 - 8, XP030198705 *
TSUKUBA, TAKESHI ET AL.: "CE6: Transform Matrix Replacement (CE 6.1.8.1)", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, JVET-K00123-V2, 11TH MEETING, July 2018 (2018-07-01), Ljubljana, SI, pages 1 - 11, XP030198793 *
TSUKUBA, TAKESHI ET AL.: "Non-CE6: MTS Simplification", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, JVET-N0121- V3, 14TH MEETING, March 2019 (2019-03-01), Geneva, CH, pages 1 - 14, XP030202833 *
XIN ZHAO ET AL.: "CE6: Fast DST-7/DCT-8 with dual implementation support (Test 6.2.3", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/ IEC JTC 1/SC 29/WG 11, JVET-M0497, 13TH MEETING, January 2019 (2019-01-01), Marrakech, MA, pages 1 - 11, XP030200543 *
YIN ZHAO ET AL.: "CE6: Sub-block transform for inter blocks (CE6.4.1)", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, JVET-M0140-V3, 13TH MEETING, January 2019 (2019-01-01), Marrakech, MA, pages 1 - 18, XP030200202 *
YONGBING LIN ET AL.: "CE6-related: MTS using DST-4 and transposed DCT-2", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/ WG 11, JVET-L0353-V2, 12TH MEETING, October 2018 (2018-10-01), Macao, CN, pages 1 - 12, XP030194892 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114007079A (zh) * 2021-10-09 2022-02-01 上海为旌科技有限公司 变换电路、方法、装置和编码器

Also Published As

Publication number Publication date
US20240121438A1 (en) 2024-04-11
US20220174320A1 (en) 2022-06-02
US11882311B2 (en) 2024-01-23

Similar Documents

Publication Publication Date Title
TWI728220B (zh) 用於視訊寫碼之多種類型樹架構
EP3639518B1 (en) Intra filtering applied together with transform processing in video coding
CN110393010B (zh) 视频译码中的帧内滤波旗标
US11343538B2 (en) Image processing apparatus and method
US11445218B2 (en) Image processing apparatus and method
US11778177B2 (en) Adaptive loop filter with fixed filters
TW202013957A (zh) 影像處理裝置及方法
WO2021039650A1 (ja) 画像処理装置および方法
CN116158080A (zh) 多个自适应环路滤波器集合
CN114208199A (zh) 用于视频译码的色度帧内预测单元
US20240121438A1 (en) Image processing device and method
WO2021100588A1 (ja) 画像処理装置および方法
JP2022016726A (ja) 画像処理装置および方法
US20230179779A1 (en) Image processing device and method
CN115428447A (zh) 在视频编码中用于执行帧内预测的系统和方法
WO2019188464A1 (ja) 画像符号化装置、画像符号化方法、画像復号装置、および画像復号方法
JPWO2019159697A1 (ja) 画像処理装置および方法
WO2021117500A1 (ja) 画像処理装置、ビットストリーム生成方法、係数データ生成方法、および量子化係数生成方法
JP7470795B2 (ja) 柔軟なプロファイル構成のエンコーダ、デコーダ及び対応する方法
US20220124334A1 (en) Image processing apparatus and method
WO2020255578A1 (ja) 画像処理装置および方法
WO2020145381A1 (ja) 画像処理装置および方法
WO2020066641A1 (ja) 画像処理装置および方法
WO2021045187A1 (ja) 画像処理装置および方法
WO2021117866A1 (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: 20770152

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20770152

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP