WO2020066641A1 - Image processing device and method - Google Patents
Image processing device and method Download PDFInfo
- Publication number
- WO2020066641A1 WO2020066641A1 PCT/JP2019/035818 JP2019035818W WO2020066641A1 WO 2020066641 A1 WO2020066641 A1 WO 2020066641A1 JP 2019035818 W JP2019035818 W JP 2019035818W WO 2020066641 A1 WO2020066641 A1 WO 2020066641A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- conversion
- matrix
- unit
- dimensional
- type
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
Definitions
- the present disclosure relates to an image processing apparatus and method, and more particularly, to an image processing apparatus and method that can perform one-dimensional conversion or inverse one-dimensional conversion more easily.
- Non-Patent Document 1 there are five one-dimensional transforms (also referred to as one-dimensional orthogonal transform) of DCT-II, DST-VII, DCT-VIII, DST-I, and DST-VII as candidates for the primary transform.
- Non-Patent Document 3 ⁇ Also, type2 / type4 ⁇ AMT in which the orthogonal transform used in AMT is ⁇ DCT4 / DST4 / DCT2 / DST2 ⁇ has been proposed (for example, see Non-Patent Document 3).
- Non-Patent Document 3 furthermore, a transform matrix of 2 ⁇ N-pt DCT2 is converted / sampled / sign-inverted / flipped, and a transform matrix of 22M-ptpt2 DCM4 / DST4 / DCT2 / DST2 smaller than 2 ⁇ N-pt It was proposed to derive
- JVET-C0022 Joint Video Exploration Team (JVET) of ITU-T SG16 WP3 and ISO / IEC JTC11 / SC29 / WG 3rd Meeting: Geneva, CH, 26 May-1 June 2016 Takeshi Tsukuba, Masaru Ikeda, Teruhiko Suzuki, CE-related: AMT with only type2 / type4 DCT / DST, JVET-K0394-v2, Joint Video Experts Team (JVET) of ITU-T SG16 / WP3TC / SC29 / WG11 11th Meeting: Ljubljana, SI, 10-18 July 2018 K. Naser, F.
- the primary using the FTS operation or STF operation is Conversion (reverse primary conversion) can be realized.
- the present disclosure has been made in view of such a situation, and is intended to facilitate one-dimensional conversion or inverse one-dimensional conversion.
- An image processing device includes a decoding unit that decodes a bit stream to generate coefficient data regarding an image, and a one-dimensional signal sequence of the coefficient data generated by the decoding unit. And a flip section for performing a flip operation for rearranging the order of the first order, and performing an inverse one-dimensional conversion of the first conversion type on the one-dimensional signal sequence subjected to the flip operation by the flip section.
- a conversion matrix that is a symmetric matrix of a fourth conversion type that realizes an inverse one-dimensional conversion of the conversion type is a base conversion matrix, and a matrix operation is performed using a transpose of the base conversion matrix.
- a matrix operation unit, and a sign inversion unit that performs a sign inversion operation of inverting a sign of an odd-numbered signal of the one-dimensional signal sequence with respect to the one-dimensional signal sequence on which the matrix operation is performed by the matrix operation unit.
- An image processing method decodes a bit stream to generate coefficient data related to an image, and rearranges the order of each coefficient in a one-dimensional signal sequence of the generated coefficient data in reverse order.
- an inverse one-dimensional conversion of the first conversion type is realized by an STF operation
- the transformation matrix of the second transformation type to be used is a base transformation matrix and the inverse one-dimensional transformation of the third transformation type is realized, the fourth one of realizing the inverse one-dimensional transformation of the third transformation type by an FTS operation.
- a conversion type and a conversion matrix that is a symmetric matrix as a base conversion matrix, performs a matrix operation using a transposed matrix of the base conversion matrix, for the one-dimensional signal sequence subjected to the matrix operation,
- An image processing device includes a sign inverting unit that performs a sign inversion operation of inverting a sign of an odd-numbered signal of the one-dimensional signal sequence for a one-dimensional signal sequence of coefficient data regarding an image;
- a sign inverting unit that performs a sign inversion operation of inverting a sign of an odd-numbered signal of the one-dimensional signal sequence for a one-dimensional signal sequence of coefficient data regarding an image;
- An image processing method includes performing a sign inversion operation for inverting a sign of an odd-numbered signal of the one-dimensional signal sequence on a one-dimensional signal sequence of coefficient data relating to an image, and performing the sign inversion operation.
- a sign inversion operation for inverting a sign of an odd-numbered signal of the one-dimensional signal sequence on a one-dimensional signal sequence of coefficient data relating to an image.
- a one-dimensional conversion of the third conversion type is realized as a base conversion matrix
- a conversion matrix of a fourth conversion type and a symmetric matrix for realizing the one-dimensional conversion of the third conversion type by an STF operation Is a base conversion matrix
- a matrix operation is performed using the base conversion matrix
- a flip operation for rearranging the order of each coefficient on the one-dimensional signal sequence on which the matrix operation is performed is performed, and the flip operation is performed.
- Operation Encodes the coefficient data including the 1-dimensional signal sequence is performed, an image processing method for generating a bit stream.
- a bit stream is decoded to generate coefficient data regarding an image, and the order of each coefficient is reversed in a one-dimensional signal sequence of the generated coefficient data.
- the inverse one-dimensional conversion of the first conversion type is performed by the STF operation.
- the conversion matrix of the second conversion type that realizes the above is used as the base conversion matrix, and the inverse one-dimensional conversion of the third conversion type is realized, the inverse one-dimensional conversion of the third conversion type is realized by the FTS operation.
- a conversion matrix that is a symmetric matrix is used as a base conversion matrix, a matrix operation is performed using a transposed matrix of the base conversion matrix, and a one-dimensional signal sequence on which the matrix operation is performed is And, sign inversion operation is performed to invert the sign of the odd-numbered signal of the one-dimensional signal sequence.
- a sign inversion operation of inverting a sign of an odd-numbered signal of the one-dimensional signal sequence is performed on a one-dimensional signal sequence of coefficient data regarding an image
- conversion of the second conversion type for realizing one-dimensional conversion of the first conversion type by the FTS operation
- the matrix is a base conversion matrix and a one-dimensional conversion of a third conversion type is realized
- the matrix is a symmetric matrix of a fourth conversion type that realizes a one-dimensional conversion of the third conversion type by an STF operation.
- the transformation matrix is used as a base transformation matrix, a matrix operation is performed using the base transformation matrix, and a flip operation for rearranging the order of each coefficient is performed on the one-dimensional signal sequence on which the matrix operation has been performed.
- Coefficient data including a one-dimensional signal sequence flip operation is performed is encoded, the bit stream is generated.
- FIG. 3 is a diagram illustrating an example of one-dimensional conversion of DST2.
- FIG. 9 is a diagram illustrating an example of one-dimensional conversion of DST4.
- FIG. 4 is a diagram illustrating an example of one-dimensional conversion using an STF operation / FTS operation.
- FIG. 3 is a block diagram illustrating a main configuration example of a conversion device. 13 is a flowchart illustrating an example of the flow of a conversion process.
- FIG. 9 is a diagram for describing an example of one-dimensional conversion using an FTS operation.
- FIG. 9 is a diagram illustrating an example of inverse one-dimensional conversion using an STF operation. It is a block diagram which shows the main structural examples of an inversion apparatus. It is a flowchart explaining the example of the flow of an inverse conversion process.
- FIG. 9 is a diagram illustrating an example of deriving a base transformation matrix.
- FIG. 9 is a diagram illustrating an example of deriving a base transform matrix of DCT2.
- FIG. 9 is a diagram illustrating an example of deriving a base transform matrix of DCT4.
- FIG. 3 is a block diagram illustrating a main configuration example of a conversion device.
- FIG. 4 is a block diagram illustrating a main configuration example of a base transformation matrix derivation unit.
- FIG. 13 is a flowchart illustrating an example of the flow of a conversion process. It is a flowchart explaining the example of the flow of a base transformation matrix derivation process. It is a block diagram which shows the main structural examples of an inversion apparatus. It is a flowchart explaining the example of the flow of an inverse conversion process.
- FIG. 35 is a block diagram illustrating a main configuration example of an image encoding device. It is a block diagram which shows the main structural examples of an orthogonal transformation part.
- FIG. 3 is a block diagram illustrating a main configuration example of a primary conversion unit. It is a block diagram which shows the main structural examples of a primary horizontal conversion part.
- FIG. 3 is a block diagram illustrating a main configuration example of a primary vertical conversion unit.
- FIG. 35 is a block diagram illustrating a main configuration example of an image decoding device. It is a block diagram which shows the main structural examples of an inverse orthogonal transformation part. It is a block diagram which shows the main structural examples of an inverse primary conversion part. It is a block diagram which shows the main structural examples of an inverse primary vertical conversion part.
- FIG. 18 is a block diagram illustrating a main configuration example of a computer.
- Non-patent document 1 (described above)
- Non-patent document 2 (described above)
- Non-patent document 3 (described above)
- Non-patent document 4 (described above)
- Non-Patent Document 5 TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU (International Telecommunication Union), "Advanced video coding for generic audiovisual services", H.264, 04/2017
- Non-Patent Document 6 TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU (International Telecommunication Union), "High efficiency video coding", H.265, 12/2016
- Non-Patent Document 6 the Quad-Tree Block Structure described in Non-Patent Document 6 and the Quad Tree Plus Binary Tree (Block Tree) Structure described in Non-Patent Document 1 are not directly described in the embodiments, the present invention is not limited to this. It is within the scope of disclosure of the technology and satisfies the support requirements of the claims. Similarly, for example, technical terms such as parsing, syntax, and semantics are within the disclosure range of the present technology even if there is no direct description in the embodiment. Support requirements in the range of
- a “block” (not a block indicating a processing unit) used in the description as a partial region or a processing unit of an image (picture) indicates an arbitrary partial region in a picture unless otherwise specified.
- the size, shape, characteristics, and the like are not limited.
- “block” includes a TB (Transform @ Block), a TU (Transform @ Unit), a PB (Prediction @ Block), and a PU (Prediction @ Unit) described in Non-Patent Documents 1, 5 and 6 described above.
- SCU Mallest Coding Unit
- CU Coding Unit
- LCU Large Coding Unit
- CTB Coding Tree Unit
- CTU Coding Tree Unit
- conversion block sub block, macro block, tile, slice, etc.
- An arbitrary partial area processing unit.
- the block size may be specified directly, but also the block size may be specified indirectly.
- the block size may be specified using identification information for identifying the size.
- the block size may be specified by a ratio or a difference from the size of a reference block (for example, an LCU or an SCU).
- a reference block for example, an LCU or an SCU.
- the designation of the block size also includes designation of a range of block sizes (for example, designation of a range of allowable block sizes, etc.).
- the term “encoding” includes not only the entire process of converting an image into a bit stream but also a part of the process.
- prediction processing, orthogonal transformation, quantization not only includes a comprehensive process such as arithmetic coding, etc., but also includes a process generically referred to quantization and arithmetic coding, prediction processing, quantization and arithmetic coding Processing, etc.
- decoding includes not only the entire process of converting a bit stream into an image, but also some processes.
- it includes not only the processing including the inverse arithmetic decoding, the inverse quantization, the inverse orthogonal transform, and the prediction processing, but also the processing including the inverse arithmetic decoding and the inverse quantization, the inverse arithmetic decoding, the inverse quantization, and the prediction processing. And comprehensive processing.
- Adaptive Primary Conversion> ⁇ Conversion type setting>
- a horizontal primary conversion PThor also referred to as a primary horizontal conversion
- a vertical primary conversion PTver vertical primary conversion PTver
- An adaptive primary transform (AMT (Adaptive Multiple core Transforms)) for selecting a primary transform from a plurality of different one-dimensional orthogonal transforms adaptively for each primary vertical transform is disclosed.
- AMT is also referred to as EMT (Explicit Multiple Core Transforms).
- DCT Discrete Cosine Transform
- DST Discrete Sine Transform
- the adaptive primary conversion flag apt_flag is 1 (true) and the current CU (Coding @ Unit) including the luminance conversion block to be processed is an intra CU
- TrSetIdx 0, 1, 2
- the conversion set TrSet is uniquely determined based on (intra prediction mode information of) the correspondence table between the mode information and the conversion set. For example, as shown in the following Expressions (1) and (2), the conversion set TrSetH, TrSetV is set so that the conversion set identifier TrSetIdx that specifies the corresponding conversion set TrSet is set.
- TrSetH indicates a conversion set of the primary horizontal conversion PThor
- TrSetV indicates a conversion set of the primary vertical conversion PTver
- a lookup table LUT_IntraModeToTrSet is a correspondence table between mode information and the conversion set.
- the first array of the lookup table LUT_IntraModeToTrSet [] [] has an intra prediction mode IntraMode as an argument
- the primary conversion identifier pt_idx is derived from the primary horizontal conversion designation flag pt_hor_flag and the primary vertical conversion designation flag pt_ver_flag based on the following equation (5). That is, the upper 1 bit of the primary conversion identifier pt_idx corresponds to the value of the primary vertical conversion designation flag, and the lower 1 bit corresponds to the value of the primary horizontal conversion designation flag.
- Encoding is performed by applying arithmetic coding to the derived bin string of the primary conversion identifier pt_idx to generate a bit string.
- the adaptive primary conversion flag apt_flag and the primary conversion identifier pt_idx are signaled in a luminance conversion block.
- Non-Patent Document 1 DCT-II (DCT2), ⁇ DST-VII (DST7), ⁇ DCT-VIII (DCT8), ⁇ DST-I (DST1), ⁇ DCT-V (DCT5) )
- DCT2 DCT-2, ⁇ DST-VII (DST7), ⁇ DCT-VIII (DCT8), ⁇ DST-I (DST1), ⁇ DCT-V (DCT5)
- AMT a 2-bit index indicating which orthogonal transform is to be applied horizontally / vertically is signaled from a transform set determined by a prediction mode, and two candidates are set for each direction. One transform is selected.
- Non-Patent Document 2 two one-dimensional orthogonal transforms of DST-IV (DST4) and IDT (Identity @ Transform: one-dimensional transform skip) are added in addition to them, for a total of seven one-dimensional orthogonal transforms. was proposed as a candidate for primary conversion.
- Non-Patent Document 3 proposes a type2 / type4 AMT in which the orthogonal transform used in the AMT is ⁇ DCT4 / DST4 / DCT2 / DST2 ⁇ . Furthermore, it has been proposed to derive a transform matrix of DCT4 / DST4 / DCT2 / DST2 of 2 ⁇ M-pt smaller than 2 ⁇ N-pt by sampling / sign inversion / flip the transform matrix of 2 ⁇ N-pt DCT2.
- Non-Patent Document 4 proposes that DST4 be realized by an STF operation of DCT4 and DST2 be realized by an FTS operation of DCT2.
- the FTS operation means the sign inversion operation (S) for inverting the sign of the signal at the odd position of the input signal, the orthogonal transformation (T) of the input signal after the sign inversion operation, and the reverse order of the transformation coefficients after the orthogonal transformation.
- S sign inversion operation
- T orthogonal transformation
- F flip operation
- an input signal X is subjected to orthogonal transform processing 11 of a conversion type DST (Discrete Sine Transform) 2 and a process of outputting an output signal Y is shown in FIG.
- the FTS operation using the orthogonal transform processing 13 of the transform type DCT (Discrete Cosine Transform) 2 can be realized. That is, a sign inversion operation (S) 12 is performed on the input signal X, and an orthogonal transformation process (T) 13 of the transform type DCT2 is performed on the input signal X on which the sign inversion operation is performed.
- a flip operation (F) 14 By performing the flip operation (F) 14 on the, a process equivalent to the orthogonal transform process 11 of the transform type DST2 can be performed.
- a transformation matrix T DST2 (hereinafter, also referred to as a transformation matrix of the transformation type DST2) representing the orthogonal transformation of the transformation type DST2 is a sign inversion matrix S representing the sign inversion operation, and a transformation matrix T representing the orthogonal transformation of the transformation type DCT2.
- DCT2 (hereinafter also referred to as a transform matrix of transform type DCT2) and a flip matrix F representing a flip operation can be represented as in the following equation (6).
- the STF operation is a flip operation (F) that rearranges the order of the input signal, an orthogonal transformation (T) of the input signal after the flip operation, and a code that inverts a transformation coefficient at an odd position after the orthogonal transformation. This indicates that three processes (in the order of F ⁇ T ⁇ S) of the inversion operation (S) are performed.
- the input signal X is subjected to the orthogonal transform process 21 of the conversion type DST (Discrete Sine Transform) 4 and the process of outputting the output signal Y is shown in FIG.
- DST Discrete Sine Transform
- FIG. 2A the input signal X is subjected to the orthogonal transform process 21 of the conversion type DST (Discrete Sine Transform) 4 and the process of outputting the output signal Y is shown in FIG.
- DCT Discrete Cosine Transform
- a transformation matrix T DST4 (hereinafter, also referred to as a transformation matrix of the transformation type DST4) representing the orthogonal transformation of the transformation type DST4 is a sign inversion matrix S representing the sign inversion operation, and a transformation matrix T representing the orthogonal transformation of the transformation type DCT4.
- the following equation (7) can be used using DCT4 (hereinafter, also referred to as a transform matrix of transform type DCT4) and a flip matrix F representing a flip operation.
- the flip matrix F can be expressed as in the following equation (8).
- the sign inversion matrix S can be expressed as in the following equation (9).
- the conversion type identifier trTypeIdx for specifying the conversion type of the one-dimensional conversion is 0, that is, when the one-dimensional conversion of the conversion type DCT2 is specified, the pre-processing for the input signal is performed. Both the flip operation (F) and the sign inversion operation (S) are skipped (omitted) (False), and the conversion type is DCT2. Only a matrix operation (one-dimensional transformation) using a transformation matrix transMatrix nTbS, DCT2 of size nTbS as a base transformation matrix T base is performed.
- the input inversion operation (S) is performed on the input signal as preprocessing (True), and the flip operation ( F) is skipped (omitted) (False).
- a matrix operation one-dimensional conversion is performed on the input signal subjected to the input inversion operation, using a conversion matrix transMatrix nTbS, DCT2 having a conversion type of DCT2 and a size of nTbS as a base conversion matrix T base .
- a flip operation (F) is performed on the transform coefficient obtained by the matrix operation (True), and a sign inversion operation (S) is skipped (omitted) (False).
- FIG. 4 shows an example of a hardware configuration for realizing such processing.
- the conversion device 50 includes a control unit 51, a pre-processing unit 52, a matrix operation unit 53, and a post-processing unit 54.
- the control unit 51 executes processing executed as pre-processing or post-processing, Select a base conversion matrix (that is, a conversion type) to be used for dimensional conversion.
- the control unit 51 supplies preprocessing selection information indicating a preprocessing selection result to the preprocessing unit 52. Further, the control unit 51 supplies base matrix selection information indicating the result of base matrix selection to the matrix calculation unit 53. Further, the control unit 51 supplies post processing selection information indicating the result of the post processing selection to the post processing unit 54.
- the pre-processing unit 52 has a sign inversion unit 61 that performs a sign inversion operation and a flip unit 62 that performs a flip operation, selects one of the processing units according to the pre-processing selection information, and performs a processing on the input coefficient data Xin.
- a sign inversion unit 61 that performs a sign inversion operation
- a flip unit 62 that performs a flip operation, selects one of the processing units according to the pre-processing selection information, and performs a processing on the input coefficient data Xin.
- the matrix operation unit 53 has a base conversion matrix LUT (Look Up Table) 70.
- the base transform matrix LUT 70 stores a transform matrix 71 of transform type DCT2 and a transform matrix 72 of transform type DCT4, which are candidates for the base transform matrix.
- the post-processing unit 54 has a flip unit 81 for performing a flip operation and a sign-reversing unit 82 for performing a sign-reversing operation, selects one of the processing units according to the post-processing selection information, and converts the selected processing unit into coefficient data X ''.
- both the sign inversion unit 61 and the flip unit 62 are required as the pre-processing unit 52.
- the post-processing unit 54 requires both the configuration of the flip unit 81 and the sign inversion unit 82. Therefore, there is a possibility that the circuit scale increases and the mounting cost increases.
- control unit 51 determines the base conversion matrix selection information, the pre-processing selection information, and the post-processing selection information based on the specified conversion type and size (ie, trTypeIdx, log2TBWidth, log2TBHeight) and the like. Is set (step S51).
- the pre-processing unit 52 determines whether or not to perform the pre-processing based on the pre-processing selection information (step S52), and when performing the pre-processing, further determines the processing content (sign inversion operation or flip operation). (Step S53).
- the pre-processing unit 52 performs a sign inversion operation on the input coefficient data Xin (step S54), performs a flip operation (step S55), or skips the pre-processing according to these determination results.
- the matrix calculation unit 53 performs a matrix calculation (one-dimensional conversion) on the coefficient data X ′ using the selected base conversion matrix T base according to the base conversion matrix selection information (step S56).
- the post-processing unit 54 determines whether or not to perform post-processing based on the post-processing selection information (step S57). If the post-processing is to be performed, the post-processing unit 54 further determines the processing content (flip operation or sign inversion operation). (Step S58). The post-processing unit 54 performs a flip operation on the coefficient data X ′′ (step S59), performs a sign inversion operation (step S60), or skips the post-processing according to these determination results.
- transform matrix TDCT4 of the transformation type DCT4 the transformation matrix TDST4 of the transformation type DST4, the flip matrix F, and the sign inversion matrix S have characteristics as shown in the following equations (10) to (13). That is, transform matrix TDCT4 of transform type DCT4, transform matrix TDST4 of transform type DST4, flip matrix F, and sign inversion matrix S are symmetric matrices.
- FIG. 2A a process of performing an orthogonal transformation process 21 of a conversion type DST4 on an input signal X and outputting an output signal Y is performed as shown in FIG. 2C.
- This can be realized by an FTS operation using the orthogonal transform processing 26 of the transform type DCT4. That is, a sign inversion operation (S) 25 is performed on the input signal X, and an orthogonal transformation process (T) 26 of the transform type DCT4 is performed on the input signal X on which the sign inversion operation is performed.
- a flip operation (F) 27 on the orthogonal transform process 21
- a process equivalent to the orthogonal transform process 21 of the transform type DST4 can be performed.
- the orthogonal transformation processing 26 and the orthogonal transformation processing 23 are equivalent. That is, the transformation matrix T DST4 of the transformation type DST4 is represented by the following equation (14) using the flip matrix F representing the flip operation, the transformation matrix T DCT4 of the transformation type DCT4 , and the sign inversion matrix S representing the sign inversion operation. Can be expressed as
- the sign inversion operation (S) 12 (B in FIG. 1) and the sign inversion operation (B in FIG. 1) are performed.
- the flip operation (F) 14 (B in FIG. 1) and the flip operation (F) 27 (C in FIG. 2) can be shared.
- the pre-processing performed before the orthogonal transformation processing can be unified (to the sign inversion operation (S))
- the post-processing performed after the orthogonal transformation processing can be unified (to the flip operation (F)).
- the transpose matrix T DST2 t of the transform matrix of the transform type DST2 is obtained by using the sign inversion matrix S and the transpose matrix of the transform matrix of the transform type DCT2 based on the above-described equations (6), (12), and (13).
- T DCT2 t and the flip matrix F it can be expressed as the following equation (15).
- the transposed matrix T DST4 t of the transform matrix of the transform type DST4 is obtained by using the sign inversion matrix S and the transposed matrix of the transform matrix of the transform type DCT4 from Equations (7), (12), and (13) described above.
- T DCT4 t and the flip matrix F it can be expressed as the following equation (16).
- the expression can be modified as the following expression (17).
- the selection of the processing contents in the pre-processing and post-processing (whether to perform the sign inversion operation (S) or the flip operation (F)) can be omitted, so that one-dimensional conversion or inverse one-dimensional conversion is performed. Can be suppressed (simplification of the configuration), and one-dimensional conversion or inverse one-dimensional conversion can be performed more easily. That is, it is possible to suppress an increase in circuit scale and processing load, and to suppress an increase in mounting cost.
- FIG. 6 is a block diagram illustrating an example of a main configuration of a conversion device that is an aspect of an image processing device to which the present technology is applied.
- the conversion device 100 shown in FIG. 6 is a device that performs one-dimensional conversion of conversion types DCT2, DST2, DCT4, and DST4 on input coefficient data.
- the conversion device 100 includes a control unit 101, a sign inversion unit 102, a matrix operation unit 103, and a flip unit 104.
- the control unit 101 performs processing related to one-dimensional conversion control. For example, the control unit 101 sets a sign inversion flag (signChangeFlag), which is flag information indicating whether to perform sign inversion, based on parameters such as the input conversion type identifier trTypeIdx, and sets the sign inversion unit 102 to the sign inversion flag. To control the sign inversion operation (S). Further, for example, the control unit 101 may use the base used for matrix calculation based on parameters such as the input conversion type identifier trTypeIdx, the width log2TBWidth of the input signal processing target block, and the height log2TBHeight of the input signal processing target block.
- signChangeFlag sign inversion flag
- S sign inversion operation
- the control unit 101 may use the base used for matrix calculation based on parameters such as the input conversion type identifier trTypeIdx, the width log2TBWidth of the input signal processing target block, and the height log2TBHeight of the input signal processing target block.
- the control unit 101 sets a flip flag (flipFlag), which is flag information indicating whether or not to perform a flip operation (F), based on parameters such as the input conversion type identifier trTypeIdx. By supplying the signal to the flip unit 104, the flip operation (F) is controlled.
- flipFlag flip flag
- F flip operation
- the control unit 101 includes a sign inversion flag setting unit 111, a base conversion matrix selection unit 112, and a flip flag setting unit 113.
- the sign inversion flag setting unit 111 sets a sign inversion flag (signChangeFlag) based on parameters such as the conversion type identifier trTypeIdx.
- the base conversion matrix selection unit 112 sets base conversion matrix selection information based on parameters such as the conversion type identifier trTypeIdx, the width log2TBWidth of the input signal processing target block, and the height log2TBHeight of the input signal processing target block.
- the flip flag setting unit 113 sets a flip flag (flipFlag) based on parameters such as the conversion type identifier trTypeIdx.
- the control unit 101 has an optional configuration.
- the control unit 101 may be configured by a logic circuit that implements the above processing.
- the control unit 101 has, for example, a CPU (Central Processing Unit), a ROM (Read Only Memory), a RAM (Random Access Memory), and the like, and executes the program using them to realize the above-described processing. You may do so.
- the control unit 101 may have both of the configurations, and a part of the above processing may be realized by a logic circuit, and the other may be realized by executing a program.
- Each processing unit of the sign inversion flag setting unit 111, the base conversion matrix selection unit 112, and the flip flag setting unit 113 has an arbitrary configuration.
- each processing unit may be configured by a logic circuit that realizes the above-described processing.
- each processing unit may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program by using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing.
- each processing unit may have both configurations, and a part of the above-described processing may be realized by a logic circuit, and the other may be realized by executing a program.
- the configuration of each processing unit may be independent from each other.
- some of the processing units may realize a part of the above-described processing by a logic circuit, and some of the other processing units may execute a program. May be implemented, and another processing unit may implement the above-described processing by both the logic circuit and the execution of the program.
- the sign inversion unit 102 performs a process related to the sign inversion operation (S). For example, the sign inversion unit 102 performs a sign inversion operation (S) on the input coefficient data Xin to invert the sign of the coefficient data at the odd-numbered position to generate coefficient data X ′. Note that the sign inversion unit 102 can also skip (omit) the sign inversion operation (S). In that case, the input coefficient data Xin is used as it is as the coefficient data X ′.
- the sign inversion unit 102 selects whether or not to execute a sign inversion operation (S) based on a sign inversion flag (signChangeFlag) supplied from the control unit 101. In either case, the sign inversion unit 102 supplies the coefficient data X ′ to the matrix operation unit 103.
- Sign inverting section 102 has an arbitrary configuration.
- the sign inversion unit 102 may be configured by a logic circuit that implements the above-described processing.
- the sign inversion unit 102 may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing.
- the sign inverting unit 102 may have both configurations, and a part of the above processing may be realized by a logic circuit, and the other may be realized by executing a program.
- the matrix operation unit 103 performs a process related to the matrix operation. For example, the matrix operation unit 103 performs a matrix operation (one-dimensional conversion) using the base conversion matrix T base on the coefficient data X ′ supplied from the sign inversion unit 102 to generate coefficient data X ′′. .
- the matrix calculation unit 103 performs a matrix calculation using a conversion matrix of the conversion type specified by the base conversion matrix selection information supplied from the control unit 101.
- the matrix operation unit 103 has a base conversion matrix LUT120. In the base transform matrix LUT 120, a transform matrix 121 of a transform type DCT2 and a transform matrix 122 of a transform type DCT4 are registered (stored).
- a conversion matrix other than the conversion matrix 121 and the conversion matrix 122 may be registered in the base conversion matrix LUT 120.
- the matrix calculation unit 103 reads a conversion matrix of the conversion type specified by the base conversion matrix selection information from the base conversion matrix LUT 120, and uses the conversion matrix as a base conversion matrix in the matrix calculation for the coefficient data X ′.
- the matrix operation unit 103 supplies the generated coefficient data X ′′ to the flip unit 104.
- the matrix operation unit 103 has an arbitrary configuration.
- the matrix operation unit 103 may be configured by a logic circuit that implements the above-described processing.
- the matrix operation unit 103 may include, for example, a CPU, a ROM, a RAM, and the like, and execute the program using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing.
- the matrix operation unit 103 may have both configurations, and a part of the above processing may be realized by a logic circuit, and the other may be realized by executing a program.
- the matrix operation unit 103 has a storage area such as a RAM, for example, and forms the base conversion matrix LUT 120.
- the flip unit 104 performs a process related to the flip operation (F). For example, the flip unit 104 performs a flip operation (F) on the coefficient data X ′′ to rearrange the order of the coefficient data in the reverse order, and generates output coefficient data Xout.
- the flip unit 104 can skip (omit) the flip operation (F). In that case, the coefficient data X ′′ is directly used as the output coefficient data Xout.
- the flip unit 104 selects whether to execute a flip operation (F) based on a flip flag (flipFlag) supplied from the control unit 101. In either case, the flip unit 104 outputs the output coefficient data Xout to the outside of the conversion device 100.
- the flip unit 104 has an optional configuration.
- the flip unit 104 may be configured by a logic circuit that realizes the above processing.
- the flip unit 104 may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing.
- the flip unit 104 may have both configurations, and a part of the above processing may be realized by a logic circuit, and the other may be realized by executing a program.
- the control unit 101 performs control as shown in the table in FIG. For example, when the input conversion type identifier trTypeIdx is 0, the control unit 101 controls the conversion type (trType) to perform one-dimensional conversion of DCT2. That is, the control unit 101 sets the sign inversion flag (signChangeFlag) to false (for example, 0) using the sign inversion flag setting unit 111. Further, the control unit 101 uses the base transformation matrix selection unit 112 to generate base transformation matrix selection information that specifies a base transformation matrix transMatrix nTbS, DCT2 of the transformation type DCT2 and the size of nTbS ⁇ nTbS.
- control unit 101 sets the flip flag (flipFlag) to false (for example, 0) using the flip flag setting unit 113. That is, in this case, only the matrix operation using the transform matrix of the transform type DCT2 is performed, and the sign inversion operation (S) on the input coefficient data Xin and the flip operation (F) on the coefficient data X ′′ that is an orthogonal transformation coefficient are performed. Is skipped.
- the control unit 101 controls so that the conversion type (trType) performs one-dimensional conversion of DCT4. That is, the control unit 101 uses the sign inversion flag setting unit 111 to set the sign inversion flag to False (for example, 0). In addition, the control unit 101 uses the base transformation matrix selection unit 112 to generate base transformation matrix selection information that specifies a base transformation matrix transMatrix nTbS, DCT4 of the transformation type DCT4 and the size of nTbS ⁇ nTbS. Further, the control unit 101 sets the flip flag to False (for example, 0) using the flip flag setting unit 113.
- the control unit 101 controls so that the conversion type (trType) performs one-dimensional conversion of DST4. That is, the control unit 101 sets the sign inversion flag to True (for example, 1) by using the sign inversion flag setting unit 111.
- the control unit 101 uses the base transformation matrix selection unit 112 to generate base transformation matrix selection information that specifies a base transformation matrix transMatrix nTbS, DCT4 of the transformation type DCT4 and the size of nTbS ⁇ nTbS. Further, the control unit 101 sets the flip flag to True (for example, 1) using the flip flag setting unit 113.
- the control unit 101 controls so that the conversion type (trType) is one-dimensional conversion of DST2. That is, the control unit 101 sets the sign inversion flag to True (for example, 1) by using the sign inversion flag setting unit 111. Further, the control unit 101 uses the base transformation matrix selection unit 112 to generate base transformation matrix selection information that specifies a base transformation matrix transMatrix nTbS, DCT2 of the transformation type DCT2 and the size of nTbS ⁇ nTbS. Further, the control unit 101 sets the flip flag to True (for example, 1) using the flip flag setting unit 113.
- the conversion apparatus 100 can perform one-dimensional conversion of the conversion type DCT2 or DCT4 by skipping the sign inversion operation (S) and the flip operation (F). In addition, the conversion apparatus 100 can perform the sign inversion operation (S) and the flip operation (F), and perform one-dimensional conversion of the conversion type DST2 or DST4 by the FTS operation.
- the conversion apparatus 100 can use the pre-processing unit for the conversion type DST2 and the pre-processing unit for the conversion type DST4 in common with the sign inversion unit 102.
- a post-processing unit for the conversion type DST2 and a post-processing unit for the conversion type DST4 can be shared by the flip unit 104. Therefore, it is possible to suppress an increase in circuit scale and an increase in mounting cost (the circuit scale can be reduced and the mounting cost can be reduced).
- the control unit 101 determines in step S101 that the conversion type supplied from outside the conversion device 100 Based on trTypeIdx and size (log2TBWidth, log2TBHeight), base conversion matrix selection information, sign inversion flag (signChangeFlag), and flip flag (flipFlag) are set as described above.
- step S103 the sign inversion unit 102 performs a sign inversion operation (S) on the input coefficient data Xin that is a one-dimensional signal sequence, and generates coefficient data X ′ that is a one-dimensional signal sequence.
- This sign inversion operation (S) can be expressed, for example, as in the following Expression (18).
- step S103 When the process in step S103 ends, the process proceeds to step S104. If it is determined in step S102 that the value of the sign inversion flag is false (False) and the sign inversion operation (S) is not to be performed, the process of step S103 is skipped, and the input coefficient data Xin is directly used as the coefficient data. X 'is set, and the process proceeds to step S104.
- step S104 the matrix computing unit 103 obtains the base transform matrix T base selected, i.e., the base transform matrix T base specified by the base transform matrix selected information set in step S101 from the base transformation matrix LUT 120, A matrix operation (one-dimensional conversion) is performed on the coefficient data X ′, which is a one-dimensional signal sequence, using the data to generate coefficient data X ′′, which is a one-dimensional signal sequence.
- This matrix operation can be represented, for example, by the following equation (19).
- step S106 the flip unit 104 performs a flip operation (F) on the coefficient data X ′′ that is the one-dimensional signal sequence obtained in step S104, and generates output coefficient data Xout that is a one-dimensional signal sequence.
- This flip operation (F) can be expressed, for example, as in the following equation (20).
- the flip unit 104 outputs the generated output coefficient data Xout to the outside of the conversion device 100.
- the conversion processing ends. If it is determined in step S105 that the value of the flip flag is false (False) and the flip operation (F) is not to be performed, the process of step S106 is skipped, and the coefficient data X ′′ is output as is as the output coefficient data. Xout is output to the outside of the conversion device 100. When the output coefficient data Xout is output, the conversion process ends.
- the conversion device 100 can suppress the complexity of the configuration of the one-dimensional conversion (simplify the configuration), and can perform the one-dimensional conversion more easily.
- the conversion apparatus 100 realizes the one-dimensional conversion of the conversion type DST2 by the FTS operation including the one-dimensional conversion of the conversion type DCT2, and the conversion device 100 performs the one-dimensional conversion of the conversion type DST4 by the FTS operation including the one-dimensional conversion of the conversion type DCT4.
- the conversion type applicable to the conversion device 100 is not limited to the above-described example.
- a one-dimensional conversion using a conversion matrix of a first conversion type is equivalent to an FTS operation including a one-dimensional conversion using a conversion matrix of a second conversion type different from the first conversion type.
- the first conversion type and the second conversion type can be applied to the conversion device 100.
- the conversion type DST2 is the first conversion type
- the conversion type DCT2 is the second conversion type.
- the relationship that can realize the one-dimensional conversion using the conversion matrix of the first conversion type by the FTS operation including the one-dimensional conversion using the conversion matrix of the second conversion type is described as “the FTS operation. Also referred to as a “paired relationship”.
- the first conversion type and the second conversion type having such a relationship are also referred to as “conversion types that are paired by the FTS operation”.
- the conversion type paired by the FTS operation of the first conversion type is the second conversion type. Therefore, the one-dimensional conversion using the conversion matrix of the first conversion type is realized by the FTS operation including the one-dimensional conversion using the conversion matrix of the second conversion type, which is the conversion type paired by the FTS operation. Can be.
- one-dimensional conversion using a conversion matrix of a third conversion type different from the first conversion type and the second conversion type and a fourth conversion type different from the first to third conversion types.
- a third conversion type and a fourth conversion type in which an STF operation including a one-dimensional conversion using a conversion matrix of the following conversion type is equivalent, and the conversion matrix of the fourth conversion type is a symmetric matrix, It can be applied to the conversion device 100.
- the conversion type DST4 is the third conversion type
- the conversion type DCT4 is the fourth conversion type.
- the relationship that can realize the one-dimensional conversion using the conversion matrix of the third conversion type by the STF operation including the one-dimensional conversion using the conversion matrix of the fourth conversion type is described as “by the STF operation. Also referred to as a “paired relationship”. Further, the third conversion type and the fourth conversion type having such a relationship are also referred to as “conversion types paired by the STF operation”. For example, the conversion type paired by the STF operation of the third conversion type is the fourth conversion type. Therefore, the one-dimensional transformation using the transformation matrix of the third transformation type includes the FTS including the one-dimensional transformation using the transformation matrix that is the symmetric matrix of the fourth transformation type that is the transformation type paired by the STF operation. It can be realized by operation.
- the one-dimensional conversion using the conversion matrix of the conversion type DST4 can be realized by an FTS operation including the one-dimensional conversion using the conversion matrix of the conversion type DCT4. That is, the one-dimensional conversion using the conversion matrix of the third conversion type can be realized by an FTS operation including the one-dimensional conversion using the conversion matrix of the fourth conversion type. That is, the fourth conversion types are the “conversion types paired by the STF operation” and the “conversion types paired by the FTS operation” of the third conversion type.
- the conversion device 100 A sign inversion unit that performs a sign inversion operation (S) for inverting the sign of the odd-numbered signal of the one-dimensional signal sequence with respect to the one-dimensional signal sequence of the coefficient data regarding the image; For the one-dimensional signal sequence subjected to the sign inversion operation by the sign inversion unit, When realizing a one-dimensional conversion of the first conversion type, a conversion matrix of a second conversion type for realizing a one-dimensional conversion of the first conversion type by an FTS operation is set as a base conversion matrix, When a one-dimensional conversion of the third conversion type is realized, a conversion matrix that is a symmetric matrix of a fourth conversion type that realizes a one-dimensional conversion of the third conversion type by an STF operation is a base conversion matrix, A matrix operation unit that performs a matrix operation using the base transformation matrix; And a flip unit that performs a flip operation (F) for rearranging the order of each coefficient in the reverse order on the one-dimensional signal sequence on which the matrix operation is performed by
- a sign inversion operation (S) for inverting the sign of the odd-numbered signal of the one-dimensional signal sequence is performed on the one-dimensional signal sequence of the coefficient data relating to the image
- a conversion matrix of a second conversion type for realizing a one-dimensional conversion of the first conversion type by an FTS operation is set as a base conversion matrix
- a conversion matrix that is a symmetric matrix of a fourth conversion type that realizes a one-dimensional conversion of the third conversion type by an STF operation is a base conversion matrix
- a flip operation (F) for rearranging the order of each coefficient in reverse order may be performed on the one-dimensional signal sequence on which the matrix operation has been performed.
- the conversion apparatus 100 can perform one-dimensional conversion more easily.
- conversion type paired by the STF operation and the “conversion type paired by the FTS operation” are not distinguished from each other, they are also referred to as “paired conversion type”.
- the conversion apparatus 100 When realizing the one-dimensional conversion of the second conversion type or the fourth conversion type, the conversion apparatus 100 skips the sign inversion operation and the flip operation (F), and performs the conversion on the one-dimensional signal sequence of the coefficient data.
- the matrix operation may be performed using a conversion matrix of the second or fourth conversion type as a base conversion matrix. By doing so, the conversion device 100 can easily realize one-dimensional conversion of the second conversion type or the fourth conversion type.
- the conversion apparatus 100 further includes a sign inversion flag setting unit that sets a sign inversion flag indicating whether or not to perform the sign inversion operation (S) based on the designated conversion type of the one-dimensional conversion. However, based on the sign inversion flag set by the sign inversion flag setting unit, the sign inversion operation (S) may be performed or skipped (select and execute).
- the conversion apparatus 100 further includes a flip flag setting unit that sets a flip flag indicating whether or not to perform a flip operation (F) based on the specified conversion type of the one-dimensional conversion.
- the flip operation (F) may be performed or skipped (either selected and executed) based on the flip flag set by the flag setting unit.
- the conversion apparatus 100 can easily control whether to execute or skip the sign inversion operation and the flip operation (F) based on the designation of the conversion type of the one-dimensional conversion. Therefore, the conversion device 100 can more easily realize each one-dimensional conversion of the first to fourth conversion types.
- the conversion apparatus 100 selects which of the second conversion type conversion matrix and the fourth conversion type conversion matrix is to be used as the base conversion matrix, based on the specified one-dimensional conversion conversion type.
- a base conversion matrix selection unit may be provided, and a matrix operation may be performed using the base conversion matrix selected by the base conversion matrix selection unit.
- the conversion apparatus 100 can easily select the base conversion matrix to be used based on the specification of the conversion type of the one-dimensional conversion. Therefore, the conversion device 100 can more easily realize each one-dimensional conversion of the first to fourth conversion types.
- FIG. 9 is a block diagram illustrating an example of a main configuration of an inverse conversion device that is an aspect of an image processing device to which the present technology is applied.
- the inverse transform device 150 shown in FIG. 6 is a device that performs an inverse one-dimensional transform of transform types DCT2, DST2, DCT4, and DST4 on input coefficient data (orthogonal transform coefficients).
- the inverse conversion device 150 is a device corresponding to the conversion device 100 described above in the first embodiment, and performs an inverse one-dimensional conversion which is an inverse process of the one-dimensional conversion performed by the conversion device 100.
- the inverse transform device 150 includes a control unit 151, a flip unit 152, a matrix operation unit 153, and a sign inversion unit 154.
- the control unit 151 performs a process related to control of the inverse one-dimensional conversion. For example, the control unit 151 sets a flip flag (flipFlag), which is flag information indicating whether or not to perform a flip operation (F), based on the input parameters such as the conversion type identifier trTypeIdx, and sets the flip flag.
- the flip operation (F) is controlled by supplying the signal to the terminal 152.
- the control unit 151 may use the base used for matrix calculation based on parameters such as the input conversion type identifier trTypeIdx, the width log2TBWidth of the input signal processing target block, and the height log2TBHeight of the input signal processing target block.
- the control unit 151 sets a sign inversion flag (signChangeFlag) which is flag information indicating whether or not to perform sign inversion based on parameters such as the input conversion type identifier trTypeIdx, and sets the sign inversion to sign inversion.
- the sign inversion operation (S) is controlled by supplying the signal to the unit 154.
- the control unit 151 includes a flip flag setting unit 161, a base conversion matrix selection unit 162, and a sign inversion flag setting unit 163.
- the flip flag setting unit 161 sets a flip flag (flipFlag) based on parameters such as the conversion type identifier trTypeIdx.
- the base conversion matrix selection unit 162 sets base conversion matrix selection information based on parameters such as the conversion type identifier trTypeIdx, the width log2TBWidth of the input signal processing target block, and the height log2TBHeight of the input signal processing target block.
- the sign inversion flag setting unit 163 sets a sign inversion flag (signChangeFlag) based on parameters such as the conversion type identifier trTypeIdx.
- the control unit 151 has an optional configuration.
- the control unit 151 may be configured by a logic circuit that implements the above processing.
- the control unit 151 may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program by using the CPU, the ROM, the RAM, and the like to realize the above-described processing.
- the control unit 151 may have both of the configurations, and a part of the above-described processing may be realized by a logic circuit, and the other may be realized by executing a program.
- Each processing unit of the flip flag setting unit 161, the base conversion matrix selecting unit 162, and the sign inversion flag setting unit 163 has an arbitrary configuration.
- each processing unit may be configured by a logic circuit that realizes the above-described processing.
- each processing unit may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program by using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing.
- each processing unit may have both configurations, and a part of the above-described processing may be realized by a logic circuit, and the other may be realized by executing a program.
- the configuration of each processing unit may be independent from each other.
- some of the processing units may realize a part of the above-described processing by a logic circuit, and some of the other processing units may execute a program. May be implemented, and another processing unit may implement the above-described processing by both the logic circuit and the execution of the program.
- the flip unit 152 performs a process related to the flip operation (F). For example, the flip unit 152 performs a flip operation (F) for rearranging the order of the coefficient data on the input coefficient data Xin in reverse order, and generates coefficient data X ′.
- the flip unit 152 can skip (omit) the flip operation (F). In that case, the input coefficient data Xin is used as it is as the coefficient data X ′.
- the flip unit 152 selects whether to execute a flip operation (F) based on the flip flag (flipFlag) supplied from the control unit 151. In any case, the flip unit 152 supplies the coefficient data X ′ to the matrix operation unit 153.
- the flip section 152 has an optional configuration.
- the flip unit 152 may be configured by a logic circuit that implements the above-described processing.
- the flip unit 152 may include, for example, a CPU, a ROM, a RAM, and the like, and may execute a program using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing.
- the flip unit 152 may have both configurations, and a part of the above processing may be realized by a logic circuit, and the other may be realized by executing a program.
- the matrix calculation unit 153 performs a process related to the matrix calculation. For example, the matrix operation unit 153 performs a matrix operation (inverse one-dimensional conversion) on the coefficient data X ′ supplied from the flip unit 152 using the transposed matrix T base t of the base conversion matrix, and obtains the coefficient data X ′. 'Is generated. The matrix calculation unit 153 performs a matrix calculation using the transposed matrix T base t of the base conversion matrix of the conversion type specified by the base conversion matrix selection information supplied from the control unit 151.
- the matrix operation unit 153 has a base conversion matrix LUT 170. In the base transformation matrix LUT 170, a transformation matrix 171 of the transformation type DCT2 and a transformation matrix 172 of the transformation type DCT4 are registered (stored).
- a conversion matrix other than the conversion matrix 171 and the conversion matrix 172 may be registered in the base conversion matrix LUT 170.
- the matrix calculation unit 153 reads a conversion matrix of the conversion type specified by the base conversion matrix selection information from the base conversion matrix LUT 170, and uses the conversion matrix as a base conversion matrix in the matrix calculation for the coefficient data X ′. That is, the matrix calculation unit 153 performs a matrix calculation on the coefficient data X ′ using the transposed matrix T base t of the base conversion matrix read from the base conversion matrix LUT 170.
- the matrix operation unit 153 supplies the generated coefficient data X ′′ to the sign inversion unit 154.
- the matrix operation unit 153 has an arbitrary configuration.
- the matrix operation unit 153 may be configured by a logic circuit that implements the above-described processing.
- the matrix operation unit 153 may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing.
- the matrix operation unit 153 may have both configurations, and a part of the above processing may be realized by a logic circuit, and the other may be realized by executing a program.
- the matrix operation unit 153 has a storage area such as a RAM, for example, and forms the base conversion matrix LUT 170.
- the sign inversion unit 154 performs a process related to the sign inversion operation (S). For example, the sign inversion unit 154 performs a sign inversion operation (S) on the coefficient data X ′′ to invert the sign of the coefficient data at the odd-numbered position to generate output coefficient data Xout. Note that the sign inversion unit 154 can also skip (omit) the sign inversion operation (S). In that case, the coefficient data X ′′ is directly used as the output coefficient data Xout. The sign inversion unit 154 selects whether or not to execute the sign inversion operation (S) based on the sign inversion flag (signChangeFlag) supplied from the control unit 151. In any case, the sign inversion unit 154 outputs the output coefficient data Xout to the outside of the inverse transform device 150.
- S sign inversion operation
- the sign inversion unit 154 has an optional configuration.
- the sign inversion unit 154 may be configured by a logic circuit that implements the above-described processing.
- the sign inverting unit 154 may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing.
- the sign inverting unit 154 may have both configurations, and a part of the above processing may be realized by a logic circuit, and the other may be realized by executing a program.
- the control unit 151 performs control as shown in the table in FIG. For example, when the input conversion type identifier trTypeIdx is 0, the control unit 151 controls so that the conversion type (trType) performs the inverse one-dimensional conversion of DCT2. That is, the control unit 151 sets the flip flag (flipFlag) to False (for example, 0) by using the flip flag setting unit 161. Further, the control unit 151 uses the base transformation matrix selection unit 162 to generate base transformation matrix selection information that specifies the base transformation matrix transMatrix nTbS, DCT2 of the transformation type DCT2 and the size of nTbS ⁇ nTbS.
- control unit 151 sets the sign inversion flag (signChangeFlag) to false (for example, 0) using the sign inversion flag setting unit 163. That is, in this case, only the matrix operation using the transposed matrix (transMatrix nTbS, DCT2 ) t of the transform matrix of the transform type DCT2 is performed, and the flip operation (F) on the input coefficient data Xin and the code on the coefficient data X ′′ are performed. The inversion operation (S) is skipped.
- the control unit 151 controls the conversion type (trType) to perform inverse one-dimensional conversion of DCT4. That is, the control unit 151 sets the flip flag to False (for example, 0) using the flip flag setting unit 161.
- the control unit 151 uses the base transformation matrix selection unit 162 to generate base transformation matrix selection information that specifies the base transformation matrix transMatrix nTbS, DCT4 of the transformation type DCT4 and the size of nTbS ⁇ nTbS. Further, the control unit 151 sets the sign inversion flag to False (for example, 0) using the sign inversion flag setting unit 163.
- the control unit 151 controls so that the conversion type (trType) performs the inverse one-dimensional conversion of DST4. That is, the control unit 151 sets the flip flag to True (for example, 1) using the flip flag setting unit 161.
- the control unit 151 uses the base transformation matrix selection unit 162 to generate base transformation matrix selection information that specifies the base transformation matrix transMatrix nTbS, DCT4 of the transformation type DCT4 and the size of nTbS ⁇ nTbS. Further, the control unit 151 sets the sign inversion flag to True (for example, 1) by using the sign inversion flag setting unit 163.
- a flip operation (F) on the input coefficient data Xin a matrix operation using the transposed matrix (transMatrix nTbS, DCT4 ) t of the conversion matrix of the conversion type DCT4, and a sign inversion operation on the coefficient data X ′′ ( S) is executed.
- the control unit 151 controls so that the conversion type (trType) performs the inverse one-dimensional conversion of DST2. That is, the control unit 151 sets the flip flag to True (for example, 1) using the flip flag setting unit 161. Further, the control unit 151 uses the base transformation matrix selection unit 162 to generate base transformation matrix selection information that specifies the base transformation matrix transMatrix nTbS, DCT2 of the transformation type DCT2 and the size of nTbS ⁇ nTbS. Further, the control unit 151 sets the sign inversion flag to True (for example, 1) by using the sign inversion flag setting unit 163.
- the flip operation (F) on the input coefficient data Xin the matrix operation using the transposed matrix (transMatrix nTbS, DCT2 ) t of the conversion matrix of the conversion type DCT2, and the sign inversion operation ( S) is executed.
- the inverse transform device 150 can perform the inverse one-dimensional transform of the transform type DCT2 or DCT4 by skipping the flip operation (F) and the sign inversion operation (S). In addition, the inverse transform device 150 executes the flip operation (F) and the sign inversion operation (S), and can perform the inverse one-dimensional conversion of the conversion type DST2 or DST4 by the STF operation.
- the inverse conversion device 150 can share the pre-processing unit for the conversion type DST2 and the pre-processing unit for the conversion type DST4 with the flip unit 152.
- the post-processing unit for the conversion type DST2 and the post-processing unit for the conversion type DST4 can be shared by the sign inversion unit 154. Therefore, it is possible to suppress an increase in circuit scale and an increase in mounting cost (the circuit scale can be reduced and the mounting cost can be reduced).
- the control unit 151 (the flip flag setting unit 161, the base conversion matrix selection unit 162, and the sign inversion flag setting unit 163) in step S151, converts the conversion type trTypeIdx and the size (log2TBWidth, log2TBHeight). ),
- the base conversion matrix selection information, the flip flag (flipFlag), and the sign inversion flag (signChangeFlag) are set as described above.
- step S153 the flip unit 152 performs a flip operation (F) on the input coefficient data Xin that is a one-dimensional signal sequence, and generates coefficient data X ′ that is a one-dimensional signal sequence.
- This flip operation (F) can be expressed, for example, as in the following equation (21).
- step S153 ends, the process proceeds to step S154. If it is determined in step S152 that the value of the flip flag is false (False) and the flip operation (F) is not to be performed, the process of step S153 is skipped, and the input coefficient data Xin is directly used as the coefficient data X ′. , And the process proceeds to step S154.
- step S154 the matrix calculator 153 obtains the base transform matrix T base selected, i.e., the base transform matrix T base specified by the base transform matrix selected information set in step S151 from the base transformation matrix LUT 170, A matrix operation (inverse one-dimensional conversion) is performed on the coefficient data X ′ that is a one-dimensional signal sequence using the transposed matrix to generate coefficient data X ′′ that is a one-dimensional signal sequence.
- This matrix operation can be represented, for example, by the following equation (22).
- step S156 the sign inversion unit 154 performs a sign inversion operation (S) on the coefficient data X ′′ that is the one-dimensional signal sequence obtained in step S154, and outputs the output coefficient data Xout that is the one-dimensional signal sequence.
- This sign inversion operation (S) can be expressed, for example, as in the following Expression (23).
- the sign inversion unit 154 outputs the generated output coefficient data Xout to the outside of the inverse transform device 150.
- the conversion processing ends. If it is determined in step S155 that the value of the sign inversion flag is false (False) and the sign inversion operation (S) is not performed, the process in step S156 is skipped, and the coefficient data X ′′ is output as it is.
- the data is set as coefficient data Xout and output to the outside of the inverse transform device 150. When the output coefficient data Xout is output, the inverse conversion processing ends.
- the inverse transform device 150 can suppress the complexity of the configuration of the inverse one-dimensional transform (simplify the configuration), and can more easily perform the inverse one-dimensional transform.
- the inverse transform apparatus 150 realizes the inverse one-dimensional transform of the transform type DST2 by the STF operation including the inverse one-dimensional transform of the transform type DCT2, and the STF operation including the inverse one-dimensional transform of the transform type DCT4.
- the conversion type applicable to the inverse conversion device 150 is not limited to the above-described example.
- an inverse one-dimensional transform using a transform matrix of a first transform type is equivalent to an STF operation including an inverse one-dimensional transform using a transform matrix of a second transform type different from the first transform type.
- the first conversion type and the second conversion type can be applied to the inverse conversion device 150.
- the conversion type DST2 is the first conversion type
- the conversion type DCT2 is the second conversion type.
- the first transfer is performed by the STF operation including the inverse one-dimensional conversion using the conversion matrix of the second conversion type.
- the relationship that can realize the inverse one-dimensional transformation using the transformation type transformation matrix is also referred to as “the relationship paired by the STF operation”.
- the first conversion type and the second conversion type having such a relationship are also referred to as “conversion types paired by the STF operation”.
- the conversion type paired by the STF operation of the first conversion type is the second conversion type. Therefore, the inverse one-dimensional transformation using the transformation matrix of the first transformation type is realized by the STF operation including the inverse one-dimensional transformation using the transformation matrix of the second transformation type, which is the transformation type paired by the STF operation. can do.
- an inverse one-dimensional conversion using a conversion matrix of a third conversion type different from the first conversion type and the second conversion type, and a first conversion type different from the first to third conversion types can also be applied to the inverse converter 150.
- the conversion type DST4 is the third conversion type
- the conversion type DCT4 is the fourth conversion type.
- the FTS operation including the inverse one-dimensional conversion using the conversion matrix of the fourth conversion type performs the third operation.
- the relationship that can implement the inverse one-dimensional transformation using the transformation type transformation matrix is also referred to as “the relationship paired by the FTS operation”.
- the third conversion type and the fourth conversion type having such a relationship are also referred to as “conversion types paired by the FTS operation”.
- the conversion type paired by the FTS operation of the third conversion type is the fourth conversion type.
- the inverse one-dimensional transformation using the transformation matrix of the third transformation type is the inverse one-dimensional transformation using the transformation matrix that is the symmetric matrix of the fourth transformation type, which is the transformation type paired by the FTS operation. It can be realized by including FTS operation.
- the inverse one-dimensional transform using the transform matrix of the transform type DST4 can be realized by an STF operation including the inverse one-dimensional transform using the transform matrix of the transform type DCT4. That is, the inverse one-dimensional conversion using the conversion matrix of the third conversion type can be realized by the STF operation including the one-dimensional conversion using the conversion matrix of the fourth conversion type. That is, the fourth conversion types are the “conversion types paired by the FTS operation” and the “conversion types paired by the STF operation” of the third conversion type.
- the inverse conversion device 150 performs a flip operation for rearranging the order of each coefficient on the one-dimensional signal sequence of the coefficient data relating to the image in the reverse order, For the one-dimensional signal sequence flipped by the flip part,
- a conversion matrix of the second conversion type that realizes the inverse one-dimensional conversion of the first conversion type by the STF operation is a base conversion matrix
- a transformation matrix that is a symmetric matrix of the fourth transformation type that implements the inverse one-dimensional transformation of the third transformation type by an FTS operation is a base transformation matrix.
- a matrix operation unit that performs a matrix operation using the transpose of the base transformation matrix;
- a sign inverting unit for performing a sign inversion operation (S) for inverting the sign of the odd-numbered signal of the one-dimensional signal sequence with respect to the one-dimensional signal sequence subjected to the matrix operation by the matrix operation unit.
- a one-dimensional signal sequence of coefficient data relating to an image is subjected to a flip operation of rearranging the order of each coefficient in reverse order
- a conversion matrix of the second conversion type that realizes the inverse one-dimensional conversion of the first conversion type by the STF operation is a base conversion matrix
- a transformation matrix that is a symmetric matrix of the fourth transformation type that implements the inverse one-dimensional transformation of the third transformation type by an FTS operation is a base transformation matrix.
- a sign inversion operation (S) for inverting the sign of the odd-numbered signal in the one-dimensional signal sequence may be performed on the one-dimensional signal sequence on which the matrix operation has been performed.
- the inverse conversion device 150 can more easily perform the inverse one-dimensional conversion.
- the inverse conversion device 150 When implementing the inverse one-dimensional conversion of the second conversion type or the fourth conversion type, the inverse conversion device 150 skips the flip operation (F) and the sign inversion operation (S) and performs one-dimensional conversion of the coefficient data.
- a matrix operation may be performed on a signal sequence using a conversion matrix of the second conversion type or the fourth conversion type as a base conversion matrix. By doing so, the inverse conversion device 150 can easily realize the inverse one-dimensional conversion of the second conversion type or the fourth conversion type.
- the inverse conversion device 150 includes a flip flag setting unit that sets a flip flag indicating whether to perform a flip operation based on the specified conversion type of the inverse one-dimensional conversion, and the flip unit includes the flip flag.
- a flip operation may be performed or skipped (either selected or executed) based on the flip flag set by the setting unit.
- the inverse conversion device 150 includes a sign inversion flag setting unit that sets a sign inversion flag indicating whether or not to perform a sign inversion operation (S) based on the designated inverse one-dimensional conversion type.
- the reversing unit may perform the sign reversing operation (S) or skip (select and execute one) based on the sign reversal flag set by the sign reversal flag setting unit.
- the inverse conversion device 150 easily controls whether to execute or skip the flip operation (F) and the sign inversion operation (S) based on the designation of the conversion type of the inverse one-dimensional conversion. can do. Therefore, the inverse conversion device 150 can more easily realize the inverse one-dimensional conversion of each of the first to fourth conversion types.
- the inverse transform device 150 determines which of the second transform type transform matrix and the fourth transform type transform matrix is the base transform matrix based on the designated inverse one-dimensional transform type.
- a base conversion matrix selection unit for selection may be provided, and a matrix operation may be performed using the base conversion matrix selected by the base conversion matrix selection unit.
- the inverse transform device 150 can easily select the base transform matrix to be used based on the designation of the transform type of the inverse one-dimensional transform. Therefore, the inverse conversion device 150 can more easily realize the inverse one-dimensional conversion of each of the first to fourth conversion types.
- the transform matrix of the transform type DCT2 and the transform matrix of the transform type DCT4 are derived by sampling (extracting) matrix elements by a predetermined method from the transform matrix of the transform type DCT2 having a larger size. can do. Therefore, if the transform matrix of this large size transform type DCT2 is stored in advance, a base transform matrix (transform matrix of transform type DCT2 or transform matrix of transform type DCT4) used for matrix operation is derived from the transform matrix. be able to.
- the maximum size of a transform block (for example, 64) is maxTbS
- the maximum size of a transform block to which AMT can be applied for example, 32
- maxTbAMT the maximum size of a transform block to which AMT can be applied
- nTbS of one-dimensional transform also referred to as 1D transform
- the transform matrix of the transform type DCT2 of (maxTbS) ⁇ (maxTbS) may be stored (prepared) in advance.
- the base transformation matrix used for the matrix operation is obtained by sampling the transformation matrix of the transformation type DCT2 (derived transformation matrix maxTbS-pt DCT2) of (maxTbS) ⁇ (maxTbS) prepared in this manner based on a predetermined sampling parameter.
- ((NTbS) ⁇ (nTbS) transform type DCT2 or transform type DCT4 transform matrix) can be derived as a submatrix.
- sampling parameters will be described.
- the sampling parameters may be any.
- a sampling interval stepsize indicating a sampling row interval, a row offset offsetCol indicating a sampling offset (row position), and a column offset offsetRow indicating a sampling offset (column position) may be included.
- the sampling interval stepsize is a parameter indicating how many lines are sampled.
- the row offset offsetCol is a parameter indicating the position of the first row at which sampling is started (the row number).
- the column offset offsetRow is a parameter that indicates the position of the first column from which sampling is started (the number of the column). In this specification, the row numbers and column numbers of the transformation matrix start from “0” (that is, 0 rows and 0 columns).
- the sampling method (that is, the value of the sampling parameter) is determined by the conversion type of the derived conversion matrix as shown in the table shown in FIG. For example, as shown in the second row from the bottom of the table shown in FIG. 12, when the base conversion matrix nTbS-pt DCT2 whose conversion type trType is DCT2 is derived from the prepared derivation source conversion matrix maxTbS-pt DCT2, sampling is performed.
- the interval stepsize may be set to “1 ⁇ (Log2 (maxTbS) ⁇ Log2 (nTbS))”, the row offset offsetCol may be set to “0”, and the column offsetoffsetRow may be set to “0 (low order)”. By doing so, a transformation matrix nTbS-pt DCT2 can be derived from the base transformation matrix maxTbS-pt DCT2.
- nTbS-pt DCT4 whose transformation type trType is DCT4 is derived from the prepared derivation source transformation matrix maxTbS-pt DCT2.
- the sampling interval stepsize is “1 ⁇ (Log2 (maxTbS) ⁇ Log2 (nTbS))”
- the row offset offsetCol is “stepsize >> 1 (that is, one half of the stepsize)”
- the column offset offsetRow is “ 0 (low order) ".
- a transformation matrix nTbS-pt DCT4 can be derived from the base transformation matrix maxTbS-pt DCT2.
- the sampling interval stepsize is every two rows in the case of 8 ⁇ 8 (one row is sampled every two rows) and every four rows in the case of 4 ⁇ 4. (One row is sampled every four rows). That is, the sampling interval stepsize is a value raised to the power of the difference between the logarithmic value whose base is 2 of the maximum size maxTbS of the transform block and the logarithmic value whose base is 2 of the size nTbS of the transformation matrix to be derived. Note that the row offset offsetCol and the column offset offsetRow are both “0” in both cases.
- the transformation matrix nTbS-pt DCT2 can be derived by the derivation processing represented by the equation (X1) of D in FIG.
- the formula (X1) is also shown below.
- the element of the j-th row and the ith column of the DCT2 transformation matrix of (nTbS) x (nTbS) is the element of the (j * stepsize) row and the ith column of the DCT2 transformation matrix of (maxTbS) x (maxTbS).
- the submatrix obtained by sampling is a DCT2 transform matrix of (nTbS) ⁇ (nTbS).
- nTbS-pt DCT2 can be derived from the base transformation matrix maxTbS-pt DCT2.
- the conversion type DCT4 as shown in FIG. A matrix (8-pt DCT4) is obtained. Further, by sampling the matrix elements enclosed by the thick line frame of the derived transformation matrix maxTbS-pt DCT2 shown in FIG. 14A, the transformation type DCT4 as shown in FIG. A transformation matrix (4-pt DCT4) is obtained.
- the sampling interval stepsize is every two rows when 8 ⁇ 8 (one row is sampled every two rows), and every four rows when 4 ⁇ 4. (One row is sampled every four rows). That is, the sampling interval stepsize is a value raised to the power of the difference between the logarithmic value whose base is 2 of the maximum size maxTbS of the transform block and the logarithmic value whose base is 2 of the size nTbS of the transformation matrix to be derived.
- the row offset offsetCol is “1” (ie, one row) in the case of 8 ⁇ 8, and “2” (ie, two rows) in the case of 4 ⁇ 4.
- sampling is started from the second row (row of row number “1”) in the case of 8 ⁇ 8, and from the third row (row of row number “2”) in the case of 4 ⁇ 4.
- Sampling is started. That is, the row offset offsetCol is one half of the sampling interval stepsize. Note that the column offset offsetRow is “0” in both cases.
- the transformation matrix nTbS-pt DCT4 can be derived by the derivation processing represented by the equation (X2) of D in FIG.
- the formula (X2) is also shown below.
- the element of the j-th row and the ith column of the DCT4 transform matrix of (nTbS) x (nTbS) is the element of the (j * stepsize + offsetCol) row i-th column of the DCT2 transform matrix of (maxTbS) x (maxTbS). It is.
- the DCT2 transformation matrix of (maxTbS) x (maxTbS) (maxTbS)
- sampling interval stepsize (1 ⁇ (log2 (maxTbS)-log2 (nTbS))
- row offset offsetCol (stepsize >> 1)
- nTbS-pt DCT4 can be derived from the base transformation matrix maxTbS-pt DCT2.
- FIG. 15 is a block diagram illustrating a main configuration example of the conversion device 100 in this case.
- the conversion device 100 has basically the same configuration as in the case of the first embodiment (FIG. 6).
- the matrix calculation unit 103 includes the base transformation matrix derivation unit 220.
- the base conversion matrix deriving unit 220 performs processing related to derivation of the base conversion matrix. For example, the base conversion matrix deriving unit 220 converts a conversion matrix (base conversion matrix used for matrix calculation) specified by the base conversion matrix selection information supplied from the control unit 101 into a conversion matrix prepared in advance (derivation source conversion). Matrix).
- the matrix operation unit 103 performs a matrix operation on the coefficient data X ′, for example, as described in the above equation (19), using the base transformation matrix derived by the base transformation matrix deriving unit 220.
- the base transformation matrix deriving unit 220 derives a base transformation matrix based on the designated transformation type of the inverse one-dimensional transformation.
- the matrix calculation unit 103 performs a matrix calculation using the base conversion matrix derived by the base conversion matrix derivation unit 220.
- the base transform matrix deriving unit 220 derives the base transform matrix by using a source transform matrix of a second transform type (for example, DCT2) having a size equal to or larger than the derived base transform matrix.
- a source transform matrix of a second transform type for example, DCT2
- the base transform matrix deriving unit 220 samples the second transform type (for example, DCT2) or the second transform type (for example, DCT2) by sampling the derived transform matrix of the second transform type (for example, DCT2) having a size equal to or larger than the derived base transform matrix.
- a base transform matrix of a fourth transform type (for example, DCT4) is derived.
- the base transformation matrix deriving unit 220 has an arbitrary configuration.
- the base conversion matrix deriving unit 220 may be configured by a logic circuit that implements the above-described processing.
- the base conversion matrix deriving unit 220 may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing.
- the base conversion matrix deriving unit 220 may have both of the configurations, and a part of the above-described processing may be realized by a logic circuit, and the other may be realized by executing a program.
- FIG. 16 is a block diagram illustrating a main configuration example of the base transform matrix deriving unit 220 in FIG. As shown in FIG. 16, the base transformation matrix derivation unit 220 includes a sampling unit 231 and a derivation source transformation matrix LUT232.
- the sampling unit 231 performs a process related to sampling. For example, the sampling unit 231 sets a sampling parameter in accordance with the base transformation matrix selection information, and converts the conversion type trType size (nTbS) ⁇ (nTbS) from the derivation source transformation matrix maxTbS-pt DCT2 by a method according to the sampling parameter. And derives a base conversion matrix T base of The sampling unit 231 has a sampling parameter derivation unit 241 and a partial matrix extraction unit 242.
- the sampling parameter deriving unit 241 performs a process related to deriving a sampling parameter.
- the sampling parameter deriving unit 241 acquires base transformation matrix selection information.
- the base transformation matrix selection information is information for specifying a base transformation matrix used for matrix operation. That is, the conversion type trType, the maximum size maxTbS of the conversion block, the size nTbS of the derivation target base conversion matrix, and the like are specified by the base conversion matrix selection information.
- the sampling parameter deriving unit 241 sets sampling parameters such as a sampling interval stepsize, a row offset offsetCol, and a column offset offsetRow based on such information specified by such base transformation matrix selection information. For example, the sampling parameter deriving unit 241 sets the sampling parameters as described with reference to the table in FIG.
- the sampling parameter derivation unit 241 supplies the derived sampling parameters to the partial matrix extraction unit 242.
- the sub-matrix extraction unit 242 performs a process related to the extraction of the sub-matrix. For example, the sub-matrix extraction unit 242 acquires the sampling parameters derived by the sampling parameter derivation unit 241. In addition, the sub-matrix extraction unit 242 acquires the source transformation matrix (maxTbS-pt DCT2) 251 registered in the source transformation matrix LUT232. Then, the sub-matrix extraction unit 242 samples the derived transformation matrix (maxTbS-pt DCT2) 251 by a method according to the sampling parameter.
- the sub-matrix extraction unit 242 obtains a sub-matrix of the conversion type trType and size (nTbS) ⁇ (nTbS) specified by the base conversion matrix selection information.
- the sub-matrix extraction unit 242 supplies the sub-matrix as the base conversion matrix T base to the matrix calculation unit 103.
- the derivation source transformation matrix LUT 232 registers (stores) a derivation source transformation matrix (maxTbS-pt25DCT2) 251 having a conversion type DCT2 and a size (maxTbS) ⁇ (maxTbS).
- the source transform matrix LUT 232 supplies the source transform matrix (maxTbS-ptmaxDCT2) 251 to the sub-matrix extractor 242 in response to a request from the sub-matrix extractor 242.
- the sampling unit 231 has an optional configuration.
- the sampling unit 231 may be configured by a logic circuit that implements the above processing.
- the sampling unit 231 may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program using the CPU, the ROM, the RAM, and the like to realize the above-described processing.
- the sampling unit 231 may have both configurations, and a part of the above processing may be realized by a logic circuit, and the other may be realized by executing a program.
- the source transformation matrix LUT 232 has a storage area formed by a RAM or the like, and stores the source transformation matrix (maxTbS-pt DCT2) 251 therein.
- the sampling parameter deriving unit 241 has an arbitrary configuration.
- the sampling parameter deriving unit 241 may be configured by a logic circuit that implements the above-described processing.
- the sampling parameter deriving unit 241 may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing.
- the sampling parameter deriving unit 241 may have both of the configurations, and a part of the above-described processing may be realized by a logic circuit, and the other may be realized by executing a program.
- the sub-matrix extraction unit 242 has an arbitrary configuration.
- the sub-matrix extraction unit 242 may be configured by a logic circuit that implements the above-described processing.
- the sub-matrix extracting unit 242 may include, for example, a CPU, a ROM, a RAM, and the like, and execute the program using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing.
- the sub-matrix extraction unit 242 may have both of the configurations, and a part of the above-described processing may be realized by a logic circuit, and the other may be realized by executing a program.
- the base transformation matrix deriving unit 220 can derive the base transformation matrix specified by the base transformation matrix selection information.
- one derived source transformation matrix (maxTbS-pt DCT2) 251 may be stored in the derived transformation matrix LUT 232, it is possible to suppress an increase in the size of the LUT (reduce the size of the LUT).
- the matrix operation of the (maxTbS) ⁇ (maxTbS) conversion matrix and the matrix operation of the (nTbS) ⁇ (nTbS) conversion matrix of the conversion type trType can be shared. That is, the matrix calculation unit 103 can perform a matrix calculation using the base conversion matrix of each conversion type trType using the same calculation circuit. Therefore, it is possible to suppress an increase in the circuit scale (reduce the circuit scale).
- the control unit 101 determines in step S201 that the conversion type supplied from outside the conversion device 100 Based on trTypeIdx and size (log2TBWidth, log2TBHeight), base conversion matrix selection information, sign inversion flag (signChangeFlag), and flip flag (flipFlag) are set as described above.
- step S203 the sign inversion unit 102 performs a sign inversion operation (S) on the input coefficient data Xin, which is a one-dimensional signal sequence, as in Equation (18) described above, for example, Generate data X '.
- S sign inversion operation
- step S203 When the process in step S203 is completed, the process proceeds to step S204. Further, in step S202, when it is determined that the value of the sign inversion flag is false (False) and the sign inversion operation is not performed, the process of step S203 is skipped, and the input coefficient data Xin is directly used as the coefficient data X ′. Then, the process proceeds to step S204.
- step S204 the base transformation matrix deriving unit 220 performs a base transformation matrix deriving process, and derives a base transformation matrix T base based on the base transformation matrix selection information set in step S201.
- step S205 the matrix operation unit 103 uses the base transformation matrix T base derived in step S204 to perform a matrix operation (1) on the coefficient data X ′ that is a one-dimensional signal sequence, for example, as in Expression (19) described above. Dimensional conversion) to generate coefficient data X ′′ that is a one-dimensional signal sequence.
- step S207 the flip unit 104 performs a flip operation (F) on the coefficient data X ′′ that is the one-dimensional signal sequence obtained in step S205, for example, as in Expression (20) described above, and performs one-dimensional Generate output coefficient data Xout as a signal sequence.
- F flip operation
- the flip unit 104 outputs the generated output coefficient data Xout to the outside of the conversion device 100.
- the processing in step S207 ends, the conversion processing ends. If it is determined in step S206 that the value of the flip flag is false (False) and the flip operation is not performed, the process of step S207 is skipped, and the coefficient data X ′′ is directly used as the output coefficient data Xout. Are output to the outside of the conversion device 100. When the output coefficient data Xout is output, the conversion process ends.
- the sampling parameter derivation unit 241 of the base conversion matrix derivation unit 220 corresponds to the conversion type trType and the block size (nTbS) specified by the base conversion matrix selection information in step S221.
- the sampling parameters to be derived are derived.
- step S222 the sub-matrix extraction unit 242 reads the derived transformation matrix (maxTbS-pt DCT2) 251 from the derived transformation matrix LUT232.
- step S223 the sub-matrix extracting unit 242 extracts a sub-matrix from the derived transformation matrix (maxTbS-pt @ DCT2) 251 read in step S222 using the sampling parameters derived in step S221.
- step S224 the partial matrix extraction unit 242 supplies the partial matrix extracted in step S223 to the matrix calculation unit 103 as a base transformation matrix.
- step S224 ends, the base transformation matrix derivation process ends, and the process returns to FIG.
- the base transformation matrix specified by the base transformation matrix selection information can be derived.
- one derived source transformation matrix (maxTbS-pt DCT2) 251 may be stored in the derived transformation matrix LUT 232, it is possible to suppress an increase in the size of the LUT (reduce the size of the LUT).
- the matrix operation of the (maxTbS) ⁇ (maxTbS) conversion matrix and the matrix operation of the (nTbS) ⁇ (nTbS) conversion matrix of the conversion type trType can be shared. That is, the matrix calculation unit 103 can perform a matrix calculation using the base conversion matrix of each conversion type trType using the same calculation circuit. Therefore, it is possible to suppress an increase in the circuit scale (reduce the circuit scale).
- FIG. 19 is a block diagram showing a main configuration example of the inverse conversion device 150 in this case.
- the inverse conversion device 150 has basically the same configuration as in the case of the second embodiment (FIG. 9).
- the matrix operation unit 153 includes the base transformation matrix derivation unit 270.
- the base transformation matrix deriving unit 270 has the same configuration as the base transformation matrix deriving unit 220 described in the third embodiment, and performs the same processing. Therefore, the configuration example of the base transform matrix deriving unit 220 described with reference to FIG. 16 can be applied to the description of the base transform matrix deriving unit 270.
- the base conversion matrix deriving unit 270 derives a base conversion matrix based on the specified inverse one-dimensional conversion conversion type.
- the matrix calculation unit 153 performs a matrix calculation using the base conversion matrix derived by the base conversion matrix derivation unit 270.
- the base transformation matrix deriving unit 270 derives the base transformation matrix by using a derived transformation matrix of a second transformation type (for example, DCT2) having a size equal to or larger than the derived base transformation matrix.
- a second transformation type for example, DCT2
- the base transform matrix deriving unit 270 samples the second transform type (for example, DCT2) and the second transform type (for example, DCT2) by sampling the derived transform matrix of the second transform type (for example, DCT2) having a size equal to or larger than the derived base transform matrix.
- a base transform matrix of a fourth transform type (for example, DCT4) is derived.
- the base transformation matrix deriving unit 270 can derive the base transformation matrix specified by the base transformation matrix selection information.
- one derived source transformation matrix (maxTbS-pt DCT2) 251 may be stored in the derived transformation matrix LUT 232, it is possible to suppress an increase in the size of the LUT (reduce the size of the LUT).
- the matrix operation of the (maxTbS) ⁇ (maxTbS) conversion matrix and the matrix operation of the (nTbS) ⁇ (nTbS) conversion matrix of the conversion type trType can be shared. That is, the matrix calculation unit 153 can perform a matrix calculation using the base conversion matrix of each conversion type trType using the same calculation circuit. Therefore, it is possible to suppress an increase in the circuit scale (reduce the circuit scale).
- the control unit 151 (the flip flag setting unit 161, the base conversion matrix selecting unit 162, and the sign inversion flag setting unit 163) in step S251 performs the conversion type trTypeIdx and the size (log2TBWidth, log2TBHeight). ),
- the base conversion matrix selection information, the flip flag (flipFlag), and the sign inversion flag (signChangeFlag) are set as described above.
- step S253 the flip unit 152 performs a flip operation (F) on the input coefficient data Xin, which is a one-dimensional signal sequence, for example, as in the above-described equation (21), to execute the coefficient data X, which is a one-dimensional signal sequence. 'Is generated.
- step S253 When the process of step S253 is completed, the process proceeds to step S254. If it is determined in step S252 that the value of the flip flag is false (False) and the flip operation (F) is not to be performed, the process of step S253 is skipped, and the input coefficient data Xin is directly used as the coefficient data X ′. And the process proceeds to step S254.
- step S254 the base transformation matrix derivation unit 270 performs a base transformation matrix derivation process, and derives a base transformation matrix T base based on the base transformation matrix selection information set in step S251.
- This base transformation matrix derivation process is executed in the same flow as in the case of the flowchart in FIG. Therefore, the description is omitted.
- step S255 the matrix operation unit 153 determines the base transformation matrix T base derived in step S254, that is, the base specified by the base transformation matrix selection information set in step S251, as in the above-described equation (22), for example.
- a matrix operation (inverse one-dimensional conversion) is performed on the coefficient data X ′ that is a one-dimensional signal sequence to generate coefficient data X ′′ that is a one-dimensional signal sequence.
- step S257 the sign inversion unit 154 performs a sign inversion operation (S) on the coefficient data X ′′ that is the one-dimensional signal sequence obtained in step S255, for example, as in Expression (23) described above.
- the output coefficient data Xout which is a one-dimensional signal sequence is generated.
- the sign inverting unit 154 outputs the generated output coefficient data Xout to the outside of the inverse transform device 150.
- step S256 If it is determined in step S256 that the value of the sign inversion flag is false (False) and the sign inversion operation (S) is not performed, the process in step S257 is skipped, and the coefficient data X ′′ is output as it is.
- the data is set as coefficient data Xout and output to the outside of the inverse transform device 150. When the output coefficient data Xout is output, the inverse conversion processing ends.
- the base transformation matrix specified by the base transformation matrix selection information can be derived.
- one derived source transformation matrix (maxTbS-pt DCT2) 251 may be stored in the derived transformation matrix LUT 232, it is possible to suppress an increase in the size of the LUT (reduce the size of the LUT).
- the matrix operation of the (maxTbS) ⁇ (maxTbS) conversion matrix and the matrix operation of the (nTbS) ⁇ (nTbS) conversion matrix of the conversion type trType can be shared. That is, the matrix calculation unit 153 can perform a matrix calculation using the base conversion matrix of each conversion type trType using the same calculation circuit. Therefore, it is possible to suppress an increase in the circuit scale (reduce the circuit scale).
- the (reverse) one-dimensional conversion of the conversion types DCT2 and DCT4 may be realized by an FTS operation or STF operation including the (reverse) one-dimensional conversion of the conversion types DST2 and DST4.
- Transformation matrix T DCT2 conversion type DCT2 used for one-dimensional transform is a transformation matrix T DST2 conversion type DST2, flip matrix F, and the sign inversion matrix with S, be expressed as the following equation (24) it can.
- the transformation matrix T DCT4 of the transformation type DCT4 used for the one-dimensional transformation is represented by the following equation (25) using the transformation matrix T DST4 , the flip matrix F, and the sign inversion matrix S of the transformation type DST4. Can be represented.
- one-dimensional conversion of conversion types DCT2 and DCT4 can be realized by STF operations including one-dimensional conversion of conversion types DST2 and DST4.
- the sign inversion section 102 and the flip section 104 are exchanged, and the base conversion matrix LUT 120 is converted to the conversion matrix of the conversion type DST2 and the conversion matrix of the conversion type DST4. May be stored, and the matrix operation unit 103 may perform the matrix operation using the transformation matrices as the base transformation matrix.
- the transform apparatus 100 FIG.
- the sign inverting section 102 and the flip section 104 are exchanged, and the base transform matrix deriving section 220 performs the transform type DST2 base transform matrix or transform. What is necessary is just to derive a base transformation matrix of type DST4, and to make the matrix operation unit 103 perform a matrix operation using the derived base transformation matrix.
- the pre-process performed before the orthogonal transform process is performed by (the sign inversion operation (S) ) It is possible to unify the post-processing performed after the orthogonal transformation processing (to the flip operation (F)).
- the transposed matrix T DCT2 t of the transformation matrix of the conversion type DCT2 used in inverse one-dimensional transform is the transposed matrix T DST2 t of the transformation matrix of the conversion type DST2, using flip matrix F, and sign inversion matrix S, the following Equation (26) can be expressed.
- the transformation matrix T DCT4 of the transformation type DCT4 used for the inverse one-dimensional transformation is represented by the following equation (using the transposed matrix T DST4 t , the flip matrix F, and the sign inversion matrix S of the transformation matrix of the transformation type DST4). 27).
- the inverse one-dimensional transform of the transform types DCT2 and DCT4 can be realized by the FTS operation including the inverse one-dimensional transform of the transform types DST2 and DST4.
- the flip unit 152 and the sign inversion unit 154 are exchanged, and the base conversion matrix LUT 170 is converted between the conversion matrix of the conversion type DST2 and the conversion matrix of the conversion type DST4.
- the matrix may be stored, and the matrix operation unit 153 may use the transformation matrices as base transformation matrices and perform the matrix computation using the transposed matrix of the base transformation matrix.
- the conversion apparatus 100 FIG.
- the flip unit 152 and the sign inversion unit 154 are exchanged, and the base conversion matrix derivation unit 270 converts the base conversion matrix of the conversion type DST2 or the conversion. What is necessary is just to derive a base transformation matrix of type DST4, and to make the matrix operation unit 103 perform a matrix operation using the derived base transformation matrix.
- the pre-process performed before the inverse orthogonal transform process is performed by the (flip operation (F )), And post-processing performed after the inverse orthogonal transformation processing (to the sign inversion operation (S)).
- FIG. 21 is a block diagram illustrating an example of a configuration of an image encoding device that is an aspect of an image processing device to which the present technology is applied.
- An image encoding device 300 illustrated in FIG. 21 is an device that encodes image data of a moving image.
- the image encoding device 300 implements the technology described in Non-Patent Document 1, Non-Patent Document 5, or Non-Patent Document 6, and employs a method based on a standard described in any of those documents.
- the image data of the moving image is encoded.
- FIG. 21 shows main components such as the processing unit and the flow of data, and the components shown in FIG. 21 are not necessarily all. That is, in the image encoding device 300, a processing unit not illustrated as a block in FIG. 21 may exist, or a process or data flow not illustrated as an arrow or the like in FIG. 21 may exist. This is the same in other drawings for explaining the processing unit and the like in the image encoding device 300.
- the image encoding device 300 includes a control unit 301, a rearrangement buffer 311, an arithmetic unit 312, an orthogonal transformation unit 313, a quantization unit 314, an encoding unit 315, a storage buffer 316, and an inverse quantization unit. 317, an inverse orthogonal transform unit 318, an operation unit 319, an in-loop filter unit 320, a frame memory 321, a prediction unit 322, and a rate control unit 323.
- the control unit 301 divides the moving image data held by the rearrangement buffer 311 into processing unit blocks (CU, PU, conversion block, etc.) based on an external or pre-designated processing unit block size. .
- the control unit 301 determines coding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, filter information Finfo, and the like) to be supplied to each block based on, for example, RDO (Rate-Distortion Optimization). I do.
- control unit 301 supplies the parameters to each block. Specifically, it is as follows.
- the header information Hinfo is supplied to each block.
- the prediction mode information Pinfo is supplied to the encoding unit 315 and the prediction unit 322.
- the transform information Tinfo is supplied to an encoding unit 315, an orthogonal transformation unit 313, a quantization unit 314, an inverse quantization unit 317, and an inverse orthogonal transformation unit 318.
- the filter information Finfo is supplied to the in-loop filter unit 320.
- Each field (input image) of the moving image data is input to the image encoding device 300 in the order of reproduction (display order).
- the reordering buffer 311 acquires and holds (stores) each input image in its reproduction order (display order).
- the rearrangement buffer 311 rearranges the input image in an encoding order (decoding order) or divides the input image into blocks in processing units based on the control of the control unit 301.
- the rearrangement buffer 311 supplies the processed input images to the calculation unit 312.
- the reordering buffer 311 also supplies the input images (original images) to the prediction unit 322 and the in-loop filter unit 320.
- the calculation unit 312 receives the image I corresponding to the block of the processing unit and the prediction image P supplied from the prediction unit 322, and subtracts the prediction image P from the image I as shown in the following equation (28). Then, the prediction residual D is derived and supplied to the orthogonal transform unit 313.
- the orthogonal transform unit 313 receives the prediction residual D supplied from the calculation unit 312 and the conversion information Tinfo supplied from the control unit 301 as inputs, and performs orthogonal transform on the prediction residual D based on the conversion information Tinfo. Conversion is performed to derive a conversion coefficient Coeff. The orthogonal transform unit 313 supplies the obtained transform coefficient Coeff to the quantization unit 314.
- the quantization unit 314 receives the transform coefficient Coeff supplied from the orthogonal transform unit 313 and the transform information Tinfo supplied from the control unit 301, and scales the transform coefficient Coeff based on the transform information Tinfo (quantization). ). The rate of this quantization is controlled by the rate control unit 323. The quantization unit 314 supplies the quantized transform coefficient obtained by such quantization, that is, the quantized transform coefficient level level, to the encoding unit 315 and the inverse quantization unit 317.
- the encoding unit 315 includes a quantization transform coefficient level supplied from the quantization unit 314 and various encoding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, and filter information Finfo supplied from the control unit 301). ), Information on filters such as filter coefficients supplied from the in-loop filter unit 320, and information on the optimal prediction mode supplied from the prediction unit 322.
- the encoding unit 315 performs variable-length encoding (for example, arithmetic encoding) on the quantized transform coefficient level level to generate a bit string (encoded data).
- ⁇ Encoding section 315 also derives residual information Rinfo from the quantized transform coefficient level level, encodes residual information Rinfo, and generates a bit string.
- the encoding unit 315 includes information about the filter supplied from the in-loop filter unit 320 in the filter information Finfo, and includes information about the optimal prediction mode supplied from the prediction unit 322 in the prediction mode information Pinfo. Then, the coding unit 315 codes the above-described various coding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, filter information Finfo, and the like), and generates a bit sequence.
- ⁇ Encoding section 315 also multiplexes the bit strings of the various information generated as described above to generate encoded data.
- the encoding unit 315 supplies the encoded data to the storage buffer 316.
- the accumulation buffer 316 temporarily stores the encoded data obtained by the encoding unit 315. At a predetermined timing, the accumulation buffer 316 outputs the held encoded data to the outside of the image encoding device 300 as, for example, a bit stream. For example, the encoded 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 accumulation buffer 316 is also a transmission unit that transmits encoded data (bit stream).
- the inverse quantization unit 317 performs a process related to inverse quantization. For example, the inverse quantization unit 317 receives as input the quantized transform coefficient level supplied from the quantization unit 314 and the transform information Tinfo supplied from the control unit 301, and performs quantization based on the transform information Tinfo. Scale (inverse quantization) the value of the transform coefficient level level. Note that the inverse quantization is an inverse process of the quantization performed in the quantization unit 314. The inverse quantization unit 317 supplies the transform coefficient Coeff_IQ obtained by such inverse quantization to the inverse orthogonal transform unit 318.
- the inverse orthogonal transform unit 318 performs a process related to the inverse orthogonal transform.
- the inverse orthogonal transform unit 318 receives as input the transform coefficient Coeff_IQ supplied from the inverse quantization unit 317 and the transform information Tinfo supplied from the control unit 101, and converts the transform coefficient Coeff_IQ based on the transform information Tinfo.
- An inverse orthogonal transform is performed on the result to derive a prediction residual D ′.
- the inverse orthogonal transform is an inverse process of the orthogonal transform performed in the orthogonal transform unit 313.
- the inverse orthogonal transform unit 318 supplies the prediction residual D ′ obtained by such an inverse orthogonal transform to the calculation unit 319. Since the inverse orthogonal transform unit 318 is similar to the inverse orthogonal transform unit (described later) on the decoding side, the description (described later) performed on the decoding side can be applied to the inverse orthogonal transform unit 318.
- the calculation unit 319 receives as input the prediction residual D ′ supplied from the inverse orthogonal transform unit 318 and the prediction image P supplied from the prediction unit 322. The calculation unit 319 adds the prediction residual D ′ and the prediction image P corresponding to the prediction residual D ′ to derive a local decoded image Rlocal. The operation unit 319 supplies the derived local decoded image Rlocal to the in-loop filter unit 320 and the frame memory 321.
- the in-loop filter unit 320 performs a process related to the in-loop filter process. For example, the in-loop filter unit 320 converts the local decoded image Rlocal supplied from the arithmetic unit 319, the filter information Finfo supplied from the control unit 301, and the input image (original image) supplied from the rearrangement buffer 311. Take as input. Note that information input to the in-loop filter unit 320 is arbitrary, and information other than these information may be input. For example, if necessary, the prediction mode, motion information, code amount target value, quantization parameter QP, picture type, block (CU, CTU, etc.) information and the like may be input to the in-loop filter unit 320. Good.
- the in-loop filter unit 320 appropriately performs a filtering process on the locally decoded image Rlocal based on the filter information Finfo.
- the in-loop filter unit 320 also uses an input image (original image) and other input information for the filtering process as needed.
- the in-loop filter unit 320 includes a bilateral filter, a deblocking filter (DBF (DeBlocking Filter)), an adaptive offset filter (SAO (Sample Adaptive Offset)), and an adaptive loop filter.
- DPF DeBlocking Filter
- SAO Sample Adaptive Offset
- ALF Adaptive Loop Loop Filter
- the filter processing performed by the in-loop filter unit 320 is arbitrary, and is not limited to the above example.
- the in-loop filter unit 320 may apply a Wiener filter or the like.
- the in-loop filter unit 320 supplies the filtered local decoded image Rlocal to the frame memory 321. Note that when information about a filter such as a filter coefficient is transmitted to the decoding side, the in-loop filter unit 320 supplies information about the filter to the encoding unit 315.
- the frame memory 321 performs processing relating to storage of data relating to an image. For example, the frame memory 321 receives the local decoded image Rlocal supplied from the arithmetic unit 319 and the filtered local decoded image Rlocal supplied from the in-loop filter unit 320, and stores (stores) them. Further, the frame memory 321 reconstructs and holds the decoded image R for each picture using the local decoded image Rlocal (stores the decoded image R in a buffer in the frame memory 321). The frame memory 321 supplies the decoded image R (or a part thereof) to the prediction unit 322 in response to a request from the prediction unit 322.
- the prediction unit 322 performs a process related to generation of a predicted image.
- the prediction unit 322 includes the prediction mode information Pinfo supplied from the control unit 301, the input image (original image) supplied from the rearrangement buffer 311 and the decoded image R (or a part thereof) read from the frame memory 321. Is input.
- the prediction unit 322 performs prediction processing such as inter prediction or intra prediction using the prediction mode information Pinfo and the input image (original image), performs prediction with reference to the decoded image R as a reference image, and performs prediction based on the prediction result.
- the prediction unit 322 supplies the generated prediction image P to the calculation unit 312 and the calculation unit 319. Further, the prediction unit 322 supplies the prediction mode selected by the above processing, that is, information on the optimal prediction mode to the encoding unit 315 as necessary.
- the rate control unit 323 performs processing related to rate control. For example, the rate control unit 323 controls the rate of the quantization operation of the quantization unit 314 based on the code amount of the coded data stored in the storage buffer 316 so that overflow or underflow does not occur.
- FIG. 22 is a block diagram illustrating a main configuration example of the orthogonal transform unit 313.
- the orthogonal transform unit 313 includes a switch 351, a primary transform unit 352, and a secondary transform unit 353.
- the primary conversion unit 352 and the secondary conversion unit 353 are skipped, and the prediction residual D Is output to the outside of the orthogonal transform unit 313 as a transform coefficient Coeff (supplied to the quantization unit 314).
- the primary conversion unit 352 performs a process related to primary conversion, which is a predetermined conversion process such as orthogonal conversion. For example, the primary conversion unit 352 converts the component identifier compID, the adaptive primary conversion flag apt_flag [compID] of the component identifier compID, the primary conversion identifier pt_idx [compID] of the component identifier compID, the prediction mode information PInfo, the size of the conversion block (the pair of the horizontal width). The numerical value log2TBWSize, the logarithmic value of the vertical width log2TBHSize) and the prediction residual D are input.
- the primary conversion unit 352 converts the component identifier compID, the adaptive primary conversion flag apt_flag [compID] of the component identifier compID, the primary conversion identifier pt_idx [compID] of the component identifier compID, the prediction mode information PInfo, the size of the conversion block (the pair of the horizontal width).
- the horizontal width TBWSize of the conversion block is also referred to as TBWidth, and the logarithmic value thereof is also referred to as log2TBWidth.
- the vertical width TBHSize of the conversion block is also referred to as TBHeight, and the logarithmic value thereof is also referred to as log2TBHeight.
- the primary conversion unit 352 refers to the prediction mode information PInfo, the component identifier compID, the adaptive primary conversion flag apt_flag [compID] of the component identifier compID, and the primary conversion identifier pt_idx [compID] of the component identifier compID to generate a component identifier compID.
- the corresponding primary horizontal conversion conversion type TrTypeH (and the primary horizontal conversion type identifier TrTypeIdxH indicating the conversion type) and the primary vertical conversion conversion type TrTypeV (and the primary vertical conversion type identifier TrTypeIdxV indicating the conversion type) are selected.
- the primary conversion unit 352 converts the prediction residual D into a primary horizontal conversion type identifier TrTypeIdxH (or a primary horizontal conversion type TrTypeH) and a horizontal width log2TBWSize of the conversion block, and a primary vertical conversion type identifier.
- TrTypeIdxV or primary vertical conversion type TrTypeV
- vertical width log2TBWSize of the conversion block and derive a conversion coefficient Coeff_P after the primary conversion.
- the primary horizontal transform is a one-dimensional orthogonal transform in the horizontal direction
- the primary vertical transform is a one-dimensional orthogonal transform in the vertical direction.
- the primary conversion unit 352 supplies the derived conversion coefficient Coeff_P to the secondary conversion unit 353.
- the secondary conversion unit 353 performs a process related to a secondary conversion, which is a predetermined conversion process such as an orthogonal conversion. For example, the secondary conversion unit 353 receives a secondary conversion identifier st_idx, a scan identifier scanIdx indicating a method of scanning a conversion coefficient, and a conversion coefficient Coeff_P. The secondary conversion unit 353 performs secondary conversion on the conversion coefficient Coeff_P based on the secondary conversion identifier st_idx and the scan identifier scanIdx, and derives a conversion coefficient Coeff_S after the secondary conversion.
- the secondary conversion unit 353 converts the conversion coefficient Coeff_P of the secondary conversion corresponding to the secondary conversion identifier st_idx.
- the processing is executed to derive a conversion coefficient Coeff_S after the secondary conversion.
- the secondary transform unit 353 outputs the secondary transform coefficient Coeff_S to the outside of the orthogonal transform unit 313 as a transform coefficient Coeff (supplies it to the quantization unit 314).
- the secondary conversion unit 353 skips the secondary conversion and converts the conversion coefficient Coeff_P after the primary conversion into the conversion coefficient Coeff (secondary conversion coefficient). It is output to the outside of the orthogonal transform unit 313 as a subsequent transform coefficient Coeff_S (supplied to the quantization unit 314).
- FIG. 23 is a block diagram illustrating a main configuration example of the primary conversion unit 352 in FIG. As shown in FIG. 23, the primary conversion unit 352 includes a primary conversion selection unit 361, a primary horizontal conversion unit 362, and a primary vertical conversion unit 363.
- the primary conversion selection unit 361 receives as input the prediction mode information PInfo, the component identifier compID, the adaptive primary conversion flag apt_flag [compID], and the primary conversion identifier pt_idx [compID].
- the primary conversion selection unit 361 derives a conversion type identifier TrTypeIdxH for primary horizontal conversion and a conversion type identifier TrTypeIdxV for primary vertical conversion with reference to the information.
- the primary conversion selection unit 361 supplies the derived conversion type identifier TrTypeIdxH of the primary horizontal conversion to the primary horizontal conversion unit 362.
- the primary conversion selection unit 361 supplies the derived conversion type identifier TrTypeIdxV of the primary vertical conversion to the primary vertical conversion unit 363.
- the primary horizontal conversion unit 362 receives as input the prediction residual D, the conversion type identifier TrTypeIdxH of the primary horizontal conversion, and information (not shown) on the size of the conversion block.
- the primary horizontal transform unit 362 performs a primary horizontal transform Phor determined on the prediction residual D by the transform type identifier TrTypeIdxH and the size of the transform block, and derives a transform coefficient Coeff_Phor after the primary horizontal transform.
- the primary horizontal conversion unit 362 supplies the conversion coefficient Coeff_Phor after the primary horizontal conversion to the primary vertical conversion unit 363.
- the primary vertical conversion unit 363 receives as input the conversion coefficient Coeff_Phor after the primary horizontal conversion, the conversion type identifier TrTypeIdxV of the primary vertical conversion, and information (not shown) on the size of the conversion block.
- the primary vertical conversion unit 363 performs a primary vertical conversion Pver determined by the conversion type identifier TrTypeIdxV and the size of the conversion block on the conversion coefficient Coeff_Phor after the primary horizontal conversion, and derives the conversion coefficient Coeff_Pver after the primary vertical conversion. .
- the primary vertical conversion unit 363 outputs the conversion coefficient Coeff_Pver after the primary vertical conversion to the outside of the primary conversion unit 352 as the conversion coefficient Coeff_P after the primary conversion (supplies it to the secondary conversion unit 353).
- FIG. 24 is a block diagram illustrating a main configuration example of the primary horizontal conversion unit 362 in FIG.
- the primary horizontal conversion unit 362 includes a signal sequence extraction unit 371, a one-dimensional conversion unit 372, a scaling unit 373, a clip unit 374, and a two-dimensional data sequence generation unit 375.
- the signal sequence extraction unit 371 performs a process related to signal sequence extraction. For example, the signal sequence extraction unit 371 acquires and stores input coefficient data Xin (prediction residual D) of a two-dimensional data sequence (matrix) input to the primary horizontal conversion unit 362. Signal sequence extraction unit 371, each line of the input coefficient data Xin extracted one line, supplied as a one-dimensional signal sequence X 1 in the one-dimensional conversion unit 372.
- input coefficient data Xin prediction residual D
- matrix two-dimensional data sequence
- the one-dimensional conversion unit 372 performs processing related to one-dimensional conversion. For example, the one-dimensional conversion unit 372 acquires the conversion type identifier TrTypeIdxH of the primary horizontal conversion and information (log2TBWSize and log2TBHSize) regarding the size of the conversion block supplied from the primary conversion selection unit 361. Also, one-dimensional transform unit 372 obtains a one-dimensional signal sequence X 1 supplied from the signal sequence extraction unit 371. 1-dimensional conversion unit 372 performs for the one-dimensional signal sequence X 1, and conversion type identifier TrTypeIdxH primary horizontal transform, a one-dimensional transformation corresponding to the information (Log2TBWSize and Log2TBHSize) about the size of the transform block, one-dimensional generating a signal sequence X 2. 1-dimensional conversion unit 372 supplies the one-dimensional signal sequence X 2 to the scaling unit 373.
- the signal sequence extraction unit 371 extracts one-dimensional signal sequence X 1 from the target block of coefficient data.
- the two-dimensional data sequence generation unit 375 uses the one-dimensional signal sequence X 2 (corresponding to the one-dimensional signal sequence X 4 ) on which the flip operation has been performed by the flip unit 104 of the one-dimensional conversion unit 372. Generate a dimensional data string.
- the scaling unit 373 performs processing related to scaling. For example, the scaling unit 373 obtains a one-dimensional signal sequence X 2 supplied from the one-dimensional conversion unit 372. Scaling unit 373, the coefficients of the one-dimensional signal sequence X 2, scaled by a predetermined shift amount fwdShift1 generating a one-dimensional signal sequence X 3. Scaling unit 373 supplies the one-dimensional signal sequence X 3 in the clip portion 374.
- the clip unit 374 performs processing related to clip processing. For example, the clip portion 374 obtains a one-dimensional signal sequence X 3 supplied from the scaling unit 373. Clip portion 374, each coefficient of the one-dimensional signal sequence X 3, clipped using the minimum value minCoefVal and maximum MaxCoefVal, to generate a one-dimensional signal sequence X 4. Clip portion 374 supplies the one-dimensional signal sequence X 4 in the two-dimensional data string generator 375.
- the two-dimensional data string generation unit 375 performs processing related to generation of a two-dimensional data string.
- 2-dimensional data string generator 375 stores a one-dimensional signal sequence X 4 supplied from the clip portion 374.
- 2-dimensional data string generator 375 generates an output coefficient data Xout is collectively two-dimensional data sequence to its one-dimensional signal sequence X 4 by a predetermined number.
- the two-dimensional data string generation unit 375 outputs the output coefficient data Xout (the conversion coefficient Coeff_Phor after the primary horizontal conversion) to the outside of the primary horizontal conversion unit 362 (supplies it to the primary vertical conversion unit 363).
- Each processing unit of the signal sequence extraction unit 371 to the two-dimensional data sequence generation unit 375 has an arbitrary configuration.
- each processing unit may be configured by a logic circuit that realizes the above-described processing.
- each processing unit may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program by using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing.
- each processing unit may have both configurations, and a part of the above-described processing may be realized by a logic circuit, and the other may be realized by executing a program.
- the configuration of each processing unit may be independent from each other.
- some of the processing units may realize a part of the above-described processing by a logic circuit, and some of the other processing units may execute a program. May be implemented, and another processing unit may implement the above-described processing by both the logic circuit and the execution of the program.
- FIG. 25 is a block diagram illustrating a main configuration example of the primary vertical conversion unit 363 of FIG.
- the primary vertical conversion unit 363 includes a signal sequence extraction unit 381, a one-dimensional conversion unit 382, a scaling unit 383, a clip unit 384, and a two-dimensional data sequence generation unit 385.
- the signal sequence extraction unit 381 performs processing related to signal sequence extraction. For example, the signal sequence extraction unit 381 acquires and stores input coefficient data Xin (transformation coefficient Coeff_Phor after primary horizontal transformation) of a two-dimensional data sequence (matrix) input to the primary vertical transformation unit 363. Signal sequence extraction unit 381, each column of the input coefficient data Xin extracted one by one row, and supplies a 1-dimensional signal sequence X 1 in the one-dimensional conversion unit 382.
- input coefficient data Xin transformation coefficient Coeff_Phor after primary horizontal transformation
- One-dimensional conversion section 382 performs processing related to one-dimensional conversion. For example, the one-dimensional conversion unit 382 acquires the conversion type identifier TrTypeIdxV of the primary vertical conversion and information (log2TBWSize and log2TBHSize) regarding the size of the conversion block, which are supplied from the primary conversion selection unit 361. Also, one-dimensional transform unit 382 obtains a one-dimensional signal sequence X 1 supplied from the signal sequence extraction unit 381. 1-dimensional conversion unit 382 performs for the one-dimensional signal sequence X 1, and conversion type identifier TrTypeIdxV primary vertical conversion, the one-dimensional transform corresponding to the information (Log2TBWSize and Log2TBHSize) about the size of the transform block, one-dimensional generating a signal sequence X 2. 1-dimensional conversion unit 382 supplies the one-dimensional signal sequence X 2 to the scaling unit 383.
- the scaling unit 383 performs a process related to scaling. For example, the scaling unit 383 obtains a one-dimensional signal sequence X 2 supplied from the one-dimensional conversion unit 382. Scaling unit 383, the coefficients of the one-dimensional signal sequence X 2, scaled by a predetermined shift amount fwdShift2 generating a one-dimensional signal sequence X 3. Scaling unit 383 supplies the one-dimensional signal sequence X 3 in the clip portion 384.
- the clip unit 384 performs processing related to clip processing. For example, the clip portion 384 obtains a one-dimensional signal sequence X 3 supplied from the scaling unit 383. Clip portion 384, each coefficient of the one-dimensional signal sequence X 3, clipped using the minimum value minCoefVal and maximum MaxCoefVal, to generate a one-dimensional signal sequence X 4. Clip portion 384 supplies the one-dimensional signal sequence X 4 in the two-dimensional data string generator 385.
- the two-dimensional data string generation unit 385 performs processing related to generation of a two-dimensional data string.
- 2-dimensional data string generator 385 stores a one-dimensional signal sequence X 4 supplied from the clip portion 384.
- 2-dimensional data string generator 385 generates an output coefficient data Xout is collectively two-dimensional data sequence to its one-dimensional signal sequence X 4 by a predetermined number.
- the two-dimensional data sequence generation unit 385 outputs the output coefficient data Xout (the conversion coefficient Coeff_P after the primary conversion (the conversion coefficient Coeff_Pver after the primary vertical conversion)) to the outside of the primary vertical conversion unit 363 (to the secondary conversion unit 353). Supply).
- Each processing unit of the signal sequence extraction unit 381 to the two-dimensional data sequence generation unit 385 has an arbitrary configuration.
- each processing unit may be configured by a logic circuit that realizes the above-described processing.
- each processing unit may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program by using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing.
- each processing unit may have both configurations, and a part of the above-described processing may be realized by a logic circuit, and the other may be realized by executing a program.
- the configuration of each processing unit may be independent from each other.
- some of the processing units may realize a part of the above-described processing by a logic circuit, and some of the other processing units may execute a program. May be implemented, and another processing unit may implement the above-described processing by both the logic circuit and the execution of the program.
- the one-dimensional conversion unit 372 (FIG. 24) and the one-dimensional conversion unit 382 (FIG. 25) are used as the conversion device 100 (FIG. 24) described in the first embodiment. 6) may be applied.
- the conversion device 100 (FIG. 15) described in the third embodiment may be applied as the one-dimensional conversion unit 372 (FIG. 24) or the one-dimensional conversion unit 382 (FIG. 25).
- the conversion device 100 described in the fifth embodiment may be applied as the one-dimensional conversion unit 372 (FIG. 24) or the one-dimensional conversion unit 382 (FIG. 25).
- the 1-dimensional conversion unit 372 and the one-dimensional transform unit 382 for one-dimensional signal sequence X 1, as described with reference to the tables, and the like in FIG. 7, performs one-dimensional transform of each conversion type To do. Further, for example, the one-dimensional conversion unit 372 and the one-dimensional conversion unit 382 derive the base conversion matrix used for the matrix operation as described with reference to the table in FIG.
- the one-dimensional conversion unit 372 and the one-dimensional conversion unit 382 perform the primary conversion (the one-dimensional conversion in the horizontal or vertical direction) on (the prediction residual D of) the image data to be encoded.
- the same effect as in the case of the first embodiment, the third embodiment, or the fifth embodiment can be obtained. That is, the image encoding device 300 can suppress the complexity of the configuration of the one-dimensional conversion (simplify the configuration). That is, the image encoding device 300 can more easily perform the one-dimensional conversion. Therefore, the image encoding device 300 can suppress an increase in circuit scale and processing load and an increase in mounting cost.
- step S301 the rearrangement buffer 311 is controlled by the control unit 301 to rearrange the order of the frames of the input moving image data from the display order to the encoding order.
- step S302 the control unit 301 sets a processing unit (performs block division) for the input image held by the rearrangement buffer 311.
- step S303 the control unit 301 determines (sets) an encoding parameter for the input image held by the rearrangement buffer 311.
- step S304 the prediction unit 322 performs a prediction process to generate a prediction image or the like in an optimal prediction mode. For example, in this prediction processing, the prediction unit 322 performs intra prediction to generate a prediction image or the like in an optimal intra prediction mode, performs inter prediction to generate a prediction image or the like in an optimal inter prediction mode, From among them, an optimal prediction mode is selected based on a cost function value or the like.
- step S305 the calculation unit 312 calculates the difference between the input image and the prediction image in the optimal mode selected by the prediction processing in step S304. That is, the calculation unit 312 generates a prediction residual D between the input image and the prediction image.
- the data amount of the prediction residual D obtained in this manner is reduced as compared with the original image data. Therefore, the data amount can be compressed as compared with the case where the image is directly encoded.
- step S306 the orthogonal transform unit 313 performs an orthogonal transform process on the prediction residual D generated by the process in step S305, and derives a transform coefficient Coeff.
- step S307 the quantization unit 314 quantizes the transform coefficient Coeff obtained by the process in step S306 by using the quantization parameter calculated by the control unit 301, and derives a quantized transform coefficient level level. .
- step S308 the inverse quantization unit 317 inversely quantizes the quantized transform coefficient level generated by the process in step S307 by using a characteristic corresponding to the quantization characteristic in step S307, and derives a transform coefficient Coeff_IQ. .
- step S309 the inverse orthogonal transform unit 318 performs inverse orthogonal transform on the transform coefficient Coeff_IQ obtained in step S308 by a method corresponding to the orthogonal transform process in step S306, and derives a prediction residual D ′. Since the inverse orthogonal transform process is the same as the inverse orthogonal transform process (described later) performed on the decoding side, the description (described later) performed on the decoding side is applied to the inverse orthogonal transform process in step S309. can do.
- step S310 the arithmetic unit 319 adds the prediction image obtained by the prediction processing in step S304 to the prediction residual D ′ derived in the processing in step S309, to obtain a locally decoded image. Generate.
- step S311 the in-loop filter unit 320 performs an in-loop filter process on the locally decoded image derived in step S310.
- step S312 the frame memory 321 stores the locally decoded image derived in step S310 and the locally decoded image filtered in step S312.
- the encoding unit 315 encodes the quantized transform coefficient level level obtained by the processing in step S307. For example, the encoding unit 315 encodes a quantized transform coefficient level, which is information about an image, by arithmetic encoding or the like, and generates encoded data. At this time, the encoding unit 315 encodes various encoding parameters (header information Hinfo, prediction mode information Pinfo, and conversion information Tinfo). Further, the encoding unit 315 derives residual information RInfo from the quantized transform coefficient level level, and encodes the residual information RInfo.
- a quantized transform coefficient level which is information about an image, by arithmetic encoding or the like
- the encoding unit 315 encodes various encoding parameters (header information Hinfo, prediction mode information Pinfo, and conversion information Tinfo). Further, the encoding unit 315 derives residual information RInfo from the quantized transform coefficient level level, and encodes the residual information RInfo.
- step S314 the accumulation buffer 316 accumulates the encoded data thus obtained, and outputs the encoded data to the outside of the image encoding device 300, for example, as a bit stream.
- This bit stream is transmitted to the decoding side via a transmission path or a recording medium, for example.
- the rate control unit 323 performs rate control as needed.
- step S314 ends, the image encoding processing ends.
- the switch 351 determines in step S331 that the transform skip flag ts_flag is 2D_TS (when indicating a two-dimensional transform skip) (for example, 1 (true)) or the transform quantization bypass flag transquant_bypass_flag is 1 (True), it is determined whether or not.
- the transform skip flag ts_flag is determined to be 2D_TS (for example, 1 (true)) or the transform quantization bypass flag is 1 (true)
- the orthogonal transform process ends, and the process returns to FIG. In this case, the orthogonal transform processing (primary transform and secondary transform) is omitted, and the input prediction residual D is used as the transform coefficient Coeff.
- step S331 of FIG. 27 it is determined that the conversion skip flag ts_flag is not 2D_TS (not a two-dimensional conversion skip) (for example, 0 (false)) and the transform quantization bypass flag transquant_bypass_flag is 0 (false). If so, the process proceeds to step S332. In this case, a primary conversion process and a secondary conversion process are performed.
- step S332 the primary transform unit 352 performs a primary transform process on the input prediction residual D based on the adaptive primary transform information specified by the component identifier compID, and derives a transform coefficient Coeff_P after the primary transform. I do.
- step S333 the secondary conversion unit 353 performs a secondary conversion process on the conversion coefficient Coeff_P, and derives a conversion coefficient Coeff_S (transform coefficient Coeff) after the secondary conversion.
- the primary conversion selecting unit 361 (FIG. 23) of the primary conversion unit 352 determines in step S341 that the conversion type identifier TrTypeIdxH of the primary horizontal conversion (and the conversion type TrTypeH specified by the identifier). , And the conversion type identifier TrTypeIdxV of the primary vertical conversion (and the conversion type TrTypeV specified by the identifier), respectively, are selected as described above.
- step S342 the primary horizontal conversion unit 362 performs primary horizontal conversion processing corresponding to the conversion type identifier TrTypeIdxH of the primary horizontal conversion obtained in step S341 on the prediction residual D, and performs a conversion coefficient Coeff_Phor after the primary horizontal conversion. Is derived.
- step S343 the primary vertical conversion unit 363 performs the primary vertical conversion processing corresponding to the conversion type identifier TrTypeIdxV of the primary vertical conversion obtained in step S341 on the primary horizontal conversion result (the conversion coefficient Coeff_Phor after the primary horizontal conversion). Then, a conversion coefficient Coeff_Pver after the primary vertical conversion (a conversion coefficient Coeff_P after the primary conversion) is derived.
- step S343 ends, the primary conversion processing ends, and the processing returns to FIG.
- the signal sequence extraction unit 371 (FIG. 24) of the primary horizontal conversion unit 362 acquires input coefficient data Xin (prediction residual D) as a two-dimensional data sequence in step S351. , Memorize (hold).
- step S352 the signal sequence extraction unit 371, for example, as shown in the following expression (29), and extracts a row of the process target of the input coefficient data Xin holding the (j) as a one-dimensional signal sequence X 1.
- one-dimensional conversion unit 372 performs conversion processing using the base transform matrix T base in accordance with the converted type identifier trTypeIdxH the transform size (NTBS), a one-dimensional transformation for the one-dimensional signal sequence X 1 Do.
- step S354 the scaling unit 373, for example, as shown in the following expression (30), scaling the coefficients X 2 of the one-dimensional signal sequence X 2 [i] in the shift amount FwdShift1, a one-dimensional signal sequence X 3 Derive.
- step S355 the clip portion 374, for example, as shown in the following expression (31), the coefficients of the one-dimensional signal sequence X 3 X 3 [i], clipped between the minimum minCoefVal and maximum maxCoefVal , to derive a one-dimensional signal sequence X 4.
- step S356 the two-dimensional data array generating unit 375 generates two-dimensional data string Xout by using a one-dimensional signal sequence X 4. That is, two-dimensional data string generator 375, holding a one-dimensional signal sequence X 4 and (storage), by assembling a predetermined column fraction 1 dimensional signal sequence X 4, to produce a 2-dimensional data string Xout.
- This processing can be represented, for example, by the following equation (32).
- step S357 the two-dimensional data string generation unit 375 determines whether or not each processing in steps S352 to S357 has been performed for all rows. That is, the processes in steps S352 to S357 are performed for each row of the input data Xin held in step S351. The two-dimensional data string generation unit 375 determines whether or not all the rows have been processed.
- step S352 If it is determined that there is an unprocessed line, the process returns to step S352, and the subsequent process is repeated for the next unprocessed line. If it is determined in step S357 that all the rows have been processed, the two-dimensional data sequence generation unit 375 converts the generated two-dimensional data sequence Xout (the conversion coefficient Coeff_Phor after the primary horizontal conversion) into the primary vertical conversion unit 363. It is output to the outside (supplied to the primary vertical conversion unit 363). When the two-dimensional data string Xout is output, the primary horizontal conversion processing ends, and the processing returns to FIG.
- the conversion coefficient Coeff_Phor after the primary horizontal conversion the conversion coefficient Coeff_Phor after the primary horizontal conversion
- the signal sequence extraction unit 381 (FIG. 25) of the primary vertical conversion unit 363 determines in step S361 that the input coefficient data Xin (the conversion coefficient Coeff_Phor after the primary horizontal conversion) is a two-dimensional data sequence. ) Is acquired and stored (held).
- step S362 the signal sequence extraction unit 381, for example, as shown in the following expression (33), extracts the column to be processed of the input coefficient data Xin holding the (j) as a one-dimensional signal sequence X 1.
- one-dimensional conversion unit 382 performs conversion processing using the base transform matrix T base in accordance with the converted type identifier trTypeIdxV the transform size (NTBS), a one-dimensional transformation for the one-dimensional signal sequence X 1 Do.
- step S364 the scaling unit 383, for example, as shown in the following expression (34), scaling the coefficients X 2 of the one-dimensional signal sequence X 2 [i] in the shift amount FwdShift2, a one-dimensional signal sequence X 3 Derive.
- step S365 the clipping unit 384 clips each coefficient X 3 [i] of the one-dimensional signal sequence X 3 between the minimum value minCoefVal and the maximum value maxCoefVal, for example, as in Expression (31) above. , to derive a one-dimensional signal sequence X 4.
- step S366 the two-dimensional data array generating unit 385 generates two-dimensional data string Xout by using a one-dimensional signal sequence X 4. That is, two-dimensional data string generator 385, holding a one-dimensional signal sequence X 4 and (storage), by assembling a predetermined column fraction 1 dimensional signal sequence X 4, to produce a 2-dimensional data string Xout.
- This processing can be represented, for example, by the following equation (35).
- step S367 the two-dimensional data string generation unit 385 determines whether or not each processing in steps S362 to S367 has been performed for all the columns. That is, the processes in steps S362 to S367 are performed for each column of the input data Xin held in step S361.
- the two-dimensional data sequence generation unit 385 determines whether or not all the columns have been processed.
- step S362 If it is determined that there is an unprocessed column, the process returns to step S362, and the subsequent process is repeated for the next unprocessed column. If it is determined in step S367 that all columns have been processed, the primary vertical conversion process ends, and the process returns to FIG.
- step S353 of the above-described primary horizontal conversion processing for example, the one-dimensional conversion unit 372 executes the conversion processing in the same flow as in the case of the first embodiment (FIG. 8). You may.
- the one-dimensional conversion unit 372 may execute the conversion process in the same flow as in the case of the third embodiment (FIG. 17). Further, the one-dimensional conversion unit 372 may execute the conversion processing in the same flow as in the fifth embodiment.
- step S363 of the primary vertical conversion process (FIG. 30) as described above for example, the one-dimensional conversion unit 382 executes the conversion process in the same flow as in the case of the first embodiment (FIG. 8). You may do so. Also, the one-dimensional conversion unit 382 may execute the conversion process in the same flow as in the case of the third embodiment (FIG. 17). Further, the one-dimensional conversion unit 382 may execute the conversion process in the same flow as in the fifth embodiment.
- the one-dimensional conversion unit 372 or the one-dimensional conversion unit 382 performs one-dimensional conversion in the horizontal or vertical direction on the primary conversion (for the prediction residual D of the encoded image data).
- the image encoding device 300 can suppress the complexity of the configuration of the one-dimensional conversion (simplify the configuration). That is, the image encoding device 300 can more easily perform the one-dimensional conversion. Therefore, the image encoding device 300 can suppress an increase in circuit scale and processing load and an increase in mounting cost.
- FIG. 31 is a block diagram illustrating an example of a configuration of an image decoding device that is an aspect of an image processing device to which the present technology is applied.
- the image decoding apparatus 400 illustrated in FIG. 31 is an apparatus that decodes encoded data in which a prediction residual between an image and a prediction image thereof is encoded, such as AVC or HEVC.
- the image decoding apparatus 400 implements the technology described in Non-Patent Document 1, Non-Patent Document 5, or Non-Patent Document 6, and performs moving image decoding by a method based on a standard described in any of those documents.
- the encoded data obtained by encoding the image data of the image is decoded.
- the image decoding device 400 decodes the encoded data (bit stream) generated by the image encoding device 300 described above.
- FIG. 31 shows main components such as the processing unit and the flow of data, and the components shown in FIG. 31 are not necessarily all. That is, in the image decoding device 400, a processing unit not illustrated as a block in FIG. 31 may exist, or a process or data flow not illustrated as an arrow or the like in FIG. 31 may exist. This is the same in other drawings for explaining the processing unit and the like in the image decoding device 400.
- the image decoding device 400 includes an accumulation buffer 411, a decoding unit 412, an inverse quantization unit 413, an inverse orthogonal transform unit 414, an operation unit 415, an in-loop filter unit 416, a rearrangement buffer 417, a frame memory 418, and A prediction unit 419 is provided.
- the prediction unit 419 includes an intra prediction unit and an inter prediction unit (not shown).
- the image decoding device 400 is a device for generating moving image data by decoding encoded data (bit stream).
- the accumulation buffer 411 acquires the bit stream input to the image decoding device 400 and holds (stores) the bit stream.
- the storage buffer 411 supplies the stored bit stream to the decoding unit 412 at a predetermined timing or when a predetermined condition is satisfied.
- the decoding unit 412 performs a process related to image decoding. For example, the decoding unit 412 receives the bit stream supplied from the accumulation buffer 411 as input, performs variable length decoding of the syntax value of each syntax element from the bit string according to the definition of the syntax table, and derives parameters. I do.
- the parameters derived from the syntax elements and the syntax values of the syntax elements 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 412 parses (analyzes and acquires) such information from the bit stream. The information will be described below.
- the header information Hinfo includes, for example, header information such as VPS (Video Parameter Set) / SPS (Sequence Parameter Set) / PPS (Picture Parameter Set) / SH (slice header).
- the header information Hinfo includes, for example, an image size (horizontal width PicWidth, vertical width PicHeight), bit depth (luminance bitDepthY, chrominance bitDepthC), chrominance array type ChromaArrayType, and CU size maximum value MaxCUSize / minimum value MinCUSize and quadtree division ( Maximum depth MaxQTDepth / minimum depth MinQTDepth of Quad-tree partition) Maximum depth MaxBTDepth / minimum depth MinBTDepth of binary tree partition (Binary-tree partition), maximum value MaxTSSize of conversion skip block (also called maximum conversion skip block size) ), And information specifying an on / off flag (also referred to as a valid flag) of each encoding tool.
- an image size horizontal width PicWidth, vertical width PicHeight
- bit depth luminance bitDepthY, chrominance bitDepthC
- chrominance array type ChromaArrayType chrominance array type ChromaArrayType
- the on / off flag of the encoding tool included in the header information Hinfo there are on / off flags related to the following conversion and quantization processing.
- the on / off flag of the encoding tool can also be interpreted as a flag indicating whether or not syntax related to the encoding tool exists in encoded data. When the value of the on / off flag is 1 (true), it indicates that the encoding tool is usable. When the value of the on / off flag is 0 (false), the encoding tool is not usable. Show. Note that the interpretation of the flag value may be reversed.
- Inter-component prediction enabled flag (ccp_enabled_flag): Flag information indicating whether or not inter-component prediction (CCP (Cross-Component Prediction), also referred to as CC prediction) is available. For example, when the flag information is “1” (true), it indicates that it can be used, and when it is “0” (false), it indicates that it cannot be used.
- CCP Cross-Component Prediction
- CCP This CCP is also called inter-component linear prediction (CCLM or CCLMP).
- CCLM inter-component linear prediction
- 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.
- the ⁇ ⁇ intra prediction mode information IPinfo includes, for example, JCTVC-W1005, 7.3.8.5 coding Unit syntax, prev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode, and a luminance intra prediction mode IntraPredModeY derived from the syntax.
- the intra prediction mode information IPinfo includes, for example, an inter-component prediction flag (ccp_flag (cclmp_flag)), a multi-class linear prediction mode flag (mclm_flag), a chrominance sample position type identifier (chroma_sample_loc_type_idx), a chrominance MPM identifier (chroma_mpm_idx), and , And a luminance intra prediction mode (IntraPredModeC) derived from these syntaxes.
- ccp_flag cclmp_flag
- mclm_flag multi-class linear prediction mode flag
- chroma_sample_loc_type_idx chrominance sample position type identifier
- chroma_mpm_idx chrominance MPM identifier
- IntraPredModeC luminance intra prediction mode
- the multi-class linear prediction mode flag (mclm_flag) is information on 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 to set the multi-class linear prediction mode. For example, “0” indicates a one-class mode (single-class mode) (for example, CCLMP), and “1” indicates a two-class mode (multi-class mode) (for example, MCLMP). .
- the chrominance sample position type identifier (chroma_sample_loc_type_idx) is an identifier for identifying the type of the pixel position of the chrominance component (also referred to as a chrominance sample position type). For example, when the chrominance array type (ChromaArrayType), which is information on the color format, indicates the 420 format, the chrominance sample position type identifier is assigned as in the following Expression (36).
- the chrominance 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 chrominance component.
- the chrominance MPM identifier (chroma_mpm_idx) is an identifier indicating which prediction mode candidate in the chrominance intra prediction mode candidate list (intraPredModeCandListC) is designated as the chrominance intra prediction mode.
- the information included in the prediction mode information Pinfo is arbitrary, and information other than these information may be included.
- the conversion information Tinfo includes, for example, the following information.
- the information included in the conversion information Tinfo is arbitrary, and information other than these information may be included.
- Conversion skip flag (ts_flag): This flag indicates whether or not (reverse) primary conversion and (reverse) secondary conversion are skipped.
- Scan identifier (scanIdx) Quantization parameter (qp) Quantization matrix (scaling_matrix (eg, JCTVC-W1005, 7.3.4 Scaling list data syntax))
- the residual information Rinfo (for example, refer to 7.3.8.11 Residual Coding syntax of JCTVC-W1005) includes, for example, the following syntax.
- cbf (coded_block_flag): residual data presence 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: sub-block non-zero coefficient presence flag sig_coeff_flag: non-zero coefficient presence flag gr1_flag: non-zero coefficient Flag indicating whether it is greater than 1 (also called GR1 flag)
- gr2_flag Flag indicating whether the level of the non-zero coefficient is greater than 2 (also referred to as GR2 flag)
- sign_flag code indicating the sign of the non-zero coefficient (also called sign code) coeff_abs_level_remaining: residual level of non-zero coefficient (also called non-zero coefficient residual level) Such.
- the information included in the residual information Rinfo is arbitrary, and information other than these information may be included.
- the filter information Finfo includes, for example, control information on each filter process described below.
- DPF deblocking filter
- SAO pixel adaptive offset
- ALF adaptive loop filter
- a picture to which each filter is applied information for specifying a region in the picture, filter On / Off control information for each CU, filter on / off control information for slices, and tile boundaries are included. included.
- the information included in the filter information Finfo is arbitrary, and information other than these information may be included.
- the decoding unit 212 derives the quantized transform coefficient level level at each coefficient position in each transform block with reference to the residual information Rinfo.
- the decoding unit 212 supplies the quantized transform coefficient level level to the inverse quantization unit 213.
- ⁇ Decoding section 412 supplies the parsed header information Hinfo, prediction mode information Pinfo, quantized transform coefficient level level, transform information Tinfo, and filter information Finfo to each block. Specifically, it is as follows.
- the header information Hinfo is supplied to the inverse quantization unit 413, the inverse orthogonal transform unit 414, the prediction unit 419, and the in-loop filter unit 416.
- the prediction mode information Pinfo is supplied to the inverse quantization unit 413 and the prediction unit 419.
- the transform information Tinfo is supplied to the inverse quantization unit 413 and the inverse orthogonal transform unit 414.
- the filter information Finfo is supplied to the in-loop filter unit 416.
- each encoding parameter may be supplied to an arbitrary processing unit.
- other information may be supplied to an arbitrary processing unit.
- the inverse quantization unit 413 performs a process related to inverse quantization. For example, the inverse quantization unit 413 receives the transform information Tinfo and the quantized transform coefficient level supplied from the decoding unit 412 as inputs, and scales the value of the quantized transform coefficient level (inverse) based on the transform information Tinfo. Quantization), and derives a transform coefficient Coeff_IQ after inverse quantization.
- this inverse quantization is performed as inverse processing of quantization by the quantization unit 314.
- This inverse quantization is the same processing as the inverse quantization by the inverse quantization unit 317. That is, the inverse quantization unit 317 performs the same processing (inverse quantization) as the inverse quantization unit 413.
- the inverse quantization unit 413 supplies the derived transform coefficient Coeff_IQ to the inverse orthogonal transform unit 414.
- the inverse orthogonal transform unit 414 performs a process related to the inverse orthogonal transform. For example, the inverse orthogonal transform unit 414 receives the transform coefficient Coeff_IQ supplied from the inverse quantization unit 413 and the transform information Tinfo supplied from the decoding unit 412 as inputs, and converts the transform coefficient Coeff_IQ based on the transform information Tinfo. An inverse orthogonal transformation process is performed on the result to derive a prediction residual D ′.
- this inverse orthogonal transform is performed as an inverse process of the orthogonal transform by the orthogonal transform unit 313.
- the inverse orthogonal transform is a process similar to the inverse orthogonal transform performed by the inverse orthogonal transform unit 318. That is, the inverse orthogonal transform unit 318 performs the same processing (inverse orthogonal transform) as the inverse orthogonal transform unit 414.
- the inverse orthogonal transform unit 414 supplies the derived prediction residual D ′ to the calculation unit 415.
- the calculation unit 415 performs a process related to addition of information on an image. For example, the calculation unit 415 receives the prediction residual D ′ supplied from the inverse orthogonal transform unit 414 and the prediction image P supplied from the prediction unit 419 as inputs. The calculation unit 415 adds the prediction residual D ′ and the prediction image P (prediction signal) corresponding to the prediction residual D ′ to derive the local decoded image Rlocal as shown in the following Expression (37). I do.
- the operation unit 415 supplies the derived local decoded image Rlocal to the in-loop filter unit 416 and the frame memory 418.
- the in-loop filter unit 416 performs processing related to in-loop filter processing.
- the in-loop filter unit 416 receives the local decoded image Rlocal supplied from the arithmetic unit 415 and the filter information Finfo supplied from the decoding unit 412 as inputs.
- information input to the in-loop filter unit 416 is arbitrary, and information other than these information may be input.
- the in-loop filter unit 416 appropriately performs a filtering process on the locally decoded image Rlocal based on the filter information Finfo.
- the in-loop filter unit 416 includes a bilateral filter, a deblocking filter (DBF (DeBlocking @ Filter)), an adaptive offset filter (SAO (Sample @ Adaptive @ Offset)), and an adaptive loop filter.
- DPF DeBlocking @ Filter
- SAO Sample @ Adaptive @ Offset
- ALF Adaptive Loop Loop Filter
- the in-loop filter unit 416 performs a filter process corresponding to the filter process performed by the encoding side (for example, the in-loop filter unit 320 of the image encoding device 300).
- the filtering process performed by the in-loop filter unit 416 is optional, and is not limited to the above example.
- the in-loop filter unit 416 may apply a Wiener filter or the like.
- the in-loop filter unit 416 supplies the filtered local decoded image Rlocal to the reordering buffer 417 and the frame memory 418.
- the reordering buffer 417 receives the local decoded image Rlocal supplied from the in-loop filter unit 416 as an input, and holds (stores) it.
- the reordering buffer 417 reconstructs and holds the decoded image R for each picture unit using the local decoded image Rlocal (stores the decoded image R in the buffer).
- the rearrangement buffer 417 rearranges the obtained decoded images R from decoding order to reproduction order.
- the rearrangement buffer 417 outputs the rearranged decoded image group R to the outside of the image decoding device 200 as moving image data.
- the frame memory 418 performs a process related to storage of data related to an image. For example, the frame memory 418 receives the local decoded image Rlocal supplied from the arithmetic unit 415 as an input, reconstructs a decoded image R for each picture unit, and stores the reconstructed image R in a buffer in the frame memory 418.
- the frame memory 418 receives the in-loop filtered local decoded image Rlocal supplied from the in-loop filter unit 416 as an input, reconstructs a decoded image R for each picture unit, and To store.
- the frame memory 418 appropriately supplies the stored decoded image R (or a part thereof) to the prediction unit 419 as a reference image.
- the frame memory 418 may store header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, filter information Finfo, and the like related to generation of a decoded image.
- the prediction unit 419 performs a process related to generation of a predicted image. For example, the prediction unit 419 receives the prediction mode information Pinfo supplied from the decoding unit 412, performs prediction using the prediction method specified by the prediction mode information Pinfo, and derives a predicted image P. At the time of the derivation, the prediction unit 419 uses a decoded image R (or a part thereof) before or after the filter, which is specified by the prediction mode information Pinfo and stored in the frame memory 418, as a reference image. The prediction unit 419 supplies the derived prediction image P to the calculation unit 415.
- FIG. 32 is a block diagram illustrating a main configuration example of the inverse orthogonal transform unit 414 in FIG.
- the inverse orthogonal transform unit 414 includes a switch 451, an inverse secondary transform unit 452, and an inverse primary transform unit 453.
- the switch 451 receives as input the conversion coefficient Coeff_IQ and the conversion skip flag ts_flag [compID].
- the switch 451 supplies the conversion coefficient Coeff_IQ to the inverse secondary conversion unit 452.
- the inverse secondary transform unit 452 performs a process related to an inverse secondary transform, which is an inverse process of the secondary transform performed on the encoding side (for example, the secondary transform unit 353 of the image encoding device 300).
- the inverse secondary transform unit 452 receives as input the secondary transform identifier st_idx, the scan identifier scanIdx indicating the scan method of the transform coefficient, and the transform coefficient Coeff_IQ supplied from the switch 451.
- the inverse secondary transform unit 452 performs inverse secondary transform on the transform coefficient Coeff_IQ based on the secondary transform identifier st_idx and the scan identifier scanIdx, and derives a transform coefficient Coeff_IS after the inverse secondary transform.
- the inverse secondary transform unit 452 performs the inverse transform corresponding to the secondary transform identifier st_idx on the transform coefficient Coeff_IQ.
- the secondary conversion processing is executed to derive a conversion coefficient Coeff_IS after the inverse secondary conversion.
- the inverse secondary transform unit 452 supplies the inverse secondary transform coefficient Coeff_IS to the inverse primary transform unit 453.
- the inverse secondary transform unit 452 skips the inverse secondary transform and converts the transform coefficient Coeff_IQ into the transform coefficient after the inverse secondary transform. It is supplied to the inverse primary conversion unit 453 as Coeff_IS.
- the inverse primary conversion unit 453 performs a process related to an inverse primary conversion, which is an inverse process of the primary conversion performed on the encoding side (for example, the primary conversion unit 352 of the image encoding device 300). For example, the inverse primary conversion unit 453 generates the component identifier compID, the adaptive primary conversion flag apt_flag [compID] of the component identifier compID, the primary conversion identifier pt_idx [compID] of the component identifier compID, the prediction mode information PInfo, the size of the conversion block (the width of the conversion block).
- the logarithmic value log2TBWSize, (the vertical logarithmic value log2TBHSize) and the conversion coefficient Coeff_IS after the inverse secondary conversion are input.
- the inverse primary conversion unit 453 refers to the prediction mode information PInfo, the component identifier compID, the adaptive primary conversion flag apt_flag [compID] of the component identifier compID, and the primary conversion identifier pt_idx [compID] of the component identifier compID, and refers to the component identifier compID.
- the conversion type TrTypeH of the inverse primary horizontal conversion corresponding to (and the inverse primary horizontal conversion type identifier TrTypeIdxH indicating the conversion type), and the conversion type TrTypeV of the inverse primary vertical conversion (and the inverse primary vertical conversion type identifier TrTypeIdxV indicating the conversion type) ).
- the inverse primary conversion unit 453 determines the inverse primary vertical conversion type identifier TrTypeIdxV (or the inverse primary vertical conversion type TrTypeV) and the inverse primary logarithm determined by the vertical width log2TBHSize of the conversion block for the conversion coefficient Coeff_IS after the inverse secondary.
- the vertical conversion and the inverse primary horizontal conversion type identifier TrTypeIdxH (or the inverse primary horizontal conversion type TrTypeH) and the inverse primary horizontal conversion determined by the horizontal width log2TBWSize of the conversion block are performed to derive a conversion coefficient Coeff_IP after the inverse primary conversion.
- the inverse primary vertical transform is an inverse one-dimensional orthogonal transform in the vertical direction
- the inverse primary horizontal transform is an inverse one-dimensional orthogonal transform in the horizontal direction.
- the inverse primary transform unit 453 outputs the transform coefficient Coeff_IP after the inverse primary transform to the outside of the inverse orthogonal transform unit 414 as a prediction residual D ′ (supplies it to the arithmetic unit 415).
- FIG. 33 is a block diagram illustrating a main configuration example of the inverse primary conversion unit 453 (FIG. 32) in this case.
- the inverse primary conversion unit 453 has an inverse primary conversion selection unit 461, an inverse primary vertical conversion unit 462, and an inverse primary horizontal conversion unit 463.
- the inverse primary conversion selecting unit 461 receives as input the prediction mode information PInfo, the component identifier compID, the adaptive primary conversion flag apt_flag [compID], and the primary conversion identifier pt_idx [compID].
- the inverse primary conversion selecting unit 461 derives the conversion type identifier TrTypeIdxV of the inverse primary vertical conversion and the conversion type identifier TrTypeIdxH of the inverse primary vertical conversion with reference to the information.
- the inverse primary conversion selecting unit 461 supplies the derived conversion type identifier TrTypeIdxV of the inverted primary vertical conversion to the inverted primary vertical conversion unit 462. Further, the inverse primary conversion selecting unit 461 supplies the derived conversion type identifier TrTypeIdxH of the inverted primary horizontal conversion to the inverted primary horizontal conversion unit 463.
- the inverse primary vertical conversion unit 462 receives as input the conversion coefficient Coeff_IS after the inverse secondary conversion, the conversion type identifier TrTypeIdxV of the inverse primary vertical conversion, and information on the size of the conversion block.
- the inverse primary vertical conversion unit 462 performs an inverse primary vertical conversion IPver determined by the conversion type identifier TrTypeIdxV and the size of the conversion block on the conversion coefficient Coeff_IS after the inverse secondary conversion, and converts the conversion coefficient Coeff_IPver after the inverse primary vertical conversion. Derive.
- the inverse primary vertical conversion unit 462 supplies the conversion coefficient Coeff_IPver after the inverse primary vertical conversion to the inverse primary horizontal conversion unit 463.
- the inverse primary horizontal conversion unit 463 receives as input the conversion coefficient Coeff_IPver after the inverse primary vertical conversion, the conversion type identifier TrTypeIdxH of the inverse primary horizontal conversion, and information on the size of the conversion block.
- the inverse primary horizontal conversion unit 463 performs the inverse primary horizontal conversion IPhor determined by the conversion type identifier TrTypeIdxH and the size of the conversion block on the conversion coefficient Coeff_IPver after the inverse primary vertical conversion supplied from the inverse primary vertical conversion unit 462. , The conversion coefficient Coeff_IPhor after the inverse primary horizontal conversion (that is, the conversion coefficient Coeff_IP after the inverse primary conversion) is derived.
- the inverse primary horizontal transform unit 463 outputs the transform coefficient Coeff_IPhor after the inverse primary horizontal transform as a prediction residual D ′ to the outside of the inverse primary transform unit 453 (supplies it to the arithmetic unit 415).
- FIG. 34 is a block diagram illustrating a main configuration example of the inverse primary vertical conversion unit 462 in FIG.
- the inverse primary vertical conversion unit 462 includes a signal sequence extraction unit 471, an inverse one-dimensional conversion unit 472, a scaling unit 473, a clip unit 474, and a two-dimensional data sequence generation unit 475.
- the signal sequence extraction unit 471 performs a process related to signal sequence extraction. For example, the signal sequence extracting unit 471 acquires and stores input coefficient data Xin (transform coefficient Coeff_IS after inverse secondary transform) of a two-dimensional data sequence (matrix) input to the inverse primary vertical transform unit 462. Signal sequence extraction unit 471, each column of the input coefficient data Xin extracted one column, and supplies the inverse one-dimensional transform unit 472 as a one-dimensional signal sequence X 1.
- input coefficient data Xin transform coefficient Coeff_IS after inverse secondary transform
- the signal sequence extraction unit 471 obtains a one-dimensional signal sequence X from the processing target block of the quantized transform coefficient level level (the transform coefficient Coeff_IS corresponding to the coefficient data generated by decoding the bit stream by the decoding unit 412). Extract 1 The flip unit 152 of the inverse one-dimensional conversion unit 472 performs a flip operation on the one-dimensional signal sequence extracted by the signal sequence extraction unit 471.
- the inverse one-dimensional conversion unit 472 performs a process related to the inverse one-dimensional conversion. For example, the inverse one-dimensional conversion unit 472 acquires the conversion type identifier TrTypeIdxV of the inverse primary vertical conversion and the information (log2TBWSize and log2TBHSize) regarding the size of the conversion block, which are supplied from the inverse primary conversion selection unit 461. Also, inverse one-dimensional transform unit 472 obtains a one-dimensional signal sequence X 1 supplied from the signal sequence extraction unit 471.
- Inverse one-dimensional transform unit 472 for the one-dimensional signal sequence X 1, and conversion type identifier TrTypeIdxV inverse primary vertical conversion, an inverse one-dimensional transform corresponding to the information (Log2TBWSize and Log2TBHSize) about the size of the transform block performs , and it generates a one-dimensional signal sequence X 2.
- Inverse one-dimensional transform unit 472 supplies the one-dimensional signal sequence X 2 to the scaling unit 473.
- the scaling unit 473 performs processing related to scaling. For example, the scaling unit 473 obtains a one-dimensional signal sequence X 2 supplied from the inverse one-dimensional transform unit 472. Scaling unit 473, the coefficients of the one-dimensional signal sequence X 2, scaled by a predetermined shift amount invShift1 generating a one-dimensional signal sequence X 3. Scaling unit 473 supplies the one-dimensional signal sequence X 3 in the clip portion 474.
- the clip unit 474 performs processing related to clip processing. For example, the clip portion 474 obtains a one-dimensional signal sequence X 3 supplied from the scaling unit 473. Clip portion 474, each coefficient of the one-dimensional signal sequence X 3, clipped using the minimum value minCoefVal and maximum MaxCoefVal, to generate a one-dimensional signal sequence X 4. Clip portion 474 supplies the one-dimensional signal sequence X 4 in the two-dimensional data string generator 475.
- the two-dimensional data string generation unit 475 performs processing related to generation of a two-dimensional data string.
- 2-dimensional data string generator 475 stores a one-dimensional signal sequence X 4 supplied from the clip portion 474.
- 2-dimensional data string generator 475 generates an output coefficient data Xout is collectively two-dimensional data sequence to its one-dimensional signal sequence X 4 by a predetermined number.
- the two-dimensional data string generation unit 475 outputs the output coefficient data Xout (the conversion coefficient Coeff_IPver after inverse primary vertical conversion) to the outside of the inverse primary vertical conversion unit 462 (supplies it to the inverse primary horizontal conversion unit 463).
- the two-dimensional data sequence generation unit 475 uses the one-dimensional signal sequence X 2 (corresponding to the one-dimensional signal sequence X 4 ) on which the sign inversion operation has been performed by the sign inversion unit 154 of the inverse one-dimensional conversion unit 472. Generate a two-dimensional data sequence.
- Each processing unit of the signal sequence extraction unit 471 to the two-dimensional data sequence generation unit 475 has an arbitrary configuration.
- each processing unit may be configured by a logic circuit that realizes the above-described processing.
- each processing unit may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program by using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing.
- each processing unit may have both configurations, and a part of the above-described processing may be realized by a logic circuit, and the other may be realized by executing a program.
- the configuration of each processing unit may be independent from each other.
- some of the processing units may realize a part of the above-described processing by a logic circuit, and some of the other processing units may execute a program. May be implemented, and another processing unit may implement the above-described processing by both the logic circuit and the execution of the program.
- FIG. 35 is a block diagram illustrating a main configuration example of the inverse primary horizontal conversion unit 463 of FIG.
- the inverse primary horizontal conversion unit 463 includes a signal sequence extraction unit 481, an inverse one-dimensional conversion unit 482, a scaling unit 483, a clip unit 484, and a two-dimensional data sequence generation unit 485.
- the signal sequence extraction unit 481 performs a process related to signal sequence extraction. For example, the signal sequence extraction unit 481 acquires and stores input coefficient data Xin (transform coefficient Coeff_IPver after inverse primary vertical transform) of a two-dimensional data sequence (matrix) input to the inverse primary horizontal transform unit 463. Signal sequence extraction unit 481, each line of the input coefficient data Xin extracted one line, and supplies the inverse one-dimensional transform unit 482 as a one-dimensional signal sequence X 1.
- input coefficient data Xin transform coefficient Coeff_IPver after inverse primary vertical transform
- the inverse one-dimensional conversion unit 482 performs a process related to the inverse one-dimensional conversion. For example, the inverse one-dimensional conversion unit 482 acquires the conversion type identifier TrTypeIdxH of the inverse primary horizontal conversion and the information (log2TBWSize and log2TBHSize) related to the size of the conversion block, which are supplied from the inverse primary conversion selection unit 461. Also, inverse one-dimensional transform unit 482 obtains a one-dimensional signal sequence X 1 supplied from the signal sequence extraction unit 481.
- Inverse one-dimensional transform unit 482 for the one-dimensional signal sequence X 1, and conversion type identifier TrTypeIdxH inverse primary horizontal transform, an inverse one-dimensional transform corresponding to the information (Log2TBWSize and Log2TBHSize) about the size of the transform block performs , and it generates a one-dimensional signal sequence X 2.
- Inverse one-dimensional transform unit 482 supplies the one-dimensional signal sequence X 2 to the scaling unit 483.
- the scaling unit 483 performs processing related to scaling. For example, the scaling unit 483 obtains a one-dimensional signal sequence X 2 supplied from the inverse one-dimensional transform unit 482. Scaling unit 483, the coefficients of the one-dimensional signal sequence X 2, scaled by a predetermined shift amount invShift2 generating a one-dimensional signal sequence X 3. Scaling unit 483 supplies the one-dimensional signal sequence X 3 in the clip portion 484.
- the clip unit 484 performs processing related to clip processing. For example, the clip portion 484 obtains a one-dimensional signal sequence X 3 supplied from the scaling unit 483. Clip portion 484, each coefficient of the one-dimensional signal sequence X 3, clipped using the minimum value minCoefVal and maximum MaxCoefVal, to generate a one-dimensional signal sequence X 4. Clip portion 484 supplies the one-dimensional signal sequence X 4 in the two-dimensional data string generator 485.
- the two-dimensional data string generation unit 485 performs processing related to generation of a two-dimensional data string.
- 2-dimensional data string generator 485 stores a one-dimensional signal sequence X 4 supplied from the clip portion 484.
- 2-dimensional data string generator 485 generates an output coefficient data Xout is collectively two-dimensional data sequence to its one-dimensional signal sequence X 4 by a predetermined number.
- the two-dimensional data sequence generation unit 485 converts the output coefficient data Xout (prediction residual D ′, the transform coefficient Coeff_IPhor after inverse primary horizontal transform, or the transform coefficient Coeff_IP after inverse primary transform) into the inverse primary horizontal transform unit 463. Output to the outside (supply to the operation unit 415).
- Each processing unit of the signal sequence extraction unit 481 to the two-dimensional data sequence generation unit 485 has an arbitrary configuration.
- each processing unit may be configured by a logic circuit that realizes the above-described processing.
- each processing unit may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program by using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing.
- each processing unit may have both configurations, and a part of the above-described processing may be realized by a logic circuit, and the other may be realized by executing a program.
- the configuration of each processing unit may be independent from each other.
- some of the processing units may realize a part of the above-described processing by a logic circuit, and some of the other processing units may execute a program. May be implemented, and another processing unit may implement the above-described processing by both the logic circuit and the execution of the program.
- the inverse one-dimensional conversion unit 472 (FIG. 34) or the inverse one-dimensional conversion unit 482 (FIG. 35) is used as the inverse conversion device 150 described in the second embodiment. (FIG. 9) may be applied.
- the inverse transform device 150 (FIG. 19) described in the fourth embodiment may be applied as the inverse one-dimensional transform unit 472 (FIG. 34) or the inverse one-dimensional transform unit 482 (FIG. 35).
- the inverse transform device 150 described in the fifth embodiment may be applied as the inverse one-dimensional transform unit 472 (FIG. 34) or the inverse one-dimensional transform unit 482 (FIG. 35).
- inverse one-dimensional transform unit 472 and the inverse one-dimensional transform unit 482 for one-dimensional signal sequence X 1, as described with reference to the tables, and the like in FIG. 10, inverse one-dimensional of each conversion type Perform the conversion. Further, for example, the inverse one-dimensional conversion unit 472 and the inverse one-dimensional conversion unit 482 derive the base conversion matrix used for the matrix operation as described with reference to the table in FIG.
- the inverse one-dimensional conversion unit 472 and the inverse one-dimensional conversion unit 482 can decode coefficient data obtained by decoding a bit stream in which image data is encoded (the conversion coefficient Coeff_IS after inverse secondary conversion). ), The same effect as in the second, fourth, or fifth embodiment can be obtained.
- the accumulation buffer 411 acquires and stores (accumulates) the encoded data (bit stream) supplied from outside the image decoding device 400 in step S401.
- step S402 the decoding unit 412 decodes the encoded data (bit stream) to obtain a quantized transform coefficient level level.
- the decoding unit 412 parses (analyzes and acquires) various encoding parameters from the encoded data (bit stream) by this decoding.
- step S403 the inverse quantization unit 413 performs inverse quantization, which is an inverse process of the quantization performed on the encoding side, on the quantized transform coefficient level obtained by the process in step S402, and performs transform. Obtain the coefficient Coeff_IQ.
- step S404 the inverse orthogonal transform unit 414 performs an inverse orthogonal transform process, which is an inverse process of the orthogonal transform process performed on the encoding side, on the transform coefficient Coeff_IQ obtained by the process in step S403, and performs prediction prediction. Obtain the difference D '.
- step S405 the prediction unit 419 performs a prediction process based on the information parsed in step S402 using a prediction method designated by the encoding side, and refers to a reference image stored in the frame memory 418, and the like. Then, a predicted image P is generated.
- step S406 the calculation unit 415 adds the prediction residual D 'obtained by the processing of step S404 and the prediction image P obtained by the processing of step S405 to derive a local decoded image Rlocal.
- step S407 the in-loop filter unit 416 performs an in-loop filter process on the locally decoded image Rlocal obtained by the process in step S406.
- step S408 the reordering buffer 417 derives the decoded image R using the filtered local decoded image Rlocal obtained in the process of step S407, and arranges the order of the decoded image R group from decoding order to reproduction order. Replace.
- the decoded image R group rearranged in the reproduction order is output to the outside of the image decoding device 400 as a moving image.
- step S409 the frame memory 418 stores at least one of the local decoded image Rlocal obtained by the processing in step S406 and the local decoded image Rlocal obtained by the filtering in step S407. .
- step S409 ends, the image decoding processing ends.
- the switch 451 determines in step S431 that the transform skip flag ts_flag is 2D_TS (two-dimensional transform skip mode) (for example, 1 (true)) or the transform quantization bypass flag transquant_bypass_flag Is 1 (true).
- the transform skip identifier ts_idx is 2D_TS or the transform quantization bypass flag is 1 (true)
- the inverse orthogonal transform process ends, and the process returns to FIG.
- the inverse orthogonal transform processing (the inverse primary transform and the inverse secondary transform) is omitted, and the transform coefficient Coeff_IQ is set to the prediction residual D ′.
- step S431 it is determined that the conversion skip identifier ts_idx is not 2D_TS (a mode other than the two-dimensional conversion skip) (for example, 0 (false)) and the conversion quantization bypass flag is 0 (false). If so, the process proceeds to step S432. In this case, an inverse secondary conversion process and an inverse primary conversion process are performed.
- step S432 the inverse secondary transform unit 452 performs an inverse secondary transform process on the transform coefficient Coeff_IQ based on the secondary transform identifier st_idx to derive and output a transform coefficient Coeff_IS.
- step S433 the inverse primary transform unit 453 performs an inverse primary transform process on the transform coefficient Coeff_IS, and derives a transform coefficient Coeff_IP (prediction residual D ′) after the inverse primary transform.
- step S433 ends, the inverse orthogonal transform process ends, and the process returns to FIG.
- the inverse primary conversion selecting unit 461 (FIG. 33) of the inverse primary conversion unit 453, in step S441, converts the inverse primary vertical conversion conversion type identifier TrTypeIdxV (or the conversion type TrTypeV) with the inverse type.
- the conversion type identifier TrTypeIdxH (or the conversion type TrTypeH) of the primary horizontal conversion is selected.
- step S442 the inverse primary vertical conversion unit 462 performs an inverse primary vertical conversion process corresponding to the conversion type identifier TrTypeIdxV of the inverse primary vertical conversion obtained in step S441 on the conversion coefficient Coeff_IS after the inverse secondary conversion.
- the conversion coefficient Coeff_IPver after the primary vertical conversion is derived.
- step S443 the inverse primary horizontal conversion unit 463 performs an inverse primary horizontal conversion process corresponding to the conversion type identifier TrTypeIdxH of the inverse primary horizontal conversion obtained in step S441 on the conversion coefficient Coeff_IPver after the inverse primary vertical conversion.
- the transformation coefficient Coeff_IPhor after the inverse primary horizontal transformation (that is, the transformation coefficient Coeff_IP (prediction residual D ′) after the inverse primary transformation) is derived.
- step S443 ends, the inverse primary conversion processing ends, and the processing returns to FIG.
- the signal sequence extraction unit 471 (FIG. 34) of the inverse primary vertical conversion unit 462 determines in step S451 that input coefficient data Xin (conversion after inverse secondary conversion) is a two-dimensional data sequence.
- the coefficient Coeff_IS is obtained and stored (held).
- step S452 the signal sequence extraction unit 471, for example, as in the above Expression (33), extracts the column to be processed of the input coefficient data Xin holding the (j) as a one-dimensional signal sequence X 1.
- inverse one-dimensional transform unit 472 performs an inverse transform process, using a base transform matrix T base in accordance with the converted type identifier trTypeIdxV the transform size (NTBS), reverse 1 for a one-dimensional signal sequence X 1 Perform dimension conversion.
- step S454 the scaling unit 473, for example, as shown in the following expression (38), scaling the coefficients X 2 of the one-dimensional signal sequence X 2 [i] in the shift amount InvShift1, a one-dimensional signal sequence X 3 Derive.
- step S455 the clip portion 474, for example, as the above equation (31), the coefficients of the one-dimensional signal sequence X 3 X 3 [i], clipped between the minimum minCoefVal and maximum maxCoefVal , to derive a one-dimensional signal sequence X 4.
- step S456 the two-dimensional data array generating unit 475 generates two-dimensional data string Xout by using a one-dimensional signal sequence X 4. That is, two-dimensional data string generator 475, holding a one-dimensional signal sequence X 4 and (storage), as above Expression (35), by assembling a predetermined column fraction 1 dimensional signal sequence X 4 A two-dimensional data sequence Xout is generated.
- step S457 the two-dimensional data string generation unit 475 determines whether or not each processing in steps S452 to S457 has been performed for all the columns. That is, each processing of steps S452 to S457 is performed for each column of the input data Xin held in step S451.
- the two-dimensional data sequence generation unit 475 determines whether all the columns have been processed.
- step S452 If it is determined that there is an unprocessed column, the process returns to step S452, and the subsequent process is repeated for the next unprocessed column. If it is determined in step S457 that all columns have been processed, the primary vertical conversion process ends, and the process returns to FIG.
- the signal sequence extraction unit 481 (FIG. 35) of the inverse primary horizontal conversion unit 463 determines in step S461 that the input coefficient data Xin (two-dimensional data sequence) A conversion coefficient (Coeff_IPver) is acquired and stored (held).
- step S462 the signal sequence extraction unit 481, for example, as in the above Expression (29), and extracts processed line of the input coefficient data Xin holding the (j) as a one-dimensional signal sequence X 1.
- step S463 the inverse one-dimensional conversion unit 482 performs an inverse conversion process, and uses the conversion type identifier trTypeIdxH and the transposed matrix T base t of the base conversion matrix corresponding to the conversion size (nTbS) to generate the one-dimensional signal sequence X performing inverse one-dimensional transform for 1.
- step S464 the scaling unit 483, for example, as shown in the following expression (39), scaling the coefficients X 2 of the one-dimensional signal sequence X 2 [i] in the shift amount InvShift2, a one-dimensional signal sequence X 3 Derive.
- step S465 the clipping unit 484 clips each coefficient X 3 [i] of the one-dimensional signal sequence X 3 between the minimum value minCoefVal and the maximum value maxCoefVal, for example, as in Expression (31) above. , to derive a one-dimensional signal sequence X 4.
- step S466 the two-dimensional data array generating unit 485 generates two-dimensional data string Xout by using a one-dimensional signal sequence X 4. That is, two-dimensional data string generator 485, as shown in Equation (32) described above, holds the one-dimensional signal sequence X 4 and (storage), by assembling a predetermined column fraction 1 dimensional signal sequence X 4 A two-dimensional data sequence Xout is generated.
- step S467 the two-dimensional data string generation unit 485 determines whether or not the processing in steps S462 to S467 has been performed for all rows. That is, each processing of steps S462 to S467 is performed for each row of the input data Xin held in step S461. The two-dimensional data string generation unit 485 determines whether or not all the rows have been processed.
- step S467 If it is determined that there is an unprocessed line, the process returns to step S462, and the subsequent processes are repeated with the next unprocessed line as a processing target. If it is determined in step S467 that all the rows have been processed, the two-dimensional data sequence generation unit 485 generates the two-dimensional data sequence Xout (the prediction residual D ′, the conversion coefficient Coeff_IPhor after inverse primary horizontal conversion, Alternatively, the conversion coefficient Coeff_IP after the inverse primary conversion is output to the outside of the inverse primary horizontal conversion unit 463 (supplied to the calculation unit 415). When the two-dimensional data string Xout is output, the inverse primary horizontal conversion processing ends, and the processing returns to FIG.
- step S453 of the above-described inverse primary vertical conversion process for example, the inverse one-dimensional conversion unit 472 executes the inverse conversion process in the same flow as in the case of the second embodiment (FIG. 11). You may make it. Further, the inverse one-dimensional conversion unit 472 may execute the inverse conversion process in the same flow as in the case of the fourth embodiment (FIG. 20). Further, the inverse one-dimensional conversion unit 472 may execute the inverse conversion process in the same flow as in the fifth embodiment.
- step S463 of the above-described inverse primary horizontal conversion process for example, the inverse one-dimensional conversion unit 482 performs the inverse conversion process in the same flow as in the case of the second embodiment (FIG. 11). May be executed. Further, the inverse one-dimensional conversion unit 482 may execute the inverse conversion process in the same flow as in the case of the fourth embodiment (FIG. 20). Further, the inverse one-dimensional conversion unit 482 may execute the inverse conversion process in the same flow as in the fifth embodiment.
- the inverse one-dimensional transform unit 472 and the inverse one-dimensional transform unit 482 perform inverse primary transform (in horizontal inverse transform) on coefficient data obtained by decoding a bit stream in which image data is encoded.
- the same effect as in the second embodiment or the fourth embodiment can be obtained. That is, the image decoding apparatus 400 can suppress the configuration of the inverse one-dimensional conversion from becoming complicated (simplify the configuration). That is, the image decoding apparatus 400 can perform the inverse one-dimensional conversion more easily. Therefore, the image decoding device 400 can suppress an increase in circuit scale and processing load, and can suppress an increase in mounting cost.
- the image encoding device 300 also has the inverse orthogonal transform unit 318, has the same configuration as the inverse orthogonal transform unit 414 of the image decoding device 400, and performs the same processing. That is, the inverse orthogonal transform unit 318 also performs the inverse primary transform (the horizontal or vertical inverse one-dimensional transform in the transform coefficient) on the inversely quantized transform coefficient Coeff_IQ in the second embodiment and the fourth embodiment. Alternatively, the same effect as that of the fifth embodiment can be obtained. That is, the image encoding device 300 can suppress the complexity of the configuration of the inverse one-dimensional transform (simplify the configuration). That is, the image encoding device 300 can more easily perform the inverse one-dimensional conversion. Therefore, the image encoding device 300 can suppress an increase in circuit scale and processing load and an increase in mounting cost.
- the inverse orthogonal transform unit 318 also performs the same processing. That is, the inverse orthogonal transform unit 318 also performs the inverse primary transform (the horizontal or vertical inverse
- FIG. 41 is a block diagram showing a configuration example of hardware of a computer that executes the above-described series of processing by a program.
- a 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 nonvolatile memory, and the like.
- the communication unit 814 includes, 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 a program stored in the storage unit 813 into the RAM 803 via the input / output interface 810 and the bus 804, and executes the program, for example. Is performed.
- the RAM 803 also appropriately stores data necessary for the CPU 801 to execute various processes.
- the program executed by the computer (CPU 801) can be recorded on a removable medium 821 as a package medium or the like and applied.
- the program can be installed in the storage unit 813 via the input / output interface 810 by attaching the removable medium 821 to the drive 815.
- This program can also be provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting. In that case, the program can be received by the communication unit 814 and installed in the storage unit 813.
- a wired or wireless transmission medium such as a local area network, the Internet, or 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 the ROM 802 or the storage unit 813 in advance.
- the data units in which the various types of information described above are set and the data units targeted for various types of processing are arbitrary, and are not limited to the examples described above.
- these pieces of information and processing are respectively TU (Transform Unit), TB (Transform Block), PU (Prediction Unit), PB (Prediction Block), CU (Coding Unit), LCU (Largest Coding Unit), and sub-block.
- a block, a tile, a slice, a picture, a sequence, or a component, or the data of these data units may be targeted.
- this data unit can be set for each information or process, and it is not necessary that all information and data units of the process be unified.
- the storage location of these pieces of information is arbitrary, and may be stored in the above-described data unit header or parameter set. Further, the information may be stored at a plurality of locations.
- control information related to the present technology described in each of the above embodiments may be transmitted from the encoding side to the decoding side.
- control information for example, enabled_flag
- control information indicating a target to which the present technology is applied may be transmitted.
- control information specifying a block size (upper or lower limit, or both) to which the present technology is applied (or application is permitted or prohibited), a frame, a component, a layer, or the like may be transmitted.
- the present technology can be applied to any image encoding / decoding method. That is, as long as there is no contradiction with the present technology described above, the specifications of various processes related to image encoding / decoding such as conversion (inverse transformation), quantization (inverse quantization), encoding (decoding), prediction, and the like are arbitrary. However, the present invention is not limited to this example. Further, some of these processes may be omitted as long as they do not conflict with the present technology described above.
- the present technology can be applied to a multi-view image encoding / decoding system that performs encoding / decoding of a multi-view image including images of a plurality of viewpoints (views). In that case, the present technology may be applied to encoding / decoding of each viewpoint (view).
- the present technology is applied to a hierarchical image encoding (scalable encoding) / decoding system that encodes / decodes a hierarchical image that is multi-layered (hierarchized) so as to have a scalability function for a predetermined parameter. can do.
- the present technology may be applied to encoding / decoding of each layer (layer).
- the image processing device, the image encoding device, and the image decoding device are used, for example, in satellite broadcasting, cable broadcasting such as cable TV, distribution on the Internet, and distribution to terminals by cellular communication.
- a device eg, a hard disk recorder
- that records an image on a medium such as a transmitter or a receiver (eg, a television receiver or a mobile phone) or an optical disk, a magnetic disk, and a flash memory, and reproduces an image from these storage media And cameras).
- the present technology is applicable to any configuration mounted on an arbitrary device or a device configuring a system, for example, a processor (eg, a video processor) as a system LSI (Large Scale Integration), a module using a plurality of processors (eg, video Module), a unit using a plurality of modules (eg, a video unit), a set in which other functions are added to the unit (eg, a video set), and the like (ie, a configuration of a part of the apparatus).
- a processor eg, a video processor
- LSI Large Scale Integration
- modules using a plurality of processors eg, video Module
- a unit using a plurality of modules eg, a video unit
- a set in which other functions are added to the unit eg, a video set
- the like ie, a configuration of a part of the apparatus.
- the present technology can be applied to a network system including a plurality of devices.
- the present invention can be applied to a cloud service that provides a service related to an image (moving image) to an arbitrary terminal such as a computer, an AV (Audio Visual) device, a portable information processing terminal, and an IoT (Internet of Things) device. it can.
- a cloud service that provides a service related to an image (moving image) to an arbitrary terminal such as a computer, an AV (Audio Visual) device, a portable information processing terminal, and an IoT (Internet of Things) device. it can.
- system, apparatus, processing unit, etc. to which this technology is applied may be used in any fields such as traffic, medical care, crime prevention, agriculture, livestock industry, mining, beauty, factories, household appliances, weather, nature monitoring, etc. Can be. Further, its use is arbitrary.
- the present technology can be applied to systems and devices provided for providing ornamental content and the like. Further, for example, the present technology can also be applied to systems and devices used for traffic, such as traffic condition management and automatic driving control. Further, for example, the present technology can also be applied to systems and devices provided for security. Further, for example, the present technology can be applied to a system or a device provided for automatic control of a machine or the like. Further, for example, the present technology can also be applied to systems and devices provided for use in agriculture and livestock industry. Further, the present technology can also be applied to a system or a device that monitors a natural state such as a volcano, a forest, and the ocean, a wildlife, and the like. Further, for example, the present technology can also be applied to systems and devices provided for sports.
- “flag” is information for identifying a plurality of states, and is not limited to information used for identifying two states of true (1) or false (0), as well as three or more. Information that can identify the state is also included. Therefore, the value that the “flag” can take may be, for example, a binary value of 1/0 or a ternary value or more. That is, the number of bits constituting the “flag” is arbitrary, and may be 1 bit or a plurality of bits. Also, the identification information (including the flag) may include not only a form in which the identification information is included in the bit stream but also a form in which the difference information of the identification information with respect to a certain reference information is included in the bit stream. In the above, “flag” and “identification information” include not only the information but also difference information with respect to reference information.
- association means, for example, that one data can be used (linked) when one data is processed. That is, the data associated with each other may be collected as one data, or may be individual data.
- the information associated with the encoded data (image) may be transmitted on a different transmission path from the encoded data (image).
- information associated with encoded data (image) may be recorded on a recording medium different from the encoded data (image) (or another recording area of the same recording medium).
- the “association” may be a part of the data instead of the entire data. For example, an image and information corresponding to the image may be associated with each other in an arbitrary unit such as a plurality of frames, one frame, or a part of 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 configuration described above as a plurality of devices (or processing units) may be configured as one device (or processing unit).
- a configuration other than those described above may be added to the configuration of each device (or each processing unit).
- a part of the configuration of a certain device (or processing unit) may be included in the configuration of another device (or other processing unit).
- a 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 one device housing a plurality of modules in one housing are all systems. .
- the present technology can take a configuration of cloud computing in which one function is shared by a plurality of devices via a network and processed jointly.
- the above-described program can be executed in any device.
- the device only has to have necessary functions (functional blocks and the like) and can obtain necessary information.
- each step described in the above-described flowchart can be executed by a single device, or can be shared and executed by a plurality of devices.
- the plurality of processes included in the one step can be executed by one device or can be shared and executed by a plurality of devices.
- a plurality of processes included in one step can be executed as a plurality of steps.
- the processing described as a plurality of steps can be collectively executed as one step.
- the computer-executable program may be configured so that the processing of the steps for describing the program is executed in chronological order according to the order described in this specification, or may be executed in parallel or by calling. It may be executed individually at a necessary timing such as time. That is, as long as no contradiction occurs, the processing of each step may be performed in an order different from the order described above. Further, the processing of the steps for describing the program may be executed in parallel with the processing of another program, or may be executed in combination with the processing of another program.
- ⁇ 100 ⁇ conversion device ⁇ 101 ⁇ control unit, ⁇ 102 ⁇ sign inversion unit, ⁇ 103 ⁇ matrix operation unit, ⁇ 104 ⁇ flip unit, ⁇ 111 ⁇ sign inversion flag setting unit, ⁇ 112 ⁇ base conversion matrix selection unit, ⁇ 113 ⁇ flip flag setting unit, ⁇ 120 ⁇ base conversion matrix LUT, ⁇ 150 ⁇ inverse Conversion device, ⁇ 151 ⁇ control unit, ⁇ 152 ⁇ flip unit, ⁇ 153 ⁇ matrix operation unit, ⁇ 154 ⁇ sign inversion unit, ⁇ 161 ⁇ flip flag setting unit, ⁇ 162 ⁇ base conversion matrix selection unit, ⁇ 163 ⁇ sign inversion flag setting unit, ⁇ 170 ⁇ base conversion matrix LUT, ⁇ 220 ⁇ base conversion Matrix derivation unit, ⁇ 231 ⁇ sampling unit, ⁇ 232 ⁇ derivation source transformation matrix LUT, ⁇ 241 ⁇ sampling parameter derivation unit, ⁇ 242 ⁇ submatrix extraction unit, ⁇ 270 ⁇ base transformation matrix derivation unit, ⁇ 300 ⁇ image encoding device, 301 control unit, ⁇ 313
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
The present disclosure relates to an image processing device and method that make it possible to more easily perform a one-dimensional transform or an inverse one-dimensional transform. A sign inversion operation is performed with respect to a one-dimensional signal train of coefficient data. When a one-dimensional transform of a first transform type is implemented with respect to the one-dimensional signal train that has been subjected to the sign inversion operation, a transform matrix of a second transform type for implementing the one-dimensional transform of the first transform type by an FTS operation is defined as a base transform matrix, whereas when a one-dimensional transform of a third transform type is implemented, a transform matrix which is of a fourth transform type for implementing the one-dimensional transform of the third transform type by the FTS operation and which is a symmetric matrix is defined as the base transform matrix. A matrix computation is performed using the base transform matrix, and a flip operation is performed with respect to the one-dimensional signal train that has been subjected to the matrix computation. The present disclosure is applicable, for example, to an image processing device, an image encoding device, or an image decoding device.
Description
本開示は、画像処理装置および方法に関し、特に、1次元変換または逆1次元変換をより容易に行うことができるようにした画像処理装置および方法に関する。
The present disclosure relates to an image processing apparatus and method, and more particularly, to an image processing apparatus and method that can perform one-dimensional conversion or inverse one-dimensional conversion more easily.
従来、輝度について、TU(Transform Unit)単位毎の、水平方向のプライマリ変換PThor(プライマリ水平変換とも称する)および垂直方向のプライマリ変換PTver(プライマリ垂直変換とも称する)毎に、適応的に複数の異なる直交変換から、プライマリ変換を選択する適応プライマリ変換(AMT: Adaptive Multiple Core Transforms)が開示された(例えば、非特許文献1参照)。非特許文献1では、プライマリ変換の候補として、DCT-II, DST-VII, DCT-VIII, DST-I, DST-VIIの5つの1次元変換(1次元直交変換とも称する)がある。
Conventionally, for the TU (Transform @ Unit) unit, a plurality of different values are adaptively different for each of the horizontal primary transform PThor (also referred to as primary horizontal transform) and the vertical primary transform PTver (also referred to as primary vertical transform). An adaptive primary transform (AMT: Adaptive Multiple Core Transforms) for selecting a primary transform from an orthogonal transform has been disclosed (for example, see Non-Patent Document 1). In Non-Patent Document 1, there are five one-dimensional transforms (also referred to as one-dimensional orthogonal transform) of DCT-II, DST-VII, DCT-VIII, DST-I, and DST-VII as candidates for the primary transform.
また、さらに、DST-IVおよびIDT(Identity Transform: 1次元変換スキップ)の2つの1次元直交変換を追加し、計7つの1次元直交変換をプライマリ変換の候補とすることが提案された(例えば、非特許文献2参照)。
Further, it has been proposed that two one-dimensional orthogonal transforms of DST-IV and IDT (Identity Transform: one-dimensional transform skip) are added, and a total of seven one-dimensional orthogonal transforms are set as candidates for a primary transform (for example, , Non-Patent Document 2).
また、AMTで用いる直交変換を{DCT4/DST4/DCT2/DST2}とするtype2/type4 AMTが提案された(例えば、非特許文献3参照)。非特許文献3においては、さらに、2^N-pt DCT2の変換行列をサンプリング/符号反転/フリップにより、2^N-ptより小さい2^M-ptの DCT4/DST4/DCT2/DST2の変換行列を導出することが提案された。
{Also, type2 / type4} AMT in which the orthogonal transform used in AMT is {DCT4 / DST4 / DCT2 / DST2} has been proposed (for example, see Non-Patent Document 3). In Non-Patent Document 3, furthermore, a transform matrix of 2 ^ N-pt DCT2 is converted / sampled / sign-inverted / flipped, and a transform matrix of 22M-ptpt2 DCM4 / DST4 / DCT2 / DST2 smaller than 2 ^ N-pt It was proposed to derive
さらに、DST4をDCT4のSTF操作、DST2をDCT2のFTS操作により実現することが提案された(例えば、非特許文献4参照)。
Furthermore, it has been proposed to realize DST4 by STF operation of DCT4 and DST2 by FTS operation of DCT2 (for example, see Non-Patent Document 4).
例えば、非特許文献4に記載のFTS操作やSTF操作を用いて実現するDST2やDST4を、非特許文献3に記載のtype2/type4 AMTに適用することにより、FTS操作やSTF操作を用いたプライマリ変換(逆プライマリ変換)を実現することができる。
For example, by applying DST2 or DST4 realized using the FTS operation or STF operation described in Non-Patent Document 4 to the type2 / type4 AMT described in Non-Patent Document 3, the primary using the FTS operation or STF operation is Conversion (reverse primary conversion) can be realized.
しかしながら、その場合、行列演算の入力側のプリ処理と出力側のポスト処理の両方において、フリップ操作と符号反転操作とを行うことができるようにする必要があり、1次元変換(または逆1次元変換)の処理や回路の構成がより複雑になってしまうおそれがあった。
However, in this case, it is necessary to be able to perform the flip operation and the sign inversion operation in both the pre-processing on the input side and the post-processing on the output side of the matrix operation, and it is necessary to perform one-dimensional conversion (or inverse one-dimensional conversion). Conversion) and the circuit configuration may be more complicated.
本開示は、このような状況に鑑みてなされたものであり、1次元変換または逆1次元変換をより容易に行うことができるようにするものである。
The present disclosure has been made in view of such a situation, and is intended to facilitate one-dimensional conversion or inverse one-dimensional conversion.
本技術の一側面の画像処理装置は、ビットストリームを復号して、画像に関する係数データを生成する復号部と、前記復号部により生成された前記係数データの1次元信号列に対して、各係数の順序を逆順に並び替えるフリップ操作を行うフリップ部と、前記フリップ部により前記フリップ操作された前記1次元信号列に対して、第1の変換タイプの逆1次元変換を実現する場合、STF操作により前記第1の変換タイプの逆1次元変換を実現する第2の変換タイプの変換行列をベース変換行列とし、第3の変換タイプの逆1次元変換を実現する場合、FTS操作により前記第3の変換タイプの逆1次元変換を実現する第4の変換タイプの、かつ、対称行列である変換行列をベース変換行列とし、前記ベース変換行列の転置行列を用いて行列演算を行う行列演算部と、前記行列演算部により前記行列演算が行われた前記1次元信号列に対して、前記1次元信号列の奇数番目の信号の符号を反転する符号反転操作を行う符号反転部とを備える画像処理装置である。
An image processing device according to an aspect of the present technology includes a decoding unit that decodes a bit stream to generate coefficient data regarding an image, and a one-dimensional signal sequence of the coefficient data generated by the decoding unit. And a flip section for performing a flip operation for rearranging the order of the first order, and performing an inverse one-dimensional conversion of the first conversion type on the one-dimensional signal sequence subjected to the flip operation by the flip section. When the conversion matrix of the second conversion type that realizes the inverse one-dimensional conversion of the first conversion type is used as the base conversion matrix, and the inverse one-dimensional conversion of the third conversion type is realized, A conversion matrix that is a symmetric matrix of a fourth conversion type that realizes an inverse one-dimensional conversion of the conversion type is a base conversion matrix, and a matrix operation is performed using a transpose of the base conversion matrix. A matrix operation unit, and a sign inversion unit that performs a sign inversion operation of inverting a sign of an odd-numbered signal of the one-dimensional signal sequence with respect to the one-dimensional signal sequence on which the matrix operation is performed by the matrix operation unit. An image processing apparatus comprising:
本技術の一側面の画像処理方法は、ビットストリームを復号して、画像に関する係数データを生成し、生成された前記係数データの1次元信号列に対して、各係数の順序を逆順に並び替えるフリップ操作を行い、前記フリップ操作された前記1次元信号列に対して、第1の変換タイプの逆1次元変換を実現する場合、STF操作により前記第1の変換タイプの逆1次元変換を実現する第2の変換タイプの変換行列をベース変換行列とし、第3の変換タイプの逆1次元変換を実現する場合、FTS操作により前記第3の変換タイプの逆1次元変換を実現する第4の変換タイプの、かつ、対称行列である変換行列をベース変換行列とし、前記ベース変換行列の転置行列を用いて行列演算を行い、前記行列演算が行われた前記1次元信号列に対して、前記1次元信号列の奇数番目の信号の符号を反転する符号反転操作を行う画像処理方法である。
An image processing method according to an embodiment of the present technology decodes a bit stream to generate coefficient data related to an image, and rearranges the order of each coefficient in a one-dimensional signal sequence of the generated coefficient data in reverse order. When a flip operation is performed and an inverse one-dimensional conversion of a first conversion type is realized on the flip-operated one-dimensional signal sequence, an inverse one-dimensional conversion of the first conversion type is realized by an STF operation In the case where the transformation matrix of the second transformation type to be used is a base transformation matrix and the inverse one-dimensional transformation of the third transformation type is realized, the fourth one of realizing the inverse one-dimensional transformation of the third transformation type by an FTS operation. A conversion type, and a conversion matrix that is a symmetric matrix as a base conversion matrix, performs a matrix operation using a transposed matrix of the base conversion matrix, for the one-dimensional signal sequence subjected to the matrix operation, The image processing method of performing a sign inversion operation to invert the sign of the odd-numbered signal dimensional signal sequence.
本技術の他の側面の画像処理装置は、画像に関する係数データの1次元信号列に対して、前記1次元信号列の奇数番目の信号の符号を反転する符号反転操作を行う符号反転部と、前記符号反転部により前記符号反転操作された前記1次元信号列に対して、第1の変換タイプの1次元変換を実現する場合、FTS操作により前記第1の変換タイプの1次元変換を実現する第2の変換タイプの変換行列をベース変換行列とし、第3の変換タイプの1次元変換を実現する場合、STF操作により前記第3の変換タイプの1次元変換を実現する第4の変換タイプの、かつ、対称行列である変換行列をベース変換行列とし、前記ベース変換行列を用いて行列演算を行う行列演算部と、前記行列演算部により前記行列演算が行われた前記1次元信号列に対して、各係数の順序を逆順に並び替えるフリップ操作を行うフリップ部と、前記フリップ部により前記フリップ操作が行われた前記1次元信号列を含む係数データを符号化し、ビットストリームを生成する符号化部とを備える画像処理装置である。
An image processing device according to another aspect of the present technology includes a sign inverting unit that performs a sign inversion operation of inverting a sign of an odd-numbered signal of the one-dimensional signal sequence for a one-dimensional signal sequence of coefficient data regarding an image; When realizing a one-dimensional conversion of the first conversion type on the one-dimensional signal sequence subjected to the sign inversion operation by the sign inversion unit, realizing the one-dimensional conversion of the first conversion type by an FTS operation When a conversion matrix of the second conversion type is used as a base conversion matrix and a one-dimensional conversion of the third conversion type is realized, a fourth conversion type of realizing the one-dimensional conversion of the third conversion type by STF operation And, a transformation matrix that is a symmetric matrix as a base transformation matrix, a matrix operation unit that performs a matrix operation using the base transformation matrix, and the one-dimensional signal sequence on which the matrix operation is performed by the matrix operation unit hand, A flip unit that performs a flip operation of rearranging the order of coefficients in a reverse order, and an encoding unit that encodes coefficient data including the one-dimensional signal sequence subjected to the flip operation by the flip unit and generates a bit stream. It is an image processing apparatus provided.
本技術の他の側面の画像処理方法は、画像に関する係数データの1次元信号列に対して、前記1次元信号列の奇数番目の信号の符号を反転する符号反転操作を行い、前記符号反転操作された前記1次元信号列に対して、第1の変換タイプの1次元変換を実現する場合、FTS操作により前記第1の変換タイプの1次元変換を実現する第2の変換タイプの変換行列をベース変換行列とし、第3の変換タイプの1次元変換を実現する場合、STF操作により前記第3の変換タイプの1次元変換を実現する第4の変換タイプの、かつ、対称行列である変換行列をベース変換行列とし、前記ベース変換行列を用いて行列演算を行い、前記行列演算が行われた前記1次元信号列に対して、各係数の順序を逆順に並び替えるフリップ操作を行い、前記フリップ操作が行われた前記1次元信号列を含む係数データを符号化し、ビットストリームを生成する画像処理方法である。
An image processing method according to another aspect of the present technology includes performing a sign inversion operation for inverting a sign of an odd-numbered signal of the one-dimensional signal sequence on a one-dimensional signal sequence of coefficient data relating to an image, and performing the sign inversion operation. When realizing one-dimensional conversion of the first conversion type for the one-dimensional signal sequence thus performed, a conversion matrix of a second conversion type for realizing one-dimensional conversion of the first conversion type by an FTS operation is obtained. When a one-dimensional conversion of the third conversion type is realized as a base conversion matrix, a conversion matrix of a fourth conversion type and a symmetric matrix for realizing the one-dimensional conversion of the third conversion type by an STF operation Is a base conversion matrix, a matrix operation is performed using the base conversion matrix, and a flip operation for rearranging the order of each coefficient on the one-dimensional signal sequence on which the matrix operation is performed is performed, and the flip operation is performed. Operation Encodes the coefficient data including the 1-dimensional signal sequence is performed, an image processing method for generating a bit stream.
本技術の一側面の画像処理装置および方法においては、ビットストリームを復号して、画像に関する係数データが生成され、その生成された係数データの1次元信号列に対して、各係数の順序を逆順に並び替えるフリップ操作が行われ、そのフリップ操作された1次元信号列に対して、第1の変換タイプの逆1次元変換を実現する場合、STF操作により第1の変換タイプの逆1次元変換を実現する第2の変換タイプの変換行列がベース変換行列とされ、第3の変換タイプの逆1次元変換を実現する場合、FTS操作により第3の変換タイプの逆1次元変換を実現する第4の変換タイプの、かつ、対称行列である変換行列がベース変換行列とされ、そのベース変換行列の転置行列を用いて行列演算が行われ、その行列演算が行われた1次元信号列に対して、その1次元信号列の奇数番目の信号の符号を反転する符号反転操作が行われる。
In the image processing apparatus and method according to one aspect of the present technology, a bit stream is decoded to generate coefficient data regarding an image, and the order of each coefficient is reversed in a one-dimensional signal sequence of the generated coefficient data. When an inverse one-dimensional conversion of the first conversion type is realized for the flip-operated one-dimensional signal sequence, the inverse one-dimensional conversion of the first conversion type is performed by the STF operation. When the conversion matrix of the second conversion type that realizes the above is used as the base conversion matrix, and the inverse one-dimensional conversion of the third conversion type is realized, the inverse one-dimensional conversion of the third conversion type is realized by the FTS operation. 4, a conversion matrix that is a symmetric matrix is used as a base conversion matrix, a matrix operation is performed using a transposed matrix of the base conversion matrix, and a one-dimensional signal sequence on which the matrix operation is performed is And, sign inversion operation is performed to invert the sign of the odd-numbered signal of the one-dimensional signal sequence.
本技術の他の側面の画像処理装置および方法においては、画像に関する係数データの1次元信号列に対して、その1次元信号列の奇数番目の信号の符号を反転する符号反転操作が行われ、その符号反転操作された1次元信号列に対して、第1の変換タイプの1次元変換を実現する場合、FTS操作により第1の変換タイプの1次元変換を実現する第2の変換タイプの変換行列がベース変換行列とされ、第3の変換タイプの1次元変換を実現する場合、STF操作により第3の変換タイプの1次元変換を実現する第4の変換タイプの、かつ、対称行列である変換行列がベース変換行列とされ、そのベース変換行列を用いて行列演算が行われ、その行列演算が行われた1次元信号列に対して、各係数の順序を逆順に並び替えるフリップ操作が行われ、そのフリップ操作が行われた1次元信号列を含む係数データが符号化され、ビットストリームが生成される。
In the image processing device and method according to another aspect of the present technology, a sign inversion operation of inverting a sign of an odd-numbered signal of the one-dimensional signal sequence is performed on a one-dimensional signal sequence of coefficient data regarding an image, When realizing one-dimensional conversion of the first conversion type for the one-dimensional signal sequence subjected to the sign inversion operation, conversion of the second conversion type for realizing one-dimensional conversion of the first conversion type by the FTS operation When the matrix is a base conversion matrix and a one-dimensional conversion of a third conversion type is realized, the matrix is a symmetric matrix of a fourth conversion type that realizes a one-dimensional conversion of the third conversion type by an STF operation. The transformation matrix is used as a base transformation matrix, a matrix operation is performed using the base transformation matrix, and a flip operation for rearranging the order of each coefficient is performed on the one-dimensional signal sequence on which the matrix operation has been performed. We Coefficient data including a one-dimensional signal sequence flip operation is performed is encoded, the bit stream is generated.
以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.技術内容・技術用語をサポートする文献等
2.適応プライマリ変換
3.コンセプト
4.第1の実施の形態(変換装置)
5.第2の実施の形態(逆変換装置)
6.第3の実施の形態(変換装置(ベース変換行列導出))
7.第4の実施の形態(逆変換装置(ベース変換行列導出))
8.第5の実施の形態(応用例)
9.第6の実施の形態(画像符号化装置)
10.第7の実施の形態(画像復号装置)
11.付記 Hereinafter, embodiments for implementing the present disclosure (hereinafter, referred to as embodiments) will be described. The description will be made in the following order.
1. 1. Documents supporting technical contents andtechnical terms 2. adaptive primary conversion Concept 4. First embodiment (conversion device)
5. Second embodiment (inverse conversion device)
6. Third Embodiment (Conversion device (base conversion matrix derivation))
7. Fourth Embodiment (Inverse Transformation Device (Derivation of Base Transformation Matrix))
8. Fifth embodiment (application example)
9. Sixth embodiment (image coding apparatus)
10. Seventh embodiment (image decoding device)
11. Note
1.技術内容・技術用語をサポートする文献等
2.適応プライマリ変換
3.コンセプト
4.第1の実施の形態(変換装置)
5.第2の実施の形態(逆変換装置)
6.第3の実施の形態(変換装置(ベース変換行列導出))
7.第4の実施の形態(逆変換装置(ベース変換行列導出))
8.第5の実施の形態(応用例)
9.第6の実施の形態(画像符号化装置)
10.第7の実施の形態(画像復号装置)
11.付記 Hereinafter, embodiments for implementing the present disclosure (hereinafter, referred to as embodiments) will be described. The description will be made in the following order.
1. 1. Documents supporting technical contents and
5. Second embodiment (inverse conversion device)
6. Third Embodiment (Conversion device (base conversion matrix derivation))
7. Fourth Embodiment (Inverse Transformation Device (Derivation of Base Transformation Matrix))
8. Fifth embodiment (application example)
9. Sixth embodiment (image coding apparatus)
10. Seventh embodiment (image decoding device)
11. Note
<1.技術内容・技術用語をサポートする文献等>
本技術で開示される範囲は、実施例に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献に記載されている内容も含まれる。 <1. Documents that support technical content and technical terms>
The scope disclosed by the present technology includes not only the contents described in the embodiments but also the contents described in the following non-patent documents that are known at the time of filing.
本技術で開示される範囲は、実施例に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献に記載されている内容も含まれる。 <1. Documents that support technical content and technical terms>
The scope disclosed by the present technology includes not only the contents described in the embodiments but also the contents described in the following non-patent documents that are known at the time of filing.
非特許文献1:(上述)
非特許文献2:(上述)
非特許文献3:(上述)
非特許文献4:(上述)
非特許文献5:TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union), "Advanced video coding for generic audiovisual services", H.264, 04/2017
非特許文献6:TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union), "High efficiency video coding", H.265, 12/2016 Non-patent document 1: (described above)
Non-patent document 2: (described above)
Non-patent document 3: (described above)
Non-patent document 4: (described above)
Non-Patent Document 5: TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU (International Telecommunication Union), "Advanced video coding for generic audiovisual services", H.264, 04/2017
Non-Patent Document 6: TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU (International Telecommunication Union), "High efficiency video coding", H.265, 12/2016
非特許文献2:(上述)
非特許文献3:(上述)
非特許文献4:(上述)
非特許文献5:TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union), "Advanced video coding for generic audiovisual services", H.264, 04/2017
非特許文献6:TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union), "High efficiency video coding", H.265, 12/2016 Non-patent document 1: (described above)
Non-patent document 2: (described above)
Non-patent document 3: (described above)
Non-patent document 4: (described above)
Non-Patent Document 5: TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU (International Telecommunication Union), "Advanced video coding for generic audiovisual services", H.264, 04/2017
Non-Patent Document 6: TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU (International Telecommunication Union), "High efficiency video coding", H.265, 12/2016
つまり、上述の非特許文献に記載されている内容もサポート要件を判断する際の根拠となる。例えば、非特許文献6に記載されているQuad-Tree Block Structure、非特許文献1に記載されているQTBT(Quad Tree Plus Binary Tree) Block Structureが実施例において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。また、例えば、パース(Parsing)、シンタックス(Syntax)、セマンティクス(Semantics)等の技術用語についても同様に、実施例において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。
That is, the contents described in the above-mentioned non-patent literature also serve as the basis for determining the support requirements. For example, even when the Quad-Tree Block Structure described in Non-Patent Document 6 and the Quad Tree Plus Binary Tree (Block Tree) Structure described in Non-Patent Document 1 are not directly described in the embodiments, the present invention is not limited to this. It is within the scope of disclosure of the technology and satisfies the support requirements of the claims. Similarly, for example, technical terms such as parsing, syntax, and semantics are within the disclosure range of the present technology even if there is no direct description in the embodiment. Support requirements in the range of
また、本明細書において、画像(ピクチャ)の部分領域や処理単位として説明に用いる「ブロック」(処理部を示すブロックではない)は、特に言及しない限り、ピクチャ内の任意の部分領域を示し、その大きさ、形状、および特性等は限定されない。例えば、「ブロック」には、上述の非特許文献1、非特許文献5、および非特許文献6に記載の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)、変換ブロック、サブブロック、マクロブロック、タイル、またはスライス等、任意の部分領域(処理単位)が含まれるものとする。
In this specification, a “block” (not a block indicating a processing unit) used in the description as a partial region or a processing unit of an image (picture) indicates an arbitrary partial region in a picture unless otherwise specified. The size, shape, characteristics, and the like are not limited. For example, “block” includes a TB (Transform @ Block), a TU (Transform @ Unit), a PB (Prediction @ Block), and a PU (Prediction @ Unit) described in Non-Patent Documents 1, 5 and 6 described above. ), SCU (Smallest Coding Unit), CU (Coding Unit), LCU (Largest Coding Unit), CTB (Coding Tree Unit), CTU (Coding Tree Unit), conversion block, sub block, macro block, tile, slice, etc. , An arbitrary partial area (processing unit).
また、このようなブロックのサイズを指定するに当たって、直接的にブロックサイズを指定するだけでなく、間接的にブロックサイズを指定するようにしてもよい。例えばサイズを識別する識別情報を用いてブロックサイズを指定するようにしてもよい。また、例えば、基準となるブロック(例えばLCUやSCU等)のサイズとの比または差分によってブロックサイズを指定するようにしてもよい。例えば、シンタックス要素等としてブロックサイズを指定する情報を伝送する場合に、その情報として、上述のような間接的にサイズを指定する情報を用いるようにしてもよい。このようにすることにより、その情報の情報量を低減させることができ、符号化効率を向上させることができる場合もある。また、このブロックサイズの指定には、ブロックサイズの範囲の指定(例えば、許容されるブロックサイズの範囲の指定等)も含む。
In specifying such a block size, not only the block size may be specified directly, but also the block size may be specified indirectly. For example, the block size may be specified using identification information for identifying the size. Further, for example, the block size may be specified by a ratio or a difference from the size of a reference block (for example, an LCU or an SCU). For example, when transmitting information for specifying a block size as a syntax element or the like, the information for indirectly specifying a size as described above may be used as the information. By doing so, the amount of information can be reduced, and the coding efficiency can be improved in some cases. The designation of the block size also includes designation of a range of block sizes (for example, designation of a range of allowable block sizes, etc.).
また、本明細書において、符号化とは、画像をビットストリームに変換する全体の処理だけではなく、一部の処理も含む。例えば、予測処理、直交変換、量子化、算術符号化等を包括した処理を含むだけではなく、量子化と算術符号化とを総称した処理、予測処理と量子化と算術符号化とを包括した処理、などを含む。同様に、復号とは、ビットストリームを画像に変換する全体の処理だけではなく、一部の処理も含む。例えば、逆算術復号、逆量子化、逆直交変換、予測処理等を包括した処理を含むだけではなく、逆算術復号と逆量子化とを包括した処理、逆算術復号と逆量子化と予測処理とを包括した処理、などを含む。
符号 In this specification, the term “encoding” includes not only the entire process of converting an image into a bit stream but also a part of the process. For example, prediction processing, orthogonal transformation, quantization, not only includes a comprehensive process such as arithmetic coding, etc., but also includes a process generically referred to quantization and arithmetic coding, prediction processing, quantization and arithmetic coding Processing, etc. Similarly, decoding includes not only the entire process of converting a bit stream into an image, but also some processes. For example, it includes not only the processing including the inverse arithmetic decoding, the inverse quantization, the inverse orthogonal transform, and the prediction processing, but also the processing including the inverse arithmetic decoding and the inverse quantization, the inverse arithmetic decoding, the inverse quantization, and the prediction processing. And comprehensive processing.
<2.適応プライマリ変換>
<変換タイプの設定>
非特許文献1に記載のテストモデル(JEM4(Joint Exploration Test Model 4))においては、輝度の変換ブロックについて、水平方向のプライマリ変換PThor(プライマリ水平変換とも称する)、および垂直方向のプライマリ変換PTver(プライマリ垂直変換とも称する)毎に、適応的に複数の異なる1次元直交変換から、プライマリ変換を選択する適応プライマリ変換(AMT(Adaptive Multiple core Transforms))が開示されている。なお、AMTは、EMT(Explicit Multiple core Transforms)とも称する。 <2. Adaptive Primary Conversion>
<Conversion type setting>
In a test model (JEM4 (Joint Exploration Test Model 4)) described inNon-Patent Document 1, a horizontal primary conversion PThor (also referred to as a primary horizontal conversion) and a vertical primary conversion PTver (vertical primary conversion PTver) are used for a luminance conversion block. An adaptive primary transform (AMT (Adaptive Multiple core Transforms)) for selecting a primary transform from a plurality of different one-dimensional orthogonal transforms adaptively for each primary vertical transform is disclosed. AMT is also referred to as EMT (Explicit Multiple Core Transforms).
<変換タイプの設定>
非特許文献1に記載のテストモデル(JEM4(Joint Exploration Test Model 4))においては、輝度の変換ブロックについて、水平方向のプライマリ変換PThor(プライマリ水平変換とも称する)、および垂直方向のプライマリ変換PTver(プライマリ垂直変換とも称する)毎に、適応的に複数の異なる1次元直交変換から、プライマリ変換を選択する適応プライマリ変換(AMT(Adaptive Multiple core Transforms))が開示されている。なお、AMTは、EMT(Explicit Multiple core Transforms)とも称する。 <2. Adaptive Primary Conversion>
<Conversion type setting>
In a test model (JEM4 (Joint Exploration Test Model 4)) described in
具体的には、輝度の変換ブロックについて、適応プライマリ変換を実施するか否かを示す適応プライマリ変換フラグapt_flagが0(偽)の場合には、プライマリ変換として、DCT(Discrete Cosine Transform)-II、またはDST(Discrete Sine Transform)-VIIがモード情報によって一意に決定される(TrSetIdx = 4)。
Specifically, when the adaptive primary conversion flag apt_flag indicating whether or not to perform the adaptive primary conversion on the luminance conversion block is 0 (false), DCT (Discrete Cosine Transform) -II, Alternatively, DST (Discrete Sine Transform) -VII is uniquely determined by mode information (TrSetIdx = 4).
適応プライマリ変換フラグapt_flagが1(真)の場合であって、処理対象の輝度の変換ブロックを含むカレントCU(Coding Unit)がイントラCUである場合、水平方向(x方向)と垂直方向(y方向)のそれぞれについてのプライマリ変換の候補となる直交変換を含む変換セットTrSetが、3つの変換セットTrSet(TrSetIdx = 0,1,2)の中から選択される。なお、上述したDST-VIIやDCT-VIII等は、直交変換のタイプを示している。
If the adaptive primary conversion flag apt_flag is 1 (true) and the current CU (Coding @ Unit) including the luminance conversion block to be processed is an intra CU, the horizontal direction (x direction) and the vertical direction (y direction) ) Are selected from among three transform sets TrSet (TrSetIdx = 0, 1, 2), each of which includes an orthogonal transform that is a candidate for a primary transform. Note that DST-VII and DCT-VIII described above indicate orthogonal transform types.
この変換セットTrSetは、モード情報と変換セットの対応表(のイントラ予測モード情報)に基づいて一意に決定される。例えば、以下の式(1)および式(2)のように、各変換セットTrSetH, TrSetVに対して、対応する変換セットTrSetを指定する変換セット識別子TrSetIdxを設定するように実施される。
変 換 The conversion set TrSet is uniquely determined based on (intra prediction mode information of) the correspondence table between the mode information and the conversion set. For example, as shown in the following Expressions (1) and (2), the conversion set TrSetH, TrSetV is set so that the conversion set identifier TrSetIdx that specifies the corresponding conversion set TrSet is set.
ここで、TrSetHは、プライマリ水平変換PThorの変換セットを示し、TrSetVは、プライマリ垂直変換PTverの変換セットを示し、ルックアップテーブルLUT_IntraModeToTrSetは、モード情報と変換セットの対応表である。ルックアップテーブルLUT_IntraModeToTrSet[][]の1番目の配列は、イントラ予測モードIntraModeを引数とし、2番目の配列は、{H=0, V=1}を引数とする。
Here, TrSetH indicates a conversion set of the primary horizontal conversion PThor, TrSetV indicates a conversion set of the primary vertical conversion PTver, and a lookup table LUT_IntraModeToTrSet is a correspondence table between mode information and the conversion set. The first array of the lookup table LUT_IntraModeToTrSet [] [] has an intra prediction mode IntraMode as an argument, and the second array has {H = 0, V = 1} as arguments.
例えば、イントラ予測モード番号19(IntraMode == 19)の場合、プライマリ水平変換PThorの変換セットTrSetH(プライマリ水平変換セットとも称する)として、変換セット識別子TrSetIdx = 0の変換セットが選択され、プライマリ垂直変換PTverの変換セットTrSetV(プライマリ垂直変換セットとも称する)として、変換セット識別子TrSetIdx=2の変換セットが選択される。
For example, in the case of the intra prediction mode number 19 (IntraMode == 19), the conversion set with the conversion set identifier TrSetIdx = 0 is selected as the conversion set TrSetH (also referred to as the primary horizontal conversion set) of the primary horizontal conversion PThor, and the primary vertical conversion A conversion set with a conversion set identifier TrSetIdx = 2 is selected as a conversion set TrSetV (also referred to as a primary vertical conversion set) of PTver.
なお、適応プライマリ変換フラグapt_flagが1(真)の場合であって、処理対象の輝度の変換ブロックを含むカレントCUがインターCUである場合、プライマリ水平変換の変換セットTrSetHおよびプライマリ垂直変換の変換セットTrSetVには、インターCU専用の変換セットInterTrSet(TrSetIdx = 3)を割り当てる。
When the adaptive primary conversion flag apt_flag is 1 (true) and the current CU including the luminance conversion block to be processed is the inter CU, the primary horizontal conversion conversion set TrSetH and the primary vertical conversion conversion set The conversion set InterTrSet (TrSetIdx = 3) dedicated to the Inter CU is assigned to TrSetV.
続いて、水平方向と垂直方向のそれぞれについて、選択された変換セットTrSetのうち、どの直交変換を適用するかを、プライマリ水平変換指定フラグpt_hor_flagおよびプライマリ垂直変換指定フラグpt_ver_flagの内の対応する方によって選択する。
Subsequently, for each of the horizontal direction and the vertical direction, of the selected transformation set TrSet, which orthogonal transformation is to be applied is determined by a corresponding one of the primary horizontal transformation designation flag pt_hor_flag and the primary vertical transformation designation flag pt_ver_flag. select.
例えば、以下の式(3)および式(4)のように、プライマリ{水平,垂直}変換セットTrSet{H,V}と、プライマリ{水平,垂直}変換指定フラグpt_{hor,ver}_flagとを引数として、所定の変換セットの定義表(LUT_TrSetToTrTypeIdx)から導出する。
For example, as shown in the following equations (3) and (4), the primary {horizontal, vertical} conversion set TrSet {H, V}, the primary {horizontal, vertical} conversion designation flag pt_ {hor, ver} _flag Is derived from a predetermined conversion set definition table (LUT_TrSetToTrTypeIdx).
なお、プライマリ水平変換指定フラグpt_hor_flagおよびプライマリ垂直変換指定フラグpt_ver_flagからプライマリ変換識別子pt_idxが、以下の式(5)に基づいて導出される。すなわち、プライマリ変換識別子pt_idxの上位1bitは、プライマリ垂直変換指定フラグの値に対応し、下位1bitは、プライマリ水平変換指定フラグの値に対応する。
The primary conversion identifier pt_idx is derived from the primary horizontal conversion designation flag pt_hor_flag and the primary vertical conversion designation flag pt_ver_flag based on the following equation (5). That is, the upper 1 bit of the primary conversion identifier pt_idx corresponds to the value of the primary vertical conversion designation flag, and the lower 1 bit corresponds to the value of the primary horizontal conversion designation flag.
導出されたプライマリ変換識別子pt_idxのbin列に対して、算術符号化を適用して、ビット列を生成することで、符号化が実施される。なお、適応プライマリ変換フラグapt_flag、およびプライマリ変換識別子pt_idxは、輝度の変換ブロックにおいてシグナルされる。
Encoding is performed by applying arithmetic coding to the derived bin string of the primary conversion identifier pt_idx to generate a bit string. The adaptive primary conversion flag apt_flag and the primary conversion identifier pt_idx are signaled in a luminance conversion block.
以上のように、非特許文献1では、プライマリ変換の候補として、DCT-II(DCT2), DST-VII(DST7), DCT-VIII(DCT8), DST-I(DST1), DCT-V(DCT5)の5つの1次元直交変換が提案された。この方法においては、AMTが適用される場合、予測モードで決まる変換セットの中から、水平/垂直にどの直交変換を適用するかを表す2ビットのインデックスがシグナルされ、方向毎に2つの候補から1つの変換が選択される。
As described above, in Non-Patent Document 1, DCT-II (DCT2), ΔDST-VII (DST7), ΔDCT-VIII (DCT8), ΔDST-I (DST1), ΔDCT-V (DCT5) ) Were proposed. In this method, when AMT is applied, a 2-bit index indicating which orthogonal transform is to be applied horizontally / vertically is signaled from a transform set determined by a prediction mode, and two candidates are set for each direction. One transform is selected.
また、非特許文献2では、それらに加えて、さらに、DST-IV(DST4)およびIDT(Identity Transform:1次元変換スキップ)の2つの1次元直交変換が追加され、計7つの1次元直交変換をプライマリ変換の候補とすることが提案された。
In addition, in Non-Patent Document 2, two one-dimensional orthogonal transforms of DST-IV (DST4) and IDT (Identity @ Transform: one-dimensional transform skip) are added in addition to them, for a total of seven one-dimensional orthogonal transforms. Was proposed as a candidate for primary conversion.
<type2/type4 AMT>
また、非特許文献3では、そのAMTで用いる直交変換を{DCT4/DST4/DCT2/DST2}とするtype2/type4 AMTが提案された。さらに、2^N-pt DCT2の変換行列をサンプリング/符号反転/フリップにより、2^N-ptより小さい2^M-ptの DCT4/DST4/DCT2/DST2の変換行列を導出することも提案された。 <Type2 / type4 AMT>
Non-Patent Document 3 proposes a type2 / type4 AMT in which the orthogonal transform used in the AMT is {DCT4 / DST4 / DCT2 / DST2}. Furthermore, it has been proposed to derive a transform matrix of DCT4 / DST4 / DCT2 / DST2 of 2 ^ M-pt smaller than 2 ^ N-pt by sampling / sign inversion / flip the transform matrix of 2 ^ N-pt DCT2. Was.
また、非特許文献3では、そのAMTで用いる直交変換を{DCT4/DST4/DCT2/DST2}とするtype2/type4 AMTが提案された。さらに、2^N-pt DCT2の変換行列をサンプリング/符号反転/フリップにより、2^N-ptより小さい2^M-ptの DCT4/DST4/DCT2/DST2の変換行列を導出することも提案された。 <Type2 / type4 AMT>
<FTS操作・STF操作>
さらに、非特許文献4では、DST4をDCT4のSTF操作、DST2をDCT2のFTS操作により実現することが提案された。 <FTS operation / STF operation>
Furthermore, Non-Patent Document 4 proposes that DST4 be realized by an STF operation of DCT4 and DST2 be realized by an FTS operation of DCT2.
さらに、非特許文献4では、DST4をDCT4のSTF操作、DST2をDCT2のFTS操作により実現することが提案された。 <FTS operation / STF operation>
Furthermore, Non-Patent Document 4 proposes that DST4 be realized by an STF operation of DCT4 and DST2 be realized by an FTS operation of DCT2.
FTS操作とは、入力信号の奇数位置にある信号を符号反転する符号反転操作(S)、符号反転操作後の入力信号の直交変換(T)、および、直交変換後の変換係数の順序を逆順に並び替えるフリップ操作(F)の3つの処理(S→T→Fの順に処理)を行うことを示す。
The FTS operation means the sign inversion operation (S) for inverting the sign of the signal at the odd position of the input signal, the orthogonal transformation (T) of the input signal after the sign inversion operation, and the reverse order of the transformation coefficients after the orthogonal transformation. Indicates that three processes (processes in the order of S → T → F) of the flip operation (F) for rearranging are performed.
例えば図1のAに示されるような、入力信号Xに対して、変換タイプDST(Discrete Sine Transform)2の直交変換処理11を行い、出力信号Yを出力する処理は、図1のBに示されるように、変換タイプDCT(Discrete Cosine Transform)2の直交変換処理13を用いたFTS操作により実現することができる。つまり、入力信号Xに対して符号反転操作(S)12を行い、その符号反転操作された入力信号Xに対して変換タイプDCT2の直交変換処理(T)13を行い、得られた直交変換係数に対してフリップ操作(F)14を行うことにより、変換タイプDST2の直交変換処理11と等価の処理を行うことができる。
For example, as shown in FIG. 1A, an input signal X is subjected to orthogonal transform processing 11 of a conversion type DST (Discrete Sine Transform) 2 and a process of outputting an output signal Y is shown in FIG. As described above, the FTS operation using the orthogonal transform processing 13 of the transform type DCT (Discrete Cosine Transform) 2 can be realized. That is, a sign inversion operation (S) 12 is performed on the input signal X, and an orthogonal transformation process (T) 13 of the transform type DCT2 is performed on the input signal X on which the sign inversion operation is performed. By performing the flip operation (F) 14 on the, a process equivalent to the orthogonal transform process 11 of the transform type DST2 can be performed.
したがって、変換タイプDST2の直交変換を表す変換行列TDST2(以下において、変換タイプDST2の変換行列とも称する)は、符号反転操作を表す符号反転行列S、変換タイプDCT2の直交変換を表す変換行列TDCT2(以下において、変換タイプDCT2の変換行列とも称する)、およびフリップ操作を表すフリップ行列Fを用いて以下の式(6)のように表すことができる。
Therefore, a transformation matrix T DST2 (hereinafter, also referred to as a transformation matrix of the transformation type DST2) representing the orthogonal transformation of the transformation type DST2 is a sign inversion matrix S representing the sign inversion operation, and a transformation matrix T representing the orthogonal transformation of the transformation type DCT2. DCT2 (hereinafter also referred to as a transform matrix of transform type DCT2) and a flip matrix F representing a flip operation can be represented as in the following equation (6).
STF操作とは、入力信号の順序を逆順に並び替えるフリップ操作(F)、フリップ操作後の入力信号の直交変換(T)、および、直交変換後の奇数位置にある変換係数を符号反転する符号反転操作(S)の3つの処理(F→T→Sの順に処理)を行うことを示す。
The STF operation is a flip operation (F) that rearranges the order of the input signal, an orthogonal transformation (T) of the input signal after the flip operation, and a code that inverts a transformation coefficient at an odd position after the orthogonal transformation. This indicates that three processes (in the order of F → T → S) of the inversion operation (S) are performed.
例えば図2のAに示されるような、入力信号Xに対して、変換タイプDST(Discrete Sine Transform)4の直交変換処理21を行い、出力信号Yを出力する処理は、図2のBに示されるように、変換タイプDCT(Discrete Cosine Transform)4の直交変換処理23を用いたSTF操作により実現することができる。つまり、入力信号Xに対してフリップ操作(F)22を行い、そのフリップ操作された入力信号Xに対して変換タイプDCT4の直交変換処理(T)23を行い、得られた直交変換係数に対して符号反転操作(S)24を行うことにより、変換タイプDST4の直交変換処理21と等価の処理を行うことができる。
For example, as shown in FIG. 2A, the input signal X is subjected to the orthogonal transform process 21 of the conversion type DST (Discrete Sine Transform) 4 and the process of outputting the output signal Y is shown in FIG. As can be seen, it can be realized by the STF operation using the orthogonal transform processing 23 of the transform type DCT (Discrete Cosine Transform) 4. That is, a flip operation (F) 22 is performed on the input signal X, and an orthogonal transformation process (T) 23 of the transform type DCT4 is performed on the input signal X on which the flip operation has been performed. By performing the sign inversion operation (S) 24 in this way, a process equivalent to the orthogonal transform process 21 of the transform type DST4 can be performed.
したがって、変換タイプDST4の直交変換を表す変換行列TDST4(以下において、変換タイプDST4の変換行列とも称する)は、符号反転操作を表す符号反転行列S、変換タイプDCT4の直交変換を表す変換行列TDCT4(以下において、変換タイプDCT4の変換行列とも称する)、およびフリップ操作を表すフリップ行列Fを用いて以下の式(7)のように表すことができる。
Therefore, a transformation matrix T DST4 (hereinafter, also referred to as a transformation matrix of the transformation type DST4) representing the orthogonal transformation of the transformation type DST4 is a sign inversion matrix S representing the sign inversion operation, and a transformation matrix T representing the orthogonal transformation of the transformation type DCT4. The following equation (7) can be used using DCT4 (hereinafter, also referred to as a transform matrix of transform type DCT4) and a flip matrix F representing a flip operation.
なお、フリップ行列Fは、以下の式(8)のように表すことができる。符号反転行列Sは、以下の式(9)のように表すことができる。
The flip matrix F can be expressed as in the following equation (8). The sign inversion matrix S can be expressed as in the following equation (9).
<FTS操作やSTF操作を用いたtype2/type4 AMT>
このような非特許文献4に記載のFTS操作やSTF操作を用いて実現する変換タイプDST2やDST4の1次元直交変換を、非特許文献3に記載のtype2/type4 AMTに適用することにより、FTS操作やSTF操作を用いたプライマリ変換(逆プライマリ変換)を実現することができる。例えば、プライマリ変換において、図3の表に示されるように制御する。 <Type2 / type4 AMT using FTS operation and STF operation>
By applying the one-dimensional orthogonal transform of the conversion types DST2 and DST4 realized using the FTS operation and the STF operation described in Non-Patent Document 4 to the type2 / type4 AMT described inNon-Patent Document 3, Primary conversion (reverse primary conversion) using an operation or STF operation can be realized. For example, in the primary conversion, control is performed as shown in the table of FIG.
このような非特許文献4に記載のFTS操作やSTF操作を用いて実現する変換タイプDST2やDST4の1次元直交変換を、非特許文献3に記載のtype2/type4 AMTに適用することにより、FTS操作やSTF操作を用いたプライマリ変換(逆プライマリ変換)を実現することができる。例えば、プライマリ変換において、図3の表に示されるように制御する。 <Type2 / type4 AMT using FTS operation and STF operation>
By applying the one-dimensional orthogonal transform of the conversion types DST2 and DST4 realized using the FTS operation and the STF operation described in Non-Patent Document 4 to the type2 / type4 AMT described in
図3の表において、例えば、1次元変換(1次元直交変換)の変換タイプを指定する変換タイプ識別子trTypeIdxが0、すなわち、変換タイプDCT2の1次元変換が指定される場合、入力信号に対するプリ処理(入力側の処理)としても、変換係数に対するポスト処理(出力側の処理)としても、フリップ操作(F)も符号反転操作(S)もスキップ(省略)され(False)、変換タイプがDCT2でサイズがnTbSの変換行列transMatrixnTbS,DCT2をベース変換行列Tbaseとして用いた行列演算(1次元変換)のみが行われる。
In the table of FIG. 3, for example, when the conversion type identifier trTypeIdx for specifying the conversion type of the one-dimensional conversion (one-dimensional orthogonal conversion) is 0, that is, when the one-dimensional conversion of the conversion type DCT2 is specified, the pre-processing for the input signal is performed. Both the flip operation (F) and the sign inversion operation (S) are skipped (omitted) (False), and the conversion type is DCT2. Only a matrix operation (one-dimensional transformation) using a transformation matrix transMatrix nTbS, DCT2 of size nTbS as a base transformation matrix T base is performed.
同様に、変換タイプ識別子trTypeIdxが1、すなわち、変換タイプDCT4の1次元変換が指定される場合、プリ処理としてもポスト処理としても、フリップ操作(F)も符号反転操作(S)もスキップ(省略)され(False)、変換タイプがDCT4でサイズがnTbSの変換行列transMatrixnTbS,DCT4をベース変換行列Tbaseとして用いた行列演算(1次元変換)のみが行われる。
Similarly, when the conversion type identifier trTypeIdx is 1, that is, when the one-dimensional conversion of the conversion type DCT4 is specified, both the flip operation (F) and the sign inversion operation (S) are skipped (pre-processing and post-processing) (omitted). ) Is performed (False), and only a matrix operation (one-dimensional conversion) using a transformation matrix transMatrix nTbS, DCT4 of a transformation type of DCT4 and a size of nTbS as a base transformation matrix T base is performed.
これに対して、変換タイプ識別子trTypeIdxが2、すなわち、変換タイプDST4の1次元変換が指定される場合、プリ処理として、入力信号に対してフリップ操作(F)が実行され(True)、符号反転操作(S)がスキップ(省略)される(False)。そして、フリップ操作された入力信号に対して、変換タイプがDCT4でサイズがnTbSの変換行列transMatrixnTbS,DCT4をベース変換行列Tbaseとして用いた行列演算(1次元変換)が行われる。さらに、ポスト処理として、その行列演算により得られた変換係数に対して符号反転操作(S)が実行され(True)、フリップ操作(F)がスキップ(省略)される(False)。
On the other hand, when the conversion type identifier trTypeIdx is 2, that is, one-dimensional conversion of the conversion type DST4 is specified, a flip operation (F) is performed on the input signal as preprocessing (True), and the sign is inverted. The operation (S) is skipped (omitted) (False). Then, a matrix operation (one-dimensional conversion) is performed on the flip-operated input signal using the transform matrix transMatrix nTbS, DCT4 of transform type DCT4 and size nTbS as the base transform matrix T base . Further, as post processing, a sign inversion operation (S) is performed on the transform coefficient obtained by the matrix operation (True), and a flip operation (F) is skipped (omitted) (False).
同様に、変換タイプ識別子trTypeIdxが3、すなわち、変換タイプDST2の1次元変換が指定される場合、プリ処理として、入力信号に対して入力反転操作(S)が実行され(True)、フリップ操作(F)がスキップ(省略)される(False)。そして、入力反転操作された入力信号に対して、変換タイプがDCT2でサイズがnTbSの変換行列transMatrixnTbS,DCT2をベース変換行列Tbaseとして用いた行列演算(1次元変換)が行われる。さらに、ポスト処理として、その行列演算により得られた変換係数に対してフリップ操作(F)が実行され(True)、符号反転操作(S)がスキップ(省略)される(False)。
Similarly, when the conversion type identifier trTypeIdx is 3, that is, one-dimensional conversion of the conversion type DST2 is specified, the input inversion operation (S) is performed on the input signal as preprocessing (True), and the flip operation ( F) is skipped (omitted) (False). Then, a matrix operation (one-dimensional conversion) is performed on the input signal subjected to the input inversion operation, using a conversion matrix transMatrix nTbS, DCT2 having a conversion type of DCT2 and a size of nTbS as a base conversion matrix T base . Further, as post processing, a flip operation (F) is performed on the transform coefficient obtained by the matrix operation (True), and a sign inversion operation (S) is skipped (omitted) (False).
このような処理を実現するハードウエアの構成例を図4に示す。図4の場合、変換装置50は、制御部51、プリ処理部52、行列演算部53、およびポスト処理部54を有する。
FIG. 4 shows an example of a hardware configuration for realizing such processing. In the case of FIG. 4, the conversion device 50 includes a control unit 51, a pre-processing unit 52, a matrix operation unit 53, and a post-processing unit 54.
制御部51は、変換タイプ識別子trTypeIdx、入力信号の処理対象ブロックの幅log2TBWidth、および入力信号の処理対象ブロックの高さlog2TBHeight等のパラメータに基づいて、プリ処理やポスト処理として実行する処理や、1次元変換に用いるベース変換行列(つまり変換タイプ)を選択する。制御部51は、プリ処理の選択結果を示すプリ処理選択情報をプリ処理部52に供給する。また、制御部51は、ベース変換行列の選択結果を示すベース変換行列選択情報を行列演算部53に供給する。さらに、制御部51は、ポスト処理の選択結果を示すポスト処理選択情報をポスト処理部54に供給する。
Based on parameters such as the conversion type identifier trTypeIdx, the width log2TBWidth of the input signal processing target block, and the height log2TBHeight of the input signal processing target block, the control unit 51 executes processing executed as pre-processing or post-processing, Select a base conversion matrix (that is, a conversion type) to be used for dimensional conversion. The control unit 51 supplies preprocessing selection information indicating a preprocessing selection result to the preprocessing unit 52. Further, the control unit 51 supplies base matrix selection information indicating the result of base matrix selection to the matrix calculation unit 53. Further, the control unit 51 supplies post processing selection information indicating the result of the post processing selection to the post processing unit 54.
プリ処理部52は、符号反転操作を行う符号反転部61と、フリップ操作を行うフリップ部62とを有し、プリ処理選択情報に従っていずれか一方の処理部を選択し、入力係数データXinに対して符号反転操作またはフリップ操作を行い、係数データX'を生成する(X' = S・Xin、または、X' = F・Xin)。
The pre-processing unit 52 has a sign inversion unit 61 that performs a sign inversion operation and a flip unit 62 that performs a flip operation, selects one of the processing units according to the pre-processing selection information, and performs a processing on the input coefficient data Xin. To perform coefficient inversion operation or flip operation to generate coefficient data X ′ (X ′ = S · Xin or X ′ = F · Xin).
行列演算部53は、ベース変換行列LUT(Look Up Table)70を有する。ベース変換行列LUT70は、ベース変換行列の候補である変換タイプDCT2の変換行列71と、変換タイプDCT4の変換行列72とを記憶する。行列演算部53は、それらの候補のうち、ベース変換行列選択情報により指定される変換行列をベース変換行列LUT70より読み出し、そのベース変換行列Tbaseを用いて係数データX'に対する行列演算(1次元変換)を行い、係数データX''を生成する(X'' = Tbase・X')。
The matrix operation unit 53 has a base conversion matrix LUT (Look Up Table) 70. The base transform matrix LUT 70 stores a transform matrix 71 of transform type DCT2 and a transform matrix 72 of transform type DCT4, which are candidates for the base transform matrix. The matrix calculation unit 53 reads a conversion matrix specified by the base conversion matrix selection information from the candidates from the base conversion matrix LUT 70, and uses the base conversion matrix T base to perform a matrix calculation (one-dimensional) on the coefficient data X ′. Conversion) to generate coefficient data X ″ (X ″ = T base × X ′).
ポスト処理部54は、フリップ操作を行うフリップ部81と、符号反転操作を行う符号反転部82とを有し、ポスト処理選択情報に従っていずれか一方の処理部を選択し、係数データX''に対してフリップ操作または符号反転操作を行い、出力係数データXoutを生成する(Xout = F・X''、または、Xout = S・X'')。
The post-processing unit 54 has a flip unit 81 for performing a flip operation and a sign-reversing unit 82 for performing a sign-reversing operation, selects one of the processing units according to the post-processing selection information, and converts the selected processing unit into coefficient data X ''. The output coefficient data Xout is generated by performing a flip operation or a sign inversion operation (Xout = F ・ X ″ or Xout = S ・ X ″).
つまり、上述のような1次元変換を行う変換装置50をハードウエアで構成する場合、プリ処理部52として、符号反転部61およびフリップ部62の両方の構成が必要になる。同様に、ポスト処理部54として、フリップ部81および符号反転部82の両方の構成が必要になる。そのため、回路規模が増大し、実装コストが増大するおそれがあった。
In other words, when the conversion device 50 that performs the one-dimensional conversion as described above is configured by hardware, both the sign inversion unit 61 and the flip unit 62 are required as the pre-processing unit 52. Similarly, the post-processing unit 54 requires both the configuration of the flip unit 81 and the sign inversion unit 82. Therefore, there is a possibility that the circuit scale increases and the mounting cost increases.
また、このような変換処理の流れの例を図5のフローチャートを参照して説明する。変換処理が開始されると、制御部51は、指定された変換タイプやサイズ(つまり、trTypeIdx, log2TBWidth, log2TBHeight)等に基づいて、ベース変換行列選択情報、プリ処理選択情報、およびポスト処理選択情報を設定する(ステップS51)。
(5) An example of the flow of such a conversion process will be described with reference to the flowchart of FIG. When the conversion processing is started, the control unit 51 determines the base conversion matrix selection information, the pre-processing selection information, and the post-processing selection information based on the specified conversion type and size (ie, trTypeIdx, log2TBWidth, log2TBHeight) and the like. Is set (step S51).
プリ処理部52は、プリ処理選択情報に基づいてプリ処理を行うか否かを判定し(ステップS52)、プリ処理を行う場合は、さらにその処理内容(符号反転操作かフリップ操作か)を判定する(ステップS53)。プリ処理部52は、これらの判定結果に従って、入力係数データXinに対して符号反転操作を行う(ステップS54)か、フリップ操作を行う(ステップS55)か、プリ処理をスキップする。
The pre-processing unit 52 determines whether or not to perform the pre-processing based on the pre-processing selection information (step S52), and when performing the pre-processing, further determines the processing content (sign inversion operation or flip operation). (Step S53). The pre-processing unit 52 performs a sign inversion operation on the input coefficient data Xin (step S54), performs a flip operation (step S55), or skips the pre-processing according to these determination results.
行列演算部53は、ベース変換行列選択情報に従って、選択したベース変換行列Tbaseを用いて係数データX'に対する行列演算(1次元変換)を行う(ステップS56)。
The matrix calculation unit 53 performs a matrix calculation (one-dimensional conversion) on the coefficient data X ′ using the selected base conversion matrix T base according to the base conversion matrix selection information (step S56).
ポスト処理部54は、ポスト処理選択情報に基づいてポスト処理を行うか否かを判定し(ステップS57)、ポスト処理を行う場合は、さらにその処理内容(フリップ操作か符号反転操作か)を判定する(ステップS58)。ポスト処理部54は、これらの判定結果に従って、係数データX''に対してフリップ操作を行う(ステップS59)か、符号反転操作を行う(ステップS60)か、ポスト処理をスキップする。
The post-processing unit 54 determines whether or not to perform post-processing based on the post-processing selection information (step S57). If the post-processing is to be performed, the post-processing unit 54 further determines the processing content (flip operation or sign inversion operation). (Step S58). The post-processing unit 54 performs a flip operation on the coefficient data X ″ (step S59), performs a sign inversion operation (step S60), or skips the post-processing according to these determination results.
以上のように、プリ処理およびポスト処理について、実行するか否かを判定し、実行する場合は、その処理内容(符号反転操作を行うかフリップ操作を行うか)を判定しなければならなかった。そのため、上述のような1次元変換をソフトウエアにより実現する場合も、プリ処理やポスト処理の制御が複雑になり、処理の負荷が増大し、実装コストが増大するおそれがあった。
As described above, it is necessary to determine whether or not to perform the pre-processing and the post-processing, and to perform the pre-processing and the post-processing, determine the content of the processing (whether to perform the sign inversion operation or the flip operation). . Therefore, even when the one-dimensional conversion as described above is realized by software, control of pre-processing and post-processing is complicated, processing load is increased, and mounting cost may be increased.
なお、逆プライマリ変換の場合も、上述したプライマリ変換の場合と同様の制御が必要になる。つまり、プリ処理およびポスト処理としてフリップ操作および符号反転操作の両方を候補とする必要がある。そのため上述したプライマリ変換の場合と同様に、回路規模や処理の負荷が増大し、実装コストが増大するおそれがあった。
制 御 Also, in the case of the inverse primary conversion, the same control as in the case of the above-described primary conversion is required. That is, both the flip operation and the sign inversion operation need to be candidates as the pre-processing and the post-processing. Therefore, as in the case of the primary conversion described above, there is a possibility that the circuit scale and the processing load increase, and the mounting cost increases.
<3.コンセプト>
そこで、FTS操作やSTF操作を用いたtype2/type4 AMTを簡略化することにより、実装コストの増大を抑制させる。 <3. Concept>
Therefore, the type2 / type4 AMT using the FTS operation and the STF operation is simplified to suppress an increase in mounting cost.
そこで、FTS操作やSTF操作を用いたtype2/type4 AMTを簡略化することにより、実装コストの増大を抑制させる。 <3. Concept>
Therefore, the type2 / type4 AMT using the FTS operation and the STF operation is simplified to suppress an increase in mounting cost.
変換タイプDCT4の変換行列TDCT4、変換タイプDST4の変換行列TDST4、フリップ行列F、および符号反転行列Sは、以下の式(10)乃至式(13)に示されるような特性を有する。つまり、変換タイプDCT4の変換行列TDCT4、変換タイプDST4の変換行列TDST4、フリップ行列F、および符号反転行列Sは、対称行列である。
変 換 The transformation matrix TDCT4 of the transformation type DCT4, the transformation matrix TDST4 of the transformation type DST4, the flip matrix F, and the sign inversion matrix S have characteristics as shown in the following equations (10) to (13). That is, transform matrix TDCT4 of transform type DCT4, transform matrix TDST4 of transform type DST4, flip matrix F, and sign inversion matrix S are symmetric matrices.
したがって、例えば図2のAに示されるような、入力信号Xに対して、変換タイプDST4の直交変換処理21を行い、出力信号Yを出力する処理は、図2のCに示されるように、変換タイプDCT4の直交変換処理26を用いたFTS操作により実現することができる。つまり、入力信号Xに対して符号反転操作(S)25を行い、その符号反転操作された入力信号Xに対して変換タイプDCT4の直交変換処理(T)26を行い、得られた直交変換係数に対してフリップ操作(F)27を行うことにより、変換タイプDST4の直交変換処理21と等価の処理を行うことができる。なお、直交変換処理26と直交変換処理23は等価である。つまり、変換タイプDST4の変換行列TDST4は、フリップ操作を表すフリップ行列F、変換タイプDCT4の変換行列TDCT4、および符号反転操作を表す符号反転行列Sを用いて以下の式(14)のように表すことができる。
Therefore, for example, as shown in FIG. 2A, a process of performing an orthogonal transformation process 21 of a conversion type DST4 on an input signal X and outputting an output signal Y is performed as shown in FIG. 2C. This can be realized by an FTS operation using the orthogonal transform processing 26 of the transform type DCT4. That is, a sign inversion operation (S) 25 is performed on the input signal X, and an orthogonal transformation process (T) 26 of the transform type DCT4 is performed on the input signal X on which the sign inversion operation is performed. By performing a flip operation (F) 27 on the orthogonal transform process 21, a process equivalent to the orthogonal transform process 21 of the transform type DST4 can be performed. Note that the orthogonal transformation processing 26 and the orthogonal transformation processing 23 are equivalent. That is, the transformation matrix T DST4 of the transformation type DST4 is represented by the following equation (14) using the flip matrix F representing the flip operation, the transformation matrix T DCT4 of the transformation type DCT4 , and the sign inversion matrix S representing the sign inversion operation. Can be expressed as
このようにすることにより、変換タイプDST4の1次元変換と変換タイプDST2の1次元変換とを選択的に行う場合に、符号反転操作(S)12(図1のB)と、符号反転操作(S)25(図2のC)とを共通化することができる。同様に、フリップ操作(F)14(図1のB)と、フリップ操作(F)27(図2のC)とを共通化することができる。換言するに、直交変換処理の前に行われるプリ処理を(符号反転操作(S)に)統一し、直交変換処理の後に行われるポスト処理を(フリップ操作(F)に)統一することができる。
In this way, when the one-dimensional conversion of the conversion type DST4 and the one-dimensional conversion of the conversion type DST2 are selectively performed, the sign inversion operation (S) 12 (B in FIG. 1) and the sign inversion operation (B in FIG. 1) are performed. S) 25 (C in FIG. 2). Similarly, the flip operation (F) 14 (B in FIG. 1) and the flip operation (F) 27 (C in FIG. 2) can be shared. In other words, the pre-processing performed before the orthogonal transformation processing can be unified (to the sign inversion operation (S)), and the post-processing performed after the orthogonal transformation processing can be unified (to the flip operation (F)). .
逆1次元変換の場合も基本的に同様である。例えば、変換タイプDST2の変換行列の転置行列TDST2
tは、上述した式(6)、式(12)、および式(13)等から、符号反転行列S、変換タイプDCT2の変換行列の転置行列TDCT2
t、およびフリップ行列Fを用いて以下の式(15)のように表すことができる。
The same applies to the case of inverse one-dimensional conversion. For example, the transpose matrix T DST2 t of the transform matrix of the transform type DST2 is obtained by using the sign inversion matrix S and the transpose matrix of the transform matrix of the transform type DCT2 based on the above-described equations (6), (12), and (13). Using T DCT2 t and the flip matrix F, it can be expressed as the following equation (15).
また、変換タイプDST4の変換行列の転置行列TDST4
tは、上述した式(7)、式(12)、および式(13)等から、符号反転行列S、変換タイプDCT4の変換行列の転置行列TDCT4
t、およびフリップ行列Fを用いて以下の式(16)のように表すことができる。
In addition, the transposed matrix T DST4 t of the transform matrix of the transform type DST4 is obtained by using the sign inversion matrix S and the transposed matrix of the transform matrix of the transform type DCT4 from Equations (7), (12), and (13) described above. Using T DCT4 t and the flip matrix F, it can be expressed as the following equation (16).
したがって、式(14)の場合と同様に、以下の式(17)のように変形することができる。
Accordingly, similarly to the case of the expression (14), the expression can be modified as the following expression (17).
式(15)および式(17)に示されるように、逆1次元変換の場合も、変換タイプDST4の逆1次元変換と変換タイプDST2の逆1次元変換とを選択的に行う場合に、符号反転操作(S)とフリップ操作(F)とをそれぞれ共通化することができる。換言するに、逆直交変換処理の前に行われるプリ処理を(フリップ操作(F)に)統一し、逆直交変換処理の後に行われるポスト処理を(符号反転操作(S)に)統一することができる。
As shown in Expressions (15) and (17), in the case of the inverse one-dimensional conversion, when the inverse one-dimensional conversion of the conversion type DST4 and the inverse one-dimensional conversion of the conversion type DST2 are selectively performed, a code is used. The reversing operation (S) and the flip operation (F) can be shared. In other words, unifying the pre-processing performed before the inverse orthogonal transformation processing (to the flip operation (F)) and unifying the post-processing performed after the inverse orthogonal transformation processing (to the sign inversion operation (S)). Can be.
以上のように、プリ処理およびポスト処理における処理内容の選択(符号反転操作(S)を行うかフリップ操作(F)を行うか)を省略することができるので、1次元変換または逆1次元変換の構成の複雑化を抑制する(構成をより簡易化する)ことができ、1次元変換または逆1次元変換をより容易に行うことができる。つまり、回路規模や処理の負荷の増大を抑制し、実装コストの増大を抑制することができる。
As described above, the selection of the processing contents in the pre-processing and post-processing (whether to perform the sign inversion operation (S) or the flip operation (F)) can be omitted, so that one-dimensional conversion or inverse one-dimensional conversion is performed. Can be suppressed (simplification of the configuration), and one-dimensional conversion or inverse one-dimensional conversion can be performed more easily. That is, it is possible to suppress an increase in circuit scale and processing load, and to suppress an increase in mounting cost.
<4.第1の実施の形態>
<変換装置>
図6は、本技術を適用した画像処理装置の一態様である変換装置の主な構成の一例を示すブロック図である。図6に示される変換装置100は、入力された係数データに対して、変換タイプDCT2、DST2、DCT4、およびDST4の1次元変換を行う装置である。図6に示されるように、変換装置100は、制御部101、符号反転部102、行列演算部103、およびフリップ部104を有する。 <4. First Embodiment>
<Conversion device>
FIG. 6 is a block diagram illustrating an example of a main configuration of a conversion device that is an aspect of an image processing device to which the present technology is applied. Theconversion device 100 shown in FIG. 6 is a device that performs one-dimensional conversion of conversion types DCT2, DST2, DCT4, and DST4 on input coefficient data. As illustrated in FIG. 6, the conversion device 100 includes a control unit 101, a sign inversion unit 102, a matrix operation unit 103, and a flip unit 104.
<変換装置>
図6は、本技術を適用した画像処理装置の一態様である変換装置の主な構成の一例を示すブロック図である。図6に示される変換装置100は、入力された係数データに対して、変換タイプDCT2、DST2、DCT4、およびDST4の1次元変換を行う装置である。図6に示されるように、変換装置100は、制御部101、符号反転部102、行列演算部103、およびフリップ部104を有する。 <4. First Embodiment>
<Conversion device>
FIG. 6 is a block diagram illustrating an example of a main configuration of a conversion device that is an aspect of an image processing device to which the present technology is applied. The
制御部101は、1次元変換の制御に関する処理を行う。例えば、制御部101は、入力された変換タイプ識別子trTypeIdx等のパラメータに基づいて、符号反転を行うか否かを示すフラグ情報である符号反転フラグ(signChangeFlag)を設定し、それを符号反転部102に供給することにより、符号反転操作(S)を制御する。また、例えば、制御部101は、入力された変換タイプ識別子trTypeIdx、入力信号の処理対象ブロックの幅log2TBWidth、および入力信号の処理対象ブロックの高さlog2TBHeight等のパラメータに基づいて、行列演算に用いるベース変換行列Tbaseを指定するベース変換行列選択情報を設定し、それを行列演算部103に供給することにより、ベース変換行列Tbaseを用いた行列演算を制御する。さらに、例えば、制御部101は、入力された変換タイプ識別子trTypeIdx等のパラメータに基づいて、フリップ操作(F)を行うか否かを示すフラグ情報であるフリップフラグ(flipFlag)を設定し、それをフリップ部104に供給することにより、フリップ操作(F)を制御する。
The control unit 101 performs processing related to one-dimensional conversion control. For example, the control unit 101 sets a sign inversion flag (signChangeFlag), which is flag information indicating whether to perform sign inversion, based on parameters such as the input conversion type identifier trTypeIdx, and sets the sign inversion unit 102 to the sign inversion flag. To control the sign inversion operation (S). Further, for example, the control unit 101 may use the base used for matrix calculation based on parameters such as the input conversion type identifier trTypeIdx, the width log2TBWidth of the input signal processing target block, and the height log2TBHeight of the input signal processing target block. By setting base conversion matrix selection information that specifies the conversion matrix T base and supplying it to the matrix calculation unit 103, matrix calculation using the base conversion matrix T base is controlled. Further, for example, the control unit 101 sets a flip flag (flipFlag), which is flag information indicating whether or not to perform a flip operation (F), based on parameters such as the input conversion type identifier trTypeIdx. By supplying the signal to the flip unit 104, the flip operation (F) is controlled.
制御部101は、符号反転フラグ設定部111、ベース変換行列選択部112、およびフリップフラグ設定部113を有する。符号反転フラグ設定部111は、変換タイプ識別子trTypeIdx等のパラメータに基づいて、符号反転フラグ(signChangeFlag)を設定する。ベース変換行列選択部112は、変換タイプ識別子trTypeIdx、入力信号の処理対象ブロックの幅log2TBWidth、および入力信号の処理対象ブロックの高さlog2TBHeight等のパラメータに基づいて、ベース変換行列選択情報を設定する。フリップフラグ設定部113は、変換タイプ識別子trTypeIdx等のパラメータに基づいて、フリップフラグ(flipFlag)を設定する。
The control unit 101 includes a sign inversion flag setting unit 111, a base conversion matrix selection unit 112, and a flip flag setting unit 113. The sign inversion flag setting unit 111 sets a sign inversion flag (signChangeFlag) based on parameters such as the conversion type identifier trTypeIdx. The base conversion matrix selection unit 112 sets base conversion matrix selection information based on parameters such as the conversion type identifier trTypeIdx, the width log2TBWidth of the input signal processing target block, and the height log2TBHeight of the input signal processing target block. The flip flag setting unit 113 sets a flip flag (flipFlag) based on parameters such as the conversion type identifier trTypeIdx.
制御部101は、任意の構成を有する。例えば、制御部101が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、制御部101が、例えばCPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、制御部101が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。
The control unit 101 has an optional configuration. For example, the control unit 101 may be configured by a logic circuit that implements the above processing. In addition, the control unit 101 has, for example, a CPU (Central Processing Unit), a ROM (Read Only Memory), a RAM (Random Access Memory), and the like, and executes the program using them to realize the above-described processing. You may do so. Of course, the control unit 101 may have both of the configurations, and a part of the above processing may be realized by a logic circuit, and the other may be realized by executing a program.
符号反転フラグ設定部111、ベース変換行列選択部112、およびフリップフラグ設定部113の各処理部は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
Each processing unit of the sign inversion flag setting unit 111, the base conversion matrix selection unit 112, and the flip flag setting unit 113 has an arbitrary configuration. For example, each processing unit may be configured by a logic circuit that realizes the above-described processing. In addition, each processing unit may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program by using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing. Of course, each processing unit may have both configurations, and a part of the above-described processing may be realized by a logic circuit, and the other may be realized by executing a program. The configuration of each processing unit may be independent from each other. For example, some of the processing units may realize a part of the above-described processing by a logic circuit, and some of the other processing units may execute a program. May be implemented, and another processing unit may implement the above-described processing by both the logic circuit and the execution of the program.
符号反転部102は、符号反転操作(S)に関する処理を行う。例えば、符号反転部102は、入力係数データXinに対して、奇数位置の係数データを符号反転する符号反転操作(S)を行い、係数データX'を生成する。なお、符号反転部102は、符号反転操作(S)をスキップ(省略)することもできる。その場合、入力係数データXinは、そのまま係数データX'とされる。符号反転部102は、制御部101から供給される符号反転フラグ(signChangeFlag)に基づいて、符号反転操作(S)を実行するか否かを選択する。いずれの場合も、符号反転部102は、その係数データX'を行列演算部103に供給する。
The sign inversion unit 102 performs a process related to the sign inversion operation (S). For example, the sign inversion unit 102 performs a sign inversion operation (S) on the input coefficient data Xin to invert the sign of the coefficient data at the odd-numbered position to generate coefficient data X ′. Note that the sign inversion unit 102 can also skip (omit) the sign inversion operation (S). In that case, the input coefficient data Xin is used as it is as the coefficient data X ′. The sign inversion unit 102 selects whether or not to execute a sign inversion operation (S) based on a sign inversion flag (signChangeFlag) supplied from the control unit 101. In either case, the sign inversion unit 102 supplies the coefficient data X ′ to the matrix operation unit 103.
符号反転部102は、任意の構成を有する。例えば、符号反転部102が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、符号反転部102が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、符号反転部102が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。
Sign inverting section 102 has an arbitrary configuration. For example, the sign inversion unit 102 may be configured by a logic circuit that implements the above-described processing. In addition, the sign inversion unit 102 may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing. Of course, the sign inverting unit 102 may have both configurations, and a part of the above processing may be realized by a logic circuit, and the other may be realized by executing a program.
行列演算部103は、行列演算に関する処理を行う。例えば、行列演算部103は、符号反転部102から供給される係数データX'に対して、ベース変換行列Tbaseを用いた行列演算(1次元変換)を行い、係数データX''を生成する。行列演算部103は、制御部101から供給されるベース変換行列選択情報により指定される変換タイプの変換行列を用いて行列演算を行う。行列演算部103は、ベース変換行列LUT120を有する。ベース変換行列LUT120には、変換タイプDCT2の変換行列121と、変換タイプDCT4の変換行列122とが登録されている(記憶されている)。ベース変換行列LUT120には、さらに、変換行列121および変換行列122以外の変換行列が登録されていてもよい。行列演算部103は、ベース変換行列選択情報により指定される変換タイプの変換行列を、そのベース変換行列LUT120から読み出し、ベース変換行列として、係数データX'に対する行列演算に用いる。行列演算部103は、生成した係数データX''をフリップ部104に供給する。
The matrix operation unit 103 performs a process related to the matrix operation. For example, the matrix operation unit 103 performs a matrix operation (one-dimensional conversion) using the base conversion matrix T base on the coefficient data X ′ supplied from the sign inversion unit 102 to generate coefficient data X ″. . The matrix calculation unit 103 performs a matrix calculation using a conversion matrix of the conversion type specified by the base conversion matrix selection information supplied from the control unit 101. The matrix operation unit 103 has a base conversion matrix LUT120. In the base transform matrix LUT 120, a transform matrix 121 of a transform type DCT2 and a transform matrix 122 of a transform type DCT4 are registered (stored). A conversion matrix other than the conversion matrix 121 and the conversion matrix 122 may be registered in the base conversion matrix LUT 120. The matrix calculation unit 103 reads a conversion matrix of the conversion type specified by the base conversion matrix selection information from the base conversion matrix LUT 120, and uses the conversion matrix as a base conversion matrix in the matrix calculation for the coefficient data X ′. The matrix operation unit 103 supplies the generated coefficient data X ″ to the flip unit 104.
行列演算部103は、任意の構成を有する。例えば、行列演算部103が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、行列演算部103が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、行列演算部103が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。いずれの場合も、行列演算部103は、例えばRAM等の記憶領域を有し、それによりベース変換行列LUT120を形成する。
The matrix operation unit 103 has an arbitrary configuration. For example, the matrix operation unit 103 may be configured by a logic circuit that implements the above-described processing. In addition, the matrix operation unit 103 may include, for example, a CPU, a ROM, a RAM, and the like, and execute the program using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing. Of course, the matrix operation unit 103 may have both configurations, and a part of the above processing may be realized by a logic circuit, and the other may be realized by executing a program. In any case, the matrix operation unit 103 has a storage area such as a RAM, for example, and forms the base conversion matrix LUT 120.
フリップ部104は、フリップ操作(F)に関する処理を行う。例えば、フリップ部104は、係数データX''に対して、係数データの順序を逆順に並び替えるフリップ操作(F)を行い、出力係数データXoutを生成する。なお、フリップ部104は、フリップ操作(F)をスキップ(省略)することもできる。その場合、係数データX''は、そのまま出力係数データXoutとされる。フリップ部104は、制御部101から供給されるフリップフラグ(flipFlag)に基づいて、フリップ操作(F)を実行するか否かを選択する。いずれの場合も、フリップ部104は、その出力係数データXoutを変換装置100の外部に出力する。
The flip unit 104 performs a process related to the flip operation (F). For example, the flip unit 104 performs a flip operation (F) on the coefficient data X ″ to rearrange the order of the coefficient data in the reverse order, and generates output coefficient data Xout. The flip unit 104 can skip (omit) the flip operation (F). In that case, the coefficient data X ″ is directly used as the output coefficient data Xout. The flip unit 104 selects whether to execute a flip operation (F) based on a flip flag (flipFlag) supplied from the control unit 101. In either case, the flip unit 104 outputs the output coefficient data Xout to the outside of the conversion device 100.
フリップ部104は、任意の構成を有する。例えば、フリップ部104が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、フリップ部104が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、フリップ部104が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。
The flip unit 104 has an optional configuration. For example, the flip unit 104 may be configured by a logic circuit that realizes the above processing. Further, the flip unit 104 may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing. Of course, the flip unit 104 may have both configurations, and a part of the above processing may be realized by a logic circuit, and the other may be realized by executing a program.
<制御例>
このような変換装置100において、例えば、制御部101は、図7に示される表のように制御を行う。例えば、入力された変換タイプ識別子trTypeIdxが0の場合、制御部101は、変換タイプ(trType)がDCT2の1次元変換を行うように制御する。すなわち、制御部101は、符号反転フラグ設定部111を用いて、符号反転フラグ(signChangeFlag)を偽(False)(例えば0)に設定する。また、制御部101は、ベース変換行列選択部112を用いて、変換タイプDCT2であり、サイズがnTbS×nTbSであるベース変換行列transMatrixnTbS,DCT2を指定するベース変換行列選択情報を生成する。さらに、制御部101は、フリップフラグ設定部113を用いて、フリップフラグ(flipFlag)を偽(False)(例えば0)に設定する。つまり、この場合、変換タイプDCT2の変換行列を用いた行列演算のみが行われ、入力係数データXinに対する符号反転操作(S)や、直交変換係数である係数データX''に対するフリップ操作(F)はスキップされる。 <Control example>
In such aconversion device 100, for example, the control unit 101 performs control as shown in the table in FIG. For example, when the input conversion type identifier trTypeIdx is 0, the control unit 101 controls the conversion type (trType) to perform one-dimensional conversion of DCT2. That is, the control unit 101 sets the sign inversion flag (signChangeFlag) to false (for example, 0) using the sign inversion flag setting unit 111. Further, the control unit 101 uses the base transformation matrix selection unit 112 to generate base transformation matrix selection information that specifies a base transformation matrix transMatrix nTbS, DCT2 of the transformation type DCT2 and the size of nTbS × nTbS. Further, the control unit 101 sets the flip flag (flipFlag) to false (for example, 0) using the flip flag setting unit 113. That is, in this case, only the matrix operation using the transform matrix of the transform type DCT2 is performed, and the sign inversion operation (S) on the input coefficient data Xin and the flip operation (F) on the coefficient data X ″ that is an orthogonal transformation coefficient are performed. Is skipped.
このような変換装置100において、例えば、制御部101は、図7に示される表のように制御を行う。例えば、入力された変換タイプ識別子trTypeIdxが0の場合、制御部101は、変換タイプ(trType)がDCT2の1次元変換を行うように制御する。すなわち、制御部101は、符号反転フラグ設定部111を用いて、符号反転フラグ(signChangeFlag)を偽(False)(例えば0)に設定する。また、制御部101は、ベース変換行列選択部112を用いて、変換タイプDCT2であり、サイズがnTbS×nTbSであるベース変換行列transMatrixnTbS,DCT2を指定するベース変換行列選択情報を生成する。さらに、制御部101は、フリップフラグ設定部113を用いて、フリップフラグ(flipFlag)を偽(False)(例えば0)に設定する。つまり、この場合、変換タイプDCT2の変換行列を用いた行列演算のみが行われ、入力係数データXinに対する符号反転操作(S)や、直交変換係数である係数データX''に対するフリップ操作(F)はスキップされる。 <Control example>
In such a
例えば、入力された変換タイプ識別子trTypeIdxが1の場合、制御部101は、変換タイプ(trType)がDCT4の1次元変換を行うように制御する。すなわち、制御部101は、符号反転フラグ設定部111を用いて、符号反転フラグを偽(False)(例えば0)に設定する。また、制御部101は、ベース変換行列選択部112を用いて、変換タイプDCT4であり、サイズがnTbS×nTbSであるベース変換行列transMatrixnTbS,DCT4を指定するベース変換行列選択情報を生成する。さらに、制御部101は、フリップフラグ設定部113を用いて、フリップフラグを偽(False)(例えば0)に設定する。つまり、この場合、変換タイプDCT4の変換行列を用いた行列演算のみが行われ、入力係数データXinに対する符号反転操作(S)や、直交変換係数である係数データX''に対するフリップ操作(F)はスキップされる。
For example, when the input conversion type identifier trTypeIdx is 1, the control unit 101 controls so that the conversion type (trType) performs one-dimensional conversion of DCT4. That is, the control unit 101 uses the sign inversion flag setting unit 111 to set the sign inversion flag to False (for example, 0). In addition, the control unit 101 uses the base transformation matrix selection unit 112 to generate base transformation matrix selection information that specifies a base transformation matrix transMatrix nTbS, DCT4 of the transformation type DCT4 and the size of nTbS × nTbS. Further, the control unit 101 sets the flip flag to False (for example, 0) using the flip flag setting unit 113. That is, in this case, only the matrix operation using the transform matrix of the transform type DCT4 is performed, and the sign inversion operation (S) on the input coefficient data Xin and the flip operation (F) on the coefficient data X ″ that is the orthogonal transformation coefficient are performed. Is skipped.
例えば、入力された変換タイプ識別子trTypeIdxが2の場合、制御部101は、変換タイプ(trType)がDST4の1次元変換を行うように制御する。すなわち、制御部101は、符号反転フラグ設定部111を用いて、符号反転フラグを真(True)(例えば1)に設定する。また、制御部101は、ベース変換行列選択部112を用いて、変換タイプDCT4であり、サイズがnTbS×nTbSであるベース変換行列transMatrixnTbS,DCT4を指定するベース変換行列選択情報を生成する。さらに、制御部101は、フリップフラグ設定部113を用いて、フリップフラグを真(True)(例えば1)に設定する。つまり、この場合、入力係数データXinに対する符号反転操作(S)、変換タイプDCT4の変換行列を用いた行列演算、および、直交変換係数である係数データX''に対するフリップ操作(F)が実行される。
For example, when the input conversion type identifier trTypeIdx is 2, the control unit 101 controls so that the conversion type (trType) performs one-dimensional conversion of DST4. That is, the control unit 101 sets the sign inversion flag to True (for example, 1) by using the sign inversion flag setting unit 111. In addition, the control unit 101 uses the base transformation matrix selection unit 112 to generate base transformation matrix selection information that specifies a base transformation matrix transMatrix nTbS, DCT4 of the transformation type DCT4 and the size of nTbS × nTbS. Further, the control unit 101 sets the flip flag to True (for example, 1) using the flip flag setting unit 113. That is, in this case, the sign inversion operation (S) on the input coefficient data Xin, the matrix operation using the conversion matrix of the conversion type DCT4, and the flip operation (F) on the coefficient data X ″ that is the orthogonal transformation coefficient are executed. You.
例えば、入力された変換タイプ識別子trTypeIdxが3の場合、制御部101は、変換タイプ(trType)がDST2の1次元変換を行うように制御する。すなわち、制御部101は、符号反転フラグ設定部111を用いて、符号反転フラグを真(True)(例えば1)に設定する。また、制御部101は、ベース変換行列選択部112を用いて、変換タイプDCT2であり、サイズがnTbS×nTbSであるベース変換行列transMatrixnTbS,DCT2を指定するベース変換行列選択情報を生成する。さらに、制御部101は、フリップフラグ設定部113を用いて、フリップフラグを真(True)(例えば1)に設定する。つまり、この場合、入力係数データXinに対する符号反転操作(S)、変換タイプDCT2の変換行列を用いた行列演算、および、直交変換係数である係数データX''に対するフリップ操作(F)が実行される。
For example, when the input conversion type identifier trTypeIdx is 3, the control unit 101 controls so that the conversion type (trType) is one-dimensional conversion of DST2. That is, the control unit 101 sets the sign inversion flag to True (for example, 1) by using the sign inversion flag setting unit 111. Further, the control unit 101 uses the base transformation matrix selection unit 112 to generate base transformation matrix selection information that specifies a base transformation matrix transMatrix nTbS, DCT2 of the transformation type DCT2 and the size of nTbS × nTbS. Further, the control unit 101 sets the flip flag to True (for example, 1) using the flip flag setting unit 113. That is, in this case, the sign inversion operation (S) on the input coefficient data Xin, the matrix operation using the conversion matrix of the conversion type DCT2, and the flip operation (F) on the coefficient data X ″ that is the orthogonal transformation coefficient are executed. You.
以上のように、変換装置100は、符号反転操作(S)およびフリップ操作(F)をスキップすることにより、変換タイプDCT2またはDCT4の1次元変換を行うことができる。また、変換装置100は、符号反転操作(S)およびフリップ操作(F)を実行し、FTS操作によって、変換タイプDST2またはDST4の1次元変換を行うことができる。
As described above, the conversion apparatus 100 can perform one-dimensional conversion of the conversion type DCT2 or DCT4 by skipping the sign inversion operation (S) and the flip operation (F). In addition, the conversion apparatus 100 can perform the sign inversion operation (S) and the flip operation (F), and perform one-dimensional conversion of the conversion type DST2 or DST4 by the FTS operation.
つまり、図6に示されるように、変換装置100は、変換タイプDST2用のプリ処理部と変換タイプDST4用のプリ処理部とを符号反転部102に共通化することができる。同様に、変換タイプDST2用のポスト処理部と変換タイプDST4用のポスト処理部とをフリップ部104に共通化することができる。したがって、回路規模の増大を抑制し、実装コストの増大を抑制することができる(回路規模を低減させ、実装コストを低減させることができる)。
In other words, as shown in FIG. 6, the conversion apparatus 100 can use the pre-processing unit for the conversion type DST2 and the pre-processing unit for the conversion type DST4 in common with the sign inversion unit 102. Similarly, a post-processing unit for the conversion type DST2 and a post-processing unit for the conversion type DST4 can be shared by the flip unit 104. Therefore, it is possible to suppress an increase in circuit scale and an increase in mounting cost (the circuit scale can be reduced and the mounting cost can be reduced).
<変換処理の流れ>
次に、この変換装置100により実行される変換処理の流れの例を、図8のフローチャートを参照して説明する。 <Conversion process flow>
Next, an example of the flow of a conversion process performed by theconversion device 100 will be described with reference to the flowchart in FIG.
次に、この変換装置100により実行される変換処理の流れの例を、図8のフローチャートを参照して説明する。 <Conversion process flow>
Next, an example of the flow of a conversion process performed by the
変換処理が開始されると、制御部101(符号反転フラグ設定部111、ベース変換行列選択部112、およびフリップフラグ設定部113)は、ステップS101において、変換装置100の外部から供給される変換タイプtrTypeIdxや、サイズ(log2TBWidth, log2TBHeight)に基づいて、ベース変換行列選択情報、符号反転フラグ(signChangeFlag)、およびフリップフラグ(flipFlag)を上述のように設定する。
When the conversion process is started, the control unit 101 (the sign inversion flag setting unit 111, the base conversion matrix selection unit 112, and the flip flag setting unit 113) determines in step S101 that the conversion type supplied from outside the conversion device 100 Based on trTypeIdx and size (log2TBWidth, log2TBHeight), base conversion matrix selection information, sign inversion flag (signChangeFlag), and flip flag (flipFlag) are set as described above.
ステップS102において、符号反転部102は、ステップS101において設定された符号反転フラグに基づいて、符号反転操作(S)を行うか否かを判定する(signChangeFlag == True ?)。符号反転フラグの値が真(True)であり、符号反転操作(S)を行うと判定された場合、処理はステップS103に進む。
In step S102, the sign inversion unit 102 determines whether or not to perform the sign inversion operation (S) based on the sign inversion flag set in step S101 (signChangeFlag == True?). When the value of the sign inversion flag is true and it is determined that the sign inversion operation (S) is to be performed, the process proceeds to step S103.
ステップS103において、符号反転部102は、1次元信号列である入力係数データXinに対して符号反転操作(S)を行い、1次元信号列である係数データX'を生成する。この符号反転操作(S)は、例えば、以下の式(18)のように表すことができる。
In step S103, the sign inversion unit 102 performs a sign inversion operation (S) on the input coefficient data Xin that is a one-dimensional signal sequence, and generates coefficient data X ′ that is a one-dimensional signal sequence. This sign inversion operation (S) can be expressed, for example, as in the following Expression (18).
ステップS103の処理が終了すると処理はステップS104に進む。また、ステップS102において、符号反転フラグの値が偽(False)であり、符号反転操作(S)を行わないと判定された場合、ステップS103の処理はスキップされ、入力係数データXinがそのまま係数データX'とされ、処理はステップS104に進む。
す る と When the process in step S103 ends, the process proceeds to step S104. If it is determined in step S102 that the value of the sign inversion flag is false (False) and the sign inversion operation (S) is not to be performed, the process of step S103 is skipped, and the input coefficient data Xin is directly used as the coefficient data. X 'is set, and the process proceeds to step S104.
ステップS104において、行列演算部103は、選択されたベース変換行列Tbase、すなわち、ステップS101において設定されたベース変換行列選択情報により指定されるベース変換行列Tbaseをベース変換行列LUT120から取得し、それを用いて1次元信号列である係数データX'に対する行列演算(1次元変換)を行い、1次元信号列である係数データX''を生成する。この行列演算は、例えば、以下の式(19)のように表すことができる。
In step S104, the matrix computing unit 103 obtains the base transform matrix T base selected, i.e., the base transform matrix T base specified by the base transform matrix selected information set in step S101 from the base transformation matrix LUT 120, A matrix operation (one-dimensional conversion) is performed on the coefficient data X ′, which is a one-dimensional signal sequence, using the data to generate coefficient data X ″, which is a one-dimensional signal sequence. This matrix operation can be represented, for example, by the following equation (19).
ステップS105において、フリップ部104は、ステップS101において設定されたフリップフラグに基づいて、フリップ操作(F)を行うか否かを判定する(FlipFlag == True ?)。フリップフラグの値が真(True)であり、フリップ操作(F)を行うと判定された場合、処理はステップS106に進む。
In step S105, the flip unit 104 determines whether to perform a flip operation (F) based on the flip flag set in step S101 (FlipFlagF == True?). If the value of the flip flag is True and it is determined that the flip operation (F) is to be performed, the process proceeds to step S106.
ステップS106において、フリップ部104は、ステップS104において得られた1次元信号列である係数データX''に対してフリップ操作(F)を行い、1次元信号列である出力係数データXoutを生成する。このフリップ操作(F)は、例えば、以下の式(20)のように表すことができる。
In step S106, the flip unit 104 performs a flip operation (F) on the coefficient data X ″ that is the one-dimensional signal sequence obtained in step S104, and generates output coefficient data Xout that is a one-dimensional signal sequence. . This flip operation (F) can be expressed, for example, as in the following equation (20).
フリップ部104は、生成された出力係数データXoutを変換装置100の外部に出力する。ステップS106の処理が終了すると変換処理が終了する。また、ステップS105において、フリップフラグの値が偽(False)であり、フリップ操作(F)を行わないと判定された場合、ステップS106の処理はスキップされ、係数データX''がそのまま出力係数データXoutとされ、変換装置100の外部に出力される。出力係数データXoutが出力されると変換処理が終了する。
The flip unit 104 outputs the generated output coefficient data Xout to the outside of the conversion device 100. When the processing in step S106 ends, the conversion processing ends. If it is determined in step S105 that the value of the flip flag is false (False) and the flip operation (F) is not to be performed, the process of step S106 is skipped, and the coefficient data X ″ is output as is as the output coefficient data. Xout is output to the outside of the conversion device 100. When the output coefficient data Xout is output, the conversion process ends.
つまり、この場合、プリ処理およびポスト処理の内容を確認する必要がなく、符号反転操作(S)およびフリップ操作(F)を実行するか否かのみを制御すればよい。したがって、プリ処理やポスト処理の制御の複雑化を抑制することができる。したがって、処理の負荷の増大を抑制し、実装コストの増大を抑制することができる(処理の負荷を低減させ、実装コストを低減させることができる)。
In other words, in this case, it is not necessary to check the contents of the pre-processing and post-processing, and it is only necessary to control whether or not to execute the sign inversion operation (S) and the flip operation (F). Therefore, the complexity of the control of the pre-processing and the post-processing can be suppressed. Therefore, an increase in processing load can be suppressed, and an increase in mounting cost can be suppressed (processing load can be reduced and mounting cost can be reduced).
以上のように、変換装置100は、1次元変換の構成の複雑化を抑制する(構成をより簡易化する)ことができ、1次元変換をより容易に行うことができる。
As described above, the conversion device 100 can suppress the complexity of the configuration of the one-dimensional conversion (simplify the configuration), and can perform the one-dimensional conversion more easily.
<変換タイプ>
以上においては、変換装置100が、変換タイプDCT2の1次元変換を含むFTS操作により変換タイプDST2の1次元変換を実現する例と、変換タイプDCT4の1次元変換を含むFTS操作により変換タイプDST4の1次元変換を実現する例について説明したが、変換装置100に適用可能な変換タイプは、上述の例に限定されない。 <Conversion type>
In the above description, theconversion apparatus 100 realizes the one-dimensional conversion of the conversion type DST2 by the FTS operation including the one-dimensional conversion of the conversion type DCT2, and the conversion device 100 performs the one-dimensional conversion of the conversion type DST4 by the FTS operation including the one-dimensional conversion of the conversion type DCT4. Although an example of implementing one-dimensional conversion has been described, the conversion type applicable to the conversion device 100 is not limited to the above-described example.
以上においては、変換装置100が、変換タイプDCT2の1次元変換を含むFTS操作により変換タイプDST2の1次元変換を実現する例と、変換タイプDCT4の1次元変換を含むFTS操作により変換タイプDST4の1次元変換を実現する例について説明したが、変換装置100に適用可能な変換タイプは、上述の例に限定されない。 <Conversion type>
In the above description, the
例えば、第1の変換タイプの変換行列を用いた1次元変換と、その第1の変換タイプとは異なる第2の変換タイプの変換行列を用いた1次元変換を含むFTS操作とが等価である、第1の変換タイプおよび第2の変換タイプを変換装置100に適用することができる。上述の例では、変換タイプDST2が第1の変換タイプであり、変換タイプDCT2が第2の変換タイプである。
For example, a one-dimensional conversion using a conversion matrix of a first conversion type is equivalent to an FTS operation including a one-dimensional conversion using a conversion matrix of a second conversion type different from the first conversion type. , The first conversion type and the second conversion type can be applied to the conversion device 100. In the above example, the conversion type DST2 is the first conversion type, and the conversion type DCT2 is the second conversion type.
このように、第2の変換タイプの変換行列を用いた1次元変換を含むFTS操作により、第1の変換タイプの変換行列を用いた1次元変換を実現することができる関係を「FTS操作により対になる関係」とも称する。また、このような関係の第1の変換タイプと第2の変換タイプのことを、「FTS操作により対になる変換タイプ」とも称する。例えば、第1の変換タイプの、FTS操作により対になる変換タイプは、第2の変換タイプである。したがって、第1の変換タイプの変換行列を用いた1次元変換は、FTS操作により対になる変換タイプである第2の変換タイプの変換行列を用いた1次元変換を含むFTS操作により実現することができる。
As described above, the relationship that can realize the one-dimensional conversion using the conversion matrix of the first conversion type by the FTS operation including the one-dimensional conversion using the conversion matrix of the second conversion type is described as “the FTS operation. Also referred to as a “paired relationship”. In addition, the first conversion type and the second conversion type having such a relationship are also referred to as “conversion types that are paired by the FTS operation”. For example, the conversion type paired by the FTS operation of the first conversion type is the second conversion type. Therefore, the one-dimensional conversion using the conversion matrix of the first conversion type is realized by the FTS operation including the one-dimensional conversion using the conversion matrix of the second conversion type, which is the conversion type paired by the FTS operation. Can be.
また、例えば、第1の変換タイプおよび第2の変換タイプとは異なる第3の変換タイプの変換行列を用いた1次元変換と、第1の変換タイプ乃至第3の変換タイプとは異なる第4の変換タイプの変換行列を用いた1次元変換を含むSTF操作とが等価であり、かつ、第4の変換タイプの変換行列が対称行列である、第3の変換タイプおよび第4の変換タイプも変換装置100に適用することができる。上述の例では、変換タイプDST4が第3の変換タイプであり、変換タイプDCT4が第4の変換タイプである。
Also, for example, one-dimensional conversion using a conversion matrix of a third conversion type different from the first conversion type and the second conversion type, and a fourth conversion type different from the first to third conversion types. A third conversion type and a fourth conversion type, in which an STF operation including a one-dimensional conversion using a conversion matrix of the following conversion type is equivalent, and the conversion matrix of the fourth conversion type is a symmetric matrix, It can be applied to the conversion device 100. In the above example, the conversion type DST4 is the third conversion type, and the conversion type DCT4 is the fourth conversion type.
このように、第4の変換タイプの変換行列を用いた1次元変換を含むSTF操作により、第3の変換タイプの変換行列を用いた1次元変換を実現することができる関係を「STF操作により対になる関係」とも称する。また、このような関係の第3の変換タイプと第4の変換タイプのことを、「STF操作により対になる変換タイプ」とも称する。例えば、第3の変換タイプの、STF操作により対になる変換タイプは、第4の変換タイプである。したがって、第3の変換タイプの変換行列を用いた1次元変換は、STF操作により対になる変換タイプである第4の変換タイプの、対称行列である変換行列を用いた1次元変換を含むFTS操作により実現することができる。
As described above, the relationship that can realize the one-dimensional conversion using the conversion matrix of the third conversion type by the STF operation including the one-dimensional conversion using the conversion matrix of the fourth conversion type is described as “by the STF operation. Also referred to as a “paired relationship”. Further, the third conversion type and the fourth conversion type having such a relationship are also referred to as “conversion types paired by the STF operation”. For example, the conversion type paired by the STF operation of the third conversion type is the fourth conversion type. Therefore, the one-dimensional transformation using the transformation matrix of the third transformation type includes the FTS including the one-dimensional transformation using the transformation matrix that is the symmetric matrix of the fourth transformation type that is the transformation type paired by the STF operation. It can be realized by operation.
付言するに、上述した例のように、変換タイプDST4の変換行列を用いた1次元変換は、変換タイプDCT4の変換行列を用いた1次元変換を含むFTS操作により実現することができる。つまり、第3の変換タイプの変換行列を用いた1次元変換は、第4の変換タイプの変換行列を用いた1次元変換を含むFTS操作により実現することができる。すなわち、第4の変換タイプは、第3の変換タイプの、「STF操作により対になる変換タイプ」および「FTS操作により対になる変換タイプ」である。
Additionally, as in the above-described example, the one-dimensional conversion using the conversion matrix of the conversion type DST4 can be realized by an FTS operation including the one-dimensional conversion using the conversion matrix of the conversion type DCT4. That is, the one-dimensional conversion using the conversion matrix of the third conversion type can be realized by an FTS operation including the one-dimensional conversion using the conversion matrix of the fourth conversion type. That is, the fourth conversion types are the “conversion types paired by the STF operation” and the “conversion types paired by the FTS operation” of the third conversion type.
以上のように変換装置100は、
画像に関する係数データの1次元信号列に対して、1次元信号列の奇数番目の信号の符号を反転する符号反転操作(S)を行う符号反転部と、
その符号反転部により符号反転操作された1次元信号列に対して、
第1の変換タイプの1次元変換を実現する場合、FTS操作により第1の変換タイプの1次元変換を実現する第2の変換タイプの変換行列をベース変換行列とし、
第3の変換タイプの1次元変換を実現する場合、STF操作により第3の変換タイプの1次元変換を実現する第4の変換タイプの、かつ、対称行列である変換行列をベース変換行列とし、
そのベース変換行列を用いて行列演算を行う行列演算部と、
その行列演算部により行列演算が行われた1次元信号列に対して、各係数の順序を逆順に並び替えるフリップ操作(F)を行うフリップ部と
を備えていればよい。 As described above, theconversion device 100
A sign inversion unit that performs a sign inversion operation (S) for inverting the sign of the odd-numbered signal of the one-dimensional signal sequence with respect to the one-dimensional signal sequence of the coefficient data regarding the image;
For the one-dimensional signal sequence subjected to the sign inversion operation by the sign inversion unit,
When realizing a one-dimensional conversion of the first conversion type, a conversion matrix of a second conversion type for realizing a one-dimensional conversion of the first conversion type by an FTS operation is set as a base conversion matrix,
When a one-dimensional conversion of the third conversion type is realized, a conversion matrix that is a symmetric matrix of a fourth conversion type that realizes a one-dimensional conversion of the third conversion type by an STF operation is a base conversion matrix,
A matrix operation unit that performs a matrix operation using the base transformation matrix;
And a flip unit that performs a flip operation (F) for rearranging the order of each coefficient in the reverse order on the one-dimensional signal sequence on which the matrix operation is performed by the matrix operation unit.
画像に関する係数データの1次元信号列に対して、1次元信号列の奇数番目の信号の符号を反転する符号反転操作(S)を行う符号反転部と、
その符号反転部により符号反転操作された1次元信号列に対して、
第1の変換タイプの1次元変換を実現する場合、FTS操作により第1の変換タイプの1次元変換を実現する第2の変換タイプの変換行列をベース変換行列とし、
第3の変換タイプの1次元変換を実現する場合、STF操作により第3の変換タイプの1次元変換を実現する第4の変換タイプの、かつ、対称行列である変換行列をベース変換行列とし、
そのベース変換行列を用いて行列演算を行う行列演算部と、
その行列演算部により行列演算が行われた1次元信号列に対して、各係数の順序を逆順に並び替えるフリップ操作(F)を行うフリップ部と
を備えていればよい。 As described above, the
A sign inversion unit that performs a sign inversion operation (S) for inverting the sign of the odd-numbered signal of the one-dimensional signal sequence with respect to the one-dimensional signal sequence of the coefficient data regarding the image;
For the one-dimensional signal sequence subjected to the sign inversion operation by the sign inversion unit,
When realizing a one-dimensional conversion of the first conversion type, a conversion matrix of a second conversion type for realizing a one-dimensional conversion of the first conversion type by an FTS operation is set as a base conversion matrix,
When a one-dimensional conversion of the third conversion type is realized, a conversion matrix that is a symmetric matrix of a fourth conversion type that realizes a one-dimensional conversion of the third conversion type by an STF operation is a base conversion matrix,
A matrix operation unit that performs a matrix operation using the base transformation matrix;
And a flip unit that performs a flip operation (F) for rearranging the order of each coefficient in the reverse order on the one-dimensional signal sequence on which the matrix operation is performed by the matrix operation unit.
換言するに、
画像に関する係数データの1次元信号列に対して、その1次元信号列の奇数番目の信号の符号を反転する符号反転操作(S)を行い、
その符号反転操作された1次元信号列に対して、
第1の変換タイプの1次元変換を実現する場合、FTS操作により第1の変換タイプの1次元変換を実現する第2の変換タイプの変換行列をベース変換行列とし、
第3の変換タイプの1次元変換を実現する場合、STF操作により第3の変換タイプの1次元変換を実現する第4の変換タイプの、かつ、対称行列である変換行列をベース変換行列とし、
そのベース変換行列を用いて行列演算を行い、
その行列演算が行われた1次元信号列に対して、各係数の順序を逆順に並び替えるフリップ操作(F)を行えばよい。 In other words,
A sign inversion operation (S) for inverting the sign of the odd-numbered signal of the one-dimensional signal sequence is performed on the one-dimensional signal sequence of the coefficient data relating to the image,
For the sign-inverted one-dimensional signal sequence,
When realizing a one-dimensional conversion of the first conversion type, a conversion matrix of a second conversion type for realizing a one-dimensional conversion of the first conversion type by an FTS operation is set as a base conversion matrix,
When a one-dimensional conversion of the third conversion type is realized, a conversion matrix that is a symmetric matrix of a fourth conversion type that realizes a one-dimensional conversion of the third conversion type by an STF operation is a base conversion matrix,
Perform a matrix operation using the base transformation matrix,
A flip operation (F) for rearranging the order of each coefficient in reverse order may be performed on the one-dimensional signal sequence on which the matrix operation has been performed.
画像に関する係数データの1次元信号列に対して、その1次元信号列の奇数番目の信号の符号を反転する符号反転操作(S)を行い、
その符号反転操作された1次元信号列に対して、
第1の変換タイプの1次元変換を実現する場合、FTS操作により第1の変換タイプの1次元変換を実現する第2の変換タイプの変換行列をベース変換行列とし、
第3の変換タイプの1次元変換を実現する場合、STF操作により第3の変換タイプの1次元変換を実現する第4の変換タイプの、かつ、対称行列である変換行列をベース変換行列とし、
そのベース変換行列を用いて行列演算を行い、
その行列演算が行われた1次元信号列に対して、各係数の順序を逆順に並び替えるフリップ操作(F)を行えばよい。 In other words,
A sign inversion operation (S) for inverting the sign of the odd-numbered signal of the one-dimensional signal sequence is performed on the one-dimensional signal sequence of the coefficient data relating to the image,
For the sign-inverted one-dimensional signal sequence,
When realizing a one-dimensional conversion of the first conversion type, a conversion matrix of a second conversion type for realizing a one-dimensional conversion of the first conversion type by an FTS operation is set as a base conversion matrix,
When a one-dimensional conversion of the third conversion type is realized, a conversion matrix that is a symmetric matrix of a fourth conversion type that realizes a one-dimensional conversion of the third conversion type by an STF operation is a base conversion matrix,
Perform a matrix operation using the base transformation matrix,
A flip operation (F) for rearranging the order of each coefficient in reverse order may be performed on the one-dimensional signal sequence on which the matrix operation has been performed.
このようにすることにより、変換装置100は、1次元変換をより容易に行うことができる。
変 換 By doing so, the conversion apparatus 100 can perform one-dimensional conversion more easily.
なお、「STF操作により対になる変換タイプ」および「FTS操作により対になる変換タイプ」を互いに区別しないで説明する場合、「対になる変換タイプ」とも称する。
Note that when the “conversion type paired by the STF operation” and the “conversion type paired by the FTS operation” are not distinguished from each other, they are also referred to as “paired conversion type”.
なお、第2の変換タイプまたは第4の変換タイプの1次元変換を実現する場合、変換装置100は、符号反転操作およびフリップ操作(F)をスキップし、係数データの1次元信号列に対して、第2の変換タイプまたは第4の変換タイプの変換行列をベース変換行列として行列演算を行うようにすればよい。このようにすることにより、変換装置100は、第2の変換タイプまたは第4の変換タイプの1次元変換も容易に実現することができる。
When realizing the one-dimensional conversion of the second conversion type or the fourth conversion type, the conversion apparatus 100 skips the sign inversion operation and the flip operation (F), and performs the conversion on the one-dimensional signal sequence of the coefficient data. The matrix operation may be performed using a conversion matrix of the second or fourth conversion type as a base conversion matrix. By doing so, the conversion device 100 can easily realize one-dimensional conversion of the second conversion type or the fourth conversion type.
また、変換装置100は、指定された1次元変換の変換タイプに基づいて、符号反転操作(S)を行うか否かを示す符号反転フラグを設定する符号反転フラグ設定部を備え、符号反転部が、その符号反転フラグ設定部により設定された符号反転フラグに基づいて、符号反転操作(S)を行うかスキップする(いずれかを選択し、実行する)ようにしてもよい。
The conversion apparatus 100 further includes a sign inversion flag setting unit that sets a sign inversion flag indicating whether or not to perform the sign inversion operation (S) based on the designated conversion type of the one-dimensional conversion. However, based on the sign inversion flag set by the sign inversion flag setting unit, the sign inversion operation (S) may be performed or skipped (select and execute).
また、変換装置100は、指定された1次元変換の変換タイプに基づいて、フリップ操作(F)を行うか否かを示すフリップフラグを設定するフリップフラグ設定部を備え、フリップ部が、そのフリップフラグ設定部により設定されたフリップフラグに基づいて、フリップ操作(F)を行うかスキップする(いずれかを選択、実行する)ようにしてもよい。
The conversion apparatus 100 further includes a flip flag setting unit that sets a flip flag indicating whether or not to perform a flip operation (F) based on the specified conversion type of the one-dimensional conversion. The flip operation (F) may be performed or skipped (either selected and executed) based on the flip flag set by the flag setting unit.
このようにすることにより、変換装置100は、1次元変換の変換タイプの指定に基づいて、符号反転操作およびフリップ操作(F)を実行するか、スキップするかを容易に制御することができる。したがって、変換装置100は、第1の変換タイプ乃至第4の変換タイプのそれぞれの1次元変換を、より容易に実現することができる。
By doing so, the conversion apparatus 100 can easily control whether to execute or skip the sign inversion operation and the flip operation (F) based on the designation of the conversion type of the one-dimensional conversion. Therefore, the conversion device 100 can more easily realize each one-dimensional conversion of the first to fourth conversion types.
また、変換装置100は、指定された1次元変換の変換タイプに基づいて、第2の変換タイプの変換行列と第4の変換タイプの変換行列とのいずれをベース変換行列とするかを選択するベース変換行列選択部を備え、そのベース変換行列選択部により選択されたベース変換行列を用いて、行列演算を行うようにしてもよい。このようにすることにより、変換装置100は、1次元変換の変換タイプの指定に基づいて、使用するベース変換行列を容易に選択することができる。したがって、変換装置100は、第1の変換タイプ乃至第4の変換タイプのそれぞれの1次元変換を、より容易に実現することができる。
In addition, the conversion apparatus 100 selects which of the second conversion type conversion matrix and the fourth conversion type conversion matrix is to be used as the base conversion matrix, based on the specified one-dimensional conversion conversion type. A base conversion matrix selection unit may be provided, and a matrix operation may be performed using the base conversion matrix selected by the base conversion matrix selection unit. By doing so, the conversion apparatus 100 can easily select the base conversion matrix to be used based on the specification of the conversion type of the one-dimensional conversion. Therefore, the conversion device 100 can more easily realize each one-dimensional conversion of the first to fourth conversion types.
<5.第2の実施の形態>
<逆変換装置>
図9は、本技術を適用した画像処理装置の一態様である逆変換装置の主な構成の一例を示すブロック図である。図6に示される逆変換装置150は、入力された係数データ(直交変換係数)に対して、変換タイプDCT2、DST2、DCT4、およびDST4の逆1次元変換を行う装置である。逆変換装置150は、第1の実施の形態において上述した変換装置100に対応する装置であり、変換装置100が行う1次元変換の逆処理である逆1次元変換を行う。図9に示されるように、逆変換装置150は、制御部151、フリップ部152、行列演算部153、および符号反転部154を有する。 <5. Second Embodiment>
<Inverse conversion device>
FIG. 9 is a block diagram illustrating an example of a main configuration of an inverse conversion device that is an aspect of an image processing device to which the present technology is applied. Theinverse transform device 150 shown in FIG. 6 is a device that performs an inverse one-dimensional transform of transform types DCT2, DST2, DCT4, and DST4 on input coefficient data (orthogonal transform coefficients). The inverse conversion device 150 is a device corresponding to the conversion device 100 described above in the first embodiment, and performs an inverse one-dimensional conversion which is an inverse process of the one-dimensional conversion performed by the conversion device 100. As illustrated in FIG. 9, the inverse transform device 150 includes a control unit 151, a flip unit 152, a matrix operation unit 153, and a sign inversion unit 154.
<逆変換装置>
図9は、本技術を適用した画像処理装置の一態様である逆変換装置の主な構成の一例を示すブロック図である。図6に示される逆変換装置150は、入力された係数データ(直交変換係数)に対して、変換タイプDCT2、DST2、DCT4、およびDST4の逆1次元変換を行う装置である。逆変換装置150は、第1の実施の形態において上述した変換装置100に対応する装置であり、変換装置100が行う1次元変換の逆処理である逆1次元変換を行う。図9に示されるように、逆変換装置150は、制御部151、フリップ部152、行列演算部153、および符号反転部154を有する。 <5. Second Embodiment>
<Inverse conversion device>
FIG. 9 is a block diagram illustrating an example of a main configuration of an inverse conversion device that is an aspect of an image processing device to which the present technology is applied. The
制御部151は、逆1次元変換の制御に関する処理を行う。例えば、制御部151は、入力された変換タイプ識別子trTypeIdx等のパラメータに基づいて、フリップ操作(F)を行うか否かを示すフラグ情報であるフリップフラグ(flipFlag)を設定し、それをフリップ部152に供給することにより、フリップ操作(F)を制御する。また、例えば、制御部151は、入力された変換タイプ識別子trTypeIdx、入力信号の処理対象ブロックの幅log2TBWidth、および入力信号の処理対象ブロックの高さlog2TBHeight等のパラメータに基づいて、行列演算に用いるベース変換行列Tbaseを指定するベース変換行列選択情報を設定し、それを行列演算部153に供給することにより、ベース変換行列Tbaseを用いた行列演算を制御する。さらに、例えば、制御部151は、入力された変換タイプ識別子trTypeIdx等のパラメータに基づいて、符号反転を行うか否かを示すフラグ情報である符号反転フラグ(signChangeFlag)を設定し、それを符号反転部154に供給することにより、符号反転操作(S)を制御する。
The control unit 151 performs a process related to control of the inverse one-dimensional conversion. For example, the control unit 151 sets a flip flag (flipFlag), which is flag information indicating whether or not to perform a flip operation (F), based on the input parameters such as the conversion type identifier trTypeIdx, and sets the flip flag. The flip operation (F) is controlled by supplying the signal to the terminal 152. Further, for example, the control unit 151 may use the base used for matrix calculation based on parameters such as the input conversion type identifier trTypeIdx, the width log2TBWidth of the input signal processing target block, and the height log2TBHeight of the input signal processing target block. By setting base conversion matrix selection information specifying the conversion matrix T base and supplying it to the matrix calculation unit 153, matrix calculation using the base conversion matrix T base is controlled. Further, for example, the control unit 151 sets a sign inversion flag (signChangeFlag) which is flag information indicating whether or not to perform sign inversion based on parameters such as the input conversion type identifier trTypeIdx, and sets the sign inversion to sign inversion. The sign inversion operation (S) is controlled by supplying the signal to the unit 154.
制御部151は、フリップフラグ設定部161、ベース変換行列選択部162、および符号反転フラグ設定部163を有する。フリップフラグ設定部161は、変換タイプ識別子trTypeIdx等のパラメータに基づいて、フリップフラグ(flipFlag)を設定する。ベース変換行列選択部162は、変換タイプ識別子trTypeIdx、入力信号の処理対象ブロックの幅log2TBWidth、および入力信号の処理対象ブロックの高さlog2TBHeight等のパラメータに基づいて、ベース変換行列選択情報を設定する。符号反転フラグ設定部163は、変換タイプ識別子trTypeIdx等のパラメータに基づいて、符号反転フラグ(signChangeFlag)を設定する。
The control unit 151 includes a flip flag setting unit 161, a base conversion matrix selection unit 162, and a sign inversion flag setting unit 163. The flip flag setting unit 161 sets a flip flag (flipFlag) based on parameters such as the conversion type identifier trTypeIdx. The base conversion matrix selection unit 162 sets base conversion matrix selection information based on parameters such as the conversion type identifier trTypeIdx, the width log2TBWidth of the input signal processing target block, and the height log2TBHeight of the input signal processing target block. The sign inversion flag setting unit 163 sets a sign inversion flag (signChangeFlag) based on parameters such as the conversion type identifier trTypeIdx.
制御部151は、任意の構成を有する。例えば、制御部151が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、制御部151が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、制御部151が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。
The control unit 151 has an optional configuration. For example, the control unit 151 may be configured by a logic circuit that implements the above processing. Further, the control unit 151 may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program by using the CPU, the ROM, the RAM, and the like to realize the above-described processing. Of course, the control unit 151 may have both of the configurations, and a part of the above-described processing may be realized by a logic circuit, and the other may be realized by executing a program.
フリップフラグ設定部161、ベース変換行列選択部162、および符号反転フラグ設定部163の各処理部は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
Each processing unit of the flip flag setting unit 161, the base conversion matrix selecting unit 162, and the sign inversion flag setting unit 163 has an arbitrary configuration. For example, each processing unit may be configured by a logic circuit that realizes the above-described processing. In addition, each processing unit may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program by using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing. Of course, each processing unit may have both configurations, and a part of the above-described processing may be realized by a logic circuit, and the other may be realized by executing a program. The configuration of each processing unit may be independent from each other. For example, some of the processing units may realize a part of the above-described processing by a logic circuit, and some of the other processing units may execute a program. May be implemented, and another processing unit may implement the above-described processing by both the logic circuit and the execution of the program.
フリップ部152は、フリップ操作(F)に関する処理を行う。例えば、フリップ部152は、入力係数データXinに対して、係数データの順序を逆順に並び替えるフリップ操作(F)を行い、係数データX'を生成する。なお、フリップ部152は、フリップ操作(F)をスキップ(省略)することもできる。その場合、入力係数データXinは、そのまま係数データX'とされる。フリップ部152は、制御部151から供給されるフリップフラグ(flipFlag)に基づいて、フリップ操作(F)を実行するか否かを選択する。いずれの場合も、フリップ部152は、その係数データX'を行列演算部153に供給する。
The flip unit 152 performs a process related to the flip operation (F). For example, the flip unit 152 performs a flip operation (F) for rearranging the order of the coefficient data on the input coefficient data Xin in reverse order, and generates coefficient data X ′. The flip unit 152 can skip (omit) the flip operation (F). In that case, the input coefficient data Xin is used as it is as the coefficient data X ′. The flip unit 152 selects whether to execute a flip operation (F) based on the flip flag (flipFlag) supplied from the control unit 151. In any case, the flip unit 152 supplies the coefficient data X ′ to the matrix operation unit 153.
フリップ部152は、任意の構成を有する。例えば、フリップ部152が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、フリップ部152が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、フリップ部152が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。
The flip section 152 has an optional configuration. For example, the flip unit 152 may be configured by a logic circuit that implements the above-described processing. In addition, the flip unit 152 may include, for example, a CPU, a ROM, a RAM, and the like, and may execute a program using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing. Of course, the flip unit 152 may have both configurations, and a part of the above processing may be realized by a logic circuit, and the other may be realized by executing a program.
行列演算部153は、行列演算に関する処理を行う。例えば、行列演算部153は、フリップ部152から供給される係数データX'に対して、ベース変換行列の転置行列Tbase
tを用いた行列演算(逆1次元変換)を行い、係数データX''を生成する。行列演算部153は、制御部151から供給されるベース変換行列選択情報により指定される変換タイプのベース変換行列の転置行列Tbase
tを用いて行列演算を行う。行列演算部153は、ベース変換行列LUT170を有する。ベース変換行列LUT170には、変換タイプDCT2の変換行列171と、変換タイプDCT4の変換行列172とが登録されている(記憶されている)。ベース変換行列LUT170には、さらに、変換行列171および変換行列172以外の変換行列が登録されていてもよい。行列演算部153は、ベース変換行列選択情報により指定される変換タイプの変換行列を、そのベース変換行列LUT170から読み出し、ベース変換行列として、係数データX'に対する行列演算に用いる。つまり、行列演算部153は、ベース変換行列LUT170から読み出したベース変換行列の転置行列Tbase
tを用いて係数データX'に対する行列演算を行う。行列演算部153は、生成した係数データX''を符号反転部154に供給する。
The matrix calculation unit 153 performs a process related to the matrix calculation. For example, the matrix operation unit 153 performs a matrix operation (inverse one-dimensional conversion) on the coefficient data X ′ supplied from the flip unit 152 using the transposed matrix T base t of the base conversion matrix, and obtains the coefficient data X ′. 'Is generated. The matrix calculation unit 153 performs a matrix calculation using the transposed matrix T base t of the base conversion matrix of the conversion type specified by the base conversion matrix selection information supplied from the control unit 151. The matrix operation unit 153 has a base conversion matrix LUT 170. In the base transformation matrix LUT 170, a transformation matrix 171 of the transformation type DCT2 and a transformation matrix 172 of the transformation type DCT4 are registered (stored). A conversion matrix other than the conversion matrix 171 and the conversion matrix 172 may be registered in the base conversion matrix LUT 170. The matrix calculation unit 153 reads a conversion matrix of the conversion type specified by the base conversion matrix selection information from the base conversion matrix LUT 170, and uses the conversion matrix as a base conversion matrix in the matrix calculation for the coefficient data X ′. That is, the matrix calculation unit 153 performs a matrix calculation on the coefficient data X ′ using the transposed matrix T base t of the base conversion matrix read from the base conversion matrix LUT 170. The matrix operation unit 153 supplies the generated coefficient data X ″ to the sign inversion unit 154.
行列演算部153は、任意の構成を有する。例えば、行列演算部153が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、行列演算部153が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、行列演算部153が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。いずれの場合も、行列演算部153は、例えばRAM等の記憶領域を有し、それによりベース変換行列LUT170を形成する。
The matrix operation unit 153 has an arbitrary configuration. For example, the matrix operation unit 153 may be configured by a logic circuit that implements the above-described processing. Further, the matrix operation unit 153 may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing. Of course, the matrix operation unit 153 may have both configurations, and a part of the above processing may be realized by a logic circuit, and the other may be realized by executing a program. In any case, the matrix operation unit 153 has a storage area such as a RAM, for example, and forms the base conversion matrix LUT 170.
符号反転部154は、符号反転操作(S)に関する処理を行う。例えば、符号反転部154は、係数データX''に対して、奇数位置の係数データを符号反転する符号反転操作(S)を行い、出力係数データXoutを生成する。なお、符号反転部154は、符号反転操作(S)をスキップ(省略)することもできる。その場合、係数データX''は、そのまま出力係数データXoutとされる。符号反転部154は、制御部151から供給される符号反転フラグ(signChangeFlag)に基づいて、符号反転操作(S)を実行するか否かを選択する。いずれの場合も、符号反転部154は、その出力係数データXoutを逆変換装置150の外部に出力する。
The sign inversion unit 154 performs a process related to the sign inversion operation (S). For example, the sign inversion unit 154 performs a sign inversion operation (S) on the coefficient data X ″ to invert the sign of the coefficient data at the odd-numbered position to generate output coefficient data Xout. Note that the sign inversion unit 154 can also skip (omit) the sign inversion operation (S). In that case, the coefficient data X ″ is directly used as the output coefficient data Xout. The sign inversion unit 154 selects whether or not to execute the sign inversion operation (S) based on the sign inversion flag (signChangeFlag) supplied from the control unit 151. In any case, the sign inversion unit 154 outputs the output coefficient data Xout to the outside of the inverse transform device 150.
符号反転部154は、任意の構成を有する。例えば、符号反転部154が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、符号反転部154が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、符号反転部154が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。
The sign inversion unit 154 has an optional configuration. For example, the sign inversion unit 154 may be configured by a logic circuit that implements the above-described processing. In addition, the sign inverting unit 154 may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing. Of course, the sign inverting unit 154 may have both configurations, and a part of the above processing may be realized by a logic circuit, and the other may be realized by executing a program.
<制御例>
このような逆変換装置150において、例えば、制御部151は、図10に示される表のように制御を行う。例えば、入力された変換タイプ識別子trTypeIdxが0の場合、制御部151は、変換タイプ(trType)がDCT2の逆1次元変換を行うように制御する。すなわち、制御部151は、フリップフラグ設定部161を用いて、フリップフラグ(flipFlag)を偽(False)(例えば0)に設定する。また、制御部151は、ベース変換行列選択部162を用いて、変換タイプDCT2であり、サイズがnTbS×nTbSであるベース変換行列transMatrixnTbS,DCT2を指定するベース変換行列選択情報を生成する。さらに、制御部151は、符号反転フラグ設定部163を用いて、符号反転フラグ(signChangeFlag)を偽(False)(例えば0)に設定する。つまり、この場合、変換タイプDCT2の変換行列の転置行列(transMatrixnTbS,DCT2)tを用いた行列演算のみが行われ、入力係数データXinに対するフリップ操作(F)や、係数データX''に対する符号反転操作(S)はスキップされる。 <Control example>
In such aninverse conversion device 150, for example, the control unit 151 performs control as shown in the table in FIG. For example, when the input conversion type identifier trTypeIdx is 0, the control unit 151 controls so that the conversion type (trType) performs the inverse one-dimensional conversion of DCT2. That is, the control unit 151 sets the flip flag (flipFlag) to False (for example, 0) by using the flip flag setting unit 161. Further, the control unit 151 uses the base transformation matrix selection unit 162 to generate base transformation matrix selection information that specifies the base transformation matrix transMatrix nTbS, DCT2 of the transformation type DCT2 and the size of nTbS × nTbS. Further, the control unit 151 sets the sign inversion flag (signChangeFlag) to false (for example, 0) using the sign inversion flag setting unit 163. That is, in this case, only the matrix operation using the transposed matrix (transMatrix nTbS, DCT2 ) t of the transform matrix of the transform type DCT2 is performed, and the flip operation (F) on the input coefficient data Xin and the code on the coefficient data X ″ are performed. The inversion operation (S) is skipped.
このような逆変換装置150において、例えば、制御部151は、図10に示される表のように制御を行う。例えば、入力された変換タイプ識別子trTypeIdxが0の場合、制御部151は、変換タイプ(trType)がDCT2の逆1次元変換を行うように制御する。すなわち、制御部151は、フリップフラグ設定部161を用いて、フリップフラグ(flipFlag)を偽(False)(例えば0)に設定する。また、制御部151は、ベース変換行列選択部162を用いて、変換タイプDCT2であり、サイズがnTbS×nTbSであるベース変換行列transMatrixnTbS,DCT2を指定するベース変換行列選択情報を生成する。さらに、制御部151は、符号反転フラグ設定部163を用いて、符号反転フラグ(signChangeFlag)を偽(False)(例えば0)に設定する。つまり、この場合、変換タイプDCT2の変換行列の転置行列(transMatrixnTbS,DCT2)tを用いた行列演算のみが行われ、入力係数データXinに対するフリップ操作(F)や、係数データX''に対する符号反転操作(S)はスキップされる。 <Control example>
In such an
例えば、入力された変換タイプ識別子trTypeIdxが1の場合、制御部151は、変換タイプ(trType)がDCT4の逆1次元変換を行うように制御する。すなわち、制御部151は、フリップフラグ設定部161を用いて、フリップフラグを偽(False)(例えば0)に設定する。また、制御部151は、ベース変換行列選択部162を用いて、変換タイプDCT4であり、サイズがnTbS×nTbSであるベース変換行列transMatrixnTbS,DCT4を指定するベース変換行列選択情報を生成する。さらに、制御部151は、符号反転フラグ設定部163を用いて、符号反転フラグを偽(False)(例えば0)に設定する。つまり、この場合、変換タイプDCT4の変換行列の転置行列(transMatrixnTbS,DCT4)tを用いた行列演算のみが行われ、入力係数データXinに対するフリップ操作(F)や、係数データX''に対する符号反転操作(S)はスキップされる。
For example, when the input conversion type identifier trTypeIdx is 1, the control unit 151 controls the conversion type (trType) to perform inverse one-dimensional conversion of DCT4. That is, the control unit 151 sets the flip flag to False (for example, 0) using the flip flag setting unit 161. In addition, the control unit 151 uses the base transformation matrix selection unit 162 to generate base transformation matrix selection information that specifies the base transformation matrix transMatrix nTbS, DCT4 of the transformation type DCT4 and the size of nTbS × nTbS. Further, the control unit 151 sets the sign inversion flag to False (for example, 0) using the sign inversion flag setting unit 163. That is, in this case, only the matrix operation using the transposed matrix (transMatrix nTbS, DCT4 ) t of the transform matrix of the transform type DCT4 is performed, and the flip operation (F) for the input coefficient data Xin and the code for the coefficient data X ″ are performed. The inversion operation (S) is skipped.
例えば、入力された変換タイプ識別子trTypeIdxが2の場合、制御部151は、変換タイプ(trType)がDST4の逆1次元変換を行うように制御する。すなわち、制御部151は、フリップフラグ設定部161を用いて、フリップフラグを真(True)(例えば1)に設定する。また、制御部151は、ベース変換行列選択部162を用いて、変換タイプDCT4であり、サイズがnTbS×nTbSであるベース変換行列transMatrixnTbS,DCT4を指定するベース変換行列選択情報を生成する。さらに、制御部151は、符号反転フラグ設定部163を用いて、符号反転フラグを真(True)(例えば1)に設定する。つまり、この場合、入力係数データXinに対するフリップ操作(F)、変換タイプDCT4の変換行列の転置行列(transMatrixnTbS,DCT4)tを用いた行列演算、および、係数データX''に対する符号反転操作(S)が実行される。
For example, when the input conversion type identifier trTypeIdx is 2, the control unit 151 controls so that the conversion type (trType) performs the inverse one-dimensional conversion of DST4. That is, the control unit 151 sets the flip flag to True (for example, 1) using the flip flag setting unit 161. In addition, the control unit 151 uses the base transformation matrix selection unit 162 to generate base transformation matrix selection information that specifies the base transformation matrix transMatrix nTbS, DCT4 of the transformation type DCT4 and the size of nTbS × nTbS. Further, the control unit 151 sets the sign inversion flag to True (for example, 1) by using the sign inversion flag setting unit 163. That is, in this case, a flip operation (F) on the input coefficient data Xin , a matrix operation using the transposed matrix (transMatrix nTbS, DCT4 ) t of the conversion matrix of the conversion type DCT4, and a sign inversion operation on the coefficient data X ″ ( S) is executed.
例えば、入力された変換タイプ識別子trTypeIdxが3の場合、制御部151は、変換タイプ(trType)がDST2の逆1次元変換を行うように制御する。すなわち、制御部151は、フリップフラグ設定部161を用いて、フリップフラグを真(True)(例えば1)に設定する。また、制御部151は、ベース変換行列選択部162を用いて、変換タイプDCT2であり、サイズがnTbS×nTbSであるベース変換行列transMatrixnTbS,DCT2を指定するベース変換行列選択情報を生成する。さらに、制御部151は、符号反転フラグ設定部163を用いて、符号反転フラグを真(True)(例えば1)に設定する。つまり、この場合、入力係数データXinに対するフリップ操作(F)、変換タイプDCT2の変換行列の転置行列(transMatrixnTbS,DCT2)tを用いた行列演算、および、係数データX''に対する符号反転操作(S)が実行される。
For example, when the input conversion type identifier trTypeIdx is 3, the control unit 151 controls so that the conversion type (trType) performs the inverse one-dimensional conversion of DST2. That is, the control unit 151 sets the flip flag to True (for example, 1) using the flip flag setting unit 161. Further, the control unit 151 uses the base transformation matrix selection unit 162 to generate base transformation matrix selection information that specifies the base transformation matrix transMatrix nTbS, DCT2 of the transformation type DCT2 and the size of nTbS × nTbS. Further, the control unit 151 sets the sign inversion flag to True (for example, 1) by using the sign inversion flag setting unit 163. That is, in this case, the flip operation (F) on the input coefficient data Xin , the matrix operation using the transposed matrix (transMatrix nTbS, DCT2 ) t of the conversion matrix of the conversion type DCT2, and the sign inversion operation ( S) is executed.
以上のように、逆変換装置150は、フリップ操作(F)および符号反転操作(S)をスキップすることにより、変換タイプDCT2またはDCT4の逆1次元変換を行うことができる。また、逆変換装置150は、フリップ操作(F)および符号反転操作(S)を実行し、STF操作によって、変換タイプDST2またはDST4の逆1次元変換を行うことができる。
As described above, the inverse transform device 150 can perform the inverse one-dimensional transform of the transform type DCT2 or DCT4 by skipping the flip operation (F) and the sign inversion operation (S). In addition, the inverse transform device 150 executes the flip operation (F) and the sign inversion operation (S), and can perform the inverse one-dimensional conversion of the conversion type DST2 or DST4 by the STF operation.
つまり、図9に示されるように、逆変換装置150は、変換タイプDST2用のプリ処理部と変換タイプDST4用のプリ処理部とをフリップ部152に共通化することができる。同様に、変換タイプDST2用のポスト処理部と変換タイプDST4用のポスト処理部とを符号反転部154に共通化することができる。したがって、回路規模の増大を抑制し、実装コストの増大を抑制することができる(回路規模を低減させ、実装コストを低減させることができる)。
In other words, as shown in FIG. 9, the inverse conversion device 150 can share the pre-processing unit for the conversion type DST2 and the pre-processing unit for the conversion type DST4 with the flip unit 152. Similarly, the post-processing unit for the conversion type DST2 and the post-processing unit for the conversion type DST4 can be shared by the sign inversion unit 154. Therefore, it is possible to suppress an increase in circuit scale and an increase in mounting cost (the circuit scale can be reduced and the mounting cost can be reduced).
<逆変換処理の流れ>
次に、この逆変換装置150により実行される変換処理の流れの例を、図11のフローチャートを参照して説明する。 <Flow of inverse transformation process>
Next, an example of the flow of the conversion process executed by theinverse conversion device 150 will be described with reference to the flowchart in FIG.
次に、この逆変換装置150により実行される変換処理の流れの例を、図11のフローチャートを参照して説明する。 <Flow of inverse transformation process>
Next, an example of the flow of the conversion process executed by the
逆変換処理が開始されると、制御部151(フリップフラグ設定部161、ベース変換行列選択部162、および符号反転フラグ設定部163)は、ステップS151において、変換タイプtrTypeIdxや、サイズ(log2TBWidth, log2TBHeight)に基づいて、ベース変換行列選択情報、フリップフラグ(flipFlag)、および符号反転フラグ(signChangeFlag)を上述のように設定する。
When the inverse conversion processing is started, the control unit 151 (the flip flag setting unit 161, the base conversion matrix selection unit 162, and the sign inversion flag setting unit 163) in step S151, converts the conversion type trTypeIdx and the size (log2TBWidth, log2TBHeight). ), The base conversion matrix selection information, the flip flag (flipFlag), and the sign inversion flag (signChangeFlag) are set as described above.
ステップS152において、フリップ部152は、ステップS151において設定されたフリップフラグに基づいて、フリップ操作(F)を行うか否かを判定する(FlipFlag == True ?)。フリップフラグの値が真(True)であり、フリップ操作(F)を行うと判定された場合、処理はステップS153に進む。
に お い て In step S152, the flip unit 152 determines whether or not to perform a flip operation (F) based on the flip flag set in step S151 (FlipFlag == True?). If the value of the flip flag is true and it is determined that the flip operation (F) is to be performed, the process proceeds to step S153.
ステップS153において、フリップ部152は、1次元信号列である入力係数データXinに対してフリップ操作(F)を行い、1次元信号列である係数データX'を生成する。このフリップ操作(F)は、例えば、以下の式(21)のように表すことができる。
In step S153, the flip unit 152 performs a flip operation (F) on the input coefficient data Xin that is a one-dimensional signal sequence, and generates coefficient data X ′ that is a one-dimensional signal sequence. This flip operation (F) can be expressed, for example, as in the following equation (21).
ステップS153の処理が終了すると処理はステップS154に進む。また、ステップS152において、フリップフラグの値が偽(False)であり、フリップ操作(F)を行わないと判定された場合、ステップS153の処理はスキップされ、入力係数データXinがそのまま係数データX'とされ、処理はステップS154に進む。
す る と When the process of step S153 ends, the process proceeds to step S154. If it is determined in step S152 that the value of the flip flag is false (False) and the flip operation (F) is not to be performed, the process of step S153 is skipped, and the input coefficient data Xin is directly used as the coefficient data X ′. , And the process proceeds to step S154.
ステップS154において、行列演算部153は、選択されたベース変換行列Tbase、すなわち、ステップS151において設定されたベース変換行列選択情報により指定されるベース変換行列Tbaseをベース変換行列LUT170から取得し、その転置行列を用いて、1次元信号列である係数データX'に対する行列演算(逆1次元変換)を行い、1次元信号列である係数データX''を生成する。この行列演算は、例えば、以下の式(22)のように表すことができる。
In step S154, the matrix calculator 153 obtains the base transform matrix T base selected, i.e., the base transform matrix T base specified by the base transform matrix selected information set in step S151 from the base transformation matrix LUT 170, A matrix operation (inverse one-dimensional conversion) is performed on the coefficient data X ′ that is a one-dimensional signal sequence using the transposed matrix to generate coefficient data X ″ that is a one-dimensional signal sequence. This matrix operation can be represented, for example, by the following equation (22).
ステップS155において、符号反転部154は、ステップS151において設定された符号反転フラグに基づいて、符号反転操作(S)を行うか否かを判定する(signChangeFlag == True ?)。符号反転フラグの値が真(True)であり、符号反転操作(S)を行うと判定された場合、処理はステップS156に進む。
{At step S155, the sign inversion unit 154 determines whether or not to perform the sign inversion operation (S) based on the sign inversion flag set at step S151 (signChangeFlag == True?). If the value of the sign inversion flag is true and it is determined that the sign inversion operation (S) is to be performed, the process proceeds to step S156.
ステップS156において、符号反転部154は、ステップS154において得られた1次元信号列である係数データX''に対して符号反転操作(S)を行い、1次元信号列である出力係数データXoutを生成する。この符号反転操作(S)は、例えば、以下の式(23)のように表すことができる。
In step S156, the sign inversion unit 154 performs a sign inversion operation (S) on the coefficient data X ″ that is the one-dimensional signal sequence obtained in step S154, and outputs the output coefficient data Xout that is the one-dimensional signal sequence. Generate. This sign inversion operation (S) can be expressed, for example, as in the following Expression (23).
符号反転部154は、生成された出力係数データXoutを逆変換装置150の外部に出力する。ステップS156の処理が終了すると変換処理が終了する。また、ステップS155において、符号反転フラグの値が偽(False)であり、符号反転操作(S)を行わないと判定された場合、ステップS156の処理はスキップされ、係数データX''がそのまま出力係数データXoutとされ、逆変換装置150の外部に出力される。出力係数データXoutが出力されると逆変換処理が終了する。
The sign inversion unit 154 outputs the generated output coefficient data Xout to the outside of the inverse transform device 150. When the processing in step S156 ends, the conversion processing ends. If it is determined in step S155 that the value of the sign inversion flag is false (False) and the sign inversion operation (S) is not performed, the process in step S156 is skipped, and the coefficient data X ″ is output as it is. The data is set as coefficient data Xout and output to the outside of the inverse transform device 150. When the output coefficient data Xout is output, the inverse conversion processing ends.
つまり、この場合、プリ処理およびポスト処理の内容を確認する必要がなく、フリップ操作(F)および符号反転操作(S)を実行するか否かのみを制御すればよい。したがって、プリ処理やポスト処理の制御の複雑化を抑制することができる。したがって、処理の負荷の増大を抑制し、実装コストの増大を抑制することができる(処理の負荷を低減させ、実装コストを低減させることができる)。
In other words, in this case, it is not necessary to check the contents of the pre-processing and the post-processing, and it is only necessary to control whether or not to execute the flip operation (F) and the sign inversion operation (S). Therefore, the complexity of the control of the pre-processing and the post-processing can be suppressed. Therefore, an increase in processing load can be suppressed, and an increase in mounting cost can be suppressed (processing load can be reduced and mounting cost can be reduced).
以上のように、逆変換装置150は、逆1次元変換の構成の複雑化を抑制する(構成をより簡易化する)ことができ、逆1次元変換をより容易に行うことができる。
As described above, the inverse transform device 150 can suppress the complexity of the configuration of the inverse one-dimensional transform (simplify the configuration), and can more easily perform the inverse one-dimensional transform.
<変換タイプ>
以上においては、逆変換装置150が、変換タイプDCT2の逆1次元変換を含むSTF操作により変換タイプDST2の逆1次元変換を実現する例と、変換タイプDCT4の逆1次元変換を含むSTF操作により変換タイプDST4の逆1次元変換を実現する例について説明したが、逆変換装置150に適用可能な変換タイプは、上述の例に限定されない。 <Conversion type>
In the above, theinverse transform apparatus 150 realizes the inverse one-dimensional transform of the transform type DST2 by the STF operation including the inverse one-dimensional transform of the transform type DCT2, and the STF operation including the inverse one-dimensional transform of the transform type DCT4. Although the example of implementing the inverse one-dimensional conversion of the conversion type DST4 has been described, the conversion type applicable to the inverse conversion device 150 is not limited to the above-described example.
以上においては、逆変換装置150が、変換タイプDCT2の逆1次元変換を含むSTF操作により変換タイプDST2の逆1次元変換を実現する例と、変換タイプDCT4の逆1次元変換を含むSTF操作により変換タイプDST4の逆1次元変換を実現する例について説明したが、逆変換装置150に適用可能な変換タイプは、上述の例に限定されない。 <Conversion type>
In the above, the
例えば、第1の変換タイプの変換行列を用いた逆1次元変換と、その第1の変換タイプとは異なる第2の変換タイプの変換行列を用いた逆1次元変換を含むSTF操作とが等価である、第1の変換タイプおよび第2の変換タイプを逆変換装置150に適用することができる。上述の例では、変換タイプDST2が第1の変換タイプであり、変換タイプDCT2が第2の変換タイプである。
For example, an inverse one-dimensional transform using a transform matrix of a first transform type is equivalent to an STF operation including an inverse one-dimensional transform using a transform matrix of a second transform type different from the first transform type. The first conversion type and the second conversion type can be applied to the inverse conversion device 150. In the above example, the conversion type DST2 is the first conversion type, and the conversion type DCT2 is the second conversion type.
この逆1次元変換の場合も第1の実施の形態において説明した1次元変換の場合と同様に、第2の変換タイプの変換行列を用いた逆1次元変換を含むSTF操作により、第1の変換タイプの変換行列を用いた逆1次元変換を実現することができる関係を「STF操作により対になる関係」とも称する。また、このような関係の第1の変換タイプと第2の変換タイプのことを、「STF操作により対になる変換タイプ」とも称する。例えば、この逆1次元変換の場合、第1の変換タイプの、STF操作により対になる変換タイプは、第2の変換タイプである。したがって、第1の変換タイプの変換行列を用いた逆1次元変換は、STF操作により対になる変換タイプである第2の変換タイプの変換行列を用いた逆1次元変換を含むSTF操作により実現することができる。
In the case of the inverse one-dimensional conversion, similarly to the case of the one-dimensional conversion described in the first embodiment, the first transfer is performed by the STF operation including the inverse one-dimensional conversion using the conversion matrix of the second conversion type. The relationship that can realize the inverse one-dimensional transformation using the transformation type transformation matrix is also referred to as “the relationship paired by the STF operation”. Further, the first conversion type and the second conversion type having such a relationship are also referred to as “conversion types paired by the STF operation”. For example, in the case of the inverse one-dimensional conversion, the conversion type paired by the STF operation of the first conversion type is the second conversion type. Therefore, the inverse one-dimensional transformation using the transformation matrix of the first transformation type is realized by the STF operation including the inverse one-dimensional transformation using the transformation matrix of the second transformation type, which is the transformation type paired by the STF operation. can do.
また、例えば、第1の変換タイプおよび第2の変換タイプとは異なる第3の変換タイプの変換行列を用いた逆1次元変換と、第1の変換タイプ乃至第3の変換タイプとは異なる第4の変換タイプの変換行列を用いた逆1次元変換を含むFTS操作とが等価であり、かつ、第4の変換タイプの変換行列が対称行列である、第3の変換タイプおよび第4の変換タイプも逆変換装置150に適用することができる。上述の例では、変換タイプDST4が第3の変換タイプであり、変換タイプDCT4が第4の変換タイプである。
Also, for example, an inverse one-dimensional conversion using a conversion matrix of a third conversion type different from the first conversion type and the second conversion type, and a first conversion type different from the first to third conversion types. A third transformation type and a fourth transformation in which the FTS operation including the inverse one-dimensional transformation using the transformation matrix of the fourth transformation type is equivalent, and the transformation matrix of the fourth transformation type is a symmetric matrix The type can also be applied to the inverse converter 150. In the above example, the conversion type DST4 is the third conversion type, and the conversion type DCT4 is the fourth conversion type.
この逆1次元変換の場合も第1の実施の形態において説明した1次元変換の場合と同様に、第4の変換タイプの変換行列を用いた逆1次元変換を含むFTS操作により、第3の変換タイプの変換行列を用いた逆1次元変換を実現することができる関係を「FTS操作により対になる関係」とも称する。また、このような関係の第3の変換タイプと第4の変換タイプのことを、「FTS操作により対になる変換タイプ」とも称する。例えば、この逆1次元変換の場合、第3の変換タイプの、FTS操作により対になる変換タイプは、第4の変換タイプである。したがって、第3の変換タイプの変換行列を用いた逆1次元変換は、FTS操作により対になる変換タイプである第4の変換タイプの、対称行列である変換行列を用いた逆1次元変換を含むFTS操作により実現することができる。
In the case of the inverse one-dimensional conversion, similarly to the case of the one-dimensional conversion described in the first embodiment, the FTS operation including the inverse one-dimensional conversion using the conversion matrix of the fourth conversion type performs the third operation. The relationship that can implement the inverse one-dimensional transformation using the transformation type transformation matrix is also referred to as “the relationship paired by the FTS operation”. Further, the third conversion type and the fourth conversion type having such a relationship are also referred to as “conversion types paired by the FTS operation”. For example, in the case of this inverse one-dimensional conversion, the conversion type paired by the FTS operation of the third conversion type is the fourth conversion type. Therefore, the inverse one-dimensional transformation using the transformation matrix of the third transformation type is the inverse one-dimensional transformation using the transformation matrix that is the symmetric matrix of the fourth transformation type, which is the transformation type paired by the FTS operation. It can be realized by including FTS operation.
付言するに、上述した例のように、変換タイプDST4の変換行列を用いた逆1次元変換は、変換タイプDCT4の変換行列を用いた逆1次元変換を含むSTF操作により実現することができる。つまり、第3の変換タイプの変換行列を用いた逆1次元変換は、第4の変換タイプの変換行列を用いた1次元変換を含むSTF操作により実現することができる。すなわち、第4の変換タイプは、第3の変換タイプの、「FTS操作により対になる変換タイプ」および「STF操作により対になる変換タイプ」である。
Additionally, as in the example described above, the inverse one-dimensional transform using the transform matrix of the transform type DST4 can be realized by an STF operation including the inverse one-dimensional transform using the transform matrix of the transform type DCT4. That is, the inverse one-dimensional conversion using the conversion matrix of the third conversion type can be realized by the STF operation including the one-dimensional conversion using the conversion matrix of the fourth conversion type. That is, the fourth conversion types are the “conversion types paired by the FTS operation” and the “conversion types paired by the STF operation” of the third conversion type.
以上のように逆変換装置150は、画像に関する係数データの1次元信号列に対して、各係数の順序を逆順に並び替えるフリップ操作を行うフリップ部と、
そのフリップ部によりフリップ操作された1次元信号列に対して、
第1の変換タイプの逆1次元変換を実現する場合、STF操作により第1の変換タイプの逆1次元変換を実現する第2の変換タイプの変換行列をベース変換行列とし、
第3の変換タイプの逆1次元変換を実現する場合、FTS操作により第3の変換タイプの逆1次元変換を実現する第4の変換タイプの、かつ、対称行列である変換行列をベース変換行列とし、
そのベース変換行列の転置行列を用いて行列演算を行う行列演算部と、
その行列演算部により行列演算が行われた1次元信号列に対して、1次元信号列の奇数番目の信号の符号を反転する符号反転操作(S)を行う符号反転部と
を備えていればよい。 As described above, theinverse conversion device 150 performs a flip operation for rearranging the order of each coefficient on the one-dimensional signal sequence of the coefficient data relating to the image in the reverse order,
For the one-dimensional signal sequence flipped by the flip part,
When realizing the inverse one-dimensional conversion of the first conversion type, a conversion matrix of the second conversion type that realizes the inverse one-dimensional conversion of the first conversion type by the STF operation is a base conversion matrix,
When implementing the inverse one-dimensional transformation of the third transformation type, a transformation matrix that is a symmetric matrix of the fourth transformation type that implements the inverse one-dimensional transformation of the third transformation type by an FTS operation is a base transformation matrix. age,
A matrix operation unit that performs a matrix operation using the transpose of the base transformation matrix;
A sign inverting unit for performing a sign inversion operation (S) for inverting the sign of the odd-numbered signal of the one-dimensional signal sequence with respect to the one-dimensional signal sequence subjected to the matrix operation by the matrix operation unit. Good.
そのフリップ部によりフリップ操作された1次元信号列に対して、
第1の変換タイプの逆1次元変換を実現する場合、STF操作により第1の変換タイプの逆1次元変換を実現する第2の変換タイプの変換行列をベース変換行列とし、
第3の変換タイプの逆1次元変換を実現する場合、FTS操作により第3の変換タイプの逆1次元変換を実現する第4の変換タイプの、かつ、対称行列である変換行列をベース変換行列とし、
そのベース変換行列の転置行列を用いて行列演算を行う行列演算部と、
その行列演算部により行列演算が行われた1次元信号列に対して、1次元信号列の奇数番目の信号の符号を反転する符号反転操作(S)を行う符号反転部と
を備えていればよい。 As described above, the
For the one-dimensional signal sequence flipped by the flip part,
When realizing the inverse one-dimensional conversion of the first conversion type, a conversion matrix of the second conversion type that realizes the inverse one-dimensional conversion of the first conversion type by the STF operation is a base conversion matrix,
When implementing the inverse one-dimensional transformation of the third transformation type, a transformation matrix that is a symmetric matrix of the fourth transformation type that implements the inverse one-dimensional transformation of the third transformation type by an FTS operation is a base transformation matrix. age,
A matrix operation unit that performs a matrix operation using the transpose of the base transformation matrix;
A sign inverting unit for performing a sign inversion operation (S) for inverting the sign of the odd-numbered signal of the one-dimensional signal sequence with respect to the one-dimensional signal sequence subjected to the matrix operation by the matrix operation unit. Good.
換言するに、
画像に関する係数データの1次元信号列に対して、各係数の順序を逆順に並び替えるフリップ操作を行い、
そのフリップ操作された1次元信号列に対して、
第1の変換タイプの逆1次元変換を実現する場合、STF操作により第1の変換タイプの逆1次元変換を実現する第2の変換タイプの変換行列をベース変換行列とし、
第3の変換タイプの逆1次元変換を実現する場合、FTS操作により第3の変換タイプの逆1次元変換を実現する第4の変換タイプの、かつ、対称行列である変換行列をベース変換行列とし、
そのベース変換行列の転置行列を用いて行列演算を行い、
その行列演算が行われた1次元信号列に対して、1次元信号列の奇数番目の信号の符号を反転する符号反転操作(S)を行えばよい。 In other words,
A one-dimensional signal sequence of coefficient data relating to an image is subjected to a flip operation of rearranging the order of each coefficient in reverse order,
For the flip-operated one-dimensional signal sequence,
When realizing the inverse one-dimensional conversion of the first conversion type, a conversion matrix of the second conversion type that realizes the inverse one-dimensional conversion of the first conversion type by the STF operation is a base conversion matrix,
When implementing the inverse one-dimensional transformation of the third transformation type, a transformation matrix that is a symmetric matrix of the fourth transformation type that implements the inverse one-dimensional transformation of the third transformation type by an FTS operation is a base transformation matrix. age,
Performs a matrix operation using the transposed matrix of the base transformation matrix,
A sign inversion operation (S) for inverting the sign of the odd-numbered signal in the one-dimensional signal sequence may be performed on the one-dimensional signal sequence on which the matrix operation has been performed.
画像に関する係数データの1次元信号列に対して、各係数の順序を逆順に並び替えるフリップ操作を行い、
そのフリップ操作された1次元信号列に対して、
第1の変換タイプの逆1次元変換を実現する場合、STF操作により第1の変換タイプの逆1次元変換を実現する第2の変換タイプの変換行列をベース変換行列とし、
第3の変換タイプの逆1次元変換を実現する場合、FTS操作により第3の変換タイプの逆1次元変換を実現する第4の変換タイプの、かつ、対称行列である変換行列をベース変換行列とし、
そのベース変換行列の転置行列を用いて行列演算を行い、
その行列演算が行われた1次元信号列に対して、1次元信号列の奇数番目の信号の符号を反転する符号反転操作(S)を行えばよい。 In other words,
A one-dimensional signal sequence of coefficient data relating to an image is subjected to a flip operation of rearranging the order of each coefficient in reverse order,
For the flip-operated one-dimensional signal sequence,
When realizing the inverse one-dimensional conversion of the first conversion type, a conversion matrix of the second conversion type that realizes the inverse one-dimensional conversion of the first conversion type by the STF operation is a base conversion matrix,
When implementing the inverse one-dimensional transformation of the third transformation type, a transformation matrix that is a symmetric matrix of the fourth transformation type that implements the inverse one-dimensional transformation of the third transformation type by an FTS operation is a base transformation matrix. age,
Performs a matrix operation using the transposed matrix of the base transformation matrix,
A sign inversion operation (S) for inverting the sign of the odd-numbered signal in the one-dimensional signal sequence may be performed on the one-dimensional signal sequence on which the matrix operation has been performed.
このようにすることにより、逆変換装置150は、逆1次元変換をより容易に行うことができる。
に す る By doing so, the inverse conversion device 150 can more easily perform the inverse one-dimensional conversion.
なお、逆1次元変換の場合も、「STF操作により対になる変換タイプ」および「FTS操作により対になる変換タイプ」を互いに区別しないで説明する場合、「対になる変換タイプ」とも称する。
逆 In the case of the inverse one-dimensional conversion, when the “conversion type paired by the STF operation” and the “conversion type paired by the FTS operation” are not distinguished from each other, they are also referred to as “paired conversion type”.
なお、第2の変換タイプまたは第4の変換タイプの逆1次元変換を実現する場合、逆変換装置150は、フリップ操作(F)および符号反転操作(S)をスキップし、係数データの1次元信号列に対して、第2の変換タイプまたは第4の変換タイプの変換行列をベース変換行列として行列演算を行うようにすればよい。このようにすることにより、逆変換装置150は、第2の変換タイプまたは第4の変換タイプの逆1次元変換も容易に実現することができる。
When implementing the inverse one-dimensional conversion of the second conversion type or the fourth conversion type, the inverse conversion device 150 skips the flip operation (F) and the sign inversion operation (S) and performs one-dimensional conversion of the coefficient data. A matrix operation may be performed on a signal sequence using a conversion matrix of the second conversion type or the fourth conversion type as a base conversion matrix. By doing so, the inverse conversion device 150 can easily realize the inverse one-dimensional conversion of the second conversion type or the fourth conversion type.
また、逆変換装置150は、指定された逆1次元変換の変換タイプに基づいて、フリップ操作を行うか否かを示すフリップフラグを設定するフリップフラグ設定部を備え、フリップ部が、そのフリップフラグ設定部により設定されたフリップフラグに基づいて、フリップ操作を行うかスキップする(いずれかを選択、実行する)ようにしてもよい。
Further, the inverse conversion device 150 includes a flip flag setting unit that sets a flip flag indicating whether to perform a flip operation based on the specified conversion type of the inverse one-dimensional conversion, and the flip unit includes the flip flag. A flip operation may be performed or skipped (either selected or executed) based on the flip flag set by the setting unit.
また、逆変換装置150は、指定された逆1次元変換の変換タイプに基づいて、符号反転操作(S)を行うか否かを示す符号反転フラグを設定する符号反転フラグ設定部を備え、符号反転部が、その符号反転フラグ設定部により設定された符号反転フラグに基づいて、符号反転操作(S)を行うかスキップする(いずれかを選択し、実行する)ようにしてもよい。
In addition, the inverse conversion device 150 includes a sign inversion flag setting unit that sets a sign inversion flag indicating whether or not to perform a sign inversion operation (S) based on the designated inverse one-dimensional conversion type. The reversing unit may perform the sign reversing operation (S) or skip (select and execute one) based on the sign reversal flag set by the sign reversal flag setting unit.
このようにすることにより、逆変換装置150は、逆1次元変換の変換タイプの指定に基づいて、フリップ操作(F)および符号反転操作(S)を実行するか、スキップするかを容易に制御することができる。したがって、逆変換装置150は、第1の変換タイプ乃至第4の変換タイプのそれぞれの逆1次元変換を、より容易に実現することができる。
By doing so, the inverse conversion device 150 easily controls whether to execute or skip the flip operation (F) and the sign inversion operation (S) based on the designation of the conversion type of the inverse one-dimensional conversion. can do. Therefore, the inverse conversion device 150 can more easily realize the inverse one-dimensional conversion of each of the first to fourth conversion types.
また、逆変換装置150は、指定された逆1次元変換の変換タイプに基づいて、第2の変換タイプの変換行列と第4の変換タイプの変換行列とのいずれをベース変換行列とするかを選択するベース変換行列選択部を備え、そのベース変換行列選択部により選択されたベース変換行列を用いて、行列演算を行うようにしてもよい。このようにすることにより、逆変換装置150は、逆1次元変換の変換タイプの指定に基づいて、使用するベース変換行列を容易に選択することができる。したがって、逆変換装置150は、第1の変換タイプ乃至第4の変換タイプのそれぞれの逆1次元変換を、より容易に実現することができる。
Further, the inverse transform device 150 determines which of the second transform type transform matrix and the fourth transform type transform matrix is the base transform matrix based on the designated inverse one-dimensional transform type. A base conversion matrix selection unit for selection may be provided, and a matrix operation may be performed using the base conversion matrix selected by the base conversion matrix selection unit. By doing so, the inverse transform device 150 can easily select the base transform matrix to be used based on the designation of the transform type of the inverse one-dimensional transform. Therefore, the inverse conversion device 150 can more easily realize the inverse one-dimensional conversion of each of the first to fourth conversion types.
<6.第3の実施の形態>
<ベース変換行列の導出>
第1の実施の形態および第2の実施の形態においては、ベース変換行列LUTに登録されている変換タイプDCT2の変換行列と、変換タイプDCT4の変換行列とのいずれかが選択されて行列演算に用いられるように説明したが、これに限らず、ベース変換行列を導出するようにしてもよい。 <6. Third Embodiment>
<Derivation of base transformation matrix>
In the first embodiment and the second embodiment, either the transform matrix of the transform type DCT2 registered in the base transform matrix LUT or the transform matrix of the transform type DCT4 is selected to perform the matrix operation. Although described as being used, the present invention is not limited to this, and a base transformation matrix may be derived.
<ベース変換行列の導出>
第1の実施の形態および第2の実施の形態においては、ベース変換行列LUTに登録されている変換タイプDCT2の変換行列と、変換タイプDCT4の変換行列とのいずれかが選択されて行列演算に用いられるように説明したが、これに限らず、ベース変換行列を導出するようにしてもよい。 <6. Third Embodiment>
<Derivation of base transformation matrix>
In the first embodiment and the second embodiment, either the transform matrix of the transform type DCT2 registered in the base transform matrix LUT or the transform matrix of the transform type DCT4 is selected to perform the matrix operation. Although described as being used, the present invention is not limited to this, and a base transformation matrix may be derived.
例えば、変換タイプDCT2の変換行列および変換タイプDCT4の変換行列は、それぞれ、それらよりも大きなサイズの変換タイプDCT2の変換行列から、所定の方法で行列要素をサンプリングする(抽出する)ことにより、導出することができる。したがって、この大きなサイズの変換タイプDCT2の変換行列を予め記憶しておけば、その変換行列から、行列演算に用いるベース変換行列(変換タイプDCT2の変換行列または変換タイプDCT4の変換行列)を導出することができる。
For example, the transform matrix of the transform type DCT2 and the transform matrix of the transform type DCT4 are derived by sampling (extracting) matrix elements by a predetermined method from the transform matrix of the transform type DCT2 having a larger size. can do. Therefore, if the transform matrix of this large size transform type DCT2 is stored in advance, a base transform matrix (transform matrix of transform type DCT2 or transform matrix of transform type DCT4) used for matrix operation is derived from the transform matrix. be able to.
例えば、変換ブロックの最大サイズ(例えば64)をmaxTbSとし、AMTが適用可能な変換ブロックの最大サイズ(例えば32)をmaxTbAMTとし、1次元変換(1D変換とも称する)のサイズnTbSがnTbS<=maxTbAMT<maxTbSであるとする。この場合、導出するベース変換行列のサイズは(nTbS)×(nTbS)であり、(maxTbS)×(maxTbS)の変換タイプDCT2の変換行列を予め記憶する(用意する)ようにすればよい。
For example, the maximum size of a transform block (for example, 64) is maxTbS, the maximum size of a transform block to which AMT can be applied (for example, 32) is maxTbAMT, and the size nTbS of one-dimensional transform (also referred to as 1D transform) is nTbS <= maxTbAMT. It is assumed that <maxTbS. In this case, the size of the derived base transform matrix is (nTbS) × (nTbS), and the transform matrix of the transform type DCT2 of (maxTbS) × (maxTbS) may be stored (prepared) in advance.
このように用意した(maxTbS)×(maxTbS)の変換タイプDCT2の変換行列(導出元変換行列maxTbS-pt DCT2)を、所定のサンプリングパラメータに基づいてサンプリングすることにより、行列演算に用いるベース変換行列((nTbS)×(nTbS)の変換タイプDCT2または変換タイプDCT4の変換行列)を部分行列として導出することができる。
The base transformation matrix used for the matrix operation is obtained by sampling the transformation matrix of the transformation type DCT2 (derived transformation matrix maxTbS-pt DCT2) of (maxTbS) × (maxTbS) prepared in this manner based on a predetermined sampling parameter. ((NTbS) × (nTbS) transform type DCT2 or transform type DCT4 transform matrix) can be derived as a submatrix.
<サンプリングパラメータ>
ここでサンプリングパラメータについて説明する。サンプリングパラメータは、どのようなものであってもよい。例えば、サンプリングする行間隔を示すサンプリング間隔stepsizeと、サンプリングのオフセット(行位置)を示す行オフセットoffsetColと、サンプリングのオフセット(列位置)を示す列オフセットoffsetRowとを含むようにしてもよい。 <Sampling parameters>
Here, the sampling parameters will be described. The sampling parameters may be any. For example, a sampling interval stepsize indicating a sampling row interval, a row offset offsetCol indicating a sampling offset (row position), and a column offset offsetRow indicating a sampling offset (column position) may be included.
ここでサンプリングパラメータについて説明する。サンプリングパラメータは、どのようなものであってもよい。例えば、サンプリングする行間隔を示すサンプリング間隔stepsizeと、サンプリングのオフセット(行位置)を示す行オフセットoffsetColと、サンプリングのオフセット(列位置)を示す列オフセットoffsetRowとを含むようにしてもよい。 <Sampling parameters>
Here, the sampling parameters will be described. The sampling parameters may be any. For example, a sampling interval stepsize indicating a sampling row interval, a row offset offsetCol indicating a sampling offset (row position), and a column offset offsetRow indicating a sampling offset (column position) may be included.
このサンプリング間隔stepsizeは、何行おきにサンプリングするかを示すパラメータである。また、行オフセットoffsetColは、サンプリングを開始する最初の行の位置(何行目にするか)を表すパラメータである。また、列オフセットoffsetRowは、サンプリングを開始する最初の列の位置(何列目にするか)を表すパラメータである。なお、本明細書において、変換行列の行番号および列番号は、「0」(つまり、0行、0列)から開始される。
The sampling interval stepsize is a parameter indicating how many lines are sampled. The row offset offsetCol is a parameter indicating the position of the first row at which sampling is started (the row number). The column offset offsetRow is a parameter that indicates the position of the first column from which sampling is started (the number of the column). In this specification, the row numbers and column numbers of the transformation matrix start from “0” (that is, 0 rows and 0 columns).
<変換タイプ毎の導出例>
サンプリングの方法(すなわち、サンプリングパラメータの値)は、図12に示される表のように、導出する変換行列の変換タイプによって決まる。例えば、図12に示される表の下から2番目の行のように、用意した導出元変換行列maxTbS-pt DCT2から、変換タイプtrTypeがDCT2のベース変換行列nTbS-pt DCT2を導出する場合、サンプリング間隔stepsizeは「1 << (Log2(maxTbS)-Log2(nTbS))」に、行オフセットoffsetColは「0」に、列オフセットoffsetRowは「0(低次)」に、それぞれ設定すればよい。このようにすることにより、ベース変換行列maxTbS-pt DCT2から、変換行列nTbS-pt DCT2を導出することができる。 <Example of derivation for each conversion type>
The sampling method (that is, the value of the sampling parameter) is determined by the conversion type of the derived conversion matrix as shown in the table shown in FIG. For example, as shown in the second row from the bottom of the table shown in FIG. 12, when the base conversion matrix nTbS-pt DCT2 whose conversion type trType is DCT2 is derived from the prepared derivation source conversion matrix maxTbS-pt DCT2, sampling is performed. The interval stepsize may be set to “1 << (Log2 (maxTbS) −Log2 (nTbS))”, the row offset offsetCol may be set to “0”, and the column offsetoffsetRow may be set to “0 (low order)”. By doing so, a transformation matrix nTbS-pt DCT2 can be derived from the base transformation matrix maxTbS-pt DCT2.
サンプリングの方法(すなわち、サンプリングパラメータの値)は、図12に示される表のように、導出する変換行列の変換タイプによって決まる。例えば、図12に示される表の下から2番目の行のように、用意した導出元変換行列maxTbS-pt DCT2から、変換タイプtrTypeがDCT2のベース変換行列nTbS-pt DCT2を導出する場合、サンプリング間隔stepsizeは「1 << (Log2(maxTbS)-Log2(nTbS))」に、行オフセットoffsetColは「0」に、列オフセットoffsetRowは「0(低次)」に、それぞれ設定すればよい。このようにすることにより、ベース変換行列maxTbS-pt DCT2から、変換行列nTbS-pt DCT2を導出することができる。 <Example of derivation for each conversion type>
The sampling method (that is, the value of the sampling parameter) is determined by the conversion type of the derived conversion matrix as shown in the table shown in FIG. For example, as shown in the second row from the bottom of the table shown in FIG. 12, when the base conversion matrix nTbS-pt DCT2 whose conversion type trType is DCT2 is derived from the prepared derivation source conversion matrix maxTbS-pt DCT2, sampling is performed. The interval stepsize may be set to “1 << (Log2 (maxTbS) −Log2 (nTbS))”, the row offset offsetCol may be set to “0”, and the column offsetoffsetRow may be set to “0 (low order)”. By doing so, a transformation matrix nTbS-pt DCT2 can be derived from the base transformation matrix maxTbS-pt DCT2.
また、例えば、図12に示される表の下から1番目の行のように、用意した導出元変換行列maxTbS-pt DCT2から、変換タイプtrTypeがDCT4のベース変換行列nTbS-pt DCT4を導出する場合、サンプリング間隔stepsizeは「1 << (Log2(maxTbS)-Log2(nTbS))」に、行オフセットoffsetColは「stepsize >> 1(つまり、stepsizeの2分の1)」に、列オフセットoffsetRowは「0(低次)」に、それぞれ設定すればよい。このようにすることにより、ベース変換行列maxTbS-pt DCT2から、変換行列nTbS-pt DCT4を導出することができる。
Further, for example, as shown in the first row from the bottom of the table shown in FIG. 12, when a base transformation matrix nTbS-pt DCT4 whose transformation type trType is DCT4 is derived from the prepared derivation source transformation matrix maxTbS-pt DCT2. , The sampling interval stepsize is “1 <<<< (Log2 (maxTbS) −Log2 (nTbS))”, the row offset offsetCol is “stepsize >> 1 (that is, one half of the stepsize)”, and the column offset offsetRow is “ 0 (low order) ". By doing so, a transformation matrix nTbS-pt DCT4 can be derived from the base transformation matrix maxTbS-pt DCT2.
<各導出方法の詳細>
<変換タイプDCT2の場合>
次に、各変換タイプの変換行列の導出方法について、より具体的に説明する。まず変換タイプtrTypeがDCT2のベース変換行列nTbS-pt DCT2の導出方法について説明する。図13のAに示されるように、用意した導出元変換行列maxTbS-pt DCT2のサイズを16×16とする。 <Details of each derivation method>
<For conversion type DCT2>
Next, a method for deriving a transformation matrix of each transformation type will be described more specifically. First, a method of deriving a base transform matrix nTbS-pt DCT2 with a transform type trType of DCT2 will be described. As shown in FIG. 13A, the size of the prepared derivation source transformation matrix maxTbS-pt DCT2 is set to 16 × 16.
<変換タイプDCT2の場合>
次に、各変換タイプの変換行列の導出方法について、より具体的に説明する。まず変換タイプtrTypeがDCT2のベース変換行列nTbS-pt DCT2の導出方法について説明する。図13のAに示されるように、用意した導出元変換行列maxTbS-pt DCT2のサイズを16×16とする。 <Details of each derivation method>
<For conversion type DCT2>
Next, a method for deriving a transformation matrix of each transformation type will be described more specifically. First, a method of deriving a base transform matrix nTbS-pt DCT2 with a transform type trType of DCT2 will be described. As shown in FIG. 13A, the size of the prepared derivation source transformation matrix maxTbS-pt DCT2 is set to 16 × 16.
この場合、図13のAに示される導出元変換行列maxTbS-pt DCT2のグレーの部分の行列要素をサンプリングすることにより、図13のBに示されるような変換タイプDCT2、サイズ8×8の変換行列(8-pt DCT2)が得られる。また、図13のAに示される導出元変換行列maxTbS-pt DCT2の太線枠で囲まれた行列要素をサンプリングすることにより、図13のCに示されるような変換タイプDCT2、サイズ4×4の変換行列(4-pt DCT2)が得られる。
In this case, by sampling the matrix elements of the gray portion of the derivation source transformation matrix maxTbS-pt2DCT2 shown in FIG. 13A, the conversion type DCT2 as shown in FIG. The matrix (8-pt DCT2) is obtained. Further, by sampling the matrix elements surrounded by the thick line frame of the derivation source transformation matrix maxTbS-pt2DCT2 shown in FIG. 13A, a transform type DCT2 of size 4 × 4 as shown in FIG. A transformation matrix (4-pt DCT2) is obtained.
このように、DCT2の変換行列の導出方法の場合、サンプリング間隔stepsizeは、8×8の場合2行おきとなり(2行毎に1行がサンプリングされる)、4×4の場合4行おきとなる(4行毎に1行がサンプリングされる)。つまり、サンプリング間隔stepsizeは、変換ブロックの最大サイズmaxTbSの2を底とする対数値と、導出対象の変換行列のサイズnTbSの2を底とする対数値との差分でべき乗した値である。なお、行オフセットoffsetColと列オフセットoffsetRowは、どちらの場合も「0」である。
Thus, in the case of the method of deriving the transform matrix of DCT2, the sampling interval stepsize is every two rows in the case of 8 × 8 (one row is sampled every two rows) and every four rows in the case of 4 × 4. (One row is sampled every four rows). That is, the sampling interval stepsize is a value raised to the power of the difference between the logarithmic value whose base is 2 of the maximum size maxTbS of the transform block and the logarithmic value whose base is 2 of the size nTbS of the transformation matrix to be derived. Note that the row offset offsetCol and the column offset offsetRow are both “0” in both cases.
つまり、図13のDの式(X1)により表されるような導出処理により、変換行列nTbS-pt DCT2を導出することができる。以下にもこの式(X1)を示す。
That is, the transformation matrix nTbS-pt DCT2 can be derived by the derivation processing represented by the equation (X1) of D in FIG. The formula (X1) is also shown below.
transMatrixDCT2,nTbS[j][i]
= transMatrixDCT2,maxTbS[j * stepsize + offsetCol][i + offsetRow]
= transMatrixDCT2,maxTbS[j * stepsize][i]
・・・(X1)
ただし、
stepsize = 1 << (log2(maxTbS) - log2(nTbS))
offsetCol = 0
offsetRow = 0 transMatrix DCT2 , nTbS [j] [i]
= transMatrix DCT2 , maxTbS [j * stepsize + offsetCol] [i + offsetRow]
= transMatrix DCT2 , maxTbS [j * stepsize] [i]
... (X1)
However,
stepsize = 1 << (log2 (maxTbS)-log2 (nTbS))
offsetCol = 0
offsetRow = 0
= transMatrixDCT2,maxTbS[j * stepsize + offsetCol][i + offsetRow]
= transMatrixDCT2,maxTbS[j * stepsize][i]
・・・(X1)
ただし、
stepsize = 1 << (log2(maxTbS) - log2(nTbS))
offsetCol = 0
offsetRow = 0 transMatrix DCT2 , nTbS [j] [i]
= transMatrix DCT2 , maxTbS [j * stepsize + offsetCol] [i + offsetRow]
= transMatrix DCT2 , maxTbS [j * stepsize] [i]
... (X1)
However,
stepsize = 1 << (log2 (maxTbS)-log2 (nTbS))
offsetCol = 0
offsetRow = 0
すなわち、(nTbS)x(nTbS)のDCT2変換行列の第j行第i列の要素は、(maxTbS)x(maxTbS)のDCT2変換行列の第(j * stepsize)行第i列の要素である。換言するに、(maxTbS)x(maxTbS)のDCT2変換行列を、サンプリング間隔stepsize = (1 << (log2(maxTbS) - log2(nTbS)))、行オフセットoffsetCol = 0、列オフセットoffsetRow = 0でサンプリングして得られる部分行列は、(nTbS)x(nTbS)のDCT2変換行列である。
That is, the element of the j-th row and the ith column of the DCT2 transformation matrix of (nTbS) x (nTbS) is the element of the (j * stepsize) row and the ith column of the DCT2 transformation matrix of (maxTbS) x (maxTbS). . In other words, the DCT2 transformation matrix of (maxTbS) x (maxTbS) is calculated at a sampling interval stepsize = (1 << (log2 (maxTbS)-log2 (nTbS))), row offset offsetCol = 0, column offset offsetRow = 0. The submatrix obtained by sampling is a DCT2 transform matrix of (nTbS) × (nTbS).
このように導出処理を行うことにより、ベース変換行列maxTbS-pt DCT2から、変換行列nTbS-pt DCT2を導出することができる。
に よ り By performing the derivation process in this manner, a transformation matrix nTbS-pt DCT2 can be derived from the base transformation matrix maxTbS-pt DCT2.
<変換タイプDCT4の場合>
次に、変換タイプtrTypeがDCT4のベース変換行列nTbS-pt DCT4の導出方法について説明する。図14のAに示されるように、用意した導出元変換行列maxTbS-pt DCT2のサイズを16×16とする。 <For conversion type DCT4>
Next, a method for deriving the base transform matrix nTbS-pt DCT4 whose transform type trType is DCT4 will be described. As shown in FIG. 14A, the size of the prepared derivation source transformation matrix maxTbS-pt DCT2 is set to 16 × 16.
次に、変換タイプtrTypeがDCT4のベース変換行列nTbS-pt DCT4の導出方法について説明する。図14のAに示されるように、用意した導出元変換行列maxTbS-pt DCT2のサイズを16×16とする。 <For conversion type DCT4>
Next, a method for deriving the base transform matrix nTbS-pt DCT4 whose transform type trType is DCT4 will be described. As shown in FIG. 14A, the size of the prepared derivation source transformation matrix maxTbS-pt DCT2 is set to 16 × 16.
この場合、図14のAに示される導出元変換行列maxTbS-pt DCT2のグレーの部分の行列要素をサンプリングすることにより、図14のBに示されるような変換タイプDCT4、サイズ8×8の変換行列(8-pt DCT4)が得られる。また、図14のAに示される導出元変換行列maxTbS-pt DCT2の太線枠で囲まれた行列要素をサンプリングすることにより、図14のCに示されるような変換タイプDCT4、サイズ4×4の変換行列(4-pt DCT4)が得られる。
In this case, by sampling the matrix elements of the gray portion of the derivation source transformation matrix maxTbS-pt2DCT2 shown in FIG. 14A, the conversion type DCT4 as shown in FIG. A matrix (8-pt DCT4) is obtained. Further, by sampling the matrix elements enclosed by the thick line frame of the derived transformation matrix maxTbS-pt DCT2 shown in FIG. 14A, the transformation type DCT4 as shown in FIG. A transformation matrix (4-pt DCT4) is obtained.
このように、DCT4の変換行列の導出方法の場合、サンプリング間隔stepsizeは、8×8の場合2行おきとなり(2行毎に1行がサンプリングされる)、4×4の場合4行おきとなる(4行毎に1行がサンプリングされる)。つまり、サンプリング間隔stepsizeは、変換ブロックの最大サイズmaxTbSの2を底とする対数値と、導出対象の変換行列のサイズnTbSの2を底とする対数値との差分でべき乗した値である。また、行オフセットoffsetColは、8×8の場合「1」(すなわち1行)となり、4×4の場合「2」(すなわち2行)となる。つまり、図中垂直方向については、8×8の場合2行目(行番号「1」の行)からサンプリングが開始され、4×4の場合3行目(行番号「2」の行)からサンプリングが開始される。つまり、行オフセットoffsetColは、サンプリング間隔stepsizeの2分の1となる。なお、列オフセットoffsetRowは、どちらの場合も「0」である。
As described above, in the case of the method of deriving the transform matrix of DCT4, the sampling interval stepsize is every two rows when 8 × 8 (one row is sampled every two rows), and every four rows when 4 × 4. (One row is sampled every four rows). That is, the sampling interval stepsize is a value raised to the power of the difference between the logarithmic value whose base is 2 of the maximum size maxTbS of the transform block and the logarithmic value whose base is 2 of the size nTbS of the transformation matrix to be derived. The row offset offsetCol is “1” (ie, one row) in the case of 8 × 8, and “2” (ie, two rows) in the case of 4 × 4. That is, in the vertical direction in the figure, sampling is started from the second row (row of row number “1”) in the case of 8 × 8, and from the third row (row of row number “2”) in the case of 4 × 4. Sampling is started. That is, the row offset offsetCol is one half of the sampling interval stepsize. Note that the column offset offsetRow is “0” in both cases.
つまり、図14のDの式(X2)で表されるような導出処理により、変換行列nTbS-pt DCT4を導出することができる。以下にもこの式(X2)を示す。
That is, the transformation matrix nTbS-pt DCT4 can be derived by the derivation processing represented by the equation (X2) of D in FIG. The formula (X2) is also shown below.
transMatrixDCT4,nTbS[j][i]
= transMatrixDCT2,maxTbS[j * stepsize + offsetCol][i + offsetRow]
= transMatrixDCT2,maxTbS[j * stepsize + offsetCol][i]
・・・(X2)
ただし、
stepsize = 1 << (log2(maxTbS) - log2(nTbS))
offsetCol = stepsize >> 1
offsetRow = 0 transMatrix DCT4, nTbS [j] [i]
= transMatrix DCT2 , maxTbS [j * stepsize + offsetCol] [i + offsetRow]
= transMatrix DCT2 , maxTbS [j * stepsize + offsetCol] [i]
... (X2)
However,
stepsize = 1 << (log2 (maxTbS)-log2 (nTbS))
offsetCol = stepsize >> 1
offsetRow = 0
= transMatrixDCT2,maxTbS[j * stepsize + offsetCol][i + offsetRow]
= transMatrixDCT2,maxTbS[j * stepsize + offsetCol][i]
・・・(X2)
ただし、
stepsize = 1 << (log2(maxTbS) - log2(nTbS))
offsetCol = stepsize >> 1
offsetRow = 0 transMatrix DCT4, nTbS [j] [i]
= transMatrix DCT2 , maxTbS [j * stepsize + offsetCol] [i + offsetRow]
= transMatrix DCT2 , maxTbS [j * stepsize + offsetCol] [i]
... (X2)
However,
stepsize = 1 << (log2 (maxTbS)-log2 (nTbS))
offsetCol = stepsize >> 1
offsetRow = 0
すなわち、(nTbS)x(nTbS)のDCT4変換行列の第j行第i列の要素は、(maxTbS)x(maxTbS)のDCT2変換行列の第(j * stepsize + offsetCol)行第i列の要素である。換言するに、(maxTbS)x(maxTbS)のDCT2変換行列を、サンプリング間隔stepsize = (1 << (log2(maxTbS) - log2(nTbS)))、行オフセットoffsetCol = (stepsize >> 1)、列オフセットoffsetRow = 0でサンプリングして得られる部分行列は、(nTbS)x(nTbS)のDCT4変換行列である。
That is, the element of the j-th row and the ith column of the DCT4 transform matrix of (nTbS) x (nTbS) is the element of the (j * stepsize + offsetCol) row i-th column of the DCT2 transform matrix of (maxTbS) x (maxTbS). It is. In other words, the DCT2 transformation matrix of (maxTbS) x (maxTbS), sampling interval stepsize = (1 << (log2 (maxTbS)-log2 (nTbS))), row offset offsetCol = (stepsize >> 1), column The submatrix obtained by sampling at offset offsetRow = 0 is a DCT4 transform matrix of (nTbS) × (nTbS).
このように導出処理を行うことにより、ベース変換行列maxTbS-pt DCT2から、変換行列nTbS-pt DCT4を導出することができる。
に よ り By performing the derivation processing in this way, a transformation matrix nTbS-pt DCT4 can be derived from the base transformation matrix maxTbS-pt DCT2.
<変換装置>
次に、このようにベース変換行列を導出する場合の変換装置100について説明する。図15は、この場合の変換装置100の主な構成例を示すブロック図である。図15に示されるように、この場合も変換装置100は、第1の実施の形態の場合(図6)と基本的に同様の構成を有する。ただし、この場合、行列演算部103は、ベース変換行列導出部220を有する。 <Conversion device>
Next, a description will be given of theconversion apparatus 100 when the base conversion matrix is derived in this manner. FIG. 15 is a block diagram illustrating a main configuration example of the conversion device 100 in this case. As shown in FIG. 15, also in this case, the conversion device 100 has basically the same configuration as in the case of the first embodiment (FIG. 6). However, in this case, the matrix calculation unit 103 includes the base transformation matrix derivation unit 220.
次に、このようにベース変換行列を導出する場合の変換装置100について説明する。図15は、この場合の変換装置100の主な構成例を示すブロック図である。図15に示されるように、この場合も変換装置100は、第1の実施の形態の場合(図6)と基本的に同様の構成を有する。ただし、この場合、行列演算部103は、ベース変換行列導出部220を有する。 <Conversion device>
Next, a description will be given of the
ベース変換行列導出部220は、ベース変換行列の導出に関する処理を行う。例えば、ベース変換行列導出部220は、制御部101から供給されるベース変換行列選択情報により指定される変換行列(行列演算に用いられるベース変換行列)を、予め用意された変換行列(導出元変換行列)をサンプリングすることにより導出する。行列演算部103は、ベース変換行列導出部220により導出されたベース変換行列を用いて、例えば上述した式(19)のような、係数データX'に対する行列演算を行う。
The base conversion matrix deriving unit 220 performs processing related to derivation of the base conversion matrix. For example, the base conversion matrix deriving unit 220 converts a conversion matrix (base conversion matrix used for matrix calculation) specified by the base conversion matrix selection information supplied from the control unit 101 into a conversion matrix prepared in advance (derivation source conversion). Matrix). The matrix operation unit 103 performs a matrix operation on the coefficient data X ′, for example, as described in the above equation (19), using the base transformation matrix derived by the base transformation matrix deriving unit 220.
つまり、ベース変換行列導出部220は、指定された逆1次元変換の変換タイプに基づいて、ベース変換行列を導出する。行列演算部103は、そのベース変換行列導出部220により導出されたベース変換行列を用いて、行列演算を行う。
That is, the base transformation matrix deriving unit 220 derives a base transformation matrix based on the designated transformation type of the inverse one-dimensional transformation. The matrix calculation unit 103 performs a matrix calculation using the base conversion matrix derived by the base conversion matrix derivation unit 220.
例えば、ベース変換行列導出部220は、導出するベース変換行列以上のサイズの第2の変換タイプ(例えばDCT2)の導出元変換行列を用いて、そのベース変換行列を導出する。
{For example, the base transform matrix deriving unit 220 derives the base transform matrix by using a source transform matrix of a second transform type (for example, DCT2) having a size equal to or larger than the derived base transform matrix.
例えば、ベース変換行列導出部220は、その導出するベース変換行列以上のサイズの第2の変換タイプ(例えばDCT2)の導出元変換行列をサンプリングすることにより、第2の変換タイプ(例えばDCT2)または第4の変換タイプ(例えばDCT4)のベース変換行列を導出する。
For example, the base transform matrix deriving unit 220 samples the second transform type (for example, DCT2) or the second transform type (for example, DCT2) by sampling the derived transform matrix of the second transform type (for example, DCT2) having a size equal to or larger than the derived base transform matrix. A base transform matrix of a fourth transform type (for example, DCT4) is derived.
なお、ベース変換行列導出部220は、任意の構成を有する。例えば、ベース変換行列導出部220が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、ベース変換行列導出部220が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、ベース変換行列導出部220が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。
ベ ー ス The base transformation matrix deriving unit 220 has an arbitrary configuration. For example, the base conversion matrix deriving unit 220 may be configured by a logic circuit that implements the above-described processing. Further, the base conversion matrix deriving unit 220 may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing. Of course, the base conversion matrix deriving unit 220 may have both of the configurations, and a part of the above-described processing may be realized by a logic circuit, and the other may be realized by executing a program.
<ベース変換行列導出部>
図16は、図15のベース変換行列導出部220の主な構成例を示すブロック図である。図16に示されるように、ベース変換行列導出部220は、サンプリング部231および導出元変換行列LUT232を有する。 <Base transformation matrix derivation unit>
FIG. 16 is a block diagram illustrating a main configuration example of the base transformmatrix deriving unit 220 in FIG. As shown in FIG. 16, the base transformation matrix derivation unit 220 includes a sampling unit 231 and a derivation source transformation matrix LUT232.
図16は、図15のベース変換行列導出部220の主な構成例を示すブロック図である。図16に示されるように、ベース変換行列導出部220は、サンプリング部231および導出元変換行列LUT232を有する。 <Base transformation matrix derivation unit>
FIG. 16 is a block diagram illustrating a main configuration example of the base transform
サンプリング部231は、サンプリングに関する処理を行う。例えば、サンプリング部231は、ベース変換行列選択情報に応じてサンプリングパラメータを設定し、そのサンプリングパラメータに応じた方法で、導出元変換行列maxTbS-pt DCT2から変換タイプtrTypeサイズ(nTbS)×(nTbS)のベース変換行列Tbaseを導出し、それを行列演算部103に供給する。また、サンプリング部231は、サンプリングパラメータ導出部241および部分行列抽出部242を有する。
The sampling unit 231 performs a process related to sampling. For example, the sampling unit 231 sets a sampling parameter in accordance with the base transformation matrix selection information, and converts the conversion type trType size (nTbS) × (nTbS) from the derivation source transformation matrix maxTbS-pt DCT2 by a method according to the sampling parameter. And derives a base conversion matrix T base of The sampling unit 231 has a sampling parameter derivation unit 241 and a partial matrix extraction unit 242.
サンプリングパラメータ導出部241は、サンプリングパラメータの導出に関する処理を行う。例えば、サンプリングパラメータ導出部241は、ベース変換行列選択情報を取得する。ベース変換行列選択情報は、行列演算に使用するベース変換行列を指定する情報である。つまり、ベース変換行列選択情報により、変換タイプtrType、変換ブロックの最大サイズmaxTbS、導出対象のベース変換行列のサイズnTbS等が指定される。サンプリングパラメータ導出部241は、このようなベース変換行列選択情報により指定されるこれらの情報に基づいて、サンプリング間隔stepsize、行オフセットoffsetCol、列オフセットoffsetRow等のサンプリングパラメータを設定する。例えば、サンプリングパラメータ導出部241は、図12の表を参照して説明したように、サンプリングパラメータを設定する。サンプリングパラメータ導出部241は、導出したサンプリングパラメータを部分行列抽出部242に供給する。
The sampling parameter deriving unit 241 performs a process related to deriving a sampling parameter. For example, the sampling parameter deriving unit 241 acquires base transformation matrix selection information. The base transformation matrix selection information is information for specifying a base transformation matrix used for matrix operation. That is, the conversion type trType, the maximum size maxTbS of the conversion block, the size nTbS of the derivation target base conversion matrix, and the like are specified by the base conversion matrix selection information. The sampling parameter deriving unit 241 sets sampling parameters such as a sampling interval stepsize, a row offset offsetCol, and a column offset offsetRow based on such information specified by such base transformation matrix selection information. For example, the sampling parameter deriving unit 241 sets the sampling parameters as described with reference to the table in FIG. The sampling parameter derivation unit 241 supplies the derived sampling parameters to the partial matrix extraction unit 242.
部分行列抽出部242は、部分行列の抽出に関する処理を行う。例えば、部分行列抽出部242は、サンプリングパラメータ導出部241により導出されたサンプリングパラメータを取得する。また、部分行列抽出部242は、導出元変換行列LUT232に登録されている導出元変換行列(maxTbS-pt DCT2)251を取得する。そして、部分行列抽出部242は、そのサンプリングパラメータに応じた方法で、導出元変換行列(maxTbS-pt DCT2)251をサンプリングする。部分行列抽出部242は、このサンプリングにより、ベース変換行列選択情報により指定される変換タイプtrType、サイズ(nTbS)×(nTbS)の部分行列を得る。部分行列抽出部242は、その部分行列を、ベース変換行列Tbaseとして行列演算部103に供給する。
The sub-matrix extraction unit 242 performs a process related to the extraction of the sub-matrix. For example, the sub-matrix extraction unit 242 acquires the sampling parameters derived by the sampling parameter derivation unit 241. In addition, the sub-matrix extraction unit 242 acquires the source transformation matrix (maxTbS-pt DCT2) 251 registered in the source transformation matrix LUT232. Then, the sub-matrix extraction unit 242 samples the derived transformation matrix (maxTbS-pt DCT2) 251 by a method according to the sampling parameter. By this sampling, the sub-matrix extraction unit 242 obtains a sub-matrix of the conversion type trType and size (nTbS) × (nTbS) specified by the base conversion matrix selection information. The sub-matrix extraction unit 242 supplies the sub-matrix as the base conversion matrix T base to the matrix calculation unit 103.
導出元変換行列LUT232には、変換タイプDCT2、サイズ(maxTbS)×(maxTbS)の導出元変換行列(maxTbS-pt DCT2)251が登録されている(記憶されている)。導出元変換行列LUT232は、部分行列抽出部242の要求に応じて、その導出元変換行列(maxTbS-pt DCT2)251を部分行列抽出部242に供給する。
The derivation source transformation matrix LUT 232 registers (stores) a derivation source transformation matrix (maxTbS-pt25DCT2) 251 having a conversion type DCT2 and a size (maxTbS) × (maxTbS). The source transform matrix LUT 232 supplies the source transform matrix (maxTbS-ptmaxDCT2) 251 to the sub-matrix extractor 242 in response to a request from the sub-matrix extractor 242.
サンプリング部231は、任意の構成を有する。例えば、サンプリング部231が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、サンプリング部231が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、サンプリング部231が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。
The sampling unit 231 has an optional configuration. For example, the sampling unit 231 may be configured by a logic circuit that implements the above processing. Further, the sampling unit 231 may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program using the CPU, the ROM, the RAM, and the like to realize the above-described processing. Needless to say, the sampling unit 231 may have both configurations, and a part of the above processing may be realized by a logic circuit, and the other may be realized by executing a program.
導出元変換行列LUT232は、RAM等により形成される記憶領域を有し、そこに導出元変換行列(maxTbS-pt DCT2)251を記憶する。
The source transformation matrix LUT 232 has a storage area formed by a RAM or the like, and stores the source transformation matrix (maxTbS-pt DCT2) 251 therein.
サンプリングパラメータ導出部241は、任意の構成を有する。例えば、サンプリングパラメータ導出部241が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、サンプリングパラメータ導出部241が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、サンプリングパラメータ導出部241が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。
The sampling parameter deriving unit 241 has an arbitrary configuration. For example, the sampling parameter deriving unit 241 may be configured by a logic circuit that implements the above-described processing. In addition, the sampling parameter deriving unit 241 may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing. Of course, the sampling parameter deriving unit 241 may have both of the configurations, and a part of the above-described processing may be realized by a logic circuit, and the other may be realized by executing a program.
部分行列抽出部242は、任意の構成を有する。例えば、部分行列抽出部242が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、部分行列抽出部242が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、部分行列抽出部242が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。
The sub-matrix extraction unit 242 has an arbitrary configuration. For example, the sub-matrix extraction unit 242 may be configured by a logic circuit that implements the above-described processing. In addition, the sub-matrix extracting unit 242 may include, for example, a CPU, a ROM, a RAM, and the like, and execute the program using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing. Of course, the sub-matrix extraction unit 242 may have both of the configurations, and a part of the above-described processing may be realized by a logic circuit, and the other may be realized by executing a program.
このような構成とすることにより、ベース変換行列導出部220は、ベース変換行列選択情報により指定されるベース変換行列を導出することができる。つまり、導出元変換行列LUT232に1つの導出元変換行列(maxTbS-pt DCT2)251を記憶すればよいので、このLUTのサイズの増大を抑制する(LUTのサイズを削減する)ことができる。また、(maxTbS)×(maxTbS)の変換行列の行列演算と、変換タイプtrTypeの(nTbS)×(nTbS)の変換行列の行列演算とを共有することができる。つまり、行列演算部103は、各変換タイプtrTypeのベース変換行列を用いた行列演算を、同一の演算回路を用いて行うことができる。したがって、回路規模の増大を抑制する(回路規模を削減する)ことができる。
With such a configuration, the base transformation matrix deriving unit 220 can derive the base transformation matrix specified by the base transformation matrix selection information. In other words, since one derived source transformation matrix (maxTbS-pt DCT2) 251 may be stored in the derived transformation matrix LUT 232, it is possible to suppress an increase in the size of the LUT (reduce the size of the LUT). Further, the matrix operation of the (maxTbS) × (maxTbS) conversion matrix and the matrix operation of the (nTbS) × (nTbS) conversion matrix of the conversion type trType can be shared. That is, the matrix calculation unit 103 can perform a matrix calculation using the base conversion matrix of each conversion type trType using the same calculation circuit. Therefore, it is possible to suppress an increase in the circuit scale (reduce the circuit scale).
<変換処理の流れ>
次に、この場合の変換処理の流れの例を、図17のフローチャートを参照して説明する。 <Conversion process flow>
Next, an example of the flow of the conversion process in this case will be described with reference to the flowchart in FIG.
次に、この場合の変換処理の流れの例を、図17のフローチャートを参照して説明する。 <Conversion process flow>
Next, an example of the flow of the conversion process in this case will be described with reference to the flowchart in FIG.
変換処理が開始されると、制御部101(符号反転フラグ設定部111、ベース変換行列選択部112、およびフリップフラグ設定部113)は、ステップS201において、変換装置100の外部から供給される変換タイプtrTypeIdxや、サイズ(log2TBWidth, log2TBHeight)に基づいて、ベース変換行列選択情報、符号反転フラグ(signChangeFlag)、およびフリップフラグ(flipFlag)を上述のように設定する。
When the conversion process is started, the control unit 101 (the sign inversion flag setting unit 111, the base conversion matrix selection unit 112, and the flip flag setting unit 113) determines in step S201 that the conversion type supplied from outside the conversion device 100 Based on trTypeIdx and size (log2TBWidth, log2TBHeight), base conversion matrix selection information, sign inversion flag (signChangeFlag), and flip flag (flipFlag) are set as described above.
ステップS202において、符号反転部102は、ステップS201において設定された符号反転フラグに基づいて、符号反転操作を行うか否かを判定する(signChangeFlag == True ?)。符号反転フラグの値が真(True)であり、符号反転操作を行うと判定された場合、処理はステップS203に進む。
{At step S202, the sign inversion unit 102 determines whether or not to perform a sign inversion operation based on the sign inversion flag set at step S201 (signChangeFlag == True?). If the value of the sign inversion flag is true and it is determined that the sign inversion operation is to be performed, the process proceeds to step S203.
ステップS203において、符号反転部102は、例えば上述した式(18)のように、1次元信号列である入力係数データXinに対して符号反転操作(S)を行い、1次元信号列である係数データX'を生成する。
In step S203, the sign inversion unit 102 performs a sign inversion operation (S) on the input coefficient data Xin, which is a one-dimensional signal sequence, as in Equation (18) described above, for example, Generate data X '.
ステップS203の処理が終了すると処理はステップS204に進む。また、ステップS202において、符号反転フラグの値が偽(False)であり、符号反転操作を行わないと判定された場合、ステップS203の処理はスキップされ、入力係数データXinがそのまま係数データX'とされ、処理はステップS204に進む。
す る と When the process in step S203 is completed, the process proceeds to step S204. Further, in step S202, when it is determined that the value of the sign inversion flag is false (False) and the sign inversion operation is not performed, the process of step S203 is skipped, and the input coefficient data Xin is directly used as the coefficient data X ′. Then, the process proceeds to step S204.
ステップS204において、ベース変換行列導出部220は、ベース変換行列導出処理を実行し、ステップS201において設定されたベース変換行列選択情報に基づいて、ベース変換行列Tbaseを導出する。
In step S204, the base transformation matrix deriving unit 220 performs a base transformation matrix deriving process, and derives a base transformation matrix T base based on the base transformation matrix selection information set in step S201.
ステップS205において、行列演算部103は、例えば上述した式(19)のように、ステップS204において導出されたベース変換行列Tbaseを用いて1次元信号列である係数データX'に対する行列演算(1次元変換)を行い、1次元信号列である係数データX''を生成する。
In step S205, the matrix operation unit 103 uses the base transformation matrix T base derived in step S204 to perform a matrix operation (1) on the coefficient data X ′ that is a one-dimensional signal sequence, for example, as in Expression (19) described above. Dimensional conversion) to generate coefficient data X ″ that is a one-dimensional signal sequence.
ステップS206において、フリップ部104は、ステップS201において設定されたフリップフラグに基づいて、フリップ操作を行うか否かを判定する(FlipFlag == True ?)。フリップフラグの値が真(True)であり、フリップ操作を行うと判定された場合、処理はステップS207に進む。
In step S206, the flip unit 104 determines whether to perform a flip operation based on the flip flag set in step S201 (FlipFlagF == True?). If the value of the flip flag is true and it is determined that a flip operation is to be performed, the process proceeds to step S207.
ステップS207において、フリップ部104は、例えば上述した式(20)のように、ステップS205において得られた1次元信号列である係数データX''に対してフリップ操作(F)を行い、1次元信号列である出力係数データXoutを生成する。
In step S207, the flip unit 104 performs a flip operation (F) on the coefficient data X ″ that is the one-dimensional signal sequence obtained in step S205, for example, as in Expression (20) described above, and performs one-dimensional Generate output coefficient data Xout as a signal sequence.
フリップ部104は、生成した出力係数データXoutを変換装置100の外部に出力する。ステップS207の処理が終了すると変換処理が終了する。また、ステップS206において、フリップフラグの値が偽(False)であり、フリップ操作を行わないと判定された場合、ステップS207の処理はスキップされ、係数データX''がそのまま出力係数データXoutとされ、変換装置100の外部に出力される。出力係数データXoutが出力されると変換処理が終了する。
The flip unit 104 outputs the generated output coefficient data Xout to the outside of the conversion device 100. When the processing in step S207 ends, the conversion processing ends. If it is determined in step S206 that the value of the flip flag is false (False) and the flip operation is not performed, the process of step S207 is skipped, and the coefficient data X ″ is directly used as the output coefficient data Xout. Are output to the outside of the conversion device 100. When the output coefficient data Xout is output, the conversion process ends.
<ベース変換行列導出処理の流れ>
次に、図17のステップS204において実行されるベース変換行列導出処理の流れの例を、図18のフローチャートを参照して説明する。 <Flow of base transformation matrix derivation process>
Next, an example of the flow of the base transformation matrix derivation process executed in step S204 of FIG. 17 will be described with reference to the flowchart of FIG.
次に、図17のステップS204において実行されるベース変換行列導出処理の流れの例を、図18のフローチャートを参照して説明する。 <Flow of base transformation matrix derivation process>
Next, an example of the flow of the base transformation matrix derivation process executed in step S204 of FIG. 17 will be described with reference to the flowchart of FIG.
ベース変換行列導出処理が開始されると、ベース変換行列導出部220のサンプリングパラメータ導出部241は、ステップS221において、ベース変換行列選択情報により指定される変換タイプtrTypeとブロックサイズ(nTbS)とに対応するサンプリングパラメータを導出する。
When the base conversion matrix derivation process is started, the sampling parameter derivation unit 241 of the base conversion matrix derivation unit 220 corresponds to the conversion type trType and the block size (nTbS) specified by the base conversion matrix selection information in step S221. The sampling parameters to be derived are derived.
ステップS222において、部分行列抽出部242は、導出元変換行列LUT232から導出元変換行列(maxTbS-pt DCT2)251を読み出す。
に お い て In step S222, the sub-matrix extraction unit 242 reads the derived transformation matrix (maxTbS-pt DCT2) 251 from the derived transformation matrix LUT232.
ステップS223において、部分行列抽出部242は、ステップS221において導出したサンプリングパラメータを用いて、ステップS222において読み出した導出元変換行列(maxTbS-pt DCT2)251から部分行列を抽出する。
In step S223, the sub-matrix extracting unit 242 extracts a sub-matrix from the derived transformation matrix (maxTbS-pt @ DCT2) 251 read in step S222 using the sampling parameters derived in step S221.
ステップS224において、部分行列抽出部242は、ステップS223において抽出した部分行列をベース変換行列として行列演算部103に供給する。
In step S224, the partial matrix extraction unit 242 supplies the partial matrix extracted in step S223 to the matrix calculation unit 103 as a base transformation matrix.
ステップS224の処理が終了すると、ベース変換行列導出処理が終了し、処理は図17に戻る。
す る と When the process of step S224 ends, the base transformation matrix derivation process ends, and the process returns to FIG.
以上のように各処理を実行することにより、ベース変換行列選択情報により指定されるベース変換行列を導出することができる。つまり、導出元変換行列LUT232に1つの導出元変換行列(maxTbS-pt DCT2)251を記憶すればよいので、このLUTのサイズの増大を抑制する(LUTのサイズを削減する)ことができる。また、(maxTbS)×(maxTbS)の変換行列の行列演算と、変換タイプtrTypeの(nTbS)×(nTbS)の変換行列の行列演算とを共有することができる。つまり、行列演算部103は、各変換タイプtrTypeのベース変換行列を用いた行列演算を、同一の演算回路を用いて行うことができる。したがって、回路規模の増大を抑制する(回路規模を削減する)ことができる。
各 By executing each process as described above, the base transformation matrix specified by the base transformation matrix selection information can be derived. In other words, since one derived source transformation matrix (maxTbS-pt DCT2) 251 may be stored in the derived transformation matrix LUT 232, it is possible to suppress an increase in the size of the LUT (reduce the size of the LUT). Further, the matrix operation of the (maxTbS) × (maxTbS) conversion matrix and the matrix operation of the (nTbS) × (nTbS) conversion matrix of the conversion type trType can be shared. That is, the matrix calculation unit 103 can perform a matrix calculation using the base conversion matrix of each conversion type trType using the same calculation circuit. Therefore, it is possible to suppress an increase in the circuit scale (reduce the circuit scale).
<7.第4の実施の形態>
<逆変換装置>
第3の実施の形態において説明したベース変換行列の導出は、第2の実施の形態において説明した逆1次元変換にも同様に適用することができる。 <7. Fourth Embodiment>
<Inverse conversion device>
The derivation of the base transform matrix described in the third embodiment can be similarly applied to the inverse one-dimensional transform described in the second embodiment.
<逆変換装置>
第3の実施の形態において説明したベース変換行列の導出は、第2の実施の形態において説明した逆1次元変換にも同様に適用することができる。 <7. Fourth Embodiment>
<Inverse conversion device>
The derivation of the base transform matrix described in the third embodiment can be similarly applied to the inverse one-dimensional transform described in the second embodiment.
図19は、この場合の逆変換装置150の主な構成例を示すブロック図である。図15に示されるように、この場合も逆変換装置150は、第2の実施の形態の場合(図9)と基本的に同様の構成を有する。ただし、この場合、行列演算部153は、ベース変換行列導出部270を有する。
FIG. 19 is a block diagram showing a main configuration example of the inverse conversion device 150 in this case. As shown in FIG. 15, also in this case, the inverse conversion device 150 has basically the same configuration as in the case of the second embodiment (FIG. 9). However, in this case, the matrix operation unit 153 includes the base transformation matrix derivation unit 270.
このベース変換行列導出部270は、第3の実施の形態において説明したベース変換行列導出部220と同様の構成を有し、同様の処理を行う。したがって、図16を参照して説明したベース変換行列導出部220の構成例は、このベース変換行列導出部270の説明にも適用することができる。
ベ ー ス The base transformation matrix deriving unit 270 has the same configuration as the base transformation matrix deriving unit 220 described in the third embodiment, and performs the same processing. Therefore, the configuration example of the base transform matrix deriving unit 220 described with reference to FIG. 16 can be applied to the description of the base transform matrix deriving unit 270.
つまり、ベース変換行列導出部270は、指定された逆1次元変換の変換タイプに基づいて、ベース変換行列を導出する。行列演算部153は、そのベース変換行列導出部270により導出されたベース変換行列を用いて、行列演算を行う。
That is, the base conversion matrix deriving unit 270 derives a base conversion matrix based on the specified inverse one-dimensional conversion conversion type. The matrix calculation unit 153 performs a matrix calculation using the base conversion matrix derived by the base conversion matrix derivation unit 270.
例えば、ベース変換行列導出部270は、導出するベース変換行列以上のサイズの第2の変換タイプ(例えばDCT2)の導出元変換行列を用いて、そのベース変換行列を導出する。
{For example, the base transformation matrix deriving unit 270 derives the base transformation matrix by using a derived transformation matrix of a second transformation type (for example, DCT2) having a size equal to or larger than the derived base transformation matrix.
例えば、ベース変換行列導出部270は、その導出するベース変換行列以上のサイズの第2の変換タイプ(例えばDCT2)の導出元変換行列をサンプリングすることにより、第2の変換タイプ(例えばDCT2)または第4の変換タイプ(例えばDCT4)のベース変換行列を導出する。
For example, the base transform matrix deriving unit 270 samples the second transform type (for example, DCT2) and the second transform type (for example, DCT2) by sampling the derived transform matrix of the second transform type (for example, DCT2) having a size equal to or larger than the derived base transform matrix. A base transform matrix of a fourth transform type (for example, DCT4) is derived.
このような構成とすることにより、ベース変換行列導出部270は、ベース変換行列選択情報により指定されるベース変換行列を導出することができる。つまり、導出元変換行列LUT232に1つの導出元変換行列(maxTbS-pt DCT2)251を記憶すればよいので、このLUTのサイズの増大を抑制する(LUTのサイズを削減する)ことができる。また、(maxTbS)×(maxTbS)の変換行列の行列演算と、変換タイプtrTypeの(nTbS)×(nTbS)の変換行列の行列演算とを共有することができる。つまり、行列演算部153は、各変換タイプtrTypeのベース変換行列を用いた行列演算を、同一の演算回路を用いて行うことができる。したがって、回路規模の増大を抑制する(回路規模を削減する)ことができる。
With such a configuration, the base transformation matrix deriving unit 270 can derive the base transformation matrix specified by the base transformation matrix selection information. In other words, since one derived source transformation matrix (maxTbS-pt DCT2) 251 may be stored in the derived transformation matrix LUT 232, it is possible to suppress an increase in the size of the LUT (reduce the size of the LUT). Further, the matrix operation of the (maxTbS) × (maxTbS) conversion matrix and the matrix operation of the (nTbS) × (nTbS) conversion matrix of the conversion type trType can be shared. That is, the matrix calculation unit 153 can perform a matrix calculation using the base conversion matrix of each conversion type trType using the same calculation circuit. Therefore, it is possible to suppress an increase in the circuit scale (reduce the circuit scale).
<逆変換処理の流れ>
次に、この場合の逆変換処理の流れの例を、図20のフローチャートを参照して説明する。 <Flow of inverse transformation process>
Next, an example of the flow of the inverse conversion process in this case will be described with reference to the flowchart in FIG.
次に、この場合の逆変換処理の流れの例を、図20のフローチャートを参照して説明する。 <Flow of inverse transformation process>
Next, an example of the flow of the inverse conversion process in this case will be described with reference to the flowchart in FIG.
逆変換処理が開始されると、制御部151(フリップフラグ設定部161、ベース変換行列選択部162、および符号反転フラグ設定部163)は、ステップS251において、変換タイプtrTypeIdxや、サイズ(log2TBWidth, log2TBHeight)に基づいて、ベース変換行列選択情報、フリップフラグ(flipFlag)、および符号反転フラグ(signChangeFlag)を上述のように設定する。
When the inverse conversion process is started, the control unit 151 (the flip flag setting unit 161, the base conversion matrix selecting unit 162, and the sign inversion flag setting unit 163) in step S251 performs the conversion type trTypeIdx and the size (log2TBWidth, log2TBHeight). ), The base conversion matrix selection information, the flip flag (flipFlag), and the sign inversion flag (signChangeFlag) are set as described above.
ステップS252において、フリップ部152は、ステップS251において設定されたフリップフラグに基づいて、フリップ操作(F)を行うか否かを判定する(FlipFlag == True ?)。フリップフラグの値が真(True)であり、フリップ操作(F)を行うと判定された場合、処理はステップS253に進む。
In step S252, the flip unit 152 determines whether to perform a flip operation (F) based on the flip flag set in step S251 (FlipFlagF == True?). If the value of the flip flag is true and it is determined that the flip operation (F) is to be performed, the process proceeds to step S253.
ステップS253において、フリップ部152は、例えば上述した式(21)のように、1次元信号列である入力係数データXinに対してフリップ操作(F)を行い、1次元信号列である係数データX'を生成する。
In step S253, the flip unit 152 performs a flip operation (F) on the input coefficient data Xin, which is a one-dimensional signal sequence, for example, as in the above-described equation (21), to execute the coefficient data X, which is a one-dimensional signal sequence. 'Is generated.
ステップS253の処理が終了すると処理はステップS254に進む。また、ステップS252において、フリップフラグの値が偽(False)であり、フリップ操作(F)を行わないと判定された場合、ステップS253の処理はスキップされ、入力係数データXinがそのまま係数データX'とされ、処理はステップS254に進む。
When the process of step S253 is completed, the process proceeds to step S254. If it is determined in step S252 that the value of the flip flag is false (False) and the flip operation (F) is not to be performed, the process of step S253 is skipped, and the input coefficient data Xin is directly used as the coefficient data X ′. And the process proceeds to step S254.
ステップS254において、ベース変換行列導出部270は、ベース変換行列導出処理を実行し、ステップS251において設定されたベース変換行列選択情報に基づいて、ベース変換行列Tbaseを導出する。このベース変換行列導出処理は、図18のフローチャートの場合と同様の流れで実行される。したがって、その説明を省略する。
In step S254, the base transformation matrix derivation unit 270 performs a base transformation matrix derivation process, and derives a base transformation matrix T base based on the base transformation matrix selection information set in step S251. This base transformation matrix derivation process is executed in the same flow as in the case of the flowchart in FIG. Therefore, the description is omitted.
ステップS255において、行列演算部153は、例えば上述した式(22)のように、ステップS254において導出したベース変換行列Tbase、すなわち、ステップS251において設定されたベース変換行列選択情報により指定されるベース変換行列Tbaseの転置行列を用いて、1次元信号列である係数データX'に対する行列演算(逆1次元変換)を行い、1次元信号列である係数データX''を生成する。
In step S255, the matrix operation unit 153 determines the base transformation matrix T base derived in step S254, that is, the base specified by the base transformation matrix selection information set in step S251, as in the above-described equation (22), for example. Using the transposed matrix of the transformation matrix T base , a matrix operation (inverse one-dimensional conversion) is performed on the coefficient data X ′ that is a one-dimensional signal sequence to generate coefficient data X ″ that is a one-dimensional signal sequence.
ステップS256において、符号反転部154は、ステップS251において設定された符号反転フラグに基づいて、符号反転操作(S)を行うか否かを判定する(signChangeFlag == True ?)。符号反転フラグの値が真(True)であり、符号反転操作(S)を行うと判定された場合、処理はステップS257に進む。
{At step S256, the sign inversion unit 154 determines whether or not to perform the sign inversion operation (S) based on the sign inversion flag set at step S251 (signChangeFlag == True?). If the value of the sign inversion flag is true and it is determined that the sign inversion operation (S) is to be performed, the process proceeds to step S257.
ステップS257において、符号反転部154は、例えば上述した式(23)のように、ステップS255において得られた1次元信号列である係数データX''に対して符号反転操作(S)を行い、1次元信号列である出力係数データXoutを生成する。符号反転部154は、生成された出力係数データXoutを逆変換装置150の外部に出力する。ステップS257の処理が終了すると変換処理が終了する。
In step S257, the sign inversion unit 154 performs a sign inversion operation (S) on the coefficient data X ″ that is the one-dimensional signal sequence obtained in step S255, for example, as in Expression (23) described above. The output coefficient data Xout which is a one-dimensional signal sequence is generated. The sign inverting unit 154 outputs the generated output coefficient data Xout to the outside of the inverse transform device 150. When the processing in step S257 ends, the conversion processing ends.
また、ステップS256において、符号反転フラグの値が偽(False)であり、符号反転操作(S)を行わないと判定された場合、ステップS257の処理はスキップされ、係数データX''がそのまま出力係数データXoutとされ、逆変換装置150の外部に出力される。出力係数データXoutが出力されると逆変換処理が終了する。
If it is determined in step S256 that the value of the sign inversion flag is false (False) and the sign inversion operation (S) is not performed, the process in step S257 is skipped, and the coefficient data X ″ is output as it is. The data is set as coefficient data Xout and output to the outside of the inverse transform device 150. When the output coefficient data Xout is output, the inverse conversion processing ends.
以上のように各処理を実行することにより、ベース変換行列選択情報により指定されるベース変換行列を導出することができる。つまり、導出元変換行列LUT232に1つの導出元変換行列(maxTbS-pt DCT2)251を記憶すればよいので、このLUTのサイズの増大を抑制する(LUTのサイズを削減する)ことができる。また、(maxTbS)×(maxTbS)の変換行列の行列演算と、変換タイプtrTypeの(nTbS)×(nTbS)の変換行列の行列演算とを共有することができる。つまり、行列演算部153は、各変換タイプtrTypeのベース変換行列を用いた行列演算を、同一の演算回路を用いて行うことができる。したがって、回路規模の増大を抑制する(回路規模を削減する)ことができる。
各 By executing each process as described above, the base transformation matrix specified by the base transformation matrix selection information can be derived. In other words, since one derived source transformation matrix (maxTbS-pt DCT2) 251 may be stored in the derived transformation matrix LUT 232, it is possible to suppress an increase in the size of the LUT (reduce the size of the LUT). Further, the matrix operation of the (maxTbS) × (maxTbS) conversion matrix and the matrix operation of the (nTbS) × (nTbS) conversion matrix of the conversion type trType can be shared. That is, the matrix calculation unit 153 can perform a matrix calculation using the base conversion matrix of each conversion type trType using the same calculation circuit. Therefore, it is possible to suppress an increase in the circuit scale (reduce the circuit scale).
<8.第5の実施の形態>
<応用例>
以上においては、変換タイプDST2およびDST4の(逆)1次元変換を、変換タイプDCT2およびDCT4の1次元変換を含むFTS操作またはSTF操作により実現する例について説明した。本技術はこれ以外の例にも適用することができる。 <8. Fifth Embodiment>
<Application example>
In the above, an example has been described in which the (inverse) one-dimensional conversion of the conversion types DST2 and DST4 is realized by the FTS operation or the STF operation including the one-dimensional conversion of the conversion types DCT2 and DCT4. The present technology can be applied to other examples.
<応用例>
以上においては、変換タイプDST2およびDST4の(逆)1次元変換を、変換タイプDCT2およびDCT4の1次元変換を含むFTS操作またはSTF操作により実現する例について説明した。本技術はこれ以外の例にも適用することができる。 <8. Fifth Embodiment>
<Application example>
In the above, an example has been described in which the (inverse) one-dimensional conversion of the conversion types DST2 and DST4 is realized by the FTS operation or the STF operation including the one-dimensional conversion of the conversion types DCT2 and DCT4. The present technology can be applied to other examples.
例えば、変換タイプDCT2およびDCT4の(逆)1次元変換を、変換タイプDST2およびDST4の(逆)1次元変換を含むFTS操作またはSTF操作により実現するようにしてもよい。
For example, the (reverse) one-dimensional conversion of the conversion types DCT2 and DCT4 may be realized by an FTS operation or STF operation including the (reverse) one-dimensional conversion of the conversion types DST2 and DST4.
1次元変換に用いられる変換タイプDCT2の変換行列TDCT2は、変換タイプDST2の変換行列TDST2、フリップ行列F、および符号反転行列Sを用いて、以下の式(24)のように表すことができる。
Transformation matrix T DCT2 conversion type DCT2 used for one-dimensional transform is a transformation matrix T DST2 conversion type DST2, flip matrix F, and the sign inversion matrix with S, be expressed as the following equation (24) it can.
同様に、1次元変換に用いられる変換タイプDCT4の変換行列TDCT4は、変換タイプDST4の変換行列TDST4、フリップ行列F、および符号反転行列Sを用いて、以下の式(25)のように表すことができる。
Similarly, the transformation matrix T DCT4 of the transformation type DCT4 used for the one-dimensional transformation is represented by the following equation (25) using the transformation matrix T DST4 , the flip matrix F, and the sign inversion matrix S of the transformation type DST4. Can be represented.
したがって、変換タイプDCT2およびDCT4の1次元変換は、変換タイプDST2およびDST4の1次元変換を含むSTF操作により実現することができる。例えば、第1の実施の形態において説明した変換装置100(図6)において、符号反転部102とフリップ部104とを入れ替え、ベース変換行列LUT120が変換タイプDST2の変換行列と変換タイプDST4の変換行列を記憶し、行列演算部103が、それらの変換行列をベース変換行列として用いて行列演算を行うようにすればよい。また、例えば、第3の実施の形態において説明した変換装置100(図15)において、符号反転部102とフリップ部104とを入れ替え、ベース変換行列導出部220が変換タイプDST2のベース変換行列または変換タイプDST4のベース変換行列を導出し、行列演算部103が、その導出されたベース変換行列を用いて行列演算を行うようにすればよい。
Therefore, one-dimensional conversion of conversion types DCT2 and DCT4 can be realized by STF operations including one-dimensional conversion of conversion types DST2 and DST4. For example, in the conversion apparatus 100 (FIG. 6) described in the first embodiment, the sign inversion section 102 and the flip section 104 are exchanged, and the base conversion matrix LUT 120 is converted to the conversion matrix of the conversion type DST2 and the conversion matrix of the conversion type DST4. May be stored, and the matrix operation unit 103 may perform the matrix operation using the transformation matrices as the base transformation matrix. Further, for example, in the transform apparatus 100 (FIG. 15) described in the third embodiment, the sign inverting section 102 and the flip section 104 are exchanged, and the base transform matrix deriving section 220 performs the transform type DST2 base transform matrix or transform. What is necessary is just to derive a base transformation matrix of type DST4, and to make the matrix operation unit 103 perform a matrix operation using the derived base transformation matrix.
このようにすることにより、変換タイプDCT4の1次元変換と変換タイプDCT2の1次元変換とを選択的に行う場合に、直交変換処理の前に行われるプリ処理を(符号反転操作(S)に)統一し、直交変換処理の後に行われるポスト処理を(フリップ操作(F)に)統一することができる。
In this manner, when the one-dimensional conversion of the transform type DCT4 and the one-dimensional transform of the transform type DCT2 are selectively performed, the pre-process performed before the orthogonal transform process is performed by (the sign inversion operation (S) ) It is possible to unify the post-processing performed after the orthogonal transformation processing (to the flip operation (F)).
また、逆1次元変換に用いられる変換タイプDCT2の変換行列の転置行列TDCT2
tは、変換タイプDST2の変換行列の転置行列TDST2
t、フリップ行列F、および符号反転行列Sを用いて、以下の式(26)のように表すことができる。
Furthermore, the transposed matrix T DCT2 t of the transformation matrix of the conversion type DCT2 used in inverse one-dimensional transform is the transposed matrix T DST2 t of the transformation matrix of the conversion type DST2, using flip matrix F, and sign inversion matrix S, the following Equation (26) can be expressed.
同様に、逆1次元変換に用いられる変換タイプDCT4の変換行列TDCT4は、変換タイプDST4の変換行列の転置行列TDST4
t、フリップ行列F、および符号反転行列Sを用いて、以下の式(27)のように表すことができる。
Similarly, the transformation matrix T DCT4 of the transformation type DCT4 used for the inverse one-dimensional transformation is represented by the following equation (using the transposed matrix T DST4 t , the flip matrix F, and the sign inversion matrix S of the transformation matrix of the transformation type DST4). 27).
したがって、変換タイプDCT2およびDCT4の逆1次元変換は、変換タイプDST2およびDST4の逆1次元変換を含むFTS操作により実現することができる。例えば、第2の実施の形態において説明した逆変換装置150(図9)において、フリップ部152と符号反転部154とを入れ替え、ベース変換行列LUT170が変換タイプDST2の変換行列と変換タイプDST4の変換行列を記憶し、行列演算部153が、それらの変換行列をベース変換行列とし、そのベース変換行列の転置行列を用いて行列演算を行うようにすればよい。また、例えば、第4の実施の形態において説明した変換装置100(図19)において、フリップ部152と符号反転部154とを入れ替え、ベース変換行列導出部270が変換タイプDST2のベース変換行列または変換タイプDST4のベース変換行列を導出し、行列演算部103が、その導出されたベース変換行列を用いて行列演算を行うようにすればよい。
Therefore, the inverse one-dimensional transform of the transform types DCT2 and DCT4 can be realized by the FTS operation including the inverse one-dimensional transform of the transform types DST2 and DST4. For example, in the inverse conversion device 150 (FIG. 9) described in the second embodiment, the flip unit 152 and the sign inversion unit 154 are exchanged, and the base conversion matrix LUT 170 is converted between the conversion matrix of the conversion type DST2 and the conversion matrix of the conversion type DST4. The matrix may be stored, and the matrix operation unit 153 may use the transformation matrices as base transformation matrices and perform the matrix computation using the transposed matrix of the base transformation matrix. Also, for example, in the conversion apparatus 100 (FIG. 19) described in the fourth embodiment, the flip unit 152 and the sign inversion unit 154 are exchanged, and the base conversion matrix derivation unit 270 converts the base conversion matrix of the conversion type DST2 or the conversion. What is necessary is just to derive a base transformation matrix of type DST4, and to make the matrix operation unit 103 perform a matrix operation using the derived base transformation matrix.
このようにすることにより、変換タイプDCT4の逆1次元変換と変換タイプDCT2の逆1次元変換とを選択的に行う場合に、逆直交変換処理の前に行われるプリ処理を(フリップ操作(F)に)統一し、逆直交変換処理の後に行われるポスト処理を(符号反転操作(S)に)統一することができる。
In this manner, when the inverse one-dimensional transform of the transform type DCT4 and the inverse one-dimensional transform of the transform type DCT2 are selectively performed, the pre-process performed before the inverse orthogonal transform process is performed by the (flip operation (F )), And post-processing performed after the inverse orthogonal transformation processing (to the sign inversion operation (S)).
このようにすることにより、プリ処理およびポスト処理における処理内容の選択(符号反転操作(S)を行うかフリップ操作(F)を行うか)を省略することができるので、1次元変換または逆1次元変換の構成の複雑化を抑制する(構成をより簡易化する)ことができ、1次元変換または逆1次元変換をより容易に行うことができる。つまり、この場合も、第1の実施の形態乃至第4の実施の形態の場合と同様に、回路規模や処理の負荷の増大を抑制し、実装コストの増大を抑制することができる。
By doing so, it is possible to omit the selection of the processing content in the pre-processing and post-processing (whether to perform the sign inversion operation (S) or the flip operation (F)), so that one-dimensional conversion or reverse one It is possible to suppress the complexity of the configuration of the dimensional conversion (simplify the configuration), and it is possible to easily perform the one-dimensional conversion or the inverse one-dimensional conversion. That is, also in this case, similarly to the first to fourth embodiments, it is possible to suppress an increase in circuit scale and processing load, and to suppress an increase in mounting cost.
<9.第6の実施の形態>
<画像符号化装置>
以上に説明した本技術は、任意の装置、デバイス、システム等に適用することができる。例えば、画像データを符号化する画像符号化装置に、上述した本技術を適用することができる。 <9. Sixth embodiment>
<Image coding device>
The present technology described above can be applied to any device, device, system, and the like. For example, the present technology described above can be applied to an image encoding device that encodes image data.
<画像符号化装置>
以上に説明した本技術は、任意の装置、デバイス、システム等に適用することができる。例えば、画像データを符号化する画像符号化装置に、上述した本技術を適用することができる。 <9. Sixth embodiment>
<Image coding device>
The present technology described above can be applied to any device, device, system, and the like. For example, the present technology described above can be applied to an image encoding device that encodes image data.
図21は、本技術を適用した画像処理装置の一態様である画像符号化装置の構成の一例を示すブロック図である。図21に示される画像符号化装置300は、動画像の画像データを符号化する装置である。例えば、画像符号化装置300は、非特許文献1、非特許文献5、または非特許文献6に記載されている技術を実装し、それらの文献のいずれかに記載された規格に準拠した方法で動画像の画像データを符号化する。
FIG. 21 is a block diagram illustrating an example of a configuration of an image encoding device that is an aspect of an image processing device to which the present technology is applied. An image encoding device 300 illustrated in FIG. 21 is an device that encodes image data of a moving image. For example, the image encoding device 300 implements the technology described in Non-Patent Document 1, Non-Patent Document 5, or Non-Patent Document 6, and employs a method based on a standard described in any of those documents. The image data of the moving image is encoded.
なお、図21においては、処理部やデータの流れ等の主なものを示しており、図21に示されるものが全てとは限らない。つまり、画像符号化装置300において、図21においてブロックとして示されていない処理部が存在したり、図21において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、画像符号化装置300内の処理部等を説明する他の図においても同様である。
FIG. 21 shows main components such as the processing unit and the flow of data, and the components shown in FIG. 21 are not necessarily all. That is, in the image encoding device 300, a processing unit not illustrated as a block in FIG. 21 may exist, or a process or data flow not illustrated as an arrow or the like in FIG. 21 may exist. This is the same in other drawings for explaining the processing unit and the like in the image encoding device 300.
図21に示されるように画像符号化装置300は、制御部301、並べ替えバッファ311、演算部312、直交変換部313、量子化部314、符号化部315、蓄積バッファ316、逆量子化部317、逆直交変換部318、演算部319、インループフィルタ部320、フレームメモリ321、予測部322、およびレート制御部323を有する。
As illustrated in FIG. 21, the image encoding device 300 includes a control unit 301, a rearrangement buffer 311, an arithmetic unit 312, an orthogonal transformation unit 313, a quantization unit 314, an encoding unit 315, a storage buffer 316, and an inverse quantization unit. 317, an inverse orthogonal transform unit 318, an operation unit 319, an in-loop filter unit 320, a frame memory 321, a prediction unit 322, and a rate control unit 323.
<制御部>
制御部301は、外部、または予め指定された処理単位のブロックサイズに基づいて、並べ替えバッファ311により保持されている動画像データを処理単位のブロック(CU,PU, 変換ブロックなど)へ分割する。また、制御部301は、各ブロックへ供給する符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)を、例えば、RDO(Rate-Distortion Optimization)に基づいて、決定する。 <Control unit>
Thecontrol unit 301 divides the moving image data held by the rearrangement buffer 311 into processing unit blocks (CU, PU, conversion block, etc.) based on an external or pre-designated processing unit block size. . In addition, the control unit 301 determines coding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, filter information Finfo, and the like) to be supplied to each block based on, for example, RDO (Rate-Distortion Optimization). I do.
制御部301は、外部、または予め指定された処理単位のブロックサイズに基づいて、並べ替えバッファ311により保持されている動画像データを処理単位のブロック(CU,PU, 変換ブロックなど)へ分割する。また、制御部301は、各ブロックへ供給する符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)を、例えば、RDO(Rate-Distortion Optimization)に基づいて、決定する。 <Control unit>
The
これらの符号化パラメータの詳細については後述する。制御部301は、以上のような符号化パラメータを決定すると、それを各ブロックへ供給する。具体的には、以下の通りである。
詳細 The details of these encoding parameters will be described later. After determining the above-described encoding parameters, the control unit 301 supplies the parameters to each block. Specifically, it is as follows.
ヘッダ情報Hinfoは、各ブロックに供給される。予測モード情報Pinfoは、符号化部315と予測部322とに供給される。変換情報Tinfoは、符号化部315、直交変換部313、量子化部314、逆量子化部317、および逆直交変換部318に供給される。フィルタ情報Finfoは、インループフィルタ部320に供給される。
(4) The header information Hinfo is supplied to each block. The prediction mode information Pinfo is supplied to the encoding unit 315 and the prediction unit 322. The transform information Tinfo is supplied to an encoding unit 315, an orthogonal transformation unit 313, a quantization unit 314, an inverse quantization unit 317, and an inverse orthogonal transformation unit 318. The filter information Finfo is supplied to the in-loop filter unit 320.
<並べ替えバッファ>
画像符号化装置300には、動画像データの各フィールド(入力画像)がその再生順(表示順)に入力される。並べ替えバッファ311は、各入力画像をその再生順(表示順)に取得し、保持(記憶)する。並べ替えバッファ311は、制御部301の制御に基づいて、その入力画像を符号化順(復号順)に並べ替えたり、処理単位のブロックに分割したりする。並べ替えバッファ311は、処理後の各入力画像を演算部312に供給する。また、並べ替えバッファ311は、その各入力画像(元画像)を、予測部322やインループフィルタ部320にも供給する。 <Sort buffer>
Each field (input image) of the moving image data is input to theimage encoding device 300 in the order of reproduction (display order). The reordering buffer 311 acquires and holds (stores) each input image in its reproduction order (display order). The rearrangement buffer 311 rearranges the input image in an encoding order (decoding order) or divides the input image into blocks in processing units based on the control of the control unit 301. The rearrangement buffer 311 supplies the processed input images to the calculation unit 312. The reordering buffer 311 also supplies the input images (original images) to the prediction unit 322 and the in-loop filter unit 320.
画像符号化装置300には、動画像データの各フィールド(入力画像)がその再生順(表示順)に入力される。並べ替えバッファ311は、各入力画像をその再生順(表示順)に取得し、保持(記憶)する。並べ替えバッファ311は、制御部301の制御に基づいて、その入力画像を符号化順(復号順)に並べ替えたり、処理単位のブロックに分割したりする。並べ替えバッファ311は、処理後の各入力画像を演算部312に供給する。また、並べ替えバッファ311は、その各入力画像(元画像)を、予測部322やインループフィルタ部320にも供給する。 <Sort buffer>
Each field (input image) of the moving image data is input to the
<演算部>
演算部312は、処理単位のブロックに対応する画像I、および予測部322より供給される予測画像Pを入力とし、画像Iから予測画像Pを以下の式(28)に示されるように減算して、予測残差Dを導出し、それを直交変換部313に供給する。 <Operation part>
Thecalculation unit 312 receives the image I corresponding to the block of the processing unit and the prediction image P supplied from the prediction unit 322, and subtracts the prediction image P from the image I as shown in the following equation (28). Then, the prediction residual D is derived and supplied to the orthogonal transform unit 313.
演算部312は、処理単位のブロックに対応する画像I、および予測部322より供給される予測画像Pを入力とし、画像Iから予測画像Pを以下の式(28)に示されるように減算して、予測残差Dを導出し、それを直交変換部313に供給する。 <Operation part>
The
<直交変換部>
直交変換部313は、演算部312から供給される予測残差Dと、制御部301から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、予測残差Dに対して直交変換を行い、変換係数Coeffを導出する。直交変換部313は、その得られた変換係数Coeffを量子化部314に供給する。 <Orthogonal transformer>
Theorthogonal transform unit 313 receives the prediction residual D supplied from the calculation unit 312 and the conversion information Tinfo supplied from the control unit 301 as inputs, and performs orthogonal transform on the prediction residual D based on the conversion information Tinfo. Conversion is performed to derive a conversion coefficient Coeff. The orthogonal transform unit 313 supplies the obtained transform coefficient Coeff to the quantization unit 314.
直交変換部313は、演算部312から供給される予測残差Dと、制御部301から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、予測残差Dに対して直交変換を行い、変換係数Coeffを導出する。直交変換部313は、その得られた変換係数Coeffを量子化部314に供給する。 <Orthogonal transformer>
The
<量子化部>
量子化部314は、直交変換部313から供給される変換係数Coeffと、制御部301から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数Coeffをスケーリング(量子化)する。なお、この量子化のレートは、レート制御部323により制御される。量子化部314は、このような量子化により得られた量子化後の変換係数、すなわち量子化変換係数レベルlevelを、符号化部315および逆量子化部317に供給する。 <Quantizer>
Thequantization unit 314 receives the transform coefficient Coeff supplied from the orthogonal transform unit 313 and the transform information Tinfo supplied from the control unit 301, and scales the transform coefficient Coeff based on the transform information Tinfo (quantization). ). The rate of this quantization is controlled by the rate control unit 323. The quantization unit 314 supplies the quantized transform coefficient obtained by such quantization, that is, the quantized transform coefficient level level, to the encoding unit 315 and the inverse quantization unit 317.
量子化部314は、直交変換部313から供給される変換係数Coeffと、制御部301から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数Coeffをスケーリング(量子化)する。なお、この量子化のレートは、レート制御部323により制御される。量子化部314は、このような量子化により得られた量子化後の変換係数、すなわち量子化変換係数レベルlevelを、符号化部315および逆量子化部317に供給する。 <Quantizer>
The
<符号化部>
符号化部315は、量子化部314から供給された量子化変換係数レベルlevelと、制御部301から供給される各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)と、インループフィルタ部320から供給されるフィルタ係数等のフィルタに関する情報と、予測部322から供給される最適な予測モードに関する情報とを入力とする。符号化部315は、量子化変換係数レベルlevelを可変長符号化(例えば、算術符号化)し、ビット列(符号化データ)を生成する。 <Encoding unit>
Theencoding unit 315 includes a quantization transform coefficient level supplied from the quantization unit 314 and various encoding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, and filter information Finfo supplied from the control unit 301). ), Information on filters such as filter coefficients supplied from the in-loop filter unit 320, and information on the optimal prediction mode supplied from the prediction unit 322. The encoding unit 315 performs variable-length encoding (for example, arithmetic encoding) on the quantized transform coefficient level level to generate a bit string (encoded data).
符号化部315は、量子化部314から供給された量子化変換係数レベルlevelと、制御部301から供給される各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)と、インループフィルタ部320から供給されるフィルタ係数等のフィルタに関する情報と、予測部322から供給される最適な予測モードに関する情報とを入力とする。符号化部315は、量子化変換係数レベルlevelを可変長符号化(例えば、算術符号化)し、ビット列(符号化データ)を生成する。 <Encoding unit>
The
また、符号化部315は、その量子化変換係数レベルlevelから残差情報Rinfoを導出し、残差情報Rinfoを符号化し、ビット列を生成する。
{Encoding section 315 also derives residual information Rinfo from the quantized transform coefficient level level, encodes residual information Rinfo, and generates a bit string.
さらに、符号化部315は、インループフィルタ部320から供給されるフィルタに関する情報をフィルタ情報Finfoに含め、予測部322から供給される最適な予測モードに関する情報を予測モード情報Pinfoに含める。そして、符号化部315は、上述した各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)を符号化し、ビット列を生成する。
{Furthermore, the encoding unit 315 includes information about the filter supplied from the in-loop filter unit 320 in the filter information Finfo, and includes information about the optimal prediction mode supplied from the prediction unit 322 in the prediction mode information Pinfo. Then, the coding unit 315 codes the above-described various coding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, filter information Finfo, and the like), and generates a bit sequence.
また、符号化部315は、以上のように生成された各種情報のビット列を多重化し、符号化データを生成する。符号化部315は、その符号化データを蓄積バッファ316に供給する。
{Encoding section 315 also multiplexes the bit strings of the various information generated as described above to generate encoded data. The encoding unit 315 supplies the encoded data to the storage buffer 316.
<蓄積バッファ>
蓄積バッファ316は、符号化部315において得られた符号化データを、一時的に保持する。蓄積バッファ316は、所定のタイミングにおいて、保持している符号化データを、例えばビットストリーム等として画像符号化装置300の外部に出力する。例えば、この符号化データは、任意の記録媒体、任意の伝送媒体、任意の情報処理装置等を介して復号側に伝送される。すなわち、蓄積バッファ316は、符号化データ(ビットストリーム)を伝送する伝送部でもある。 <Accumulation buffer>
Theaccumulation buffer 316 temporarily stores the encoded data obtained by the encoding unit 315. At a predetermined timing, the accumulation buffer 316 outputs the held encoded data to the outside of the image encoding device 300 as, for example, a bit stream. For example, the encoded 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 accumulation buffer 316 is also a transmission unit that transmits encoded data (bit stream).
蓄積バッファ316は、符号化部315において得られた符号化データを、一時的に保持する。蓄積バッファ316は、所定のタイミングにおいて、保持している符号化データを、例えばビットストリーム等として画像符号化装置300の外部に出力する。例えば、この符号化データは、任意の記録媒体、任意の伝送媒体、任意の情報処理装置等を介して復号側に伝送される。すなわち、蓄積バッファ316は、符号化データ(ビットストリーム)を伝送する伝送部でもある。 <Accumulation buffer>
The
<逆量子化部>
逆量子化部317は、逆量子化に関する処理を行う。例えば、逆量子化部317は、量子化部314から供給される量子化変換係数レベルlevelと、制御部301から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、量子化変換係数レベルlevelの値をスケーリング(逆量子化)する。なお、この逆量子化は、量子化部314において行われる量子化の逆処理である。逆量子化部317は、このような逆量子化により得られた変換係数Coeff_IQを、逆直交変換部318に供給する。 <Inverse quantization unit>
The inverse quantization unit 317 performs a process related to inverse quantization. For example, the inverse quantization unit 317 receives as input the quantized transform coefficient level supplied from thequantization unit 314 and the transform information Tinfo supplied from the control unit 301, and performs quantization based on the transform information Tinfo. Scale (inverse quantization) the value of the transform coefficient level level. Note that the inverse quantization is an inverse process of the quantization performed in the quantization unit 314. The inverse quantization unit 317 supplies the transform coefficient Coeff_IQ obtained by such inverse quantization to the inverse orthogonal transform unit 318.
逆量子化部317は、逆量子化に関する処理を行う。例えば、逆量子化部317は、量子化部314から供給される量子化変換係数レベルlevelと、制御部301から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、量子化変換係数レベルlevelの値をスケーリング(逆量子化)する。なお、この逆量子化は、量子化部314において行われる量子化の逆処理である。逆量子化部317は、このような逆量子化により得られた変換係数Coeff_IQを、逆直交変換部318に供給する。 <Inverse quantization unit>
The inverse quantization unit 317 performs a process related to inverse quantization. For example, the inverse quantization unit 317 receives as input the quantized transform coefficient level supplied from the
<逆直交変換部>
逆直交変換部318は、逆直交変換に関する処理を行う。例えば、逆直交変換部318は、逆量子化部317から供給される変換係数Coeff_IQと、制御部101から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆直交変換を行い、予測残差D'を導出する。なお、この逆直交変換は、直交変換部313において行われる直交変換の逆処理である。逆直交変換部318は、このような逆直交変換により得られた予測残差D'を演算部319に供給する。なお、逆直交変換部318は、復号側の逆直交変換部(後述する)と同様であるので、逆直交変換部318については、復号側について行う説明(後述する)を適用することができる。 <Inverse orthogonal transform unit>
The inverseorthogonal transform unit 318 performs a process related to the inverse orthogonal transform. For example, the inverse orthogonal transform unit 318 receives as input the transform coefficient Coeff_IQ supplied from the inverse quantization unit 317 and the transform information Tinfo supplied from the control unit 101, and converts the transform coefficient Coeff_IQ based on the transform information Tinfo. An inverse orthogonal transform is performed on the result to derive a prediction residual D ′. Note that the inverse orthogonal transform is an inverse process of the orthogonal transform performed in the orthogonal transform unit 313. The inverse orthogonal transform unit 318 supplies the prediction residual D ′ obtained by such an inverse orthogonal transform to the calculation unit 319. Since the inverse orthogonal transform unit 318 is similar to the inverse orthogonal transform unit (described later) on the decoding side, the description (described later) performed on the decoding side can be applied to the inverse orthogonal transform unit 318.
逆直交変換部318は、逆直交変換に関する処理を行う。例えば、逆直交変換部318は、逆量子化部317から供給される変換係数Coeff_IQと、制御部101から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆直交変換を行い、予測残差D'を導出する。なお、この逆直交変換は、直交変換部313において行われる直交変換の逆処理である。逆直交変換部318は、このような逆直交変換により得られた予測残差D'を演算部319に供給する。なお、逆直交変換部318は、復号側の逆直交変換部(後述する)と同様であるので、逆直交変換部318については、復号側について行う説明(後述する)を適用することができる。 <Inverse orthogonal transform unit>
The inverse
<演算部>
演算部319は、逆直交変換部318から供給される予測残差D’と、予測部322から供給される予測画像Pとを入力とする。演算部319は、その予測残差D’と、その予測残差D’に対応する予測画像Pとを加算し、局所復号画像Rlocalを導出する。演算部319は、導出した局所復号画像Rlocalをインループフィルタ部320およびフレームメモリ321に供給する。 <Operation part>
Thecalculation unit 319 receives as input the prediction residual D ′ supplied from the inverse orthogonal transform unit 318 and the prediction image P supplied from the prediction unit 322. The calculation unit 319 adds the prediction residual D ′ and the prediction image P corresponding to the prediction residual D ′ to derive a local decoded image Rlocal. The operation unit 319 supplies the derived local decoded image Rlocal to the in-loop filter unit 320 and the frame memory 321.
演算部319は、逆直交変換部318から供給される予測残差D’と、予測部322から供給される予測画像Pとを入力とする。演算部319は、その予測残差D’と、その予測残差D’に対応する予測画像Pとを加算し、局所復号画像Rlocalを導出する。演算部319は、導出した局所復号画像Rlocalをインループフィルタ部320およびフレームメモリ321に供給する。 <Operation part>
The
<インループフィルタ部>
インループフィルタ部320は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部320は、演算部319から供給される局所復号画像Rlocalと、制御部301から供給されるフィルタ情報Finfoと、並べ替えバッファ311から供給される入力画像(元画像)とを入力とする。なお、インループフィルタ部320に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。例えば、必要に応じて、予測モード、動き情報、符号量目標値、量子化パラメータQP、ピクチャタイプ、ブロック(CU、CTU等)の情報等がインループフィルタ部320に入力されるようにしてもよい。 <In-loop filter section>
The in-loop filter unit 320 performs a process related to the in-loop filter process. For example, the in-loop filter unit 320 converts the local decoded image Rlocal supplied from the arithmetic unit 319, the filter information Finfo supplied from the control unit 301, and the input image (original image) supplied from the rearrangement buffer 311. Take as input. Note that information input to the in-loop filter unit 320 is arbitrary, and information other than these information may be input. For example, if necessary, the prediction mode, motion information, code amount target value, quantization parameter QP, picture type, block (CU, CTU, etc.) information and the like may be input to the in-loop filter unit 320. Good.
インループフィルタ部320は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部320は、演算部319から供給される局所復号画像Rlocalと、制御部301から供給されるフィルタ情報Finfoと、並べ替えバッファ311から供給される入力画像(元画像)とを入力とする。なお、インループフィルタ部320に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。例えば、必要に応じて、予測モード、動き情報、符号量目標値、量子化パラメータQP、ピクチャタイプ、ブロック(CU、CTU等)の情報等がインループフィルタ部320に入力されるようにしてもよい。 <In-loop filter section>
The in-
インループフィルタ部320は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。インループフィルタ部320は、必要に応じて入力画像(元画像)や、その他の入力情報もそのフィルタ処理に用いる。
The in-loop filter unit 320 appropriately performs a filtering process on the locally decoded image Rlocal based on the filter information Finfo. The in-loop filter unit 320 also uses an input image (original image) and other input information for the filtering process as needed.
例えば、インループフィルタ部320は、非特許文献1に記載のように、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
For example, as described in Non-Patent Document 1, the in-loop filter unit 320 includes a bilateral filter, a deblocking filter (DBF (DeBlocking Filter)), an adaptive offset filter (SAO (Sample Adaptive Offset)), and an adaptive loop filter. Four in-loop filters (ALF (Adaptive Loop Loop Filter)) are applied in this order. It is to be noted that which filter is applied and in which order are applied are arbitrary and can be selected as appropriate.
もちろん、インループフィルタ部320が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部320がウィーナーフィルタ等を適用するようにしてもよい。
Of course, the filter processing performed by the in-loop filter unit 320 is arbitrary, and is not limited to the above example. For example, the in-loop filter unit 320 may apply a Wiener filter or the like.
インループフィルタ部320は、フィルタ処理された局所復号画像Rlocalをフレームメモリ321に供給する。なお、例えばフィルタ係数等のフィルタに関する情報を復号側に伝送する場合、インループフィルタ部320は、そのフィルタに関する情報を符号化部315に供給する。
The in-loop filter unit 320 supplies the filtered local decoded image Rlocal to the frame memory 321. Note that when information about a filter such as a filter coefficient is transmitted to the decoding side, the in-loop filter unit 320 supplies information about the filter to the encoding unit 315.
<フレームメモリ>
フレームメモリ321は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ321は、演算部319から供給される局所復号画像Rlocalや、インループフィルタ部320から供給されるフィルタ処理された局所復号画像Rlocalを入力とし、それを保持(記憶)する。また、フレームメモリ321は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(フレームメモリ321内のバッファへ格納する)。フレームメモリ321は、予測部322の要求に応じて、その復号画像R(またはその一部)を予測部322に供給する。 <Frame memory>
Theframe memory 321 performs processing relating to storage of data relating to an image. For example, the frame memory 321 receives the local decoded image Rlocal supplied from the arithmetic unit 319 and the filtered local decoded image Rlocal supplied from the in-loop filter unit 320, and stores (stores) them. Further, the frame memory 321 reconstructs and holds the decoded image R for each picture using the local decoded image Rlocal (stores the decoded image R in a buffer in the frame memory 321). The frame memory 321 supplies the decoded image R (or a part thereof) to the prediction unit 322 in response to a request from the prediction unit 322.
フレームメモリ321は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ321は、演算部319から供給される局所復号画像Rlocalや、インループフィルタ部320から供給されるフィルタ処理された局所復号画像Rlocalを入力とし、それを保持(記憶)する。また、フレームメモリ321は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(フレームメモリ321内のバッファへ格納する)。フレームメモリ321は、予測部322の要求に応じて、その復号画像R(またはその一部)を予測部322に供給する。 <Frame memory>
The
<予測部>
予測部322は、予測画像の生成に関する処理を行う。例えば、予測部322は、制御部301から供給される予測モード情報Pinfoと、並べ替えバッファ311から供給される入力画像(元画像)と、フレームメモリ321から読み出す復号画像R(またはその一部)を入力とする。予測部322は、予測モード情報Pinfoや入力画像(元画像)を用い、インター予測やイントラ予測等の予測処理を行い、復号画像Rを参照画像として参照して予測を行い、その予測結果に基づいて動き補償処理を行い、予測画像Pを生成する。予測部322は、生成した予測画像Pを演算部312および演算部319に供給する。また、予測部322は、以上の処理により選択した予測モード、すなわち最適な予測モードに関する情報を、必要に応じて符号化部315に供給する。 <Prediction unit>
Theprediction unit 322 performs a process related to generation of a predicted image. For example, the prediction unit 322 includes the prediction mode information Pinfo supplied from the control unit 301, the input image (original image) supplied from the rearrangement buffer 311 and the decoded image R (or a part thereof) read from the frame memory 321. Is input. The prediction unit 322 performs prediction processing such as inter prediction or intra prediction using the prediction mode information Pinfo and the input image (original image), performs prediction with reference to the decoded image R as a reference image, and performs prediction based on the prediction result. To perform a motion compensation process to generate a predicted image P. The prediction unit 322 supplies the generated prediction image P to the calculation unit 312 and the calculation unit 319. Further, the prediction unit 322 supplies the prediction mode selected by the above processing, that is, information on the optimal prediction mode to the encoding unit 315 as necessary.
予測部322は、予測画像の生成に関する処理を行う。例えば、予測部322は、制御部301から供給される予測モード情報Pinfoと、並べ替えバッファ311から供給される入力画像(元画像)と、フレームメモリ321から読み出す復号画像R(またはその一部)を入力とする。予測部322は、予測モード情報Pinfoや入力画像(元画像)を用い、インター予測やイントラ予測等の予測処理を行い、復号画像Rを参照画像として参照して予測を行い、その予測結果に基づいて動き補償処理を行い、予測画像Pを生成する。予測部322は、生成した予測画像Pを演算部312および演算部319に供給する。また、予測部322は、以上の処理により選択した予測モード、すなわち最適な予測モードに関する情報を、必要に応じて符号化部315に供給する。 <Prediction unit>
The
<レート制御部>
レート制御部323は、レート制御に関する処理を行う。例えば、レート制御部323は、蓄積バッファ316に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部314の量子化動作のレートを制御する。 <Rate control section>
Therate control unit 323 performs processing related to rate control. For example, the rate control unit 323 controls the rate of the quantization operation of the quantization unit 314 based on the code amount of the coded data stored in the storage buffer 316 so that overflow or underflow does not occur.
レート制御部323は、レート制御に関する処理を行う。例えば、レート制御部323は、蓄積バッファ316に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部314の量子化動作のレートを制御する。 <Rate control section>
The
<直交変換部の詳細>
図22は、直交変換部313の主な構成例を示すブロック図である。図22に示されるように、直交変換部313は、スイッチ351、プライマリ変換部352、およびセカンダリ変換部353を有する。 <Details of orthogonal transform unit>
FIG. 22 is a block diagram illustrating a main configuration example of theorthogonal transform unit 313. As shown in FIG. 22, the orthogonal transform unit 313 includes a switch 351, a primary transform unit 352, and a secondary transform unit 353.
図22は、直交変換部313の主な構成例を示すブロック図である。図22に示されるように、直交変換部313は、スイッチ351、プライマリ変換部352、およびセカンダリ変換部353を有する。 <Details of orthogonal transform unit>
FIG. 22 is a block diagram illustrating a main configuration example of the
スイッチ351は、予測残差Dおよびコンポーネント識別子compIDに対応する変換スキップフラグts_flag[compID]を入力とし、変換スキップフラグts_flag[compID]の値がNO_TS(=0)の場合(変換スキップを適用しない場合)、プライマリ変換部352へ予測残差Dを供給する。また、変換スキップフラグts_flag[compID]の値が2D_TS(=1)の場合(2次元変換スキップを適用することを示す場合)、プライマリ変換部352およびセカンダリ変換部353をスキップし、予測残差Dを変換係数Coeffとして直交変換部313の外部に出力する(量子化部314に供給する)。
The switch 351 receives the prediction residual D and the conversion skip flag ts_flag [compID] corresponding to the component identifier compID, and when the value of the conversion skip flag ts_flag [compID] is NO_TS (= 0) (when the conversion skip is not applied). ), And supplies the prediction residual D to the primary conversion unit 352. When the value of the conversion skip flag ts_flag [compID] is 2D_TS (= 1) (indicating that the two-dimensional conversion skip is to be applied), the primary conversion unit 352 and the secondary conversion unit 353 are skipped, and the prediction residual D Is output to the outside of the orthogonal transform unit 313 as a transform coefficient Coeff (supplied to the quantization unit 314).
プライマリ変換部352は、例えば直交変換等の所定の変換処理であるプライマリ変換に関する処理を行う。例えば、プライマリ変換部352は、コンポーネント識別子compID、コンポーネント識別子compIDの適応プライマリ変換フラグapt_flag[compID]、コンポーネント識別子compIDのプライマリ変換識別子pt_idx[compID]、予測モード情報PInfo、変換ブロックのサイズ(横幅の対数値log2TBWSize, 縦幅の対数値log2TBHSize)、および予測残差Dを入力とする。なお、変換ブロックの横幅TBWSizeをTBWidthとも称し、その対数値をlog2TBWidthとも称する。同様に、変換ブロックの縦幅TBHSizeをTBHeightとも称し、その対数値をlog2TBHeightとも称する。
The primary conversion unit 352 performs a process related to primary conversion, which is a predetermined conversion process such as orthogonal conversion. For example, the primary conversion unit 352 converts the component identifier compID, the adaptive primary conversion flag apt_flag [compID] of the component identifier compID, the primary conversion identifier pt_idx [compID] of the component identifier compID, the prediction mode information PInfo, the size of the conversion block (the pair of the horizontal width). The numerical value log2TBWSize, the logarithmic value of the vertical width log2TBHSize) and the prediction residual D are input. Note that the horizontal width TBWSize of the conversion block is also referred to as TBWidth, and the logarithmic value thereof is also referred to as log2TBWidth. Similarly, the vertical width TBHSize of the conversion block is also referred to as TBHeight, and the logarithmic value thereof is also referred to as log2TBHeight.
プライマリ変換部352は、その予測モード情報PInfo、コンポーネント識別子compID、コンポーネント識別子compIDの適応プライマリ変換フラグapt_flag[compID]、およびコンポーネント識別子compIDのプライマリ変換識別子pt_idx[compID]を参照して、コンポーネント識別子compIDに対応するプライマリ水平変換の変換タイプTrTypeH(および該変換タイプを示すプライマリ水平変換タイプ識別子TrTypeIdxH)、およびプライマリ垂直変換の変換タイプTrTypeV(および該変換タイプを示すプライマリ垂直変換タイプ識別子TrTypeIdxV)を選択する。
The primary conversion unit 352 refers to the prediction mode information PInfo, the component identifier compID, the adaptive primary conversion flag apt_flag [compID] of the component identifier compID, and the primary conversion identifier pt_idx [compID] of the component identifier compID to generate a component identifier compID. The corresponding primary horizontal conversion conversion type TrTypeH (and the primary horizontal conversion type identifier TrTypeIdxH indicating the conversion type) and the primary vertical conversion conversion type TrTypeV (and the primary vertical conversion type identifier TrTypeIdxV indicating the conversion type) are selected.
また、プライマリ変換部352は、予測残差Dに対して、そのプライマリ水平変換タイプ識別子TrTypeIdxH(または、プライマリ水平変換タイプTrTypeH)と変換ブロックの横幅log2TBWSizeで定まるプライマリ水平変換と、プライマリ垂直変換タイプ識別子TrTypeIdxV(または、プライマリ垂直変換タイプTrTypeV)と変換ブロックの縦幅log2TBHSizeで定まるプライマリ垂直変換と行い、プライマリ変換後の変換係数Coeff_Pを導出する。プライマリ水平変換は、水平方向の1次元直交変換であり、プライマリ垂直変換は、垂直方向の1次元直交変換である。
Further, the primary conversion unit 352 converts the prediction residual D into a primary horizontal conversion type identifier TrTypeIdxH (or a primary horizontal conversion type TrTypeH) and a horizontal width log2TBWSize of the conversion block, and a primary vertical conversion type identifier. Perform primary vertical conversion determined by TrTypeIdxV (or primary vertical conversion type TrTypeV) and vertical width log2TBHSize of the conversion block, and derive a conversion coefficient Coeff_P after the primary conversion. The primary horizontal transform is a one-dimensional orthogonal transform in the horizontal direction, and the primary vertical transform is a one-dimensional orthogonal transform in the vertical direction.
プライマリ変換部352は、導出した変換係数Coeff_Pをセカンダリ変換部353に供給する。
The primary conversion unit 352 supplies the derived conversion coefficient Coeff_P to the secondary conversion unit 353.
セカンダリ変換部353は、例えば直交変換等の所定の変換処理であるセカンダリ変換に関する処理を行う。例えばセカンダリ変換部353は、セカンダリ変換識別子st_idx、変換係数のスキャン方法を示すスキャン識別子scanIdx、および変換係数Coeff_Pを入力とする。セカンダリ変換部353は、セカンダリ変換識別子st_idxおよびスキャン識別子scanIdxに基づいて、変換係数Coeff_Pに対してセカンダリ変換を行い、セカンダリ変換後の変換係数Coeff_Sを導出する。
The secondary conversion unit 353 performs a process related to a secondary conversion, which is a predetermined conversion process such as an orthogonal conversion. For example, the secondary conversion unit 353 receives a secondary conversion identifier st_idx, a scan identifier scanIdx indicating a method of scanning a conversion coefficient, and a conversion coefficient Coeff_P. The secondary conversion unit 353 performs secondary conversion on the conversion coefficient Coeff_P based on the secondary conversion identifier st_idx and the scan identifier scanIdx, and derives a conversion coefficient Coeff_S after the secondary conversion.
より具体的には、セカンダリ変換識別子st_idxが、セカンダリ変換を適用することを示す場合(st_idx>0)、セカンダリ変換部353は、変換係数Coeff_Pに対して、セカンダリ変換識別子st_idxに対応するセカンダリ変換の処理を実行し、セカンダリ変換後の変換係数Coeff_Sを導出する。
More specifically, when the secondary conversion identifier st_idx indicates that the secondary conversion is applied (st_idx> 0), the secondary conversion unit 353 converts the conversion coefficient Coeff_P of the secondary conversion corresponding to the secondary conversion identifier st_idx. The processing is executed to derive a conversion coefficient Coeff_S after the secondary conversion.
セカンダリ変換部353は、そのセカンダリ変換係数Coeff_Sを、変換係数Coeffとして直交変換部313の外部に出力する(量子化部314に供給する)。
The secondary transform unit 353 outputs the secondary transform coefficient Coeff_S to the outside of the orthogonal transform unit 313 as a transform coefficient Coeff (supplies it to the quantization unit 314).
また、セカンダリ変換識別子st_idxが、セカンダリ変換を適用しないことを示す場合(st_idx==0)、セカンダリ変換部353は、セカンダリ変換をスキップし、プライマリ変換後の変換係数Coeff_Pを変換係数Coeff(セカンダリ変換後の変換係数Coeff_S)として直交変換部313の外部に出力する(量子化部314に供給する)。
If the secondary conversion identifier st_idx indicates that the secondary conversion is not to be applied (st_idx == 0), the secondary conversion unit 353 skips the secondary conversion and converts the conversion coefficient Coeff_P after the primary conversion into the conversion coefficient Coeff (secondary conversion coefficient). It is output to the outside of the orthogonal transform unit 313 as a subsequent transform coefficient Coeff_S (supplied to the quantization unit 314).
<プライマリ変換部>
図23は、図22のプライマリ変換部352の主な構成例を示すブロック図である。図23に示されるように、プライマリ変換部352は、プライマリ変換選択部361、プライマリ水平変換部362、およびプライマリ垂直変換部363を有する。 <Primary converter>
FIG. 23 is a block diagram illustrating a main configuration example of theprimary conversion unit 352 in FIG. As shown in FIG. 23, the primary conversion unit 352 includes a primary conversion selection unit 361, a primary horizontal conversion unit 362, and a primary vertical conversion unit 363.
図23は、図22のプライマリ変換部352の主な構成例を示すブロック図である。図23に示されるように、プライマリ変換部352は、プライマリ変換選択部361、プライマリ水平変換部362、およびプライマリ垂直変換部363を有する。 <Primary converter>
FIG. 23 is a block diagram illustrating a main configuration example of the
プライマリ変換選択部361は、予測モード情報PInfo、コンポーネント識別子compID、適応プライマリ変換フラグapt_flag[compID]、およびプライマリ変換識別子pt_idx[compID]を入力とする。プライマリ変換選択部361は、それらの情報を参照して、プライマリ水平変換の変換タイプ識別子TrTypeIdxHおよびプライマリ垂直変換の変換タイプ識別子TrTypeIdxVを導出する。プライマリ変換選択部361は、導出したプライマリ水平変換の変換タイプ識別子TrTypeIdxHをプライマリ水平変換部362に供給する。また、プライマリ変換選択部361は、導出したプライマリ垂直変換の変換タイプ識別子TrTypeIdxVをプライマリ垂直変換部363に供給する。
The primary conversion selection unit 361 receives as input the prediction mode information PInfo, the component identifier compID, the adaptive primary conversion flag apt_flag [compID], and the primary conversion identifier pt_idx [compID]. The primary conversion selection unit 361 derives a conversion type identifier TrTypeIdxH for primary horizontal conversion and a conversion type identifier TrTypeIdxV for primary vertical conversion with reference to the information. The primary conversion selection unit 361 supplies the derived conversion type identifier TrTypeIdxH of the primary horizontal conversion to the primary horizontal conversion unit 362. In addition, the primary conversion selection unit 361 supplies the derived conversion type identifier TrTypeIdxV of the primary vertical conversion to the primary vertical conversion unit 363.
プライマリ水平変換部362は、予測残差D、プライマリ水平変換の変換タイプ識別子TrTypeIdxH、および変換ブロックのサイズに関する情報(図示せず)を入力とする。この変換ブロックのサイズに関する情報は、変換ブロックの水平方向または垂直方向の大きさ(係数の数)を示す自然数Nであってもよいし、変換ブロックの横幅を示すlog2TBWSize(横幅の対数値)であってもよい(N = 1 << log2TBWSize)。プライマリ水平変換部362は、予測残差Dに対して、変換タイプ識別子TrTypeIdxHと変換ブロックのサイズで定まるプライマリ水平変換Phorを実行し、プライマリ水平変換後の変換係数Coeff_Phorを導出する。プライマリ水平変換部362は、そのプライマリ水平変換後の変換係数Coeff_Phorをプライマリ垂直変換部363に供給する。
The primary horizontal conversion unit 362 receives as input the prediction residual D, the conversion type identifier TrTypeIdxH of the primary horizontal conversion, and information (not shown) on the size of the conversion block. The information on the size of the transform block may be a natural number N indicating the horizontal or vertical size (the number of coefficients) of the transform block, or log2TBWSize (the logarithmic value of the transverse width) indicating the lateral width of the transform block. (N あ っ = 1 << log2TBWSize). The primary horizontal transform unit 362 performs a primary horizontal transform Phor determined on the prediction residual D by the transform type identifier TrTypeIdxH and the size of the transform block, and derives a transform coefficient Coeff_Phor after the primary horizontal transform. The primary horizontal conversion unit 362 supplies the conversion coefficient Coeff_Phor after the primary horizontal conversion to the primary vertical conversion unit 363.
プライマリ垂直変換部363は、プライマリ水平変換後の変換係数Coeff_Phor、プライマリ垂直変換の変換タイプ識別子TrTypeIdxV、および変換ブロックのサイズに関する情報(図示せず)を入力とする。この変換ブロックのサイズに関する情報は、変換ブロックの水平方向または垂直方向の大きさ(係数の数)を示す自然数Nであってもよいし、変換ブロックの縦幅を示すlog2TBHSize(縦幅の対数値)であってもよい(N = 1 << log2TBHSize)。プライマリ垂直変換部363は、プライマリ水平変換後の変換係数Coeff_Phorに対して、変換タイプ識別子TrTypeIdxVと変換ブロックのサイズで定まるプライマリ垂直変換Pverを実行し、そのプライマリ垂直変換後の変換係数Coeff_Pverを導出する。プライマリ垂直変換部363は、そのプライマリ垂直変換後の変換係数Coeff_Pverを、プライマリ変換後の変換係数Coeff_Pとして、プライマリ変換部352の外部に出力する(セカンダリ変換部353に供給する)。
The primary vertical conversion unit 363 receives as input the conversion coefficient Coeff_Phor after the primary horizontal conversion, the conversion type identifier TrTypeIdxV of the primary vertical conversion, and information (not shown) on the size of the conversion block. The information on the size of the transform block may be a natural number N indicating the horizontal or vertical size (the number of coefficients) of the transform block, or log2TBHSize (the logarithmic value of the vertical width) indicating the vertical width of the transform block. ) (N = 1 << log2TBHSize). The primary vertical conversion unit 363 performs a primary vertical conversion Pver determined by the conversion type identifier TrTypeIdxV and the size of the conversion block on the conversion coefficient Coeff_Phor after the primary horizontal conversion, and derives the conversion coefficient Coeff_Pver after the primary vertical conversion. . The primary vertical conversion unit 363 outputs the conversion coefficient Coeff_Pver after the primary vertical conversion to the outside of the primary conversion unit 352 as the conversion coefficient Coeff_P after the primary conversion (supplies it to the secondary conversion unit 353).
<プライマリ水平変換部>
図24は、図23のプライマリ水平変換部362の主な構成例を示すブロック図である。図24に示されるように、プライマリ水平変換部362は、信号列抽出部371、1次元変換部372、スケーリング部373、クリップ部374、および2次元データ列生成部375を有する。 <Primary horizontal conversion unit>
FIG. 24 is a block diagram illustrating a main configuration example of the primaryhorizontal conversion unit 362 in FIG. As shown in FIG. 24, the primary horizontal conversion unit 362 includes a signal sequence extraction unit 371, a one-dimensional conversion unit 372, a scaling unit 373, a clip unit 374, and a two-dimensional data sequence generation unit 375.
図24は、図23のプライマリ水平変換部362の主な構成例を示すブロック図である。図24に示されるように、プライマリ水平変換部362は、信号列抽出部371、1次元変換部372、スケーリング部373、クリップ部374、および2次元データ列生成部375を有する。 <Primary horizontal conversion unit>
FIG. 24 is a block diagram illustrating a main configuration example of the primary
信号列抽出部371は、信号列抽出に関する処理を行う。例えば、信号列抽出部371は、プライマリ水平変換部362に入力される2次元データ列(行列)の入力係数データXin(予測残差D)を取得し、記憶する。信号列抽出部371は、その入力係数データXinの各行を1行ずつ抽出し、1次元信号列X1として1次元変換部372に供給する。
The signal sequence extraction unit 371 performs a process related to signal sequence extraction. For example, the signal sequence extraction unit 371 acquires and stores input coefficient data Xin (prediction residual D) of a two-dimensional data sequence (matrix) input to the primary horizontal conversion unit 362. Signal sequence extraction unit 371, each line of the input coefficient data Xin extracted one line, supplied as a one-dimensional signal sequence X 1 in the one-dimensional conversion unit 372.
1次元変換部372は、1次元変換に関する処理を行う。例えば、1次元変換部372は、プライマリ変換選択部361から供給される、プライマリ水平変換の変換タイプ識別子TrTypeIdxH、および変換ブロックのサイズに関する情報(log2TBWSizeおよびlog2TBHSize)を取得する。また、1次元変換部372は、信号列抽出部371から供給される1次元信号列X1を取得する。1次元変換部372は、その1次元信号列X1に対して、プライマリ水平変換の変換タイプ識別子TrTypeIdxHや、変換ブロックのサイズに関する情報(log2TBWSizeおよびlog2TBHSize)に対応する1次元変換を行い、1次元信号列X2を生成する。1次元変換部372は、その1次元信号列X2をスケーリング部373に供給する。
The one-dimensional conversion unit 372 performs processing related to one-dimensional conversion. For example, the one-dimensional conversion unit 372 acquires the conversion type identifier TrTypeIdxH of the primary horizontal conversion and information (log2TBWSize and log2TBHSize) regarding the size of the conversion block supplied from the primary conversion selection unit 361. Also, one-dimensional transform unit 372 obtains a one-dimensional signal sequence X 1 supplied from the signal sequence extraction unit 371. 1-dimensional conversion unit 372 performs for the one-dimensional signal sequence X 1, and conversion type identifier TrTypeIdxH primary horizontal transform, a one-dimensional transformation corresponding to the information (Log2TBWSize and Log2TBHSize) about the size of the transform block, one-dimensional generating a signal sequence X 2. 1-dimensional conversion unit 372 supplies the one-dimensional signal sequence X 2 to the scaling unit 373.
例えば、信号列抽出部371は、係数データの処理対象ブロックより1次元信号列X1を抽出する。1次元変換部372の符号反転部102は、信号列抽出部371により抽出された1次元信号列X1に対して、符号反転操作を行う。
For example, the signal sequence extraction unit 371 extracts one-dimensional signal sequence X 1 from the target block of coefficient data. Sign inversion unit 102 of the one-dimensional conversion unit 372, to the extracted by the signal string extraction unit 371 one-dimensional signal sequence X 1, performs sign inversion operation.
また、例えば、2次元データ列生成部375は、1次元変換部372のフリップ部104によりフリップ操作が行われた1次元信号列X2(に対応する1次元信号列X4)を用いて2次元データ列を生成する。
Further, for example, the two-dimensional data sequence generation unit 375 uses the one-dimensional signal sequence X 2 (corresponding to the one-dimensional signal sequence X 4 ) on which the flip operation has been performed by the flip unit 104 of the one-dimensional conversion unit 372. Generate a dimensional data string.
スケーリング部373は、スケーリングに関する処理を行う。例えば、スケーリング部373は、1次元変換部372から供給される1次元信号列X2を取得する。スケーリング部373は、その1次元信号列X2の各係数を、所定のシフト量fwdShift1でスケーリングして1次元信号列X3を生成する。スケーリング部373は、その1次元信号列X3をクリップ部374に供給する。
The scaling unit 373 performs processing related to scaling. For example, the scaling unit 373 obtains a one-dimensional signal sequence X 2 supplied from the one-dimensional conversion unit 372. Scaling unit 373, the coefficients of the one-dimensional signal sequence X 2, scaled by a predetermined shift amount fwdShift1 generating a one-dimensional signal sequence X 3. Scaling unit 373 supplies the one-dimensional signal sequence X 3 in the clip portion 374.
クリップ部374は、クリップ処理に関する処理を行う。例えば、クリップ部374は、スケーリング部373から供給される1次元信号列X3を取得する。クリップ部374は、その1次元信号列X3の各係数を、最小値minCoefValおよび最大値maxCoefValを用いてクリップし、1次元信号列X4を生成する。クリップ部374は、その1次元信号列X4を2次元データ列生成部375に供給する。
The clip unit 374 performs processing related to clip processing. For example, the clip portion 374 obtains a one-dimensional signal sequence X 3 supplied from the scaling unit 373. Clip portion 374, each coefficient of the one-dimensional signal sequence X 3, clipped using the minimum value minCoefVal and maximum MaxCoefVal, to generate a one-dimensional signal sequence X 4. Clip portion 374 supplies the one-dimensional signal sequence X 4 in the two-dimensional data string generator 375.
2次元データ列生成部375は、2次元データ列の生成に関する処理を行う。例えば、2次元データ列生成部375は、クリップ部374から供給される1次元信号列X4を記憶する。2次元データ列生成部375は、その1次元信号列X4を所定数ずつまとめて2次元データ列である出力係数データXoutを生成する。2次元データ列生成部375は、その出力係数データXout(プライマリ水平変換後の変換係数Coeff_Phor)をプライマリ水平変換部362の外部に出力する(プライマリ垂直変換部363に供給する)。
The two-dimensional data string generation unit 375 performs processing related to generation of a two-dimensional data string. For example, 2-dimensional data string generator 375 stores a one-dimensional signal sequence X 4 supplied from the clip portion 374. 2-dimensional data string generator 375 generates an output coefficient data Xout is collectively two-dimensional data sequence to its one-dimensional signal sequence X 4 by a predetermined number. The two-dimensional data string generation unit 375 outputs the output coefficient data Xout (the conversion coefficient Coeff_Phor after the primary horizontal conversion) to the outside of the primary horizontal conversion unit 362 (supplies it to the primary vertical conversion unit 363).
信号列抽出部371乃至2次元データ列生成部375の各処理部は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
Each processing unit of the signal sequence extraction unit 371 to the two-dimensional data sequence generation unit 375 has an arbitrary configuration. For example, each processing unit may be configured by a logic circuit that realizes the above-described processing. In addition, each processing unit may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program by using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing. Of course, each processing unit may have both configurations, and a part of the above-described processing may be realized by a logic circuit, and the other may be realized by executing a program. The configuration of each processing unit may be independent from each other. For example, some of the processing units may realize a part of the above-described processing by a logic circuit, and some of the other processing units may execute a program. May be implemented, and another processing unit may implement the above-described processing by both the logic circuit and the execution of the program.
<プライマリ垂直変換部>
図25は、図23のプライマリ垂直変換部363の主な構成例を示すブロック図である。図25に示されるように、プライマリ垂直変換部363は、信号列抽出部381、1次元変換部382、スケーリング部383、クリップ部384、および2次元データ列生成部385を有する。 <Primary vertical conversion unit>
FIG. 25 is a block diagram illustrating a main configuration example of the primaryvertical conversion unit 363 of FIG. As shown in FIG. 25, the primary vertical conversion unit 363 includes a signal sequence extraction unit 381, a one-dimensional conversion unit 382, a scaling unit 383, a clip unit 384, and a two-dimensional data sequence generation unit 385.
図25は、図23のプライマリ垂直変換部363の主な構成例を示すブロック図である。図25に示されるように、プライマリ垂直変換部363は、信号列抽出部381、1次元変換部382、スケーリング部383、クリップ部384、および2次元データ列生成部385を有する。 <Primary vertical conversion unit>
FIG. 25 is a block diagram illustrating a main configuration example of the primary
信号列抽出部381は、信号列抽出に関する処理を行う。例えば、信号列抽出部381は、プライマリ垂直変換部363に入力される2次元データ列(行列)の入力係数データXin(プライマリ水平変換後の変換係数Coeff_Phor)を取得し、記憶する。信号列抽出部381は、その入力係数データXinの各列を1列ずつ抽出し、1次元信号列X1として1次元変換部382に供給する。
The signal sequence extraction unit 381 performs processing related to signal sequence extraction. For example, the signal sequence extraction unit 381 acquires and stores input coefficient data Xin (transformation coefficient Coeff_Phor after primary horizontal transformation) of a two-dimensional data sequence (matrix) input to the primary vertical transformation unit 363. Signal sequence extraction unit 381, each column of the input coefficient data Xin extracted one by one row, and supplies a 1-dimensional signal sequence X 1 in the one-dimensional conversion unit 382.
1次元変換部382は、1次元変換に関する処理を行う。例えば、1次元変換部382は、プライマリ変換選択部361から供給される、プライマリ垂直変換の変換タイプ識別子TrTypeIdxV、および変換ブロックのサイズに関する情報(log2TBWSizeおよびlog2TBHSize)を取得する。また、1次元変換部382は、信号列抽出部381から供給される1次元信号列X1を取得する。1次元変換部382は、その1次元信号列X1に対して、プライマリ垂直変換の変換タイプ識別子TrTypeIdxVや、変換ブロックのサイズに関する情報(log2TBWSizeおよびlog2TBHSize)に対応する1次元変換を行い、1次元信号列X2を生成する。1次元変換部382は、その1次元信号列X2をスケーリング部383に供給する。
One-dimensional conversion section 382 performs processing related to one-dimensional conversion. For example, the one-dimensional conversion unit 382 acquires the conversion type identifier TrTypeIdxV of the primary vertical conversion and information (log2TBWSize and log2TBHSize) regarding the size of the conversion block, which are supplied from the primary conversion selection unit 361. Also, one-dimensional transform unit 382 obtains a one-dimensional signal sequence X 1 supplied from the signal sequence extraction unit 381. 1-dimensional conversion unit 382 performs for the one-dimensional signal sequence X 1, and conversion type identifier TrTypeIdxV primary vertical conversion, the one-dimensional transform corresponding to the information (Log2TBWSize and Log2TBHSize) about the size of the transform block, one-dimensional generating a signal sequence X 2. 1-dimensional conversion unit 382 supplies the one-dimensional signal sequence X 2 to the scaling unit 383.
スケーリング部383は、スケーリングに関する処理を行う。例えば、スケーリング部383は、1次元変換部382から供給される1次元信号列X2を取得する。スケーリング部383は、その1次元信号列X2の各係数を、所定のシフト量fwdShift2でスケーリングして1次元信号列X3を生成する。スケーリング部383は、その1次元信号列X3をクリップ部384に供給する。
The scaling unit 383 performs a process related to scaling. For example, the scaling unit 383 obtains a one-dimensional signal sequence X 2 supplied from the one-dimensional conversion unit 382. Scaling unit 383, the coefficients of the one-dimensional signal sequence X 2, scaled by a predetermined shift amount fwdShift2 generating a one-dimensional signal sequence X 3. Scaling unit 383 supplies the one-dimensional signal sequence X 3 in the clip portion 384.
クリップ部384は、クリップ処理に関する処理を行う。例えば、クリップ部384は、スケーリング部383から供給される1次元信号列X3を取得する。クリップ部384は、その1次元信号列X3の各係数を、最小値minCoefValおよび最大値maxCoefValを用いてクリップし、1次元信号列X4を生成する。クリップ部384は、その1次元信号列X4を2次元データ列生成部385に供給する。
The clip unit 384 performs processing related to clip processing. For example, the clip portion 384 obtains a one-dimensional signal sequence X 3 supplied from the scaling unit 383. Clip portion 384, each coefficient of the one-dimensional signal sequence X 3, clipped using the minimum value minCoefVal and maximum MaxCoefVal, to generate a one-dimensional signal sequence X 4. Clip portion 384 supplies the one-dimensional signal sequence X 4 in the two-dimensional data string generator 385.
2次元データ列生成部385は、2次元データ列の生成に関する処理を行う。例えば、2次元データ列生成部385は、クリップ部384から供給される1次元信号列X4を記憶する。2次元データ列生成部385は、その1次元信号列X4を所定数ずつまとめて2次元データ列である出力係数データXoutを生成する。2次元データ列生成部385は、その出力係数データXout(プライマリ変換後の変換係数Coeff_P(プライマリ垂直変換後の変換係数Coeff_Pver))をプライマリ垂直変換部363の外部に出力する(セカンダリ変換部353に供給する)。
The two-dimensional data string generation unit 385 performs processing related to generation of a two-dimensional data string. For example, 2-dimensional data string generator 385 stores a one-dimensional signal sequence X 4 supplied from the clip portion 384. 2-dimensional data string generator 385 generates an output coefficient data Xout is collectively two-dimensional data sequence to its one-dimensional signal sequence X 4 by a predetermined number. The two-dimensional data sequence generation unit 385 outputs the output coefficient data Xout (the conversion coefficient Coeff_P after the primary conversion (the conversion coefficient Coeff_Pver after the primary vertical conversion)) to the outside of the primary vertical conversion unit 363 (to the secondary conversion unit 353). Supply).
信号列抽出部381乃至2次元データ列生成部385の各処理部は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
Each processing unit of the signal sequence extraction unit 381 to the two-dimensional data sequence generation unit 385 has an arbitrary configuration. For example, each processing unit may be configured by a logic circuit that realizes the above-described processing. In addition, each processing unit may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program by using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing. Of course, each processing unit may have both configurations, and a part of the above-described processing may be realized by a logic circuit, and the other may be realized by executing a program. The configuration of each processing unit may be independent from each other. For example, some of the processing units may realize a part of the above-described processing by a logic circuit, and some of the other processing units may execute a program. May be implemented, and another processing unit may implement the above-described processing by both the logic circuit and the execution of the program.
<本技術の適用>
以上のような構成の画像符号化装置300において、例えば、1次元変換部372(図24)や1次元変換部382(図25)として、第1の実施の形態において説明した変換装置100(図6)を適用するようにしてもよい。また、1次元変換部372(図24)や1次元変換部382(図25)として、第3の実施の形態において説明した変換装置100(図15)を適用するようにしてもよい。さらに、1次元変換部372(図24)や1次元変換部382(図25)として、第5の実施の形態において説明した変換装置100を適用するようにしてもよい。 <Application of this technology>
In theimage encoding device 300 having the above-described configuration, for example, the one-dimensional conversion unit 372 (FIG. 24) and the one-dimensional conversion unit 382 (FIG. 25) are used as the conversion device 100 (FIG. 24) described in the first embodiment. 6) may be applied. The conversion device 100 (FIG. 15) described in the third embodiment may be applied as the one-dimensional conversion unit 372 (FIG. 24) or the one-dimensional conversion unit 382 (FIG. 25). Furthermore, the conversion device 100 described in the fifth embodiment may be applied as the one-dimensional conversion unit 372 (FIG. 24) or the one-dimensional conversion unit 382 (FIG. 25).
以上のような構成の画像符号化装置300において、例えば、1次元変換部372(図24)や1次元変換部382(図25)として、第1の実施の形態において説明した変換装置100(図6)を適用するようにしてもよい。また、1次元変換部372(図24)や1次元変換部382(図25)として、第3の実施の形態において説明した変換装置100(図15)を適用するようにしてもよい。さらに、1次元変換部372(図24)や1次元変換部382(図25)として、第5の実施の形態において説明した変換装置100を適用するようにしてもよい。 <Application of this technology>
In the
つまり、例えば、1次元変換部372や1次元変換部382は、1次元信号列X1に対して、図7の表等を参照して説明したように、各変換タイプの1次元変換を行うようにする。また、例えば、1次元変換部372や1次元変換部382は、図12の表等を参照して説明したように、行列演算に用いるベース変換行列を導出するようにする。
That is, for example, the 1-dimensional conversion unit 372 and the one-dimensional transform unit 382, for one-dimensional signal sequence X 1, as described with reference to the tables, and the like in FIG. 7, performs one-dimensional transform of each conversion type To do. Further, for example, the one-dimensional conversion unit 372 and the one-dimensional conversion unit 382 derive the base conversion matrix used for the matrix operation as described with reference to the table in FIG.
このような構成とすることにより、1次元変換部372や1次元変換部382は、符号化される画像データ(の予測残差D)に対するプライマリ変換(における水平方向または垂直方向の1次元変換)において、第1の実施の形態、第3の実施の形態、または第5の実施の形態の場合と同様の効果を得ることができる。つまり、画像符号化装置300は、その1次元変換の構成の複雑化を抑制する(構成をより簡易化する)ことができる。すなわち、画像符号化装置300は、その1次元変換をより容易に行うことができる。したがって、画像符号化装置300は、回路規模や処理の負荷の増大を抑制し、実装コストの増大を抑制することができる。
With such a configuration, the one-dimensional conversion unit 372 and the one-dimensional conversion unit 382 perform the primary conversion (the one-dimensional conversion in the horizontal or vertical direction) on (the prediction residual D of) the image data to be encoded. In this case, the same effect as in the case of the first embodiment, the third embodiment, or the fifth embodiment can be obtained. That is, the image encoding device 300 can suppress the complexity of the configuration of the one-dimensional conversion (simplify the configuration). That is, the image encoding device 300 can more easily perform the one-dimensional conversion. Therefore, the image encoding device 300 can suppress an increase in circuit scale and processing load and an increase in mounting cost.
<画像符号化処理の流れ>
次に、以上のような画像符号化装置300により実行される各処理の流れについて説明する。最初に、図26のフローチャートを参照して、画像符号化処理の流れの例を説明する。 <Flow of image encoding process>
Next, the flow of each process executed by theimage encoding device 300 as described above will be described. First, an example of the flow of the image encoding process will be described with reference to the flowchart in FIG.
次に、以上のような画像符号化装置300により実行される各処理の流れについて説明する。最初に、図26のフローチャートを参照して、画像符号化処理の流れの例を説明する。 <Flow of image encoding process>
Next, the flow of each process executed by the
画像符号化処理が開始されると、ステップS301において、並べ替えバッファ311は、制御部301に制御されて、入力された動画像データのフレームの順を表示順から符号化順に並べ替える。
When the image encoding process starts, in step S301, the rearrangement buffer 311 is controlled by the control unit 301 to rearrange the order of the frames of the input moving image data from the display order to the encoding order.
ステップS302において、制御部301は、並べ替えバッファ311が保持する入力画像に対して、処理単位を設定する(ブロック分割を行う)。
In step S302, the control unit 301 sets a processing unit (performs block division) for the input image held by the rearrangement buffer 311.
ステップS303において、制御部301は、並べ替えバッファ311が保持する入力画像についての符号化パラメータを決定(設定)する。
In step S303, the control unit 301 determines (sets) an encoding parameter for the input image held by the rearrangement buffer 311.
ステップS304において、予測部322は、予測処理を行い、最適な予測モードの予測画像等を生成する。例えば、この予測処理において、予測部322は、イントラ予測を行って最適なイントラ予測モードの予測画像等を生成し、インター予測を行って最適なインター予測モードの予測画像等を生成し、それらの中から、コスト関数値等に基づいて最適な予測モードを選択する。
In step S304, the prediction unit 322 performs a prediction process to generate a prediction image or the like in an optimal prediction mode. For example, in this prediction processing, the prediction unit 322 performs intra prediction to generate a prediction image or the like in an optimal intra prediction mode, performs inter prediction to generate a prediction image or the like in an optimal inter prediction mode, From among them, an optimal prediction mode is selected based on a cost function value or the like.
ステップS305において、演算部312は、入力画像と、ステップS304の予測処理により選択された最適なモードの予測画像との差分を演算する。つまり、演算部312は、入力画像と予測画像との予測残差Dを生成する。このようにして求められた予測残差Dは、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
In step S305, the calculation unit 312 calculates the difference between the input image and the prediction image in the optimal mode selected by the prediction processing in step S304. That is, the calculation unit 312 generates a prediction residual D between the input image and the prediction image. The data amount of the prediction residual D obtained in this manner is reduced as compared with the original image data. Therefore, the data amount can be compressed as compared with the case where the image is directly encoded.
ステップS306において、直交変換部313は、ステップS305の処理により生成された予測残差Dに対して直交変換処理を行い、変換係数Coeffを導出する。
に お い て In step S306, the orthogonal transform unit 313 performs an orthogonal transform process on the prediction residual D generated by the process in step S305, and derives a transform coefficient Coeff.
ステップS307において、量子化部314は、制御部301により算出された量子化パラメータを用いる等して、ステップS306の処理により得られた変換係数Coeffを量子化し、量子化変換係数レベルlevelを導出する。
In step S307, the quantization unit 314 quantizes the transform coefficient Coeff obtained by the process in step S306 by using the quantization parameter calculated by the control unit 301, and derives a quantized transform coefficient level level. .
ステップS308において、逆量子化部317は、ステップS307の処理により生成された量子化変換係数レベルlevelを、そのステップS307の量子化の特性に対応する特性で逆量子化し、変換係数Coeff_IQを導出する。
In step S308, the inverse quantization unit 317 inversely quantizes the quantized transform coefficient level generated by the process in step S307 by using a characteristic corresponding to the quantization characteristic in step S307, and derives a transform coefficient Coeff_IQ. .
ステップS309において、逆直交変換部318は、ステップS308の処理により得られた変換係数Coeff_IQを、ステップS306の直交変換処理に対応する方法で逆直交変換し、予測残差D'を導出する。なお、この逆直交変換処理は、復号側において行われる逆直交変換処理(後述する)と同様であるので、このステップS309の逆直交変換処理については、復号側について行う説明(後述する)を適用することができる。
In step S309, the inverse orthogonal transform unit 318 performs inverse orthogonal transform on the transform coefficient Coeff_IQ obtained in step S308 by a method corresponding to the orthogonal transform process in step S306, and derives a prediction residual D ′. Since the inverse orthogonal transform process is the same as the inverse orthogonal transform process (described later) performed on the decoding side, the description (described later) performed on the decoding side is applied to the inverse orthogonal transform process in step S309. can do.
ステップS310において、演算部319は、ステップS309の処理により導出された予測残差D'に、ステップS304の予測処理により得られた予測画像を加算することにより、局所的に復号された復号画像を生成する。
In step S310, the arithmetic unit 319 adds the prediction image obtained by the prediction processing in step S304 to the prediction residual D ′ derived in the processing in step S309, to obtain a locally decoded image. Generate.
ステップS311において、インループフィルタ部320は、ステップS310の処理により導出された、局所的に復号された復号画像に対して、インループフィルタ処理を行う。
In step S311, the in-loop filter unit 320 performs an in-loop filter process on the locally decoded image derived in step S310.
ステップS312において、フレームメモリ321は、ステップS310の処理により導出された、局所的に復号された復号画像や、ステップS312においてフィルタ処理された、局所的に復号された復号画像を記憶する。
In step S312, the frame memory 321 stores the locally decoded image derived in step S310 and the locally decoded image filtered in step S312.
ステップS313において、符号化部315は、ステップS307の処理により得られた量子化変換係数レベルlevelを符号化する。例えば、符号化部315は、画像に関する情報である量子化変換係数レベルlevelを、算術符号化等により符号化し、符号化データを生成する。また、このとき、符号化部315は、各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo)を符号化する。さらに、符号化部315は、量子化変換係数レベルlevelから残差情報RInfoを導出し、その残差情報RInfoを符号化する。
に お い て In step S313, the encoding unit 315 encodes the quantized transform coefficient level level obtained by the processing in step S307. For example, the encoding unit 315 encodes a quantized transform coefficient level, which is information about an image, by arithmetic encoding or the like, and generates encoded data. At this time, the encoding unit 315 encodes various encoding parameters (header information Hinfo, prediction mode information Pinfo, and conversion information Tinfo). Further, the encoding unit 315 derives residual information RInfo from the quantized transform coefficient level level, and encodes the residual information RInfo.
ステップS314において、蓄積バッファ316は、このようにして得られた符号化データを蓄積し、例えばビットストリームとして、それを画像符号化装置300の外部に出力する。このビットストリームは、例えば、伝送路や記録媒体を介して復号側に伝送される。また、レート制御部323は、必要に応じてレート制御を行う。
In step S314, the accumulation buffer 316 accumulates the encoded data thus obtained, and outputs the encoded data to the outside of the image encoding device 300, for example, as a bit stream. This bit stream is transmitted to the decoding side via a transmission path or a recording medium, for example. Further, the rate control unit 323 performs rate control as needed.
ステップS314の処理が終了すると、画像符号化処理が終了する。
す る と When the processing in step S314 ends, the image encoding processing ends.
<直交変換処理の流れ>
次に図26のステップS306において実行される直交変換処理の流れの例を、図27のフローチャートを参照して説明する。 <Flow of orthogonal transformation processing>
Next, an example of the flow of the orthogonal transformation process executed in step S306 in FIG. 26 will be described with reference to the flowchart in FIG.
次に図26のステップS306において実行される直交変換処理の流れの例を、図27のフローチャートを参照して説明する。 <Flow of orthogonal transformation processing>
Next, an example of the flow of the orthogonal transformation process executed in step S306 in FIG. 26 will be described with reference to the flowchart in FIG.
直交変換処理が開始されると、スイッチ351は、ステップS331において、変換スキップフラグts_flagが2D_TS(2次元変換スキップを示す場合)(例えば1(真))、または、変換量子化バイパスフラグtransquant_bypass_flagが1(真)、であるか否かを判定する。変換スキップフラグts_flagが2D_TS(例えば1(真))、または、変換量子化バイパスフラグが1(真)であると判定された場合、直交変換処理が終了し、処理は図26に戻る。この場合、直交変換処理(プライマリ変換やセカンダリ変換)が省略され、入力された予測残差Dが変換係数Coeffとされる。
When the orthogonal transform processing is started, the switch 351 determines in step S331 that the transform skip flag ts_flag is 2D_TS (when indicating a two-dimensional transform skip) (for example, 1 (true)) or the transform quantization bypass flag transquant_bypass_flag is 1 (True), it is determined whether or not. When the transform skip flag ts_flag is determined to be 2D_TS (for example, 1 (true)) or the transform quantization bypass flag is 1 (true), the orthogonal transform process ends, and the process returns to FIG. In this case, the orthogonal transform processing (primary transform and secondary transform) is omitted, and the input prediction residual D is used as the transform coefficient Coeff.
また、図27のステップS331において、変換スキップフラグts_flagが2D_TSでなく(2次元変換スキップでなく)(例えば0(偽))、かつ、変換量子化バイパスフラグtransquant_bypass_flagが0(偽)であると判定された場合、処理はステップS332に進む。この場合、プライマリ変換処理およびセカンダリ変換処理が行われる。
Also, in step S331 of FIG. 27, it is determined that the conversion skip flag ts_flag is not 2D_TS (not a two-dimensional conversion skip) (for example, 0 (false)) and the transform quantization bypass flag transquant_bypass_flag is 0 (false). If so, the process proceeds to step S332. In this case, a primary conversion process and a secondary conversion process are performed.
ステップS332において、プライマリ変換部352は、入力された予測残差Dに対して、コンポーネント識別子compIDで指定される適応プライマリ変換情報に基づいてプライマリ変換処理を行い、プライマリ変換後の変換係数Coeff_Pを導出する。
In step S332, the primary transform unit 352 performs a primary transform process on the input prediction residual D based on the adaptive primary transform information specified by the component identifier compID, and derives a transform coefficient Coeff_P after the primary transform. I do.
ステップS333において、セカンダリ変換部353は、変換係数Coeff_Pに対してセカンダリ変換処理を行い、セカンダリ変換後の変換係数Coeff_S(変換係数Coeff)を導出する。
In step S333, the secondary conversion unit 353 performs a secondary conversion process on the conversion coefficient Coeff_P, and derives a conversion coefficient Coeff_S (transform coefficient Coeff) after the secondary conversion.
ステップS333の処理が終了すると直交変換処理が終了する。
(4) When the processing in step S333 ends, the orthogonal transformation processing ends.
<プライマリ変換処理の流れ>
次に、図27のステップS332において実行されるプライマリ変換処理の流れの例を、図28のフローチャートを参照して説明する。 <Flow of primary conversion process>
Next, an example of the flow of the primary conversion process executed in step S332 of FIG. 27 will be described with reference to the flowchart of FIG.
次に、図27のステップS332において実行されるプライマリ変換処理の流れの例を、図28のフローチャートを参照して説明する。 <Flow of primary conversion process>
Next, an example of the flow of the primary conversion process executed in step S332 of FIG. 27 will be described with reference to the flowchart of FIG.
プライマリ変換処理が開始されると、プライマリ変換部352のプライマリ変換選択部361(図23)は、ステップS341において、プライマリ水平変換の変換タイプ識別子TrTypeIdxH(および該識別子で指定される変換タイプTrTypeH)と、プライマリ垂直変換の変換タイプ識別子TrTypeIdxV(および該識別子で指定される変換タイプTrTypeV)とを、それぞれ、上述したように選択する。
When the primary conversion process is started, the primary conversion selecting unit 361 (FIG. 23) of the primary conversion unit 352 determines in step S341 that the conversion type identifier TrTypeIdxH of the primary horizontal conversion (and the conversion type TrTypeH specified by the identifier). , And the conversion type identifier TrTypeIdxV of the primary vertical conversion (and the conversion type TrTypeV specified by the identifier), respectively, are selected as described above.
ステップS342において、プライマリ水平変換部362は、ステップS341において得られたプライマリ水平変換の変換タイプ識別子TrTypeIdxHに対応するプライマリ水平変換処理を予測残差Dに対して行い、プライマリ水平変換後の変換係数Coeff_Phorを導出する。
In step S342, the primary horizontal conversion unit 362 performs primary horizontal conversion processing corresponding to the conversion type identifier TrTypeIdxH of the primary horizontal conversion obtained in step S341 on the prediction residual D, and performs a conversion coefficient Coeff_Phor after the primary horizontal conversion. Is derived.
ステップS343において、プライマリ垂直変換部363は、ステップS341において得られたプライマリ垂直変換の変換タイプ識別子TrTypeIdxVに対応するプライマリ垂直変換処理をプライマリ水平変換結果(プライマリ水平変換後の変換係数Coeff_Phor)に対して行い、プライマリ垂直変換後の変換係数Coeff_Pver(プライマリ変換後の変換係数Coeff_P)を導出する。
In step S343, the primary vertical conversion unit 363 performs the primary vertical conversion processing corresponding to the conversion type identifier TrTypeIdxV of the primary vertical conversion obtained in step S341 on the primary horizontal conversion result (the conversion coefficient Coeff_Phor after the primary horizontal conversion). Then, a conversion coefficient Coeff_Pver after the primary vertical conversion (a conversion coefficient Coeff_P after the primary conversion) is derived.
ステップS343の処理が終了すると、プライマリ変換処理が終了し、処理は図27に戻る。
す る と When the processing in step S343 ends, the primary conversion processing ends, and the processing returns to FIG.
<プライマリ水平変換処理の流れ>
次に、図28のステップS342において実行されるプライマリ水平変換処理の流れの例を、図29のフローチャートを参照して説明する。 <Flow of primary horizontal conversion process>
Next, an example of the flow of the primary horizontal conversion process executed in step S342 in FIG. 28 will be described with reference to the flowchart in FIG.
次に、図28のステップS342において実行されるプライマリ水平変換処理の流れの例を、図29のフローチャートを参照して説明する。 <Flow of primary horizontal conversion process>
Next, an example of the flow of the primary horizontal conversion process executed in step S342 in FIG. 28 will be described with reference to the flowchart in FIG.
プライマリ水平変換処理が開始されると、プライマリ水平変換部362の信号列抽出部371(図24)は、ステップS351において、2次元データ列である入力係数データXin(予測残差D)を取得し、記憶する(保持する)。
When the primary horizontal conversion process is started, the signal sequence extraction unit 371 (FIG. 24) of the primary horizontal conversion unit 362 acquires input coefficient data Xin (prediction residual D) as a two-dimensional data sequence in step S351. , Memorize (hold).
ステップS352において、信号列抽出部371は、例えば以下の式(29)のように、保持している入力係数データXinの処理対象の行(j)を1次元信号列X1として抽出する。
In step S352, the signal sequence extraction unit 371, for example, as shown in the following expression (29), and extracts a row of the process target of the input coefficient data Xin holding the (j) as a one-dimensional signal sequence X 1.
ステップS353において、1次元変換部372は、変換処理を実行し、変換タイプ識別子trTypeIdxHと変換サイズ(nTbS)に応じたベース変換行列Tbaseを用いて、1次元信号列X1に対する1次元変換を行う。
In step S353, one-dimensional conversion unit 372 performs conversion processing using the base transform matrix T base in accordance with the converted type identifier trTypeIdxH the transform size (NTBS), a one-dimensional transformation for the one-dimensional signal sequence X 1 Do.
ステップS354において、スケーリング部373は、例えば、以下の式(30)のように、1次元信号列X2の各係数X2[i]をシフト量fwdShift1でスケーリングし、1次元信号列X3を導出する。
In step S354, the scaling unit 373, for example, as shown in the following expression (30), scaling the coefficients X 2 of the one-dimensional signal sequence X 2 [i] in the shift amount FwdShift1, a one-dimensional signal sequence X 3 Derive.
ステップS355において、クリップ部374は、例えば、以下の式(31)のように、1次元信号列X3の各係数X3[i]を、最小値minCoefValと最大値maxCoefValとの間にクリップし、1次元信号列X4を導出する。
In step S355, the clip portion 374, for example, as shown in the following expression (31), the coefficients of the one-dimensional signal sequence X 3 X 3 [i], clipped between the minimum minCoefVal and maximum maxCoefVal , to derive a one-dimensional signal sequence X 4.
ステップS356において、2次元データ列生成部375は、1次元信号列X4を用いて2次元データ列Xoutを生成する。つまり、2次元データ列生成部375は、1次元信号列X4を保持(記憶)し、所定の列数分の1次元信号列X4をまとめることにより、2次元データ列Xoutを生成する。この処理は、例えば、以下の式(32)のように表すことができる。
In step S356, the two-dimensional data array generating unit 375 generates two-dimensional data string Xout by using a one-dimensional signal sequence X 4. That is, two-dimensional data string generator 375, holding a one-dimensional signal sequence X 4 and (storage), by assembling a predetermined column fraction 1 dimensional signal sequence X 4, to produce a 2-dimensional data string Xout. This processing can be represented, for example, by the following equation (32).
ステップS357において、2次元データ列生成部375は、ステップS352乃至ステップS357の各処理を、全ての行に対して行ったか否かを判定する。すなわち、ステップS352乃至ステップS357の各処理は、ステップS351において保持された入力データXinの各行について行われる。2次元データ列生成部375は、その全ての行を処理したか否かを判定する。
(2) In step S357, the two-dimensional data string generation unit 375 determines whether or not each processing in steps S352 to S357 has been performed for all rows. That is, the processes in steps S352 to S357 are performed for each row of the input data Xin held in step S351. The two-dimensional data string generation unit 375 determines whether or not all the rows have been processed.
未処理の行が存在すると判定された場合、処理はステップS352に戻り、次の未処理の行を処理対象として、それ以降の処理を繰り返す。また、ステップS357において全ての行を処理したと判定された場合、2次元データ列生成部375は、生成した2次元データ列Xout(プライマリ水平変換後の変換係数Coeff_Phor)をプライマリ垂直変換部363の外部に出力する(プライマリ垂直変換部363に供給する)。2次元データ列Xoutが出力されると、プライマリ水平変換処理が終了し、処理は図28に戻る。
If it is determined that there is an unprocessed line, the process returns to step S352, and the subsequent process is repeated for the next unprocessed line. If it is determined in step S357 that all the rows have been processed, the two-dimensional data sequence generation unit 375 converts the generated two-dimensional data sequence Xout (the conversion coefficient Coeff_Phor after the primary horizontal conversion) into the primary vertical conversion unit 363. It is output to the outside (supplied to the primary vertical conversion unit 363). When the two-dimensional data string Xout is output, the primary horizontal conversion processing ends, and the processing returns to FIG.
<プライマリ垂直変換処理の流れ>
次に、図28のステップS343において実行されるプライマリ垂直変換処理の流れの例を、図30のフローチャートを参照して説明する。 <Flow of primary vertical conversion processing>
Next, an example of the flow of the primary vertical conversion process executed in step S343 of FIG. 28 will be described with reference to the flowchart of FIG.
次に、図28のステップS343において実行されるプライマリ垂直変換処理の流れの例を、図30のフローチャートを参照して説明する。 <Flow of primary vertical conversion processing>
Next, an example of the flow of the primary vertical conversion process executed in step S343 of FIG. 28 will be described with reference to the flowchart of FIG.
プライマリ垂直変換処理が開始されると、プライマリ垂直変換部363の信号列抽出部381(図25)は、ステップS361において、2次元データ列である入力係数データXin(プライマリ水平変換後の変換係数Coeff_Phor)を取得し、記憶する(保持する)。
When the primary vertical conversion process is started, the signal sequence extraction unit 381 (FIG. 25) of the primary vertical conversion unit 363 determines in step S361 that the input coefficient data Xin (the conversion coefficient Coeff_Phor after the primary horizontal conversion) is a two-dimensional data sequence. ) Is acquired and stored (held).
ステップS362において、信号列抽出部381は、例えば以下の式(33)のように、保持している入力係数データXinの処理対象の列(j)を1次元信号列X1として抽出する。
In step S362, the signal sequence extraction unit 381, for example, as shown in the following expression (33), extracts the column to be processed of the input coefficient data Xin holding the (j) as a one-dimensional signal sequence X 1.
ステップS363において、1次元変換部382は、変換処理を実行し、変換タイプ識別子trTypeIdxVと変換サイズ(nTbS)に応じたベース変換行列Tbaseを用いて、1次元信号列X1に対する1次元変換を行う。
In step S363, one-dimensional conversion unit 382 performs conversion processing using the base transform matrix T base in accordance with the converted type identifier trTypeIdxV the transform size (NTBS), a one-dimensional transformation for the one-dimensional signal sequence X 1 Do.
ステップS364において、スケーリング部383は、例えば、以下の式(34)のように、1次元信号列X2の各係数X2[i]をシフト量fwdShift2でスケーリングし、1次元信号列X3を導出する。
In step S364, the scaling unit 383, for example, as shown in the following expression (34), scaling the coefficients X 2 of the one-dimensional signal sequence X 2 [i] in the shift amount FwdShift2, a one-dimensional signal sequence X 3 Derive.
ステップS365において、クリップ部384は、例えば、上述の式(31)のように、1次元信号列X3の各係数X3[i]を、最小値minCoefValと最大値maxCoefValとの間にクリップし、1次元信号列X4を導出する。
In step S365, the clipping unit 384 clips each coefficient X 3 [i] of the one-dimensional signal sequence X 3 between the minimum value minCoefVal and the maximum value maxCoefVal, for example, as in Expression (31) above. , to derive a one-dimensional signal sequence X 4.
ステップS366において、2次元データ列生成部385は、1次元信号列X4を用いて2次元データ列Xoutを生成する。つまり、2次元データ列生成部385は、1次元信号列X4を保持(記憶)し、所定の列数分の1次元信号列X4をまとめることにより、2次元データ列Xoutを生成する。この処理は、例えば、以下の式(35)のように表すことができる。
In step S366, the two-dimensional data array generating unit 385 generates two-dimensional data string Xout by using a one-dimensional signal sequence X 4. That is, two-dimensional data string generator 385, holding a one-dimensional signal sequence X 4 and (storage), by assembling a predetermined column fraction 1 dimensional signal sequence X 4, to produce a 2-dimensional data string Xout. This processing can be represented, for example, by the following equation (35).
ステップS367において、2次元データ列生成部385は、ステップS362乃至ステップS367の各処理を、全ての列に対して行ったか否かを判定する。すなわち、ステップS362乃至ステップS367の各処理は、ステップS361において保持された入力データXinの各列について行われる。2次元データ列生成部385は、その全ての列を処理したか否かを判定する。
に お い て In step S367, the two-dimensional data string generation unit 385 determines whether or not each processing in steps S362 to S367 has been performed for all the columns. That is, the processes in steps S362 to S367 are performed for each column of the input data Xin held in step S361. The two-dimensional data sequence generation unit 385 determines whether or not all the columns have been processed.
未処理の列が存在すると判定された場合、処理はステップS362に戻り、次の未処理の列を処理対象として、それ以降の処理を繰り返す。また、ステップS367において全ての列を処理したと判定された場合、プライマリ垂直変換処理が終了し、処理は図28に戻る。
If it is determined that there is an unprocessed column, the process returns to step S362, and the subsequent process is repeated for the next unprocessed column. If it is determined in step S367 that all columns have been processed, the primary vertical conversion process ends, and the process returns to FIG.
<本技術の適用>
以上のようなプライマリ水平変換処理(図29)のステップS353において、例えば、1次元変換部372は、第1の実施の形態の場合(図8)と同様の流れで変換処理を実行するようにしてもよい。また、1次元変換部372は、第3の実施の形態の場合(図17)と同様の流れで変換処理を実行するようにしてもよい。さらに、1次元変換部372は、第5の実施の形態の場合と同様の流れで変換処理を実行するようにしてもよい。 <Application of this technology>
In step S353 of the above-described primary horizontal conversion processing (FIG. 29), for example, the one-dimensional conversion unit 372 executes the conversion processing in the same flow as in the case of the first embodiment (FIG. 8). You may. In addition, the one-dimensional conversion unit 372 may execute the conversion process in the same flow as in the case of the third embodiment (FIG. 17). Further, the one-dimensional conversion unit 372 may execute the conversion processing in the same flow as in the fifth embodiment.
以上のようなプライマリ水平変換処理(図29)のステップS353において、例えば、1次元変換部372は、第1の実施の形態の場合(図8)と同様の流れで変換処理を実行するようにしてもよい。また、1次元変換部372は、第3の実施の形態の場合(図17)と同様の流れで変換処理を実行するようにしてもよい。さらに、1次元変換部372は、第5の実施の形態の場合と同様の流れで変換処理を実行するようにしてもよい。 <Application of this technology>
In step S353 of the above-described primary horizontal conversion processing (FIG. 29), for example, the one-
また、以上のようなプライマリ垂直変換処理(図30)のステップS363において、例えば、1次元変換部382は、第1の実施の形態の場合(図8)と同様の流れで変換処理を実行するようにしてもよい。また、1次元変換部382は、第3の実施の形態の場合(図17)と同様の流れで変換処理を実行するようにしてもよい。さらに、1次元変換部382は、第5の実施の形態の場合と同様の流れで変換処理を実行するようにしてもよい。
Further, in step S363 of the primary vertical conversion process (FIG. 30) as described above, for example, the one-dimensional conversion unit 382 executes the conversion process in the same flow as in the case of the first embodiment (FIG. 8). You may do so. Also, the one-dimensional conversion unit 382 may execute the conversion process in the same flow as in the case of the third embodiment (FIG. 17). Further, the one-dimensional conversion unit 382 may execute the conversion process in the same flow as in the fifth embodiment.
このように各処理を実行することにより、1次元変換部372や1次元変換部382は、符号化される画像データ(の予測残差D)に対するプライマリ変換(における水平方向または垂直方向の1次元変換)において、第1の実施の形態、第3の実施の形態、または第5の実施の形態の場合と同様の効果を得ることができる。つまり、画像符号化装置300は、その1次元変換の構成の複雑化を抑制する(構成をより簡易化する)ことができる。すなわち、画像符号化装置300は、その1次元変換をより容易に行うことができる。したがって、画像符号化装置300は、回路規模や処理の負荷の増大を抑制し、実装コストの増大を抑制することができる。
By executing each process in this way, the one-dimensional conversion unit 372 or the one-dimensional conversion unit 382 performs one-dimensional conversion in the horizontal or vertical direction on the primary conversion (for the prediction residual D of the encoded image data). In the conversion, it is possible to obtain the same effect as in the case of the first embodiment, the third embodiment, or the fifth embodiment. That is, the image encoding device 300 can suppress the complexity of the configuration of the one-dimensional conversion (simplify the configuration). That is, the image encoding device 300 can more easily perform the one-dimensional conversion. Therefore, the image encoding device 300 can suppress an increase in circuit scale and processing load and an increase in mounting cost.
<10.第7の実施の形態>
<画像復号装置>
図31は、本技術を適用した画像処理装置の一態様である画像復号装置の構成の一例を示すブロック図である。図31に示される画像復号装置400は、AVCやHEVCのように、画像とその予測画像との予測残差が符号化された符号化データを復号する装置である。例えば、画像復号装置400は、非特許文献1、非特許文献5、または非特許文献6に記載されている技術を実装し、それらの文献のいずれかに記載された規格に準拠した方法で動画像の画像データが符号化された符号化データを復号する。例えば、画像復号装置400は、上述の画像符号化装置300により生成された符号化データ(ビットストリーム)を復号する。 <10. Seventh embodiment>
<Image decoding device>
FIG. 31 is a block diagram illustrating an example of a configuration of an image decoding device that is an aspect of an image processing device to which the present technology is applied. Theimage decoding apparatus 400 illustrated in FIG. 31 is an apparatus that decodes encoded data in which a prediction residual between an image and a prediction image thereof is encoded, such as AVC or HEVC. For example, the image decoding apparatus 400 implements the technology described in Non-Patent Document 1, Non-Patent Document 5, or Non-Patent Document 6, and performs moving image decoding by a method based on a standard described in any of those documents. The encoded data obtained by encoding the image data of the image is decoded. For example, the image decoding device 400 decodes the encoded data (bit stream) generated by the image encoding device 300 described above.
<画像復号装置>
図31は、本技術を適用した画像処理装置の一態様である画像復号装置の構成の一例を示すブロック図である。図31に示される画像復号装置400は、AVCやHEVCのように、画像とその予測画像との予測残差が符号化された符号化データを復号する装置である。例えば、画像復号装置400は、非特許文献1、非特許文献5、または非特許文献6に記載されている技術を実装し、それらの文献のいずれかに記載された規格に準拠した方法で動画像の画像データが符号化された符号化データを復号する。例えば、画像復号装置400は、上述の画像符号化装置300により生成された符号化データ(ビットストリーム)を復号する。 <10. Seventh embodiment>
<Image decoding device>
FIG. 31 is a block diagram illustrating an example of a configuration of an image decoding device that is an aspect of an image processing device to which the present technology is applied. The
なお、図31においては、処理部やデータの流れ等の主なものを示しており、図31に示されるものが全てとは限らない。つまり、画像復号装置400において、図31においてブロックとして示されていない処理部が存在したり、図31において矢印等として示されていない処理やデータの流れが存在したりしてもよい。これは、画像復号装置400内の処理部等を説明する他の図においても同様である。
Note that FIG. 31 shows main components such as the processing unit and the flow of data, and the components shown in FIG. 31 are not necessarily all. That is, in the image decoding device 400, a processing unit not illustrated as a block in FIG. 31 may exist, or a process or data flow not illustrated as an arrow or the like in FIG. 31 may exist. This is the same in other drawings for explaining the processing unit and the like in the image decoding device 400.
図31において、画像復号装置400は、蓄積バッファ411、復号部412、逆量子化部413、逆直交変換部414、演算部415、インループフィルタ部416、並べ替えバッファ417、フレームメモリ418、および予測部419を備えている。なお、予測部419は、不図示のイントラ予測部、およびインター予測部を備えている。画像復号装置400は、符号化データ(ビットストリーム)を復号することによって、動画像データを生成するための装置である。
In FIG. 31, the image decoding device 400 includes an accumulation buffer 411, a decoding unit 412, an inverse quantization unit 413, an inverse orthogonal transform unit 414, an operation unit 415, an in-loop filter unit 416, a rearrangement buffer 417, a frame memory 418, and A prediction unit 419 is provided. Note that the prediction unit 419 includes an intra prediction unit and an inter prediction unit (not shown). The image decoding device 400 is a device for generating moving image data by decoding encoded data (bit stream).
<蓄積バッファ>
蓄積バッファ411は、画像復号装置400に入力されたビットストリームを取得し、保持(記憶)する。蓄積バッファ411は、所定のタイミングにおいて、または、所定の条件が整う等した場合、蓄積しているビットストリームを復号部412に供給する。 <Accumulation buffer>
The accumulation buffer 411 acquires the bit stream input to theimage decoding device 400 and holds (stores) the bit stream. The storage buffer 411 supplies the stored bit stream to the decoding unit 412 at a predetermined timing or when a predetermined condition is satisfied.
蓄積バッファ411は、画像復号装置400に入力されたビットストリームを取得し、保持(記憶)する。蓄積バッファ411は、所定のタイミングにおいて、または、所定の条件が整う等した場合、蓄積しているビットストリームを復号部412に供給する。 <Accumulation buffer>
The accumulation buffer 411 acquires the bit stream input to the
<復号部>
復号部412は、画像の復号に関する処理を行う。例えば、復号部412は、蓄積バッファ411から供給されるビットストリームを入力とし、シンタックステーブルの定義に沿って、そのビット列から、各シンタックス要素のシンタックス値を可変長復号し、パラメータを導出する。 <Decoding unit>
Thedecoding unit 412 performs a process related to image decoding. For example, the decoding unit 412 receives the bit stream supplied from the accumulation buffer 411 as input, performs variable length decoding of the syntax value of each syntax element from the bit string according to the definition of the syntax table, and derives parameters. I do.
復号部412は、画像の復号に関する処理を行う。例えば、復号部412は、蓄積バッファ411から供給されるビットストリームを入力とし、シンタックステーブルの定義に沿って、そのビット列から、各シンタックス要素のシンタックス値を可変長復号し、パラメータを導出する。 <Decoding unit>
The
シンタックス要素およびシンタックス要素のシンタックス値から導出されるパラメータには、例えば、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、残差情報Rinfo、フィルタ情報Finfoなどの情報が含まれる。つまり、復号部412は、ビットストリームから、これらの情報をパースする(解析して取得する)。これらの情報について以下に説明する。
パ ラ メ ー タ The parameters derived from the syntax elements and the syntax values of the syntax elements 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 412 parses (analyzes and acquires) such information from the bit stream. The information will be described below.
<ヘッダ情報Hinfo>
ヘッダ情報Hinfoは、例えば、VPS(Video Parameter Set)/SPS(Sequence ParameterSet)/PPS(Picture Parameter Set)/SH(スライスヘッダ)などのヘッダ情報を含む。ヘッダ情報Hinfoには、例えば、画像サイズ(横幅PicWidth、縦幅PicHeight)、ビット深度(輝度bitDepthY, 色差bitDepthC)、色差アレイタイプChromaArrayType、CUサイズの最大値MaxCUSize/最小値MinCUSize、4分木分割(Quad-tree分割ともいう)の最大深度MaxQTDepth/最小深度MinQTDepth、2分木分割(Binary-tree分割)の最大深度MaxBTDepth/最小深度MinBTDepth、変換スキップブロックの最大値MaxTSSize(最大変換スキップブロックサイズともいう)、各符号化ツールのオンオフフラグ(有効フラグともいう)などを規定する情報が含まれる。 <Header information Hinfo>
The header information Hinfo includes, for example, header information such as VPS (Video Parameter Set) / SPS (Sequence Parameter Set) / PPS (Picture Parameter Set) / SH (slice header). The header information Hinfo includes, for example, an image size (horizontal width PicWidth, vertical width PicHeight), bit depth (luminance bitDepthY, chrominance bitDepthC), chrominance array type ChromaArrayType, and CU size maximum value MaxCUSize / minimum value MinCUSize and quadtree division ( Maximum depth MaxQTDepth / minimum depth MinQTDepth of Quad-tree partition) Maximum depth MaxBTDepth / minimum depth MinBTDepth of binary tree partition (Binary-tree partition), maximum value MaxTSSize of conversion skip block (also called maximum conversion skip block size) ), And information specifying an on / off flag (also referred to as a valid flag) of each encoding tool.
ヘッダ情報Hinfoは、例えば、VPS(Video Parameter Set)/SPS(Sequence ParameterSet)/PPS(Picture Parameter Set)/SH(スライスヘッダ)などのヘッダ情報を含む。ヘッダ情報Hinfoには、例えば、画像サイズ(横幅PicWidth、縦幅PicHeight)、ビット深度(輝度bitDepthY, 色差bitDepthC)、色差アレイタイプChromaArrayType、CUサイズの最大値MaxCUSize/最小値MinCUSize、4分木分割(Quad-tree分割ともいう)の最大深度MaxQTDepth/最小深度MinQTDepth、2分木分割(Binary-tree分割)の最大深度MaxBTDepth/最小深度MinBTDepth、変換スキップブロックの最大値MaxTSSize(最大変換スキップブロックサイズともいう)、各符号化ツールのオンオフフラグ(有効フラグともいう)などを規定する情報が含まれる。 <Header information Hinfo>
The header information Hinfo includes, for example, header information such as VPS (Video Parameter Set) / SPS (Sequence Parameter Set) / PPS (Picture Parameter Set) / SH (slice header). The header information Hinfo includes, for example, an image size (horizontal width PicWidth, vertical width PicHeight), bit depth (luminance bitDepthY, chrominance bitDepthC), chrominance array type ChromaArrayType, and CU size maximum value MaxCUSize / minimum value MinCUSize and quadtree division ( Maximum depth MaxQTDepth / minimum depth MinQTDepth of Quad-tree partition) Maximum depth MaxBTDepth / minimum depth MinBTDepth of binary tree partition (Binary-tree partition), maximum value MaxTSSize of conversion skip block (also called maximum conversion skip block size) ), And information specifying an on / off flag (also referred to as a valid flag) of each encoding tool.
例えば、ヘッダ情報Hinfoに含まれる符号化ツールのオンオフフラグとしては、以下に示す変換、量子化処理に関わるオンオフフラグがある。なお、符号化ツールのオンオフフラグは、該符号化ツールに関わるシンタックスが符号化データ中に存在するか否かを示すフラグとも解釈することができる。また、オンオフフラグの値が1(真)の場合、該符号化ツールが使用可能であることを示し、オンオフフラグの値が0(偽)の場合、該符号化ツールが使用不可であることを示す。なお、フラグ値の解釈は逆であってもよい。
For example, as the on / off flag of the encoding tool included in the header information Hinfo, there are on / off flags related to the following conversion and quantization processing. Note that the on / off flag of the encoding tool can also be interpreted as a flag indicating whether or not syntax related to the encoding tool exists in encoded data. When the value of the on / off flag is 1 (true), it indicates that the encoding tool is usable. When the value of the on / off flag is 0 (false), the encoding tool is not usable. Show. Note that the interpretation of the flag value may be reversed.
コンポーネント間予測有効フラグ(ccp_enabled_flag):コンポーネント間予測(CCP(Cross-Component Prediction),CC予測とも称する)が使用可能であるか否かを示すフラグ情報である。例えば、このフラグ情報が「1」(真)の場合、使用可能であることが示され、「0」(偽)の場合、使用不可であることが示される。
間 Inter-component prediction enabled flag (ccp_enabled_flag): Flag information indicating whether or not inter-component prediction (CCP (Cross-Component Prediction), also referred to as CC prediction) is available. For example, when the flag information is “1” (true), it indicates that it can be used, and when it is “0” (false), it indicates that it cannot be used.
なお、このCCPは、コンポーネント間線形予測(CCLMまたはCCLMP)とも称する。
CCP This CCP is also called inter-component linear prediction (CCLM or CCLMP).
<予測モード情報Pinfo>
予測モード情報Pinfoには、例えば、処理対象PB(予測ブロック)のサイズ情報PBSize(予測ブロックサイズ)、イントラ予測モード情報IPinfo、動き予測情報MVinfo等の情報が含まれる。 <Prediction mode information Pinfo>
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.
予測モード情報Pinfoには、例えば、処理対象PB(予測ブロック)のサイズ情報PBSize(予測ブロックサイズ)、イントラ予測モード情報IPinfo、動き予測情報MVinfo等の情報が含まれる。 <Prediction mode information Pinfo>
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.
イントラ予測モード情報IPinfoには、例えば、JCTVC-W1005, 7.3.8.5 Coding Unit syntax中のprev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode、およびそのシンタックスから導出される輝度イントラ予測モードIntraPredModeY等が含まれる。
The 予 測 intra prediction mode information IPinfo includes, for example, JCTVC-W1005, 7.3.8.5 coding Unit syntax, prev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode, and a luminance intra prediction mode IntraPredModeY derived from the syntax.
また、イントラ予測モード情報IPinfoには、例えば、コンポーネント間予測フラグ(ccp_flag(cclmp_flag))、多クラス線形予測モードフラグ(mclm_flag)、色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)、色差MPM識別子(chroma_mpm_idx)、および、これらのシンタックスから導出される輝度イントラ予測モード(IntraPredModeC)等が含まれる。
The intra prediction mode information IPinfo includes, for example, an inter-component prediction flag (ccp_flag (cclmp_flag)), a multi-class linear prediction mode flag (mclm_flag), a chrominance sample position type identifier (chroma_sample_loc_type_idx), a chrominance MPM identifier (chroma_mpm_idx), and , And a luminance intra prediction mode (IntraPredModeC) derived from these syntaxes.
コンポーネント間予測フラグ(ccp_flag(cclmp_flag))は、コンポーネント間線形予測を適用するか否かを示すフラグ情報である。例えば、ccp_flag==1のとき、コンポーネント間予測を適用することを示し、ccp_flag==0のとき、コンポーネント間予測を適用しないことを示す。
The inter-component prediction flag (ccp_flag (cclmp_flag)) is flag information indicating whether or not to apply inter-component linear prediction. For example, when ccp_flag == 1, it indicates that inter-component prediction is applied, and when ccp_flag == 0, it indicates that inter-component prediction is not applied.
多クラス線形予測モードフラグ(mclm_flag)は、線形予測のモードに関する情報(線形予測モード情報)である。より具体的には、多クラス線形予測モードフラグ(mclm_flag)は、多クラス線形予測モードにするか否かを示すフラグ情報である。例えば、「0」の場合、1クラスモード(単一クラスモード)(例えばCCLMP)であることを示し、「1」の場合、2クラスモード(多クラスモード)(例えばMCLMP)であることを示す。
The multi-class linear prediction mode flag (mclm_flag) is information on 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 to set the multi-class linear prediction mode. For example, “0” indicates a one-class mode (single-class mode) (for example, CCLMP), and “1” indicates a two-class mode (multi-class mode) (for example, MCLMP). .
色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)は、色差コンポーネントの画素位置のタイプ(色差サンプル位置タイプとも称する)を識別する識別子である。例えば色フォーマットに関する情報である色差アレイタイプ(ChromaArrayType)が420形式を示す場合、色差サンプル位置タイプ識別子は、以下の式(36)のような割り当て方となる。
The chrominance sample position type identifier (chroma_sample_loc_type_idx) is an identifier for identifying the type of the pixel position of the chrominance component (also referred to as a chrominance sample position type). For example, when the chrominance array type (ChromaArrayType), which is information on the color format, indicates the 420 format, the chrominance sample position type identifier is assigned as in the following Expression (36).
なお、この色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)は、色差コンポーネントの画素位置に関する情報(chroma_sample_loc_info())として(に格納されて)伝送される。
The chrominance 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 chrominance component.
色差MPM識別子(chroma_mpm_idx)は、色差イントラ予測モード候補リスト(intraPredModeCandListC)の中のどの予測モード候補を色差イントラ予測モードとして指定するかを表す識別子である。
The chrominance MPM identifier (chroma_mpm_idx) is an identifier indicating which prediction mode candidate in the chrominance intra prediction mode candidate list (intraPredModeCandListC) is designated as the chrominance intra prediction mode.
動き予測情報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を参照)。
The motion prediction information MVinfo includes, for example, information such as merge_idx, merge_flag, inter_pred_idc, ref_idx_LX, mvp_lX_flag, X = {0,1}, mvd, and the like (for example, see JCTVC-W1005, 7.3.8.6 Prediction Unit Syntax). .
もちろん、予測モード情報Pinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
Of course, the information included in the prediction mode information Pinfo is arbitrary, and information other than these information may be included.
<変換情報Tinfo>
変換情報Tinfoには、例えば、以下の情報が含まれる。もちろん、変換情報Tinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。 <Conversion information Tinfo>
The conversion information Tinfo includes, for example, the following information. Of course, the information included in the conversion information Tinfo is arbitrary, and information other than these information may be included.
変換情報Tinfoには、例えば、以下の情報が含まれる。もちろん、変換情報Tinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。 <Conversion information Tinfo>
The conversion information Tinfo includes, for example, the following information. Of course, the information included in the conversion information Tinfo is arbitrary, and information other than these information may be included.
処理対象変換ブロックの横幅サイズTBWSizeおよび縦幅TBHSize(または、2を底とする各TBWSize、TBHSizeの対数値log2TBWSize、log2TBHSizeであってもよい)。変換スキップフラグ(ts_flag):(逆)プライマリ変換および(逆)セカンダリ変換をスキップか否かを示すフラグである。
スキャン識別子(scanIdx)
量子化パラメータ(qp)
量子化マトリックス(scaling_matrix(例えば、JCTVC-W1005, 7.3.4 Scaling list data syntax)) The horizontal width size TBWSize and the vertical width TBHSize of the conversion block to be processed (or each TBWSize having a base of 2, and the logarithmic value log2TBWSize or log2TBHSize of TBHSize may be used). Conversion skip flag (ts_flag): This flag indicates whether or not (reverse) primary conversion and (reverse) secondary conversion are skipped.
Scan identifier (scanIdx)
Quantization parameter (qp)
Quantization matrix (scaling_matrix (eg, JCTVC-W1005, 7.3.4 Scaling list data syntax))
スキャン識別子(scanIdx)
量子化パラメータ(qp)
量子化マトリックス(scaling_matrix(例えば、JCTVC-W1005, 7.3.4 Scaling list data syntax)) The horizontal width size TBWSize and the vertical width TBHSize of the conversion block to be processed (or each TBWSize having a base of 2, and the logarithmic value log2TBWSize or log2TBHSize of TBHSize may be used). Conversion skip flag (ts_flag): This flag indicates whether or not (reverse) primary conversion and (reverse) secondary conversion are skipped.
Scan identifier (scanIdx)
Quantization parameter (qp)
Quantization matrix (scaling_matrix (eg, JCTVC-W1005, 7.3.4 Scaling list data syntax))
<残差情報Rinfo>
残差情報Rinfo(例えば、JCTVC-W1005の7.3.8.11 Residual Coding syntaxを参照)には、例えば以下のシンタックスが含まれる。 <Residual information Rinfo>
The residual information Rinfo (for example, refer to 7.3.8.11 Residual Coding syntax of JCTVC-W1005) includes, for example, the following syntax.
残差情報Rinfo(例えば、JCTVC-W1005の7.3.8.11 Residual Coding syntaxを参照)には、例えば以下のシンタックスが含まれる。 <Residual information Rinfo>
The residual information Rinfo (for example, refer to 7.3.8.11 Residual Coding syntax of JCTVC-W1005) includes, for example, the following 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:非ゼロ係数の残余レベル(非ゼロ係数残余レベルとも呼ぶ)
など。 cbf (coded_block_flag): residual data presence 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: sub-block non-zero coefficient presence flag sig_coeff_flag: non-zero coefficient presence flag gr1_flag: non-zero coefficient Flag indicating whether it is greater than 1 (also called GR1 flag)
gr2_flag: Flag indicating whether the level of the non-zero coefficient is greater than 2 (also referred to as GR2 flag)
sign_flag: code indicating the sign of the non-zero coefficient (also called sign code)
coeff_abs_level_remaining: residual level of non-zero coefficient (also called non-zero coefficient residual level)
Such.
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:非ゼロ係数の残余レベル(非ゼロ係数残余レベルとも呼ぶ)
など。 cbf (coded_block_flag): residual data presence 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: sub-block non-zero coefficient presence flag sig_coeff_flag: non-zero coefficient presence flag gr1_flag: non-zero coefficient Flag indicating whether it is greater than 1 (also called GR1 flag)
gr2_flag: Flag indicating whether the level of the non-zero coefficient is greater than 2 (also referred to as GR2 flag)
sign_flag: code indicating the sign of the non-zero coefficient (also called sign code)
coeff_abs_level_remaining: residual level of non-zero coefficient (also called non-zero coefficient residual level)
Such.
もちろん、残差情報Rinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
Of course, the information included in the residual information Rinfo is arbitrary, and information other than these information may be included.
<フィルタ情報Finfo>
フィルタ情報Finfoには、例えば、以下に示す各フィルタ処理に関する制御情報が含まれる。 <Filter information Finfo>
The filter information Finfo includes, for example, control information on each filter process described below.
フィルタ情報Finfoには、例えば、以下に示す各フィルタ処理に関する制御情報が含まれる。 <Filter information Finfo>
The filter information Finfo includes, for example, control information on each filter process described below.
デブロッキングフィルタ(DBF)に関する制御情報
画素適応オフセット(SAO)に関する制御情報
適応ループフィルタ(ALF)に関する制御情報
その他の線形・非線形フィルタに関する制御情報 Control information about deblocking filter (DBF) Control information about pixel adaptive offset (SAO) Control information about adaptive loop filter (ALF) Control information about other linear and nonlinear filters
画素適応オフセット(SAO)に関する制御情報
適応ループフィルタ(ALF)に関する制御情報
その他の線形・非線形フィルタに関する制御情報 Control information about deblocking filter (DBF) Control information about pixel adaptive offset (SAO) Control information about adaptive loop filter (ALF) Control information about other linear and nonlinear filters
より具体的には、例えば、各フィルタを適用するピクチャや、ピクチャ内の領域を指定する情報や、CU単位のフィルタOn/Off制御情報、スライス、タイルの境界に関するフィルタOn/Off制御情報などが含まれる。もちろん、フィルタ情報Finfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
More specifically, for example, a picture to which each filter is applied, information for specifying a region in the picture, filter On / Off control information for each CU, filter on / off control information for slices, and tile boundaries are included. included. Of course, the information included in the filter information Finfo is arbitrary, and information other than these information may be included.
復号部212の説明に戻り、復号部212は、残差情報Rinfoを参照して、各変換ブロック内の各係数位置の量子化変換係数レベルlevelを導出する。復号部212は、その量子化変換係数レベルlevelを、逆量子化部213に供給する。
Returning to the description of the decoding unit 212, the decoding unit 212 derives the quantized transform coefficient level level at each coefficient position in each transform block with reference to the residual information Rinfo. The decoding unit 212 supplies the quantized transform coefficient level level to the inverse quantization unit 213.
また、復号部412は、パースしたヘッダ情報Hinfo、予測モード情報Pinfo、量子化変換係数レベルlevel、変換情報Tinfo、フィルタ情報Finfoを各ブロックへ供給する。具体的には以下の通りである。
{Decoding section 412 supplies the parsed header information Hinfo, prediction mode information Pinfo, quantized transform coefficient level level, transform information Tinfo, and filter information Finfo to each block. Specifically, it is as follows.
ヘッダ情報Hinfoは、逆量子化部413、逆直交変換部414、予測部419、インループフィルタ部416に供給される。予測モード情報Pinfoは、逆量子化部413および予測部419に供給される。変換情報Tinfoは、逆量子化部413および逆直交変換部414に供給される。フィルタ情報Finfoは、インループフィルタ部416に供給される。
The header information Hinfo is supplied to the inverse quantization unit 413, the inverse orthogonal transform unit 414, the prediction unit 419, and the in-loop filter unit 416. The prediction mode information Pinfo is supplied to the inverse quantization unit 413 and the prediction unit 419. The transform information Tinfo is supplied to the inverse quantization unit 413 and the inverse orthogonal transform unit 414. The filter information Finfo is supplied to the in-loop filter unit 416.
もちろん、上述の例は一例であり、この例に限定されない。例えば、各符号化パラメータが任意の処理部に供給されるようにしてもよい。また、その他の情報が、任意の処理部に供給されるようにしてもよい。
Of course, the above example is an example, and the present invention is not limited to this example. For example, each encoding parameter may be supplied to an arbitrary processing unit. Further, other information may be supplied to an arbitrary processing unit.
<逆量子化部>
逆量子化部413は、逆量子化に関する処理を行う。例えば、逆量子化部413は、復号部412から供給される変換情報Tinfoおよび量子化変換係数レベルlevelを入力とし、その変換情報Tinfoに基づいて、量子化変換係数レベルlevelの値をスケーリング(逆量子化)し、逆量子化後の変換係数Coeff_IQを導出する。 <Inverse quantization unit>
Theinverse quantization unit 413 performs a process related to inverse quantization. For example, the inverse quantization unit 413 receives the transform information Tinfo and the quantized transform coefficient level supplied from the decoding unit 412 as inputs, and scales the value of the quantized transform coefficient level (inverse) based on the transform information Tinfo. Quantization), and derives a transform coefficient Coeff_IQ after inverse quantization.
逆量子化部413は、逆量子化に関する処理を行う。例えば、逆量子化部413は、復号部412から供給される変換情報Tinfoおよび量子化変換係数レベルlevelを入力とし、その変換情報Tinfoに基づいて、量子化変換係数レベルlevelの値をスケーリング(逆量子化)し、逆量子化後の変換係数Coeff_IQを導出する。 <Inverse quantization unit>
The
なお、この逆量子化は、量子化部314による量子化の逆処理として行われる。また、この逆量子化は、逆量子化部317による逆量子化と同様の処理である。つまり、逆量子化部317は、逆量子化部413と同様の処理(逆量子化)を行う。
逆 Note that this inverse quantization is performed as inverse processing of quantization by the quantization unit 314. This inverse quantization is the same processing as the inverse quantization by the inverse quantization unit 317. That is, the inverse quantization unit 317 performs the same processing (inverse quantization) as the inverse quantization unit 413.
逆量子化部413は、導出した変換係数Coeff_IQを逆直交変換部414に供給する。
The inverse quantization unit 413 supplies the derived transform coefficient Coeff_IQ to the inverse orthogonal transform unit 414.
<逆直交変換部>
逆直交変換部414は、逆直交変換に関する処理を行う。例えば、逆直交変換部414は、逆量子化部413から供給される変換係数Coeff_IQ、および、復号部412から供給される変換情報Tinfoを入力とし、その変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆直交変換処理を行い、予測残差D'を導出する。 <Inverse orthogonal transform unit>
The inverseorthogonal transform unit 414 performs a process related to the inverse orthogonal transform. For example, the inverse orthogonal transform unit 414 receives the transform coefficient Coeff_IQ supplied from the inverse quantization unit 413 and the transform information Tinfo supplied from the decoding unit 412 as inputs, and converts the transform coefficient Coeff_IQ based on the transform information Tinfo. An inverse orthogonal transformation process is performed on the result to derive a prediction residual D ′.
逆直交変換部414は、逆直交変換に関する処理を行う。例えば、逆直交変換部414は、逆量子化部413から供給される変換係数Coeff_IQ、および、復号部412から供給される変換情報Tinfoを入力とし、その変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆直交変換処理を行い、予測残差D'を導出する。 <Inverse orthogonal transform unit>
The inverse
なお、この逆直交変換は、直交変換部313による直交変換の逆処理として行われる。また、この逆直交変換は、逆直交変換部318による逆直交変換と同様の処理である。つまり、逆直交変換部318は、逆直交変換部414と同様の処理(逆直交変換)を行う。
逆 Note that this inverse orthogonal transform is performed as an inverse process of the orthogonal transform by the orthogonal transform unit 313. The inverse orthogonal transform is a process similar to the inverse orthogonal transform performed by the inverse orthogonal transform unit 318. That is, the inverse orthogonal transform unit 318 performs the same processing (inverse orthogonal transform) as the inverse orthogonal transform unit 414.
逆直交変換部414は、導出した予測残差D'を演算部415に供給する。
The inverse orthogonal transform unit 414 supplies the derived prediction residual D ′ to the calculation unit 415.
<演算部>
演算部415は、画像に関する情報の加算に関する処理を行う。例えば、演算部415は、逆直交変換部414から供給される予測残差D'と、予測部419から供給される予測画像Pとを入力とする。演算部415は、以下の式(37)に示されるように、予測残差D'とその予測残差D'に対応する予測画像P(予測信号)とを加算し、局所復号画像Rlocalを導出する。 <Operation part>
Thecalculation unit 415 performs a process related to addition of information on an image. For example, the calculation unit 415 receives the prediction residual D ′ supplied from the inverse orthogonal transform unit 414 and the prediction image P supplied from the prediction unit 419 as inputs. The calculation unit 415 adds the prediction residual D ′ and the prediction image P (prediction signal) corresponding to the prediction residual D ′ to derive the local decoded image Rlocal as shown in the following Expression (37). I do.
演算部415は、画像に関する情報の加算に関する処理を行う。例えば、演算部415は、逆直交変換部414から供給される予測残差D'と、予測部419から供給される予測画像Pとを入力とする。演算部415は、以下の式(37)に示されるように、予測残差D'とその予測残差D'に対応する予測画像P(予測信号)とを加算し、局所復号画像Rlocalを導出する。 <Operation part>
The
演算部415は、導出した局所復号画像Rlocalを、インループフィルタ部416およびフレームメモリ418に供給する。
The operation unit 415 supplies the derived local decoded image Rlocal to the in-loop filter unit 416 and the frame memory 418.
<インループフィルタ部>
インループフィルタ部416は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部416は、演算部415から供給される局所復号画像Rlocalと、復号部412から供給されるフィルタ情報Finfoとを入力とする。なお、インループフィルタ部416に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。 <In-loop filter section>
The in-loop filter unit 416 performs processing related to in-loop filter processing. For example, the in-loop filter unit 416 receives the local decoded image Rlocal supplied from the arithmetic unit 415 and the filter information Finfo supplied from the decoding unit 412 as inputs. Note that information input to the in-loop filter unit 416 is arbitrary, and information other than these information may be input.
インループフィルタ部416は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部416は、演算部415から供給される局所復号画像Rlocalと、復号部412から供給されるフィルタ情報Finfoとを入力とする。なお、インループフィルタ部416に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。 <In-loop filter section>
The in-
インループフィルタ部416は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。
The in-loop filter unit 416 appropriately performs a filtering process on the locally decoded image Rlocal based on the filter information Finfo.
例えば、インループフィルタ部416は、非特許文献1に記載のように、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
For example, as described in Non-Patent Document 1, the in-loop filter unit 416 includes a bilateral filter, a deblocking filter (DBF (DeBlocking @ Filter)), an adaptive offset filter (SAO (Sample @ Adaptive @ Offset)), and an adaptive loop filter. Four in-loop filters (ALF (Adaptive Loop Loop Filter)) are applied in this order. It is to be noted that which filter is applied and in which order are applied are arbitrary and can be selected as appropriate.
インループフィルタ部416は、符号化側(例えば画像符号化装置300のインループフィルタ部320)により行われたフィルタ処理に対応するフィルタ処理を行う。もちろん、インループフィルタ部416が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部416がウィーナーフィルタ等を適用するようにしてもよい。
The in-loop filter unit 416 performs a filter process corresponding to the filter process performed by the encoding side (for example, the in-loop filter unit 320 of the image encoding device 300). Of course, the filtering process performed by the in-loop filter unit 416 is optional, and is not limited to the above example. For example, the in-loop filter unit 416 may apply a Wiener filter or the like.
インループフィルタ部416は、フィルタ処理された局所復号画像Rlocalを並べ替えバッファ417およびフレームメモリ418に供給する。
The in-loop filter unit 416 supplies the filtered local decoded image Rlocal to the reordering buffer 417 and the frame memory 418.
<並べ替えバッファ>
並べ替えバッファ417は、インループフィルタ部416から供給された局所復号画像Rlocalを入力とし、それを保持(記憶)する。並べ替えバッファ417は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(バッファ内に格納する)。並べ替えバッファ417は、得られた復号画像Rを、復号順から再生順に並べ替える。並べ替えバッファ417は、並べ替えた復号画像R群を動画像データとして画像復号装置200の外部に出力する。 <Sort buffer>
Thereordering buffer 417 receives the local decoded image Rlocal supplied from the in-loop filter unit 416 as an input, and holds (stores) it. The reordering buffer 417 reconstructs and holds the decoded image R for each picture unit using the local decoded image Rlocal (stores the decoded image R in the buffer). The rearrangement buffer 417 rearranges the obtained decoded images R from decoding order to reproduction order. The rearrangement buffer 417 outputs the rearranged decoded image group R to the outside of the image decoding device 200 as moving image data.
並べ替えバッファ417は、インループフィルタ部416から供給された局所復号画像Rlocalを入力とし、それを保持(記憶)する。並べ替えバッファ417は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(バッファ内に格納する)。並べ替えバッファ417は、得られた復号画像Rを、復号順から再生順に並べ替える。並べ替えバッファ417は、並べ替えた復号画像R群を動画像データとして画像復号装置200の外部に出力する。 <Sort buffer>
The
<フレームメモリ>
フレームメモリ418は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ418は、演算部415より供給される局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ418内のバッファへ格納する。 <Frame memory>
Theframe memory 418 performs a process related to storage of data related to an image. For example, the frame memory 418 receives the local decoded image Rlocal supplied from the arithmetic unit 415 as an input, reconstructs a decoded image R for each picture unit, and stores the reconstructed image R in a buffer in the frame memory 418.
フレームメモリ418は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ418は、演算部415より供給される局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ418内のバッファへ格納する。 <Frame memory>
The
また、フレームメモリ418は、インループフィルタ部416から供給される、インループフィルタ処理された局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ418内のバッファへ格納する。フレームメモリ418は、適宜、その記憶している復号画像R(またはその一部)を参照画像として予測部419に供給する。
The frame memory 418 receives the in-loop filtered local decoded image Rlocal supplied from the in-loop filter unit 416 as an input, reconstructs a decoded image R for each picture unit, and To store. The frame memory 418 appropriately supplies the stored decoded image R (or a part thereof) to the prediction unit 419 as a reference image.
なお、フレームメモリ418が、復号画像の生成に係るヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなどを記憶するようにしても良い。
Note that the frame memory 418 may store header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, filter information Finfo, and the like related to generation of a decoded image.
<予測部>
予測部419は、予測画像の生成に関する処理を行う。例えば、予測部419は、復号部412から供給される予測モード情報Pinfoを入力とし、その予測モード情報Pinfoによって指定される予測方法により予測を行い、予測画像Pを導出する。その導出の際、予測部419は、その予測モード情報Pinfoによって指定される、フレームメモリ418に格納されたフィルタ前またはフィルタ後の復号画像R(またはその一部)を、参照画像として利用する。予測部419は、導出した予測画像Pを、演算部415に供給する。 <Prediction unit>
Theprediction unit 419 performs a process related to generation of a predicted image. For example, the prediction unit 419 receives the prediction mode information Pinfo supplied from the decoding unit 412, performs prediction using the prediction method specified by the prediction mode information Pinfo, and derives a predicted image P. At the time of the derivation, the prediction unit 419 uses a decoded image R (or a part thereof) before or after the filter, which is specified by the prediction mode information Pinfo and stored in the frame memory 418, as a reference image. The prediction unit 419 supplies the derived prediction image P to the calculation unit 415.
予測部419は、予測画像の生成に関する処理を行う。例えば、予測部419は、復号部412から供給される予測モード情報Pinfoを入力とし、その予測モード情報Pinfoによって指定される予測方法により予測を行い、予測画像Pを導出する。その導出の際、予測部419は、その予測モード情報Pinfoによって指定される、フレームメモリ418に格納されたフィルタ前またはフィルタ後の復号画像R(またはその一部)を、参照画像として利用する。予測部419は、導出した予測画像Pを、演算部415に供給する。 <Prediction unit>
The
<逆直交変換部の詳細>
図32は、図31の逆直交変換部414の主な構成例を示すブロック図である。図32に示されるように、逆直交変換部414は、スイッチ451、逆セカンダリ変換部452、および逆プライマリ変換部453を有する。 <Details of inverse orthogonal transform unit>
FIG. 32 is a block diagram illustrating a main configuration example of the inverseorthogonal transform unit 414 in FIG. As shown in FIG. 32, the inverse orthogonal transform unit 414 includes a switch 451, an inverse secondary transform unit 452, and an inverse primary transform unit 453.
図32は、図31の逆直交変換部414の主な構成例を示すブロック図である。図32に示されるように、逆直交変換部414は、スイッチ451、逆セカンダリ変換部452、および逆プライマリ変換部453を有する。 <Details of inverse orthogonal transform unit>
FIG. 32 is a block diagram illustrating a main configuration example of the inverse
スイッチ451は、変換係数Coeff_IQ、および変換スキップフラグts_flag[compID]を入力とする。変換スキップフラグts_flag[compID]の値がNO_TS(=0)の場合、すなわち、変換スキップを適用しない場合、スイッチ451は、変換係数Coeff_IQを、逆セカンダリ変換部452に供給する。また、変換スキップフラグts_flag[compID]の値が2D_TS(=1)の場合、すなわち、2次元変換スキップを適用することを示す場合、スイッチ451は、逆セカンダリ変換部452および逆プライマリ変換部453をスキップし、変換係数Coeff_IQを予測残差D'として逆直交変換部414の外部に出力する(演算部415に供給する)。
The switch 451 receives as input the conversion coefficient Coeff_IQ and the conversion skip flag ts_flag [compID]. When the value of the conversion skip flag ts_flag [compID] is NO_TS (= 0), that is, when the conversion skip is not applied, the switch 451 supplies the conversion coefficient Coeff_IQ to the inverse secondary conversion unit 452. When the value of the conversion skip flag ts_flag [compID] is 2D_TS (= 1), that is, when it indicates that the two-dimensional conversion skip is to be applied, the switch 451 sets the inverse secondary conversion unit 452 and the inverse primary conversion unit 453 to each other. Skipping is performed and the transform coefficient Coeff_IQ is output to the outside of the inverse orthogonal transform unit 414 as the prediction residual D ′ (supplied to the arithmetic unit 415).
逆セカンダリ変換部452は、符号化側(例えば、画像符号化装置300のセカンダリ変換部353)において行われるセカンダリ変換の逆処理である逆セカンダリ変換に関する処理を行う。例えば、逆セカンダリ変換部452は、セカンダリ変換識別子st_idx、変換係数のスキャン方法を示すスキャン識別子scanIdx、および、スイッチ451から供給される変換係数Coeff_IQを入力とする。
The inverse secondary transform unit 452 performs a process related to an inverse secondary transform, which is an inverse process of the secondary transform performed on the encoding side (for example, the secondary transform unit 353 of the image encoding device 300). For example, the inverse secondary transform unit 452 receives as input the secondary transform identifier st_idx, the scan identifier scanIdx indicating the scan method of the transform coefficient, and the transform coefficient Coeff_IQ supplied from the switch 451.
逆セカンダリ変換部452は、セカンダリ変換識別子st_idxおよびスキャン識別子scanIdxに基づいて、変換係数Coeff_IQに対して逆セカンダリ変換を行い、逆セカンダリ変換後の変換係数Coeff_ISを導出する。
The inverse secondary transform unit 452 performs inverse secondary transform on the transform coefficient Coeff_IQ based on the secondary transform identifier st_idx and the scan identifier scanIdx, and derives a transform coefficient Coeff_IS after the inverse secondary transform.
より具体的には、セカンダリ変換識別子st_idxが、逆セカンダリ変換を適用することを示す場合(st_idx>0)、逆セカンダリ変換部452は、変換係数Coeff_IQに対して、セカンダリ変換識別子st_idxに対応する逆セカンダリ変換の処理を実行し、逆セカンダリ変換後の変換係数Coeff_ISを導出する。逆セカンダリ変換部452は、その逆セカンダリ変換係数Coeff_ISを逆プライマリ変換部453に供給する。
More specifically, when the secondary transform identifier st_idx indicates that the inverse secondary transform is applied (st_idx> 0), the inverse secondary transform unit 452 performs the inverse transform corresponding to the secondary transform identifier st_idx on the transform coefficient Coeff_IQ. The secondary conversion processing is executed to derive a conversion coefficient Coeff_IS after the inverse secondary conversion. The inverse secondary transform unit 452 supplies the inverse secondary transform coefficient Coeff_IS to the inverse primary transform unit 453.
なお、セカンダリ変換識別子st_idxが、逆セカンダリ変換を適用しないことを示す場合(st_idx==0)、逆セカンダリ変換部452は、逆セカンダリ変換をスキップし、変換係数Coeff_IQを逆セカンダリ変換後の変換係数Coeff_ISとして逆プライマリ変換部453に供給する。
If the secondary transform identifier st_idx indicates that the inverse secondary transform is not applied (st_idx == 0), the inverse secondary transform unit 452 skips the inverse secondary transform and converts the transform coefficient Coeff_IQ into the transform coefficient after the inverse secondary transform. It is supplied to the inverse primary conversion unit 453 as Coeff_IS.
逆プライマリ変換部453は、符号化側(例えば、画像符号化装置300のプライマリ変換部352)において行われるプライマリ変換の逆処理である逆プライマリ変換に関する処理を行う。例えば、逆プライマリ変換部453は、コンポーネント識別子compID、コンポーネント識別子compIDの適応プライマリ変換フラグapt_flag[compID]、コンポーネント識別子compIDのプライマリ変換識別子pt_idx[compID]、予測モード情報PInfo、変換ブロックのサイズ(横幅の対数値log2TBWSize, 縦幅の対数値log2TBHSize)および逆セカンダリ変換後の変換係数Coeff_ISを入力とする。
The inverse primary conversion unit 453 performs a process related to an inverse primary conversion, which is an inverse process of the primary conversion performed on the encoding side (for example, the primary conversion unit 352 of the image encoding device 300). For example, the inverse primary conversion unit 453 generates the component identifier compID, the adaptive primary conversion flag apt_flag [compID] of the component identifier compID, the primary conversion identifier pt_idx [compID] of the component identifier compID, the prediction mode information PInfo, the size of the conversion block (the width of the conversion block). The logarithmic value log2TBWSize, (the vertical logarithmic value log2TBHSize) and the conversion coefficient Coeff_IS after the inverse secondary conversion are input.
逆プライマリ変換部453は、その予測モード情報PInfo、コンポーネント識別子compID、コンポーネント識別子compIDの適応プライマリ変換フラグapt_flag[compID]、およびコンポーネント識別子compIDのプライマリ変換識別子pt_idx[compID]を参照して、コンポーネント識別子compIDに対応する逆プライマリ水平変換の変換タイプTrTypeH(および該変換タイプを示す逆プライマリ水平変換タイプ識別子TrTypeIdxH)、および逆プライマリ垂直変換の変換タイプTrTypeV(および該変換タイプを示す逆プライマリ垂直変換タイプ識別子TrTypeIdxV)を選択する。
The inverse primary conversion unit 453 refers to the prediction mode information PInfo, the component identifier compID, the adaptive primary conversion flag apt_flag [compID] of the component identifier compID, and the primary conversion identifier pt_idx [compID] of the component identifier compID, and refers to the component identifier compID. The conversion type TrTypeH of the inverse primary horizontal conversion corresponding to (and the inverse primary horizontal conversion type identifier TrTypeIdxH indicating the conversion type), and the conversion type TrTypeV of the inverse primary vertical conversion (and the inverse primary vertical conversion type identifier TrTypeIdxV indicating the conversion type) ).
また、逆プライマリ変換部453は、逆セカンダリ後の変換係数Coeff_ISに対して、その逆プライマリ垂直変換タイプ識別子TrTypeIdxV(または、逆プライマリ垂直変換タイプTrTypeV)と変換ブロックの縦幅log2TBHSizeとで定まる逆プライマリ垂直変換と、逆プライマリ水平変換タイプ識別子TrTypeIdxH(または、逆プライマリ水平変換タイプTrTypeH)と変換ブロックの横幅log2TBWSizeとで定まる逆プライマリ水平変換とを行い、逆プライマリ変換後の変換係数Coeff_IPを導出する。逆プライマリ垂直変換は、垂直方向の逆1次元直交変換であり、逆プライマリ水平変換は、水平方向の逆1次元直交変換である。
In addition, the inverse primary conversion unit 453 determines the inverse primary vertical conversion type identifier TrTypeIdxV (or the inverse primary vertical conversion type TrTypeV) and the inverse primary logarithm determined by the vertical width log2TBHSize of the conversion block for the conversion coefficient Coeff_IS after the inverse secondary. The vertical conversion and the inverse primary horizontal conversion type identifier TrTypeIdxH (or the inverse primary horizontal conversion type TrTypeH) and the inverse primary horizontal conversion determined by the horizontal width log2TBWSize of the conversion block are performed to derive a conversion coefficient Coeff_IP after the inverse primary conversion. The inverse primary vertical transform is an inverse one-dimensional orthogonal transform in the vertical direction, and the inverse primary horizontal transform is an inverse one-dimensional orthogonal transform in the horizontal direction.
逆プライマリ変換部453は、その逆プライマリ変換後の変換係数Coeff_IPを、予測残差D'として逆直交変換部414の外部に出力する(演算部415に供給する)。
The inverse primary transform unit 453 outputs the transform coefficient Coeff_IP after the inverse primary transform to the outside of the inverse orthogonal transform unit 414 as a prediction residual D ′ (supplies it to the arithmetic unit 415).
<逆プライマリ変換部>
図33は、この場合の逆プライマリ変換部453(図32)の主な構成例を示すブロック図である。図33に示されるように、逆プライマリ変換部453は、逆プライマリ変換選択部461、逆プライマリ垂直変換部462、および逆プライマリ水平変換部463を有する。 <Reverse primary conversion unit>
FIG. 33 is a block diagram illustrating a main configuration example of the inverse primary conversion unit 453 (FIG. 32) in this case. As shown in FIG. 33, the inverseprimary conversion unit 453 has an inverse primary conversion selection unit 461, an inverse primary vertical conversion unit 462, and an inverse primary horizontal conversion unit 463.
図33は、この場合の逆プライマリ変換部453(図32)の主な構成例を示すブロック図である。図33に示されるように、逆プライマリ変換部453は、逆プライマリ変換選択部461、逆プライマリ垂直変換部462、および逆プライマリ水平変換部463を有する。 <Reverse primary conversion unit>
FIG. 33 is a block diagram illustrating a main configuration example of the inverse primary conversion unit 453 (FIG. 32) in this case. As shown in FIG. 33, the inverse
逆プライマリ変換選択部461は、予測モード情報PInfo、コンポーネント識別子compID、適応プライマリ変換フラグapt_flag[compID]、およびプライマリ変換識別子pt_idx[compID]を入力とする。逆プライマリ変換選択部461は、それらの情報を参照して、逆プライマリ垂直変換の変換タイプ識別子TrTypeIdxVおよび逆プライマリ垂直変換の変換タイプ識別子TrTypeIdxHを導出する。逆プライマリ変換選択部461は、導出した逆プライマリ垂直変換の変換タイプ識別子TrTypeIdxVを逆プライマリ垂直変換部462に供給する。また、逆プライマリ変換選択部461は、導出した逆プライマリ水平変換の変換タイプ識別子TrTypeIdxHを逆プライマリ水平変換部463に供給する。
The inverse primary conversion selecting unit 461 receives as input the prediction mode information PInfo, the component identifier compID, the adaptive primary conversion flag apt_flag [compID], and the primary conversion identifier pt_idx [compID]. The inverse primary conversion selecting unit 461 derives the conversion type identifier TrTypeIdxV of the inverse primary vertical conversion and the conversion type identifier TrTypeIdxH of the inverse primary vertical conversion with reference to the information. The inverse primary conversion selecting unit 461 supplies the derived conversion type identifier TrTypeIdxV of the inverted primary vertical conversion to the inverted primary vertical conversion unit 462. Further, the inverse primary conversion selecting unit 461 supplies the derived conversion type identifier TrTypeIdxH of the inverted primary horizontal conversion to the inverted primary horizontal conversion unit 463.
逆プライマリ垂直変換部462は、逆セカンダリ変換後の変換係数Coeff_IS、逆プライマリ垂直変換の変換タイプ識別子TrTypeIdxV、および変換ブロックのサイズに関する情報を入力とする。この変換ブロックのサイズに関する情報は、変換ブロックの水平方向または垂直方向の大きさ(係数の数)を示す自然数Nであってもよいし、変換ブロックの縦幅を示すlog2TBHSize(縦幅の対数値)であってもよい(N = 1 << log2TBHSize)。逆プライマリ垂直変換部462は、逆セカンダリ変換後の変換係数Coeff_ISに対して、変換タイプ識別子TrTypeIdxVと変換ブロックのサイズで定まる逆プライマリ垂直変換IPverを実行し、逆プライマリ垂直変換後の変換係数Coeff_IPverを導出する。逆プライマリ垂直変換部462は、その逆プライマリ垂直変換後の変換係数Coeff_IPverを逆プライマリ水平変換部463に供給する。
The inverse primary vertical conversion unit 462 receives as input the conversion coefficient Coeff_IS after the inverse secondary conversion, the conversion type identifier TrTypeIdxV of the inverse primary vertical conversion, and information on the size of the conversion block. The information on the size of the transform block may be a natural number N indicating the horizontal or vertical size (the number of coefficients) of the transform block, or log2TBHSize (the logarithmic value of the vertical width) indicating the vertical width of the transform block. ) (N = 1 << log2TBHSize). The inverse primary vertical conversion unit 462 performs an inverse primary vertical conversion IPver determined by the conversion type identifier TrTypeIdxV and the size of the conversion block on the conversion coefficient Coeff_IS after the inverse secondary conversion, and converts the conversion coefficient Coeff_IPver after the inverse primary vertical conversion. Derive. The inverse primary vertical conversion unit 462 supplies the conversion coefficient Coeff_IPver after the inverse primary vertical conversion to the inverse primary horizontal conversion unit 463.
逆プライマリ水平変換部463は、逆プライマリ垂直変換後の変換係数Coeff_IPver、逆プライマリ水平変換の変換タイプ識別子TrTypeIdxH、および変換ブロックのサイズに関する情報を入力とする。この変換ブロックのサイズに関する情報は、変換ブロックの水平方向または垂直方向の大きさ(係数の数)を示す自然数Nであってもよいし、変換ブロックの横幅を示すlog2TBWSize(横幅の対数値)であってもよい(N = 1 << log2TBWSize)。逆プライマリ水平変換部463は、逆プライマリ垂直変換部462から供給される逆プライマリ垂直変換後の変換係数Coeff_IPverに対して、変換タイプ識別子TrTypeIdxHと変換ブロックのサイズで定まる逆プライマリ水平変換IPhorを実行し、その逆プライマリ水平変換後の変換係数Coeff_IPhor(すなわち逆プライマリ変換後の変換係数Coeff_IP)を導出する。逆プライマリ水平変換部463は、その逆プライマリ水平変換後の変換係数Coeff_IPhorを予測残差D'として逆プライマリ変換部453の外部に出力する(演算部415に供給する)。
The inverse primary horizontal conversion unit 463 receives as input the conversion coefficient Coeff_IPver after the inverse primary vertical conversion, the conversion type identifier TrTypeIdxH of the inverse primary horizontal conversion, and information on the size of the conversion block. The information on the size of the transform block may be a natural number N indicating the horizontal or vertical size (the number of coefficients) of the transform block, or log2TBWSize (the logarithmic value of the transverse width) indicating the lateral width of the transform block. (N あ っ = 1 << log2TBWSize). The inverse primary horizontal conversion unit 463 performs the inverse primary horizontal conversion IPhor determined by the conversion type identifier TrTypeIdxH and the size of the conversion block on the conversion coefficient Coeff_IPver after the inverse primary vertical conversion supplied from the inverse primary vertical conversion unit 462. , The conversion coefficient Coeff_IPhor after the inverse primary horizontal conversion (that is, the conversion coefficient Coeff_IP after the inverse primary conversion) is derived. The inverse primary horizontal transform unit 463 outputs the transform coefficient Coeff_IPhor after the inverse primary horizontal transform as a prediction residual D ′ to the outside of the inverse primary transform unit 453 (supplies it to the arithmetic unit 415).
<逆プライマリ垂直変換部>
図34は、図33の逆プライマリ垂直変換部462の主な構成例を示すブロック図である。図34に示されるように、逆プライマリ垂直変換部462は、信号列抽出部471、逆1次元変換部472、スケーリング部473、クリップ部474、および2次元データ列生成部475を有する。 <Inverse primary vertical conversion unit>
FIG. 34 is a block diagram illustrating a main configuration example of the inverse primaryvertical conversion unit 462 in FIG. As shown in FIG. 34, the inverse primary vertical conversion unit 462 includes a signal sequence extraction unit 471, an inverse one-dimensional conversion unit 472, a scaling unit 473, a clip unit 474, and a two-dimensional data sequence generation unit 475.
図34は、図33の逆プライマリ垂直変換部462の主な構成例を示すブロック図である。図34に示されるように、逆プライマリ垂直変換部462は、信号列抽出部471、逆1次元変換部472、スケーリング部473、クリップ部474、および2次元データ列生成部475を有する。 <Inverse primary vertical conversion unit>
FIG. 34 is a block diagram illustrating a main configuration example of the inverse primary
信号列抽出部471は、信号列抽出に関する処理を行う。例えば、信号列抽出部471は、逆プライマリ垂直変換部462に入力される2次元データ列(行列)の入力係数データXin(逆セカンダリ変換後の変換係数Coeff_IS)を取得し、記憶する。信号列抽出部471は、その入力係数データXinの各列を1列ずつ抽出し、1次元信号列X1として逆1次元変換部472に供給する。
The signal sequence extraction unit 471 performs a process related to signal sequence extraction. For example, the signal sequence extracting unit 471 acquires and stores input coefficient data Xin (transform coefficient Coeff_IS after inverse secondary transform) of a two-dimensional data sequence (matrix) input to the inverse primary vertical transform unit 462. Signal sequence extraction unit 471, each column of the input coefficient data Xin extracted one column, and supplies the inverse one-dimensional transform unit 472 as a one-dimensional signal sequence X 1.
例えば、信号列抽出部471は、復号部412によりビットストリームが復号されて生成された係数データである量子化変換係数レベルlevel(に対応する変換係数Coeff_IS)の処理対象ブロックより1次元信号列X1を抽出する。逆1次元変換部472のフリップ部152は、その信号列抽出部471により抽出された1次元信号列に対して、フリップ操作を行う。
For example, the signal sequence extraction unit 471 obtains a one-dimensional signal sequence X from the processing target block of the quantized transform coefficient level level (the transform coefficient Coeff_IS corresponding to the coefficient data generated by decoding the bit stream by the decoding unit 412). Extract 1 The flip unit 152 of the inverse one-dimensional conversion unit 472 performs a flip operation on the one-dimensional signal sequence extracted by the signal sequence extraction unit 471.
逆1次元変換部472は、逆1次元変換に関する処理を行う。例えば、逆1次元変換部472は、逆プライマリ変換選択部461から供給される、逆プライマリ垂直変換の変換タイプ識別子TrTypeIdxV、および変換ブロックのサイズに関する情報(log2TBWSizeおよびlog2TBHSize)を取得する。また、逆1次元変換部472は、信号列抽出部471から供給される1次元信号列X1を取得する。逆1次元変換部472は、その1次元信号列X1に対して、逆プライマリ垂直変換の変換タイプ識別子TrTypeIdxVや、変換ブロックのサイズに関する情報(log2TBWSizeおよびlog2TBHSize)に対応する逆1次元変換を行い、1次元信号列X2を生成する。逆1次元変換部472は、その1次元信号列X2をスケーリング部473に供給する。
The inverse one-dimensional conversion unit 472 performs a process related to the inverse one-dimensional conversion. For example, the inverse one-dimensional conversion unit 472 acquires the conversion type identifier TrTypeIdxV of the inverse primary vertical conversion and the information (log2TBWSize and log2TBHSize) regarding the size of the conversion block, which are supplied from the inverse primary conversion selection unit 461. Also, inverse one-dimensional transform unit 472 obtains a one-dimensional signal sequence X 1 supplied from the signal sequence extraction unit 471. Inverse one-dimensional transform unit 472, for the one-dimensional signal sequence X 1, and conversion type identifier TrTypeIdxV inverse primary vertical conversion, an inverse one-dimensional transform corresponding to the information (Log2TBWSize and Log2TBHSize) about the size of the transform block performs , and it generates a one-dimensional signal sequence X 2. Inverse one-dimensional transform unit 472 supplies the one-dimensional signal sequence X 2 to the scaling unit 473.
スケーリング部473は、スケーリングに関する処理を行う。例えば、スケーリング部473は、逆1次元変換部472から供給される1次元信号列X2を取得する。スケーリング部473は、その1次元信号列X2の各係数を、所定のシフト量invShift1でスケーリングして1次元信号列X3を生成する。スケーリング部473は、その1次元信号列X3をクリップ部474に供給する。
The scaling unit 473 performs processing related to scaling. For example, the scaling unit 473 obtains a one-dimensional signal sequence X 2 supplied from the inverse one-dimensional transform unit 472. Scaling unit 473, the coefficients of the one-dimensional signal sequence X 2, scaled by a predetermined shift amount invShift1 generating a one-dimensional signal sequence X 3. Scaling unit 473 supplies the one-dimensional signal sequence X 3 in the clip portion 474.
クリップ部474は、クリップ処理に関する処理を行う。例えば、クリップ部474は、スケーリング部473から供給される1次元信号列X3を取得する。クリップ部474は、その1次元信号列X3の各係数を、最小値minCoefValおよび最大値maxCoefValを用いてクリップし、1次元信号列X4を生成する。クリップ部474は、その1次元信号列X4を2次元データ列生成部475に供給する。
The clip unit 474 performs processing related to clip processing. For example, the clip portion 474 obtains a one-dimensional signal sequence X 3 supplied from the scaling unit 473. Clip portion 474, each coefficient of the one-dimensional signal sequence X 3, clipped using the minimum value minCoefVal and maximum MaxCoefVal, to generate a one-dimensional signal sequence X 4. Clip portion 474 supplies the one-dimensional signal sequence X 4 in the two-dimensional data string generator 475.
2次元データ列生成部475は、2次元データ列の生成に関する処理を行う。例えば、2次元データ列生成部475は、クリップ部474から供給される1次元信号列X4を記憶する。2次元データ列生成部475は、その1次元信号列X4を所定数ずつまとめて2次元データ列である出力係数データXoutを生成する。2次元データ列生成部475は、その出力係数データXout(逆プライマリ垂直変換後の変換係数Coeff_IPver)を逆プライマリ垂直変換部462の外部に出力する(逆プライマリ水平変換部463に供給する)。
The two-dimensional data string generation unit 475 performs processing related to generation of a two-dimensional data string. For example, 2-dimensional data string generator 475 stores a one-dimensional signal sequence X 4 supplied from the clip portion 474. 2-dimensional data string generator 475 generates an output coefficient data Xout is collectively two-dimensional data sequence to its one-dimensional signal sequence X 4 by a predetermined number. The two-dimensional data string generation unit 475 outputs the output coefficient data Xout (the conversion coefficient Coeff_IPver after inverse primary vertical conversion) to the outside of the inverse primary vertical conversion unit 462 (supplies it to the inverse primary horizontal conversion unit 463).
例えば、2次元データ列生成部475は、逆1次元変換部472の符号反転部154により符号反転操作が行われた1次元信号列X2(に対応する1次元信号列X4)を用いて2次元データ列を生成する。
For example, the two-dimensional data sequence generation unit 475 uses the one-dimensional signal sequence X 2 (corresponding to the one-dimensional signal sequence X 4 ) on which the sign inversion operation has been performed by the sign inversion unit 154 of the inverse one-dimensional conversion unit 472. Generate a two-dimensional data sequence.
信号列抽出部471乃至2次元データ列生成部475の各処理部は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
Each processing unit of the signal sequence extraction unit 471 to the two-dimensional data sequence generation unit 475 has an arbitrary configuration. For example, each processing unit may be configured by a logic circuit that realizes the above-described processing. In addition, each processing unit may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program by using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing. Of course, each processing unit may have both configurations, and a part of the above-described processing may be realized by a logic circuit, and the other may be realized by executing a program. The configuration of each processing unit may be independent from each other. For example, some of the processing units may realize a part of the above-described processing by a logic circuit, and some of the other processing units may execute a program. May be implemented, and another processing unit may implement the above-described processing by both the logic circuit and the execution of the program.
<逆プライマリ水平変換部>
図35は、図33の逆プライマリ水平変換部463の主な構成例を示すブロック図である。図35に示されるように、逆プライマリ水平変換部463は、信号列抽出部481、逆1次元変換部482、スケーリング部483、クリップ部484、および2次元データ列生成部485を有する。 <Inverse primary horizontal conversion unit>
FIG. 35 is a block diagram illustrating a main configuration example of the inverse primaryhorizontal conversion unit 463 of FIG. As shown in FIG. 35, the inverse primary horizontal conversion unit 463 includes a signal sequence extraction unit 481, an inverse one-dimensional conversion unit 482, a scaling unit 483, a clip unit 484, and a two-dimensional data sequence generation unit 485.
図35は、図33の逆プライマリ水平変換部463の主な構成例を示すブロック図である。図35に示されるように、逆プライマリ水平変換部463は、信号列抽出部481、逆1次元変換部482、スケーリング部483、クリップ部484、および2次元データ列生成部485を有する。 <Inverse primary horizontal conversion unit>
FIG. 35 is a block diagram illustrating a main configuration example of the inverse primary
信号列抽出部481は、信号列抽出に関する処理を行う。例えば、信号列抽出部481は、逆プライマリ水平変換部463に入力される2次元データ列(行列)の入力係数データXin(逆プライマリ垂直変換後の変換係数Coeff_IPver)を取得し、記憶する。信号列抽出部481は、その入力係数データXinの各行を1行ずつ抽出し、1次元信号列X1として逆1次元変換部482に供給する。
The signal sequence extraction unit 481 performs a process related to signal sequence extraction. For example, the signal sequence extraction unit 481 acquires and stores input coefficient data Xin (transform coefficient Coeff_IPver after inverse primary vertical transform) of a two-dimensional data sequence (matrix) input to the inverse primary horizontal transform unit 463. Signal sequence extraction unit 481, each line of the input coefficient data Xin extracted one line, and supplies the inverse one-dimensional transform unit 482 as a one-dimensional signal sequence X 1.
逆1次元変換部482は、逆1次元変換に関する処理を行う。例えば、逆1次元変換部482は、逆プライマリ変換選択部461から供給される、逆プライマリ水平変換の変換タイプ識別子TrTypeIdxH、および変換ブロックのサイズに関する情報(log2TBWSizeおよびlog2TBHSize)を取得する。また、逆1次元変換部482は、信号列抽出部481から供給される1次元信号列X1を取得する。逆1次元変換部482は、その1次元信号列X1に対して、逆プライマリ水平変換の変換タイプ識別子TrTypeIdxHや、変換ブロックのサイズに関する情報(log2TBWSizeおよびlog2TBHSize)に対応する逆1次元変換を行い、1次元信号列X2を生成する。逆1次元変換部482は、その1次元信号列X2をスケーリング部483に供給する。
The inverse one-dimensional conversion unit 482 performs a process related to the inverse one-dimensional conversion. For example, the inverse one-dimensional conversion unit 482 acquires the conversion type identifier TrTypeIdxH of the inverse primary horizontal conversion and the information (log2TBWSize and log2TBHSize) related to the size of the conversion block, which are supplied from the inverse primary conversion selection unit 461. Also, inverse one-dimensional transform unit 482 obtains a one-dimensional signal sequence X 1 supplied from the signal sequence extraction unit 481. Inverse one-dimensional transform unit 482, for the one-dimensional signal sequence X 1, and conversion type identifier TrTypeIdxH inverse primary horizontal transform, an inverse one-dimensional transform corresponding to the information (Log2TBWSize and Log2TBHSize) about the size of the transform block performs , and it generates a one-dimensional signal sequence X 2. Inverse one-dimensional transform unit 482 supplies the one-dimensional signal sequence X 2 to the scaling unit 483.
スケーリング部483は、スケーリングに関する処理を行う。例えば、スケーリング部483は、逆1次元変換部482から供給される1次元信号列X2を取得する。スケーリング部483は、その1次元信号列X2の各係数を、所定のシフト量invShift2でスケーリングして1次元信号列X3を生成する。スケーリング部483は、その1次元信号列X3をクリップ部484に供給する。
The scaling unit 483 performs processing related to scaling. For example, the scaling unit 483 obtains a one-dimensional signal sequence X 2 supplied from the inverse one-dimensional transform unit 482. Scaling unit 483, the coefficients of the one-dimensional signal sequence X 2, scaled by a predetermined shift amount invShift2 generating a one-dimensional signal sequence X 3. Scaling unit 483 supplies the one-dimensional signal sequence X 3 in the clip portion 484.
クリップ部484は、クリップ処理に関する処理を行う。例えば、クリップ部484は、スケーリング部483から供給される1次元信号列X3を取得する。クリップ部484は、その1次元信号列X3の各係数を、最小値minCoefValおよび最大値maxCoefValを用いてクリップし、1次元信号列X4を生成する。クリップ部484は、その1次元信号列X4を2次元データ列生成部485に供給する。
The clip unit 484 performs processing related to clip processing. For example, the clip portion 484 obtains a one-dimensional signal sequence X 3 supplied from the scaling unit 483. Clip portion 484, each coefficient of the one-dimensional signal sequence X 3, clipped using the minimum value minCoefVal and maximum MaxCoefVal, to generate a one-dimensional signal sequence X 4. Clip portion 484 supplies the one-dimensional signal sequence X 4 in the two-dimensional data string generator 485.
2次元データ列生成部485は、2次元データ列の生成に関する処理を行う。例えば、2次元データ列生成部485は、クリップ部484から供給される1次元信号列X4を記憶する。2次元データ列生成部485は、その1次元信号列X4を所定数ずつまとめて2次元データ列である出力係数データXoutを生成する。2次元データ列生成部485は、その出力係数データXout(予測残差D'、逆プライマリ水平変換後の変換係数Coeff_IPhor、または、逆プライマリ変換後の変換係数Coeff_IP)を逆プライマリ水平変換部463の外部に出力する(演算部415に供給する)。
The two-dimensional data string generation unit 485 performs processing related to generation of a two-dimensional data string. For example, 2-dimensional data string generator 485 stores a one-dimensional signal sequence X 4 supplied from the clip portion 484. 2-dimensional data string generator 485 generates an output coefficient data Xout is collectively two-dimensional data sequence to its one-dimensional signal sequence X 4 by a predetermined number. The two-dimensional data sequence generation unit 485 converts the output coefficient data Xout (prediction residual D ′, the transform coefficient Coeff_IPhor after inverse primary horizontal transform, or the transform coefficient Coeff_IP after inverse primary transform) into the inverse primary horizontal transform unit 463. Output to the outside (supply to the operation unit 415).
信号列抽出部481乃至2次元データ列生成部485の各処理部は、任意の構成を有する。例えば、各処理部が、上述の処理を実現する論理回路により構成されるようにしてもよい。また、各処理部が、例えばCPU、ROM、RAM等を有し、それらを用いてプログラムを実行することにより、上述の処理を実現するようにしてもよい。もちろん、各処理部が、その両方の構成を有し、上述の処理の一部を論理回路により実現し、他を、プログラムを実行することにより実現するようにしてもよい。各処理部の構成は互いに独立していてもよく、例えば、一部の処理部が上述の処理の一部を論理回路により実現し、他の一部の処理部がプログラムを実行することにより上述の処理を実現し、さらに他の処理部が論理回路とプログラムの実行の両方により上述の処理を実現するようにしてもよい。
Each processing unit of the signal sequence extraction unit 481 to the two-dimensional data sequence generation unit 485 has an arbitrary configuration. For example, each processing unit may be configured by a logic circuit that realizes the above-described processing. In addition, each processing unit may include, for example, a CPU, a ROM, a RAM, and the like, and may execute the program by using the CPU, the ROM, the RAM, and the like, thereby realizing the above-described processing. Of course, each processing unit may have both configurations, and a part of the above-described processing may be realized by a logic circuit, and the other may be realized by executing a program. The configuration of each processing unit may be independent from each other. For example, some of the processing units may realize a part of the above-described processing by a logic circuit, and some of the other processing units may execute a program. May be implemented, and another processing unit may implement the above-described processing by both the logic circuit and the execution of the program.
<本技術の適用>
以上のような構成の画像復号装置400において、例えば、逆1次元変換部472(図34)や逆1次元変換部482(図35)として、第2の実施の形態において説明した逆変換装置150(図9)を適用するようにしてもよい。また、逆1次元変換部472(図34)や逆1次元変換部482(図35)として、第4の実施の形態において説明した逆変換装置150(図19)を適用するようにしてもよい。さらに、逆1次元変換部472(図34)や逆1次元変換部482(図35)として、第5の実施の形態において説明した逆変換装置150を適用するようにしてもよい。 <Application of this technology>
In theimage decoding device 400 configured as described above, for example, the inverse one-dimensional conversion unit 472 (FIG. 34) or the inverse one-dimensional conversion unit 482 (FIG. 35) is used as the inverse conversion device 150 described in the second embodiment. (FIG. 9) may be applied. In addition, the inverse transform device 150 (FIG. 19) described in the fourth embodiment may be applied as the inverse one-dimensional transform unit 472 (FIG. 34) or the inverse one-dimensional transform unit 482 (FIG. 35). . Further, the inverse transform device 150 described in the fifth embodiment may be applied as the inverse one-dimensional transform unit 472 (FIG. 34) or the inverse one-dimensional transform unit 482 (FIG. 35).
以上のような構成の画像復号装置400において、例えば、逆1次元変換部472(図34)や逆1次元変換部482(図35)として、第2の実施の形態において説明した逆変換装置150(図9)を適用するようにしてもよい。また、逆1次元変換部472(図34)や逆1次元変換部482(図35)として、第4の実施の形態において説明した逆変換装置150(図19)を適用するようにしてもよい。さらに、逆1次元変換部472(図34)や逆1次元変換部482(図35)として、第5の実施の形態において説明した逆変換装置150を適用するようにしてもよい。 <Application of this technology>
In the
つまり、例えば、逆1次元変換部472や逆1次元変換部482は、1次元信号列X1に対して、図10の表等を参照して説明したように、各変換タイプの逆1次元変換を行う。また、例えば、逆1次元変換部472や逆1次元変換部482は、図12の表等を参照して説明したように、行列演算に用いるベース変換行列を導出する。
That is, for example, inverse one-dimensional transform unit 472 and the inverse one-dimensional transform unit 482, for one-dimensional signal sequence X 1, as described with reference to the tables, and the like in FIG. 10, inverse one-dimensional of each conversion type Perform the conversion. Further, for example, the inverse one-dimensional conversion unit 472 and the inverse one-dimensional conversion unit 482 derive the base conversion matrix used for the matrix operation as described with reference to the table in FIG.
このような構成とすることにより、逆1次元変換部472や逆1次元変換部482は、画像データが符号化されたビットストリームを復号して得られる係数データ(逆セカンダリ変換後の変換係数Coeff_IS)に対する逆プライマリ変換(における水平方向または垂直方向の逆1次元変換)において、第2の実施の形態、第4の実施の形態、または第5の実施の形態の場合と同様の効果を得ることができる。つまり、画像復号装置400は、その逆1次元変換の構成の複雑化を抑制する(構成をより簡易化する)ことができる。すなわち、画像復号装置400は、その逆1次元変換をより容易に行うことができる。したがって、画像復号装置400は、回路規模や処理の負荷の増大を抑制し、実装コストの増大を抑制することができる。
With such a configuration, the inverse one-dimensional conversion unit 472 and the inverse one-dimensional conversion unit 482 can decode coefficient data obtained by decoding a bit stream in which image data is encoded (the conversion coefficient Coeff_IS after inverse secondary conversion). ), The same effect as in the second, fourth, or fifth embodiment can be obtained. Can be. That is, the image decoding apparatus 400 can suppress the configuration of the inverse one-dimensional conversion from becoming complicated (simplify the configuration). That is, the image decoding apparatus 400 can perform the inverse one-dimensional conversion more easily. Therefore, the image decoding device 400 can suppress an increase in circuit scale and processing load, and can suppress an increase in mounting cost.
<画像復号処理の流れ>
次に、以上のような画像復号装置400により実行される各処理の流れについて説明する。最初に、図36のフローチャートを参照して、画像復号処理の流れの例を説明する。 <Image decoding process flow>
Next, the flow of each process executed by theimage decoding device 400 as described above will be described. First, an example of the flow of the image decoding process will be described with reference to the flowchart in FIG.
次に、以上のような画像復号装置400により実行される各処理の流れについて説明する。最初に、図36のフローチャートを参照して、画像復号処理の流れの例を説明する。 <Image decoding process flow>
Next, the flow of each process executed by the
画像復号処理が開始されると、蓄積バッファ411は、ステップS401において、画像復号装置400の外部から供給される符号化データ(ビットストリーム)を取得して保持する(蓄積する)。
When the image decoding process starts, the accumulation buffer 411 acquires and stores (accumulates) the encoded data (bit stream) supplied from outside the image decoding device 400 in step S401.
ステップS402において、復号部412は、その符号化データ(ビットストリーム)を復号し、量子化変換係数レベルlevelを得る。また、復号部412は、この復号により、符号化データ(ビットストリーム)から各種符号化パラメータをパースする(解析して取得する)。
In step S402, the decoding unit 412 decodes the encoded data (bit stream) to obtain a quantized transform coefficient level level. In addition, the decoding unit 412 parses (analyzes and acquires) various encoding parameters from the encoded data (bit stream) by this decoding.
ステップS403において、逆量子化部413は、ステップS402の処理により得られた量子化変換係数レベルlevelに対して、符号化側で行われた量子化の逆処理である逆量子化を行い、変換係数Coeff_IQを得る。
In step S403, the inverse quantization unit 413 performs inverse quantization, which is an inverse process of the quantization performed on the encoding side, on the quantized transform coefficient level obtained by the process in step S402, and performs transform. Obtain the coefficient Coeff_IQ.
ステップS404において、逆直交変換部414は、ステップS403の処理により得られた変換係数Coeff_IQに対して、符号化側で行われた直交変換処理の逆処理である逆直交変換処理を行い、予測残差D'を得る。
In step S404, the inverse orthogonal transform unit 414 performs an inverse orthogonal transform process, which is an inverse process of the orthogonal transform process performed on the encoding side, on the transform coefficient Coeff_IQ obtained by the process in step S403, and performs prediction prediction. Obtain the difference D '.
ステップS405において、予測部419は、ステップS402においてパースされた情報に基づいて、符号化側より指定される予測方法で予測処理を実行し、フレームメモリ418に記憶されている参照画像を参照する等して、予測画像Pを生成する。
In step S405, the prediction unit 419 performs a prediction process based on the information parsed in step S402 using a prediction method designated by the encoding side, and refers to a reference image stored in the frame memory 418, and the like. Then, a predicted image P is generated.
ステップS406において、演算部415は、ステップS404の処理により得られた予測残差D'と、ステップS405の処理により得られた予測画像Pとを加算し、局所復号画像Rlocalを導出する。
In step S406, the calculation unit 415 adds the prediction residual D 'obtained by the processing of step S404 and the prediction image P obtained by the processing of step S405 to derive a local decoded image Rlocal.
ステップS407において、インループフィルタ部416は、ステップS406の処理により得られた局所復号画像Rlocalに対して、インループフィルタ処理を行う。
In step S407, the in-loop filter unit 416 performs an in-loop filter process on the locally decoded image Rlocal obtained by the process in step S406.
ステップS408において、並べ替えバッファ417は、ステップS407の処理により得られたフィルタ処理された局所復号画像Rlocalを用いて復号画像Rを導出し、その復号画像R群の順序を復号順から再生順に並べ替える。再生順に並べ替えられた復号画像R群は、動画像として画像復号装置400の外部に出力される。
In step S408, the reordering buffer 417 derives the decoded image R using the filtered local decoded image Rlocal obtained in the process of step S407, and arranges the order of the decoded image R group from decoding order to reproduction order. Replace. The decoded image R group rearranged in the reproduction order is output to the outside of the image decoding device 400 as a moving image.
また、ステップS409において、フレームメモリ418は、ステップS406の処理により得られた局所復号画像Rlocal、および、ステップS407の処理により得られたフィルタ処理後の局所復号画像Rlocalの内、少なくとも一方を記憶する。
In step S409, the frame memory 418 stores at least one of the local decoded image Rlocal obtained by the processing in step S406 and the local decoded image Rlocal obtained by the filtering in step S407. .
ステップS409の処理が終了すると、画像復号処理が終了する。
(4) When the processing in step S409 ends, the image decoding processing ends.
<逆直交変換の処理の流れ>
次に、図36のステップS404において実行される逆直交変換処理の流れの例を、図37のフローチャートを参照して説明する。逆直交変換処理が開始されると、スイッチ451は、ステップS431において、変換スキップフラグts_flagが2D_TS(2次元変換スキップのモード)(例えば1(真))である、または、変換量子化バイパスフラグtransquant_bypass_flagが1(真)である、か否かを判定する。変換スキップ識別子ts_idxが2D_TSである、または、変換量子化バイパスフラグが1(真)であると判定された場合、逆直交変換処理が終了し、処理は図36に戻る。この場合、逆直交変換処理(逆プライマリ変換や逆セカンダリ変換)が省略され、変換係数Coeff_IQが予測残差D'とされる。 <Process flow of inverse orthogonal transformation>
Next, an example of the flow of the inverse orthogonal transform process performed in step S404 in FIG. 36 will be described with reference to the flowchart in FIG. When the inverse orthogonal transform process is started, theswitch 451 determines in step S431 that the transform skip flag ts_flag is 2D_TS (two-dimensional transform skip mode) (for example, 1 (true)) or the transform quantization bypass flag transquant_bypass_flag Is 1 (true). When it is determined that the transform skip identifier ts_idx is 2D_TS or the transform quantization bypass flag is 1 (true), the inverse orthogonal transform process ends, and the process returns to FIG. In this case, the inverse orthogonal transform processing (the inverse primary transform and the inverse secondary transform) is omitted, and the transform coefficient Coeff_IQ is set to the prediction residual D ′.
次に、図36のステップS404において実行される逆直交変換処理の流れの例を、図37のフローチャートを参照して説明する。逆直交変換処理が開始されると、スイッチ451は、ステップS431において、変換スキップフラグts_flagが2D_TS(2次元変換スキップのモード)(例えば1(真))である、または、変換量子化バイパスフラグtransquant_bypass_flagが1(真)である、か否かを判定する。変換スキップ識別子ts_idxが2D_TSである、または、変換量子化バイパスフラグが1(真)であると判定された場合、逆直交変換処理が終了し、処理は図36に戻る。この場合、逆直交変換処理(逆プライマリ変換や逆セカンダリ変換)が省略され、変換係数Coeff_IQが予測残差D'とされる。 <Process flow of inverse orthogonal transformation>
Next, an example of the flow of the inverse orthogonal transform process performed in step S404 in FIG. 36 will be described with reference to the flowchart in FIG. When the inverse orthogonal transform process is started, the
また、ステップS431において、変換スキップ識別子ts_idxが2D_TSでない(2次元変換スキップ以外のモード)(例えば0(偽))であり、かつ、変換量子化バイパスフラグが0(偽)である、と判定された場合、処理はステップS432に進む。この場合、逆セカンダリ変換処理および逆プライマリ変換処理が行われる。
In step S431, it is determined that the conversion skip identifier ts_idx is not 2D_TS (a mode other than the two-dimensional conversion skip) (for example, 0 (false)) and the conversion quantization bypass flag is 0 (false). If so, the process proceeds to step S432. In this case, an inverse secondary conversion process and an inverse primary conversion process are performed.
ステップS432において、逆セカンダリ変換部452は、変換係数Coeff_IQに対して、セカンダリ変換識別子st_idxに基づいて逆セカンダリ変換処理を行い、変換係数Coeff_ISを導出し、出力する。
In step S432, the inverse secondary transform unit 452 performs an inverse secondary transform process on the transform coefficient Coeff_IQ based on the secondary transform identifier st_idx to derive and output a transform coefficient Coeff_IS.
ステップS433において、逆プライマリ変換部453は、変換係数Coeff_ISに対して逆プライマリ変換処理を行い、逆プライマリ変換後の変換係数Coeff_IP(予測残差D')を導出する。
In step S433, the inverse primary transform unit 453 performs an inverse primary transform process on the transform coefficient Coeff_IS, and derives a transform coefficient Coeff_IP (prediction residual D ′) after the inverse primary transform.
ステップS433の処理が終了すると逆直交変換処理が終了し、処理は図36に戻る。
(6) When the process in step S433 ends, the inverse orthogonal transform process ends, and the process returns to FIG.
<逆プライマリ変換処理の流れ>
次に、図37のステップS433において実行される逆プライマリ変換処理の流れの例を、図38のフローチャートを参照して説明する。 <Flow of reverse primary conversion process>
Next, an example of the flow of the inverse primary conversion process executed in step S433 in FIG. 37 will be described with reference to the flowchart in FIG.
次に、図37のステップS433において実行される逆プライマリ変換処理の流れの例を、図38のフローチャートを参照して説明する。 <Flow of reverse primary conversion process>
Next, an example of the flow of the inverse primary conversion process executed in step S433 in FIG. 37 will be described with reference to the flowchart in FIG.
逆プライマリ変換処理が開始されると、逆プライマリ変換部453の逆プライマリ変換選択部461(図33)は、ステップS441において、逆プライマリ垂直変換の変換タイプ識別子TrTypeIdxV(または変換タイプTrTypeV)と、逆プライマリ水平変換の変換タイプ識別子TrTypeIdxH(または変換タイプTrTypeH)とを、それぞれ選択する。
When the inverse primary conversion process is started, the inverse primary conversion selecting unit 461 (FIG. 33) of the inverse primary conversion unit 453, in step S441, converts the inverse primary vertical conversion conversion type identifier TrTypeIdxV (or the conversion type TrTypeV) with the inverse type. The conversion type identifier TrTypeIdxH (or the conversion type TrTypeH) of the primary horizontal conversion is selected.
ステップS442において、逆プライマリ垂直変換部462は、ステップS441において得られた逆プライマリ垂直変換の変換タイプ識別子TrTypeIdxVに対応する逆プライマリ垂直変換処理を逆セカンダリ変換後の変換係数Coeff_ISに対して行い、逆プライマリ垂直変換後の変換係数Coeff_IPverを導出する。
In step S442, the inverse primary vertical conversion unit 462 performs an inverse primary vertical conversion process corresponding to the conversion type identifier TrTypeIdxV of the inverse primary vertical conversion obtained in step S441 on the conversion coefficient Coeff_IS after the inverse secondary conversion. The conversion coefficient Coeff_IPver after the primary vertical conversion is derived.
ステップS443において、逆プライマリ水平変換部463は、ステップS441において得られた逆プライマリ水平変換の変換タイプ識別子TrTypeIdxHに対応する逆プライマリ水平変換処理を逆プライマリ垂直変換後の変換係数Coeff_IPverに対して行い、逆プライマリ水平変換後の変換係数Coeff_IPhor(すなわち、逆プライマリ変換後の変換係数Coeff_IP(予測残差D'))を導出する。
In step S443, the inverse primary horizontal conversion unit 463 performs an inverse primary horizontal conversion process corresponding to the conversion type identifier TrTypeIdxH of the inverse primary horizontal conversion obtained in step S441 on the conversion coefficient Coeff_IPver after the inverse primary vertical conversion. The transformation coefficient Coeff_IPhor after the inverse primary horizontal transformation (that is, the transformation coefficient Coeff_IP (prediction residual D ′) after the inverse primary transformation) is derived.
ステップS443の処理が終了すると、逆プライマリ変換処理が終了し、処理は図37に戻る。
す る と When the processing in step S443 ends, the inverse primary conversion processing ends, and the processing returns to FIG.
<逆プライマリ垂直変換処理の流れ>
次に、図38のステップS442において実行される逆プライマリ垂直変換処理の流れの例を、図39のフローチャートを参照して説明する。 <Flow of inverse primary vertical conversion process>
Next, an example of the flow of the inverse primary vertical conversion process executed in step S442 in FIG. 38 will be described with reference to the flowchart in FIG.
次に、図38のステップS442において実行される逆プライマリ垂直変換処理の流れの例を、図39のフローチャートを参照して説明する。 <Flow of inverse primary vertical conversion process>
Next, an example of the flow of the inverse primary vertical conversion process executed in step S442 in FIG. 38 will be described with reference to the flowchart in FIG.
逆プライマリ垂直変換処理が開始されると、逆プライマリ垂直変換部462の信号列抽出部471(図34)は、ステップS451において、2次元データ列である入力係数データXin(逆セカンダリ変換後の変換係数Coeff_IS)を取得し、記憶する(保持する)。
When the inverse primary vertical conversion process is started, the signal sequence extraction unit 471 (FIG. 34) of the inverse primary vertical conversion unit 462 determines in step S451 that input coefficient data Xin (conversion after inverse secondary conversion) is a two-dimensional data sequence. The coefficient Coeff_IS is obtained and stored (held).
ステップS452において、信号列抽出部471は、例えば上述した式(33)のように、保持している入力係数データXinの処理対象の列(j)を1次元信号列X1として抽出する。
In step S452, the signal sequence extraction unit 471, for example, as in the above Expression (33), extracts the column to be processed of the input coefficient data Xin holding the (j) as a one-dimensional signal sequence X 1.
ステップS453において、逆1次元変換部472は、逆変換処理を実行し、変換タイプ識別子trTypeIdxVと変換サイズ(nTbS)に応じたベース変換行列Tbaseを用いて、1次元信号列X1に対する逆1次元変換を行う。
In step S453, inverse one-dimensional transform unit 472 performs an inverse transform process, using a base transform matrix T base in accordance with the converted type identifier trTypeIdxV the transform size (NTBS), reverse 1 for a one-dimensional signal sequence X 1 Perform dimension conversion.
ステップS454において、スケーリング部473は、例えば、以下の式(38)のように、1次元信号列X2の各係数X2[i]をシフト量invShift1でスケーリングし、1次元信号列X3を導出する。
In step S454, the scaling unit 473, for example, as shown in the following expression (38), scaling the coefficients X 2 of the one-dimensional signal sequence X 2 [i] in the shift amount InvShift1, a one-dimensional signal sequence X 3 Derive.
ステップS455において、クリップ部474は、例えば、上述の式(31)のように、1次元信号列X3の各係数X3[i]を、最小値minCoefValと最大値maxCoefValとの間にクリップし、1次元信号列X4を導出する。
In step S455, the clip portion 474, for example, as the above equation (31), the coefficients of the one-dimensional signal sequence X 3 X 3 [i], clipped between the minimum minCoefVal and maximum maxCoefVal , to derive a one-dimensional signal sequence X 4.
ステップS456において、2次元データ列生成部475は、1次元信号列X4を用いて2次元データ列Xoutを生成する。つまり、2次元データ列生成部475は、1次元信号列X4を保持(記憶)し、上述した式(35)のように、所定の列数分の1次元信号列X4をまとめることにより、2次元データ列Xoutを生成する。
In step S456, the two-dimensional data array generating unit 475 generates two-dimensional data string Xout by using a one-dimensional signal sequence X 4. That is, two-dimensional data string generator 475, holding a one-dimensional signal sequence X 4 and (storage), as above Expression (35), by assembling a predetermined column fraction 1 dimensional signal sequence X 4 A two-dimensional data sequence Xout is generated.
ステップS457において、2次元データ列生成部475は、ステップS452乃至ステップS457の各処理を、全ての列に対して行ったか否かを判定する。すなわち、ステップS452乃至ステップS457の各処理は、ステップS451において保持された入力データXinの各列について行われる。2次元データ列生成部475は、その全ての列を処理したか否かを判定する。
(2) In step S457, the two-dimensional data string generation unit 475 determines whether or not each processing in steps S452 to S457 has been performed for all the columns. That is, each processing of steps S452 to S457 is performed for each column of the input data Xin held in step S451. The two-dimensional data sequence generation unit 475 determines whether all the columns have been processed.
未処理の列が存在すると判定された場合、処理はステップS452に戻り、次の未処理の列を処理対象として、それ以降の処理を繰り返す。また、ステップS457において全ての列を処理したと判定された場合、プライマリ垂直変換処理が終了し、処理は図38に戻る。
If it is determined that there is an unprocessed column, the process returns to step S452, and the subsequent process is repeated for the next unprocessed column. If it is determined in step S457 that all columns have been processed, the primary vertical conversion process ends, and the process returns to FIG.
<逆プライマリ水平変換処理の流れ>
次に、図38のステップS443において実行される逆プライマリ水平変換処理の流れの例を、図40のフローチャートを参照して説明する。 <Flow of inverse primary horizontal conversion process>
Next, an example of the flow of the inverse primary horizontal conversion process executed in step S443 in FIG. 38 will be described with reference to the flowchart in FIG.
次に、図38のステップS443において実行される逆プライマリ水平変換処理の流れの例を、図40のフローチャートを参照して説明する。 <Flow of inverse primary horizontal conversion process>
Next, an example of the flow of the inverse primary horizontal conversion process executed in step S443 in FIG. 38 will be described with reference to the flowchart in FIG.
逆プライマリ水平変換処理が開始されると、逆プライマリ水平変換部463の信号列抽出部481(図35)は、ステップS461において、2次元データ列である入力係数データXin(逆プライマリ垂直変換後の変換係数Coeff_IPver)を取得し、記憶する(保持する)。
When the inverse primary horizontal conversion process is started, the signal sequence extraction unit 481 (FIG. 35) of the inverse primary horizontal conversion unit 463 determines in step S461 that the input coefficient data Xin (two-dimensional data sequence) A conversion coefficient (Coeff_IPver) is acquired and stored (held).
ステップS462において、信号列抽出部481は、例えば上述した式(29)のように、保持している入力係数データXinの処理対象の行(j)を1次元信号列X1として抽出する。
In step S462, the signal sequence extraction unit 481, for example, as in the above Expression (29), and extracts processed line of the input coefficient data Xin holding the (j) as a one-dimensional signal sequence X 1.
ステップS463において、逆1次元変換部482は、逆変換処理を実行し、変換タイプ識別子trTypeIdxHと変換サイズ(nTbS)に応じたベース変換行列の転置行列Tbase
tを用いて、1次元信号列X1に対する逆1次元変換を行う。
In step S463, the inverse one-dimensional conversion unit 482 performs an inverse conversion process, and uses the conversion type identifier trTypeIdxH and the transposed matrix T base t of the base conversion matrix corresponding to the conversion size (nTbS) to generate the one-dimensional signal sequence X performing inverse one-dimensional transform for 1.
ステップS464において、スケーリング部483は、例えば、以下の式(39)のように、1次元信号列X2の各係数X2[i]をシフト量invShift2でスケーリングし、1次元信号列X3を導出する。
In step S464, the scaling unit 483, for example, as shown in the following expression (39), scaling the coefficients X 2 of the one-dimensional signal sequence X 2 [i] in the shift amount InvShift2, a one-dimensional signal sequence X 3 Derive.
ステップS465において、クリップ部484は、例えば、上述の式(31)のように、1次元信号列X3の各係数X3[i]を、最小値minCoefValと最大値maxCoefValとの間にクリップし、1次元信号列X4を導出する。
In step S465, the clipping unit 484 clips each coefficient X 3 [i] of the one-dimensional signal sequence X 3 between the minimum value minCoefVal and the maximum value maxCoefVal, for example, as in Expression (31) above. , to derive a one-dimensional signal sequence X 4.
ステップS466において、2次元データ列生成部485は、1次元信号列X4を用いて2次元データ列Xoutを生成する。つまり、2次元データ列生成部485は、上述した式(32)のように、1次元信号列X4を保持(記憶)し、所定の列数分の1次元信号列X4をまとめることにより、2次元データ列Xoutを生成する。
In step S466, the two-dimensional data array generating unit 485 generates two-dimensional data string Xout by using a one-dimensional signal sequence X 4. That is, two-dimensional data string generator 485, as shown in Equation (32) described above, holds the one-dimensional signal sequence X 4 and (storage), by assembling a predetermined column fraction 1 dimensional signal sequence X 4 A two-dimensional data sequence Xout is generated.
ステップS467において、2次元データ列生成部485は、ステップS462乃至ステップS467の各処理を、全ての行に対して行ったか否かを判定する。すなわち、ステップS462乃至ステップS467の各処理は、ステップS461において保持された入力データXinの各行について行われる。2次元データ列生成部485は、その全ての行を処理したか否かを判定する。
(2) In step S467, the two-dimensional data string generation unit 485 determines whether or not the processing in steps S462 to S467 has been performed for all rows. That is, each processing of steps S462 to S467 is performed for each row of the input data Xin held in step S461. The two-dimensional data string generation unit 485 determines whether or not all the rows have been processed.
未処理の行が存在すると判定された場合、処理はステップS462に戻り、次の未処理の行を処理対象として、それ以降の処理を繰り返す。また、ステップS467において全ての行を処理したと判定された場合、2次元データ列生成部485は、生成した2次元データ列Xout(予測残差D'、逆プライマリ水平変換後の変換係数Coeff_IPhor、または、逆プライマリ変換後の変換係数Coeff_IP)を逆プライマリ水平変換部463の外部に出力する(演算部415に供給する)。2次元データ列Xoutが出力されると、逆プライマリ水平変換処理が終了し、処理は図38に戻る。
If it is determined that there is an unprocessed line, the process returns to step S462, and the subsequent processes are repeated with the next unprocessed line as a processing target. If it is determined in step S467 that all the rows have been processed, the two-dimensional data sequence generation unit 485 generates the two-dimensional data sequence Xout (the prediction residual D ′, the conversion coefficient Coeff_IPhor after inverse primary horizontal conversion, Alternatively, the conversion coefficient Coeff_IP after the inverse primary conversion is output to the outside of the inverse primary horizontal conversion unit 463 (supplied to the calculation unit 415). When the two-dimensional data string Xout is output, the inverse primary horizontal conversion processing ends, and the processing returns to FIG.
<本技術の適用>
以上のような逆プライマリ垂直変換処理(図39)のステップS453において、例えば、逆1次元変換部472は、第2の実施の形態の場合(図11)と同様の流れで逆変換処理を実行するようにしてもよい。また、逆1次元変換部472は、第4の実施の形態の場合(図20)と同様の流れで逆変換処理を実行するようにしてもよい。さらに、逆1次元変換部472は、第5の実施の形態の場合と同様の流れで逆変換処理を実行するようにしてもよい。 <Application of this technology>
In step S453 of the above-described inverse primary vertical conversion process (FIG. 39), for example, the inverse one-dimensional conversion unit 472 executes the inverse conversion process in the same flow as in the case of the second embodiment (FIG. 11). You may make it. Further, the inverse one-dimensional conversion unit 472 may execute the inverse conversion process in the same flow as in the case of the fourth embodiment (FIG. 20). Further, the inverse one-dimensional conversion unit 472 may execute the inverse conversion process in the same flow as in the fifth embodiment.
以上のような逆プライマリ垂直変換処理(図39)のステップS453において、例えば、逆1次元変換部472は、第2の実施の形態の場合(図11)と同様の流れで逆変換処理を実行するようにしてもよい。また、逆1次元変換部472は、第4の実施の形態の場合(図20)と同様の流れで逆変換処理を実行するようにしてもよい。さらに、逆1次元変換部472は、第5の実施の形態の場合と同様の流れで逆変換処理を実行するようにしてもよい。 <Application of this technology>
In step S453 of the above-described inverse primary vertical conversion process (FIG. 39), for example, the inverse one-
また、以上のような逆プライマリ水平変換処理(図40)のステップS463において、例えば、逆1次元変換部482は、第2の実施の形態の場合(図11)と同様の流れで逆変換処理を実行するようにしてもよい。また、逆1次元変換部482は、第4の実施の形態の場合(図20)と同様の流れで逆変換処理を実行するようにしてもよい。さらに、逆1次元変換部482は、第5の実施の形態の場合と同様の流れで逆変換処理を実行するようにしてもよい。
In addition, in step S463 of the above-described inverse primary horizontal conversion process (FIG. 40), for example, the inverse one-dimensional conversion unit 482 performs the inverse conversion process in the same flow as in the case of the second embodiment (FIG. 11). May be executed. Further, the inverse one-dimensional conversion unit 482 may execute the inverse conversion process in the same flow as in the case of the fourth embodiment (FIG. 20). Further, the inverse one-dimensional conversion unit 482 may execute the inverse conversion process in the same flow as in the fifth embodiment.
このように各処理を実行することにより、逆1次元変換部472や逆1次元変換部482は、画像データが符号化されたビットストリームを復号して得られる係数データに対する逆プライマリ変換(における水平方向または垂直方向の逆1次元変換)において、第2の実施の形態や第4の実施の形態の場合と同様の効果を得ることができる。つまり、画像復号装置400は、その逆1次元変換の構成の複雑化を抑制する(構成をより簡易化する)ことができる。すなわち、画像復号装置400は、その逆1次元変換をより容易に行うことができる。したがって、画像復号装置400は、回路規模や処理の負荷の増大を抑制し、実装コストの増大を抑制することができる。
By executing each process in this way, the inverse one-dimensional transform unit 472 and the inverse one-dimensional transform unit 482 perform inverse primary transform (in horizontal inverse transform) on coefficient data obtained by decoding a bit stream in which image data is encoded. In the direction or the vertical one-dimensional inverse one-dimensional conversion), the same effect as in the second embodiment or the fourth embodiment can be obtained. That is, the image decoding apparatus 400 can suppress the configuration of the inverse one-dimensional conversion from becoming complicated (simplify the configuration). That is, the image decoding apparatus 400 can perform the inverse one-dimensional conversion more easily. Therefore, the image decoding device 400 can suppress an increase in circuit scale and processing load, and can suppress an increase in mounting cost.
なお、上述したように、画像符号化装置300も、逆直交変換部318を有し、画像復号装置400の逆直交変換部414と同様の構成を有し、同様の処理を行う。つまり、その逆直交変換部318も、逆量子化後の変換係数Coeff_IQに対する逆プライマリ変換(における水平方向または垂直方向の逆1次元変換)において、第2の実施の形態、第4の実施の形態、または第5の実施の形態の場合と同様の効果を得ることができる。つまり、画像符号化装置300は、その逆1次元変換の構成の複雑化を抑制する(構成をより簡易化する)ことができる。すなわち、画像符号化装置300は、その逆1次元変換をより容易に行うことができる。したがって、画像符号化装置300は、回路規模や処理の負荷の増大を抑制し、実装コストの増大を抑制することができる。
As described above, the image encoding device 300 also has the inverse orthogonal transform unit 318, has the same configuration as the inverse orthogonal transform unit 414 of the image decoding device 400, and performs the same processing. That is, the inverse orthogonal transform unit 318 also performs the inverse primary transform (the horizontal or vertical inverse one-dimensional transform in the transform coefficient) on the inversely quantized transform coefficient Coeff_IQ in the second embodiment and the fourth embodiment. Alternatively, the same effect as that of the fifth embodiment can be obtained. That is, the image encoding device 300 can suppress the complexity of the configuration of the inverse one-dimensional transform (simplify the configuration). That is, the image encoding device 300 can more easily perform the inverse one-dimensional conversion. Therefore, the image encoding device 300 can suppress an increase in circuit scale and processing load and an increase in mounting cost.
<11.付記>
<コンピュータ>
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。 <11. Appendix>
<Computer>
The series of processes described above can be executed by hardware or can be executed by software. When a series of processing is executed by software, a program constituting the software is installed in a computer. Here, the computer includes a computer incorporated in dedicated hardware, a general-purpose personal computer that can execute various functions by installing various programs, and the like.
<コンピュータ>
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここでコンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等が含まれる。 <11. Appendix>
<Computer>
The series of processes described above can be executed by hardware or can be executed by software. When a series of processing is executed by software, a program constituting the software is installed in a computer. Here, the computer includes a computer incorporated in dedicated hardware, a general-purpose personal computer that can execute various functions by installing various programs, and the like.
図41は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
FIG. 41 is a block diagram showing a configuration example of hardware of a computer that executes the above-described series of processing by a program.
図41に示されるコンピュータ800において、CPU(Central Processing Unit)801、ROM(Read Only Memory)802、RAM(Random Access Memory)803は、バス804を介して相互に接続されている。
In the computer 800 shown in FIG. 41, a CPU (Central Processing Unit) 801, a ROM (Read Only Memory) 802, and a RAM (Random Access Memory) 803 are interconnected via a bus 804.
バス804にはまた、入出力インタフェース810も接続されている。入出力インタフェース810には、入力部811、出力部812、記憶部813、通信部814、およびドライブ815が接続されている。
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.
入力部811は、例えば、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部812は、例えば、ディスプレイ、スピーカ、出力端子などよりなる。記憶部813は、例えば、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部814は、例えば、ネットワークインタフェースよりなる。ドライブ815は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア821を駆動する。
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 nonvolatile memory, and the like. The communication unit 814 includes, 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.
以上のように構成されるコンピュータでは、CPU801が、例えば、記憶部813に記憶されているプログラムを、入出力インタフェース810およびバス804を介して、RAM803にロードして実行することにより、上述した一連の処理が行われる。RAM803にはまた、CPU801が各種の処理を実行する上において必要なデータなども適宜記憶される。
In the computer configured as described above, the CPU 801 loads a program stored in the storage unit 813 into the RAM 803 via the input / output interface 810 and the bus 804, and executes the program, for example. Is performed. The RAM 803 also appropriately stores data necessary for the CPU 801 to execute various processes.
コンピュータ(CPU801)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア821に記録して適用することができる。その場合、プログラムは、リムーバブルメディア821をドライブ815に装着することにより、入出力インタフェース810を介して、記憶部813にインストールすることができる。
The program executed by the computer (CPU 801) can be recorded on a removable medium 821 as a package medium or the like and applied. In that case, the program can be installed in the storage unit 813 via the input / output interface 810 by attaching the removable medium 821 to the drive 815.
また、このプログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することもできる。その場合、プログラムは、通信部814で受信し、記憶部813にインストールすることができる。
This program can also be provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting. In that case, the program can be received by the communication unit 814 and installed in the storage unit 813.
その他、このプログラムは、ROM802や記憶部813に、あらかじめインストールしておくこともできる。
In addition, this program can be installed in the ROM 802 or the storage unit 813 in advance.
<情報・処理の単位>
以上において説明した各種情報が設定されるデータ単位や、各種処理が対象とするデータ単位は、それぞれ任意であり上述した例に限定されない。例えば、これらの情報や処理が、それぞれ、TU(Transform Unit)、TB(Transform Block)、PU(Prediction Unit)、PB(Prediction Block)、CU(Coding Unit)、LCU(Largest Coding Unit)、サブブロック、ブロック、タイル、スライス、ピクチャ、シーケンス、またはコンポーネント毎に設定されるようにしてもよいし、それらのデータ単位のデータを対象とするようにしてもよい。もちろん、このデータ単位は、情報や処理毎に設定され得るものであり、全ての情報や処理のデータ単位が統一されている必要はない。なお、これらの情報の格納場所は任意であり、上述したデータ単位のヘッダやパラメータセット等に格納されるようにしてもよい。また、複数個所に格納されるようにしてもよい。 <Unit of information and processing>
The data units in which the various types of information described above are set and the data units targeted for various types of processing are arbitrary, and are not limited to the examples described above. For example, these pieces of information and processing are respectively TU (Transform Unit), TB (Transform Block), PU (Prediction Unit), PB (Prediction Block), CU (Coding Unit), LCU (Largest Coding Unit), and sub-block. , A block, a tile, a slice, a picture, a sequence, or a component, or the data of these data units may be targeted. Of course, this data unit can be set for each information or process, and it is not necessary that all information and data units of the process be unified. The storage location of these pieces of information is arbitrary, and may be stored in the above-described data unit header or parameter set. Further, the information may be stored at a plurality of locations.
以上において説明した各種情報が設定されるデータ単位や、各種処理が対象とするデータ単位は、それぞれ任意であり上述した例に限定されない。例えば、これらの情報や処理が、それぞれ、TU(Transform Unit)、TB(Transform Block)、PU(Prediction Unit)、PB(Prediction Block)、CU(Coding Unit)、LCU(Largest Coding Unit)、サブブロック、ブロック、タイル、スライス、ピクチャ、シーケンス、またはコンポーネント毎に設定されるようにしてもよいし、それらのデータ単位のデータを対象とするようにしてもよい。もちろん、このデータ単位は、情報や処理毎に設定され得るものであり、全ての情報や処理のデータ単位が統一されている必要はない。なお、これらの情報の格納場所は任意であり、上述したデータ単位のヘッダやパラメータセット等に格納されるようにしてもよい。また、複数個所に格納されるようにしてもよい。 <Unit of information and processing>
The data units in which the various types of information described above are set and the data units targeted for various types of processing are arbitrary, and are not limited to the examples described above. For example, these pieces of information and processing are respectively TU (Transform Unit), TB (Transform Block), PU (Prediction Unit), PB (Prediction Block), CU (Coding Unit), LCU (Largest Coding Unit), and sub-block. , A block, a tile, a slice, a picture, a sequence, or a component, or the data of these data units may be targeted. Of course, this data unit can be set for each information or process, and it is not necessary that all information and data units of the process be unified. The storage location of these pieces of information is arbitrary, and may be stored in the above-described data unit header or parameter set. Further, the information may be stored at a plurality of locations.
<制御情報>
以上の各実施の形態において説明した本技術に関する制御情報を符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可(または禁止)するか否かを制御する制御情報(例えばenabled_flag)を伝送するようにしてもよい。また、例えば、上述した本技術を適用する対象(または適用しない対象)を示す制御情報を伝送するようにしてもよい。例えば、本技術を適用する(または、適用を許可若しくは禁止する)ブロックサイズ(上限若しくは下限、またはその両方)、フレーム、コンポーネント、またはレイヤ等を指定する制御情報を伝送するようにしてもよい。 <Control information>
The control information related to the present technology described in each of the above embodiments may be transmitted from the encoding side to the decoding side. For example, control information (for example, enabled_flag) for controlling whether to apply (or prohibit) applying the present technology described above may be transmitted. Further, for example, control information indicating a target to which the present technology is applied (or a target to which the present technology is not applied) may be transmitted. For example, control information specifying a block size (upper or lower limit, or both) to which the present technology is applied (or application is permitted or prohibited), a frame, a component, a layer, or the like may be transmitted.
以上の各実施の形態において説明した本技術に関する制御情報を符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可(または禁止)するか否かを制御する制御情報(例えばenabled_flag)を伝送するようにしてもよい。また、例えば、上述した本技術を適用する対象(または適用しない対象)を示す制御情報を伝送するようにしてもよい。例えば、本技術を適用する(または、適用を許可若しくは禁止する)ブロックサイズ(上限若しくは下限、またはその両方)、フレーム、コンポーネント、またはレイヤ等を指定する制御情報を伝送するようにしてもよい。 <Control information>
The control information related to the present technology described in each of the above embodiments may be transmitted from the encoding side to the decoding side. For example, control information (for example, enabled_flag) for controlling whether to apply (or prohibit) applying the present technology described above may be transmitted. Further, for example, control information indicating a target to which the present technology is applied (or a target to which the present technology is not applied) may be transmitted. For example, control information specifying a block size (upper or lower limit, or both) to which the present technology is applied (or application is permitted or prohibited), a frame, a component, a layer, or the like may be transmitted.
<本技術の適用対象>
本技術は、任意の画像符号化・復号方式に適用することができる。つまり、上述した本技術と矛盾しない限り、変換(逆変換)、量子化(逆量子化)、符号化(復号)、予測等、画像符号化・復号に関する各種処理の仕様は任意であり、上述した例に限定されない。また、上述した本技術と矛盾しない限り、これらの処理の内の一部を省略してもよい。 <Applicable target of this technology>
The present technology can be applied to any image encoding / decoding method. That is, as long as there is no contradiction with the present technology described above, the specifications of various processes related to image encoding / decoding such as conversion (inverse transformation), quantization (inverse quantization), encoding (decoding), prediction, and the like are arbitrary. However, the present invention is not limited to this example. Further, some of these processes may be omitted as long as they do not conflict with the present technology described above.
本技術は、任意の画像符号化・復号方式に適用することができる。つまり、上述した本技術と矛盾しない限り、変換(逆変換)、量子化(逆量子化)、符号化(復号)、予測等、画像符号化・復号に関する各種処理の仕様は任意であり、上述した例に限定されない。また、上述した本技術と矛盾しない限り、これらの処理の内の一部を省略してもよい。 <Applicable target of this technology>
The present technology can be applied to any image encoding / decoding method. That is, as long as there is no contradiction with the present technology described above, the specifications of various processes related to image encoding / decoding such as conversion (inverse transformation), quantization (inverse quantization), encoding (decoding), prediction, and the like are arbitrary. However, the present invention is not limited to this example. Further, some of these processes may be omitted as long as they do not conflict with the present technology described above.
また本技術は、複数の視点(ビュー(view))の画像を含む多視点画像の符号化・復号を行う多視点画像符号化・復号システムに適用することができる。その場合、各視点(ビュー(view))の符号化・復号において、本技術を適用するようにすればよい。
{In addition, the present technology can be applied to a multi-view image encoding / decoding system that performs encoding / decoding of a multi-view image including images of a plurality of viewpoints (views). In that case, the present technology may be applied to encoding / decoding of each viewpoint (view).
さらに本技術は、所定のパラメータについてスケーラビリティ(scalability)機能を有するように複数レイヤ化(階層化)された階層画像の符号化・復号を行う階層画像符号化(スケーラブル符号化)・復号システムに適用することができる。その場合、各階層(レイヤ)の符号化・復号において、本技術を適用するようにすればよい。
Furthermore, the present technology is applied to a hierarchical image encoding (scalable encoding) / decoding system that encodes / decodes a hierarchical image that is multi-layered (hierarchized) so as to have a scalability function for a predetermined parameter. can do. In this case, the present technology may be applied to encoding / decoding of each layer (layer).
上述した実施の形態に係る画像処理装置、画像符号化装置、および画像復号装置は、例えば、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信などにおける送信機や受信機(例えばテレビジョン受像機や携帯電話機)、または、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録したり、これら記憶媒体から画像を再生したりする装置(例えばハードディスクレコーダやカメラ)などの、様々な電子機器に応用され得る。
The image processing device, the image encoding device, and the image decoding device according to the above-described embodiments are used, for example, in satellite broadcasting, cable broadcasting such as cable TV, distribution on the Internet, and distribution to terminals by cellular communication. A device (eg, a hard disk recorder) that records an image on a medium such as a transmitter or a receiver (eg, a television receiver or a mobile phone) or an optical disk, a magnetic disk, and a flash memory, and reproduces an image from these storage media And cameras).
また、本技術は、任意の装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ(例えばビデオプロセッサ)、複数のプロセッサ等を用いるモジュール(例えばビデオモジュール)、複数のモジュール等を用いるユニット(例えばビデオユニット)、ユニットにさらにその他の機能を付加したセット(例えばビデオセット)等(すなわち、装置の一部の構成)として実施することもできる。
In addition, the present technology is applicable to any configuration mounted on an arbitrary device or a device configuring a system, for example, a processor (eg, a video processor) as a system LSI (Large Scale Integration), a module using a plurality of processors (eg, video Module), a unit using a plurality of modules (eg, a video unit), a set in which other functions are added to the unit (eg, a video set), and the like (ie, a configuration of a part of the apparatus).
さらに、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。例えば、コンピュータ、AV(Audio Visual)機器、携帯型情報処理端末、IoT(Internet of Things)デバイス等の任意の端末に対して、画像(動画像)に関するサービスを提供するクラウドサービスに適用することもできる。
Furthermore, the present technology can be applied to a network system including a plurality of devices. For example, the present invention can be applied to a cloud service that provides a service related to an image (moving image) to an arbitrary terminal such as a computer, an AV (Audio Visual) device, a portable information processing terminal, and an IoT (Internet of Things) device. it can.
なお、本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
In addition, the system, apparatus, processing unit, etc. to which this technology is applied may be used in any fields such as traffic, medical care, crime prevention, agriculture, livestock industry, mining, beauty, factories, household appliances, weather, nature monitoring, etc. Can be. Further, its use is arbitrary.
例えば、本技術は、観賞用コンテンツ等の提供の用に供されるシステムやデバイスに適用することができる。また、例えば、本技術は、交通状況の監理や自動運転制御等、交通の用に供されるシステムやデバイスにも適用することができる。さらに、例えば、本技術は、セキュリティの用に供されるシステムやデバイスにも適用することができる。また、例えば、本技術は、機械等の自動制御の用に供されるシステムやデバイスに適用することができる。さらに、例えば、本技術は、農業や畜産業の用に供されるシステムやデバイスにも適用することができる。また、本技術は、例えば火山、森林、海洋等の自然の状態や野生生物等を監視するシステムやデバイスにも適用することができる。さらに、例えば、本技術は、スポーツの用に供されるシステムやデバイスにも適用することができる。
For example, the present technology can be applied to systems and devices provided for providing ornamental content and the like. Further, for example, the present technology can also be applied to systems and devices used for traffic, such as traffic condition management and automatic driving control. Further, for example, the present technology can also be applied to systems and devices provided for security. Further, for example, the present technology can be applied to a system or a device provided for automatic control of a machine or the like. Further, for example, the present technology can also be applied to systems and devices provided for use in agriculture and livestock industry. Further, the present technology can also be applied to a system or a device that monitors a natural state such as a volcano, a forest, and the ocean, a wildlife, and the like. Further, for example, the present technology can also be applied to systems and devices provided for sports.
<その他>
なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。 <Others>
In this specification, “flag” is information for identifying a plurality of states, and is not limited to information used for identifying two states of true (1) or false (0), as well as three or more. Information that can identify the state is also included. Therefore, the value that the “flag” can take may be, for example, a binary value of 1/0 or a ternary value or more. That is, the number of bits constituting the “flag” is arbitrary, and may be 1 bit or a plurality of bits. Also, the identification information (including the flag) may include not only a form in which the identification information is included in the bit stream but also a form in which the difference information of the identification information with respect to a certain reference information is included in the bit stream. In the above, “flag” and “identification information” include not only the information but also difference information with respect to reference information.
なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。 <Others>
In this specification, “flag” is information for identifying a plurality of states, and is not limited to information used for identifying two states of true (1) or false (0), as well as three or more. Information that can identify the state is also included. Therefore, the value that the “flag” can take may be, for example, a binary value of 1/0 or a ternary value or more. That is, the number of bits constituting the “flag” is arbitrary, and may be 1 bit or a plurality of bits. Also, the identification information (including the flag) may include not only a form in which the identification information is included in the bit stream but also a form in which the difference information of the identification information with respect to a certain reference information is included in the bit stream. In the above, “flag” and “identification information” include not only the information but also difference information with respect to reference information.
また、符号化データ(ビットストリーム)に関する各種情報(メタデータ等)は、符号化データに関連づけられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(または同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
{Circle around (4)} Various types of information (metadata and the like) relating to the encoded data (bit stream) may be transmitted or recorded in any form as long as the information is associated with the encoded data. Here, the term “associate” means, for example, that one data can be used (linked) when one data is processed. That is, the data associated with each other may be collected as one data, or may be individual data. For example, the information associated with the encoded data (image) may be transmitted on a different transmission path from the encoded data (image). Further, for example, information associated with encoded data (image) may be recorded on a recording medium different from the encoded data (image) (or another recording area of the same recording medium). Good. The “association” may be a part of the data instead of the entire data. For example, an image and information corresponding to the image may be associated with each other in an arbitrary unit such as a plurality of frames, one frame, or a part of the frame.
なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。
In the present specification, “combining”, “multiplexing”, “adding”, “integrating”, “include”, “store”, “insert”, “insert”, “insert” "Means that a plurality of things are put together into one, such as putting encoded data and metadata into one data, and means one method of the above-mentioned" association ".
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
The embodiments of the present technology are not limited to the above-described embodiments, and various modifications can be made without departing from the gist of the present technology.
また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
Also, for example, the configuration described as one device (or processing unit) may be divided and configured as a plurality of devices (or processing units). Conversely, the configuration described above as a plurality of devices (or processing units) may be configured as one device (or processing unit). Also, a configuration other than those described above may be added to the configuration of each device (or each processing unit). Further, if the configuration and operation of the entire system are substantially the same, a part of the configuration of a certain device (or processing unit) may be included in the configuration of another device (or other processing unit). .
なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、および、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
In the present specification, a 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 one device housing a plurality of modules in one housing are all systems. .
また、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
Also, for example, the present technology can take a configuration of cloud computing in which one function is shared by a plurality of devices via a network and processed jointly.
また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
In addition, for example, the above-described program can be executed in any device. In that case, the device only has to have necessary functions (functional blocks and the like) and can obtain necessary information.
また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
Also, for example, each step described in the above-described flowchart can be executed by a single device, or can be shared and executed by a plurality of devices. Further, when a plurality of processes are included in one step, the plurality of processes included in the one step can be executed by one device or can be shared and executed by a plurality of devices. In other words, a plurality of processes included in one step can be executed as a plurality of steps. Conversely, the processing described as a plurality of steps can be collectively executed as one step.
なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
Note that the computer-executable program may be configured so that the processing of the steps for describing the program is executed in chronological order according to the order described in this specification, or may be executed in parallel or by calling. It may be executed individually at a necessary timing such as time. That is, as long as no contradiction occurs, the processing of each step may be performed in an order different from the order described above. Further, the processing of the steps for describing the program may be executed in parallel with the processing of another program, or may be executed in combination with the processing of another program.
なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
技術 Note that the present technology, which has been described in plural in this specification, can be implemented independently and independently as long as no inconsistency arises. Of course, it is also possible to carry out the present invention by using a plurality of the present technologies in combination. For example, some or all of the present technology described in any of the embodiments may be combined with some or all of the present technology described in other embodiments. In addition, some or all of the above-described arbitrary technology may be implemented in combination with another technology that is not described above.
100 変換装置, 101 制御部, 102 符号反転部, 103 行列演算部, 104 フリップ部, 111 符号反転フラグ設定部, 112 ベース変換行列選択部, 113 フリップフラグ設定部, 120 ベース変換行列LUT, 150 逆変換装置, 151 制御部, 152 フリップ部, 153 行列演算部, 154 符号反転部, 161 フリップフラグ設定部, 162 ベース変換行列選択部, 163 符号反転フラグ設定部, 170 ベース変換行列LUT, 220 ベース変換行列導出部, 231 サンプリング部, 232 導出元変換行列LUT, 241 サンプリングパラメータ導出部, 242 部分行列抽出部, 270 ベース変換行列導出部, 300 画像符号化装置, 301 制御部, 313 直交変換部, 315 符号化部, 318 逆直交変換部, 352 プライマリ変換部, 353 セカンダリ変換部, 362 プライマリ水平変換部, 363 プライマリ垂直変換部, 371 信号列抽出部, 372 1次元変換部, 373 スケーリング部, 374 クリップ部, 375 2次元データ列生成部, 381 信号列抽出部, 382 1次元変換部, 383 スケーリング部, 384 クリップ部, 385 2次元データ列生成部, 400 画像復号装置, 412 復号部, 414 逆直交変換部, 452 逆セカンダリ変換部, 453 逆プライマリ変換部, 461 逆プライマリ変換選択部, 462 逆プライマリ垂直変換部, 463 逆プライマリ水平変換部, 471 信号列抽出部, 472 逆1次元変換部, 473 スケーリング部, 474 クリップ部, 475 2次元データ列生成部, 481 信号列抽出部, 482 逆1次元変換部, 483 スケーリング部, 484 クリップ部, 485 2次元データ列生成部
{100} conversion device, {101} control unit, {102} sign inversion unit, {103} matrix operation unit, {104} flip unit, {111} sign inversion flag setting unit, {112} base conversion matrix selection unit, {113} flip flag setting unit, {120} base conversion matrix LUT, {150} inverse Conversion device, {151} control unit, {152} flip unit, {153} matrix operation unit, {154} sign inversion unit, {161} flip flag setting unit, {162} base conversion matrix selection unit, {163} sign inversion flag setting unit, {170} base conversion matrix LUT, {220} base conversion Matrix derivation unit, {231} sampling unit, {232} derivation source transformation matrix LUT, {241} sampling parameter derivation unit, {242} submatrix extraction unit, {270} base transformation matrix derivation unit, {300} image encoding device, 301 control unit, {313} orthogonal transform unit, {315} encoding unit, {318} inverse orthogonal transform unit, {352} primary transform unit, {353} secondary transform unit, {362} primary horizontal transform unit, {363} primary vertical transform unit, {371} signal sequence extractor, {372} 1 Dimension conversion unit, {373} scaling unit, {374} clipping unit, {375} two-dimensional data sequence generation unit, {381} signal sequence extraction unit, {382} one-dimensional conversion unit, {383} scaling unit, {384} clipping unit, {385} two-dimensional data sequence generation unit, {400} image Decoding device, {412} decoding unit, {414} inverse orthogonal transform unit, {452} inverse secondary transform unit, {453} inverse primary transform unit, {461} inverse primary transform selecting unit, {462} inverse primary vertical transform unit, {463} inverse transform Imari horizontal conversion unit, {471} signal sequence extraction unit, {472} inverse one-dimensional conversion unit, {473} scaling unit, {474} clip unit, {475} two-dimensional data sequence generation unit, {481} signal sequence extraction unit, {482} inverse one-dimensional conversion unit, {483} scaling unit , {484} clip part, {485} two-dimensional data string generation part
Claims (20)
- ビットストリームを復号して、画像に関する係数データを生成する復号部と、
前記復号部により生成された前記係数データの1次元信号列に対して、各係数の順序を逆順に並び替えるフリップ操作を行うフリップ部と、
前記フリップ部により前記フリップ操作された前記1次元信号列に対して、
第1の変換タイプの逆1次元変換を実現する場合、STF操作により前記第1の変換タイプの逆1次元変換を実現する第2の変換タイプの変換行列をベース変換行列とし、
第3の変換タイプの逆1次元変換を実現する場合、FTS操作により前記第3の変換タイプの逆1次元変換を実現する第4の変換タイプの、かつ、対称行列である変換行列をベース変換行列とし、
前記ベース変換行列の転置行列を用いて行列演算を行う行列演算部と、
前記行列演算部により前記行列演算が行われた前記1次元信号列に対して、前記1次元信号列の奇数番目の信号の符号を反転する符号反転操作を行う符号反転部と
を備える画像処理装置。 A decoding unit that decodes the bit stream and generates coefficient data related to the image;
A one-dimensional signal sequence of the coefficient data generated by the decoding unit, a flip unit performing a flip operation to rearrange the order of each coefficient in reverse order,
For the one-dimensional signal sequence subjected to the flip operation by the flip unit,
When realizing the inverse one-dimensional conversion of the first conversion type, a conversion matrix of the second conversion type that realizes the inverse one-dimensional conversion of the first conversion type by an STF operation is a base conversion matrix,
When realizing the inverse one-dimensional conversion of the third conversion type, a base transformation is performed on a conversion matrix that is a symmetric matrix of the fourth conversion type that realizes the inverse one-dimensional conversion of the third conversion type by an FTS operation. Matrix
A matrix operation unit that performs a matrix operation using the transpose of the base transformation matrix,
A sign inverting unit that performs a sign inverting operation to invert the sign of an odd-numbered signal of the one-dimensional signal sequence on the one-dimensional signal sequence on which the matrix operation has been performed by the matrix operation unit. . - 前記第2の変換タイプまたは前記第4の変換タイプの逆1次元変換を実現する場合、
前記フリップ部は、前記フリップ操作をスキップし、
前記行列演算部は、前記復号部により生成された前記係数データの1次元信号列に対して、前記第2の変換タイプまたは前記第4の変換タイプの変換行列をベース変換行列として、前記行列演算を行い、
前記符号反転部は、前記符号反転操作をスキップする
請求項1に記載の画像処理装置。 When implementing the inverse one-dimensional conversion of the second conversion type or the fourth conversion type,
The flip section skips the flip operation,
The matrix operation unit performs the matrix operation on a one-dimensional signal sequence of the coefficient data generated by the decoding unit, using a conversion matrix of the second conversion type or the fourth conversion type as a base conversion matrix. Do
The image processing device according to claim 1, wherein the sign inverting unit skips the sign inversion operation. - 指定された逆1次元変換の変換タイプに基づいて、前記フリップ操作を行うか否かを示すフリップフラグを設定するフリップフラグ設定部と、
前記変換タイプに基づいて、前記符号反転操作を行うか否かを示す符号反転フラグを設定する符号反転フラグ設定部と
をさらに備え、
前記フリップ部は、前記フリップフラグ設定部により設定された前記フリップフラグに基づいて、前記フリップ操作を行うかスキップし、
前記符号反転部は、前記符号反転フラグ設定部により設定された前記符号反転フラグに基づいて、前記符号反転操作を行うかスキップする
請求項2に記載の画像処理装置。 A flip flag setting unit that sets a flip flag indicating whether or not to perform the flip operation, based on the designated inverse one-dimensional conversion type;
A sign inversion flag setting unit that sets a sign inversion flag indicating whether or not to perform the sign inversion operation based on the conversion type.
The flip unit performs or skips the flip operation based on the flip flag set by the flip flag setting unit,
The image processing device according to claim 2, wherein the sign inversion unit performs or skips the sign inversion operation based on the sign inversion flag set by the sign inversion flag setting unit. - 指定された逆1次元変換の変換タイプに基づいて、前記第2の変換タイプの変換行列と前記第4の変換タイプの変換行列とのいずれを前記ベース変換行列とするかを選択するベース変換行列選択部をさらに備え、
前記行列演算部は、前記ベース変換行列選択部により選択された前記ベース変換行列を用いて、前記行列演算を行う
請求項1に記載の画像処理装置。 A base conversion matrix for selecting which of the second conversion type conversion matrix and the fourth conversion type conversion matrix is to be the base conversion matrix based on the specified inverse one-dimensional conversion conversion type Further comprising a selection unit,
The image processing device according to claim 1, wherein the matrix operation unit performs the matrix operation using the base transformation matrix selected by the base transformation matrix selection unit. - 指定された逆1次元変換の変換タイプに基づいて、前記ベース変換行列を導出するベース変換行列導出部をさらに備え、
前記行列演算部は、前記ベース変換行列導出部により導出された前記ベース変換行列を用いて、前記行列演算を行う
請求項1に記載の画像処理装置。 A base transformation matrix deriving unit that derives the base transformation matrix based on a designated inverse one-dimensional transformation type;
The image processing device according to claim 1, wherein the matrix operation unit performs the matrix operation using the base conversion matrix derived by the base conversion matrix derivation unit. - 前記ベース変換行列導出部は、前記ベース変換行列以上のサイズの前記第2の変換タイプの導出元変換行列を用いて、前記ベース変換行列を導出する
請求項5に記載の画像処理装置。 The image processing device according to claim 5, wherein the base transformation matrix derivation unit derives the base transformation matrix using a derivation source transformation matrix of the second transformation type having a size equal to or larger than the base transformation matrix. - 前記ベース変換行列導出部は、前記導出元変換行列をサンプリングすることにより、前記第2の変換タイプまたは前記第4の変換タイプの前記ベース変換行列を導出する
請求項6に記載の画像処理装置。 The image processing device according to claim 6, wherein the base transformation matrix deriving unit derives the base transformation matrix of the second transformation type or the fourth transformation type by sampling the derived transformation matrix. - 前記復号部により生成された前記係数データより1次元信号列を抽出する1次元信号列抽出部と、
前記符号反転部により前記符号反転操作が行われた前記1次元信号列を用いて2次元データ列を生成する2次元データ列生成部と
をさらに備え、
前記フリップ部は、前記1次元信号列抽出部により抽出された前記1次元信号列に対して、前記フリップ操作を行う
請求項1に記載の画像処理装置。 A one-dimensional signal sequence extracting unit that extracts a one-dimensional signal sequence from the coefficient data generated by the decoding unit;
A two-dimensional data sequence generation unit that generates a two-dimensional data sequence using the one-dimensional signal sequence on which the sign inversion operation has been performed by the sign inversion unit;
The image processing device according to claim 1, wherein the flip unit performs the flip operation on the one-dimensional signal sequence extracted by the one-dimensional signal sequence extraction unit. - 前記第1の変換タイプはDST2であり、
前記第2の変換タイプはDCT2であり、
前記第3の変換タイプはDST4であり、
前記第4の変換タイプはDCT4である
請求項1に記載の画像処理装置。 The first conversion type is DST2;
The second transform type is DCT2;
The third conversion type is DST4;
The image processing device according to claim 1, wherein the fourth conversion type is DCT4. - ビットストリームを復号して、画像に関する係数データを生成し、
生成された前記係数データの1次元信号列に対して、各係数の順序を逆順に並び替えるフリップ操作を行い、
前記フリップ操作された前記1次元信号列に対して、
第1の変換タイプの逆1次元変換を実現する場合、STF操作により前記第1の変換タイプの逆1次元変換を実現する第2の変換タイプの変換行列をベース変換行列とし、
第3の変換タイプの逆1次元変換を実現する場合、FTS操作により前記第3の変換タイプの逆1次元変換を実現する第4の変換タイプの、かつ、対称行列である変換行列をベース変換行列とし、
前記ベース変換行列の転置行列を用いて行列演算を行い、
前記行列演算が行われた前記1次元信号列に対して、前記1次元信号列の奇数番目の信号の符号を反転する符号反転操作を行う
画像処理方法。 Decoding the bitstream to generate coefficient data for the image,
A flip operation is performed on the generated one-dimensional signal sequence of the coefficient data to rearrange the order of each coefficient in reverse order,
For the one-dimensional signal sequence subjected to the flip operation,
When realizing the inverse one-dimensional conversion of the first conversion type, a conversion matrix of the second conversion type that realizes the inverse one-dimensional conversion of the first conversion type by an STF operation is a base conversion matrix,
When realizing the inverse one-dimensional conversion of the third conversion type, a base transformation is performed on a conversion matrix that is a symmetric matrix of the fourth conversion type that realizes the inverse one-dimensional conversion of the third conversion type by an FTS operation. Matrix
Perform a matrix operation using the transposed matrix of the base transformation matrix,
An image processing method for performing a sign inversion operation for inverting a sign of an odd-numbered signal of the one-dimensional signal sequence on the one-dimensional signal sequence on which the matrix operation has been performed. - 画像に関する係数データの1次元信号列に対して、前記1次元信号列の奇数番目の信号の符号を反転する符号反転操作を行う符号反転部と、
前記符号反転部により前記符号反転操作された前記1次元信号列に対して、
第1の変換タイプの1次元変換を実現する場合、FTS操作により前記第1の変換タイプの1次元変換を実現する第2の変換タイプの変換行列をベース変換行列とし、
第3の変換タイプの1次元変換を実現する場合、STF操作により前記第3の変換タイプの1次元変換を実現する第4の変換タイプの、かつ、対称行列である変換行列をベース変換行列とし、
前記ベース変換行列を用いて行列演算を行う行列演算部と、
前記行列演算部により前記行列演算が行われた前記1次元信号列に対して、各係数の順序を逆順に並び替えるフリップ操作を行うフリップ部と、
前記フリップ部により前記フリップ操作が行われた前記1次元信号列を含む係数データを符号化し、ビットストリームを生成する符号化部と
を備える画像処理装置。 A sign inverting unit that performs a sign inverting operation for inverting the sign of an odd-numbered signal of the one-dimensional signal string with respect to the one-dimensional signal string of coefficient data relating to an image;
For the one-dimensional signal sequence subjected to the sign inversion operation by the sign inversion unit,
When realizing a one-dimensional conversion of the first conversion type, a conversion matrix of a second conversion type that realizes the one-dimensional conversion of the first conversion type by an FTS operation is a base conversion matrix,
When a one-dimensional conversion of the third conversion type is realized, a conversion matrix that is a symmetric matrix of a fourth conversion type that realizes the one-dimensional conversion of the third conversion type by an STF operation is defined as a base conversion matrix. ,
A matrix operation unit that performs a matrix operation using the base conversion matrix,
For the one-dimensional signal sequence on which the matrix operation has been performed by the matrix operation unit, a flip unit that performs a flip operation of rearranging the order of each coefficient in reverse order,
An encoding unit that encodes coefficient data including the one-dimensional signal sequence on which the flip operation has been performed by the flip unit and generates a bit stream. - 前記第2の変換タイプまたは前記第4の変換タイプの1次元変換を実現する場合、
前記符号反転部は、前記符号反転操作をスキップし、
前記行列演算部は、前記係数データの前記1次元信号列に対して、前記第2の変換タイプまたは前記第4の変換タイプの変換行列をベース変換行列として、前記行列演算を行い、
前記フリップ部は、前記フリップ操作をスキップする
請求項11に記載の画像処理装置。 When implementing the one-dimensional conversion of the second conversion type or the fourth conversion type,
The sign inversion unit skips the sign inversion operation,
The matrix operation unit performs the matrix operation on the one-dimensional signal sequence of the coefficient data, using a conversion matrix of the second conversion type or the fourth conversion type as a base conversion matrix,
The image processing device according to claim 11, wherein the flip unit skips the flip operation. - 指定された1次元変換の変換タイプに基づいて、前記符号反転操作を行うか否かを示す符号反転フラグを設定する符号反転フラグ設定部と、
前記変換タイプに基づいて、前記フリップ操作を行うか否かを示すフリップフラグを設定するフリップフラグ設定部と
をさらに備え、
前記符号反転部は、前記符号反転フラグ設定部により設定された前記符号反転フラグに基づいて、前記符号反転操作を行うかスキップし、
前記フリップ部は、前記フリップフラグ設定部により設定された前記フリップフラグに基づいて、前記フリップ操作を行うかスキップする
請求項12に記載の画像処理装置。 A sign inversion flag setting unit that sets a sign inversion flag indicating whether to perform the sign inversion operation based on a designated conversion type of the one-dimensional conversion;
A flip flag setting unit that sets a flip flag indicating whether to perform the flip operation based on the conversion type,
The sign inversion unit performs or skips the sign inversion operation based on the sign inversion flag set by the sign inversion flag setting unit,
The image processing device according to claim 12, wherein the flip unit performs or skips the flip operation based on the flip flag set by the flip flag setting unit. - 指定された1次元変換の変換タイプに基づいて、前記第2の変換タイプの変換行列と前記第4の変換タイプの変換行列とのいずれを前記ベース変換行列とするかを選択するベース変換行列選択部をさらに備え、
前記行列演算部は、前記ベース変換行列選択部により選択された前記ベース変換行列を用いて、前記行列演算を行う
請求項11に記載の画像処理装置。 Base conversion matrix selection for selecting which of the second conversion type conversion matrix and the fourth conversion type conversion matrix is to be the base conversion matrix based on the specified one-dimensional conversion type conversion type Part further,
The image processing device according to claim 11, wherein the matrix operation unit performs the matrix operation using the base conversion matrix selected by the base conversion matrix selection unit. - 指定された1次元変換の変換タイプに基づいて、前記ベース変換行列を導出するベース変換行列導出部をさらに備え、
前記行列演算部は、前記ベース変換行列導出部により導出された前記ベース変換行列を用いて、前記行列演算を行う
請求項11に記載の画像処理装置。 A base conversion matrix deriving unit that derives the base conversion matrix based on the specified conversion type of the one-dimensional conversion,
The image processing device according to claim 11, wherein the matrix operation unit performs the matrix operation using the base conversion matrix derived by the base conversion matrix derivation unit. - 前記ベース変換行列導出部は、前記ベース変換行列以上のサイズの前記第2の変換タイプの導出元変換行列を用いて、前記ベース変換行列を導出する
請求項15に記載の画像処理装置。 The image processing device according to claim 15, wherein the base transformation matrix deriving unit derives the base transformation matrix using a derivation source transformation matrix of the second transformation type having a size equal to or larger than the base transformation matrix. - 前記ベース変換行列導出部は、前記導出元変換行列をサンプリングすることにより、前記第2の変換タイプまたは前記第4の変換タイプの前記ベース変換行列を導出する
請求項16に記載の画像処理装置。 The image processing device according to claim 16, wherein the base transformation matrix deriving unit derives the base transformation matrix of the second transformation type or the fourth transformation type by sampling the derived transformation matrix. - 前記係数データより1次元信号列を抽出する1次元信号列抽出部と、
前記フリップ部により前記フリップ操作が行われた前記1次元信号列を用いて2次元データ列を生成する2次元データ列生成部と
をさらに備え、
前記符号反転部は、前記1次元信号列抽出部により抽出された前記1次元信号列に対して、前記符号反転操作を行う
請求項11に記載の画像処理装置。 A one-dimensional signal sequence extracting unit for extracting a one-dimensional signal sequence from the coefficient data;
A two-dimensional data sequence generation unit that generates a two-dimensional data sequence using the one-dimensional signal sequence subjected to the flip operation by the flip unit;
The image processing device according to claim 11, wherein the sign inverting unit performs the sign inverting operation on the one-dimensional signal sequence extracted by the one-dimensional signal sequence extracting unit. - 前記第1の変換タイプはDST2であり、
前記第2の変換タイプはDCT2であり、
前記第3の変換タイプはDST4であり、
前記第4の変換タイプはDCT4である
請求項11に記載の画像処理装置。 The first conversion type is DST2;
The second transform type is DCT2;
The third conversion type is DST4;
The image processing device according to claim 11, wherein the fourth conversion type is DCT4. - 画像に関する係数データの1次元信号列に対して、前記1次元信号列の奇数番目の信号の符号を反転する符号反転操作を行い、
前記符号反転操作された前記1次元信号列に対して、
第1の変換タイプの1次元変換を実現する場合、FTS操作により前記第1の変換タイプの1次元変換を実現する第2の変換タイプの変換行列をベース変換行列とし、
第3の変換タイプの1次元変換を実現する場合、STF操作により前記第3の変換タイプの1次元変換を実現する第4の変換タイプの、かつ、対称行列である変換行列をベース変換行列とし、
前記ベース変換行列を用いて行列演算を行い、
前記行列演算が行われた前記1次元信号列に対して、各係数の順序を逆順に並び替えるフリップ操作を行い、
前記フリップ操作が行われた前記1次元信号列を含む係数データを符号化し、ビットストリームを生成する
画像処理方法。 Performing a sign inversion operation for inverting the sign of the odd-numbered signal of the one-dimensional signal sequence on the one-dimensional signal sequence of the coefficient data relating to the image,
For the one-dimensional signal sequence subjected to the sign inversion operation,
When realizing a one-dimensional conversion of the first conversion type, a conversion matrix of a second conversion type for realizing the one-dimensional conversion of the first conversion type by an FTS operation is set as a base conversion matrix,
When a one-dimensional conversion of the third conversion type is realized, a conversion matrix that is a symmetric matrix of a fourth conversion type that realizes the one-dimensional conversion of the third conversion type by an STF operation is defined as a base conversion matrix. ,
Perform a matrix operation using the base transformation matrix,
For the one-dimensional signal sequence subjected to the matrix operation, perform a flip operation to rearrange the order of each coefficient in reverse order,
An image processing method for encoding coefficient data including the one-dimensional signal sequence subjected to the flip operation and generating a bit stream.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018178411A JP2022002352A (en) | 2018-09-25 | 2018-09-25 | Image processing device and method |
JP2018-178411 | 2018-09-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020066641A1 true WO2020066641A1 (en) | 2020-04-02 |
Family
ID=69952098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/035818 WO2020066641A1 (en) | 2018-09-25 | 2019-09-12 | Image processing device and method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2022002352A (en) |
WO (1) | WO2020066641A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020184314A1 (en) * | 2019-03-11 | 2020-09-17 | ソニー株式会社 | Image processing device and method |
WO2024188041A1 (en) * | 2023-03-10 | 2024-09-19 | Huawei Technologies Co., Ltd. | Method and system for compressing and employing pattern dependent look-up table |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014036278A (en) * | 2012-08-07 | 2014-02-24 | Nippon Hoso Kyokai <Nhk> | Image encoder, image decoder and program |
-
2018
- 2018-09-25 JP JP2018178411A patent/JP2022002352A/en active Pending
-
2019
- 2019-09-12 WO PCT/JP2019/035818 patent/WO2020066641A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014036278A (en) * | 2012-08-07 | 2014-02-24 | Nippon Hoso Kyokai <Nhk> | Image encoder, image decoder and program |
Non-Patent Citations (5)
Title |
---|
K. NASER ET AL.: "CE6: Report of CE6. 1. 3 (Transform reduction in AMT), with further reduction via DST-IV inheritance", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, no. JVET-K0264r2, 10 July 2018 (2018-07-10), Ljubljana, SI, pages 1 - 4, XP030196491 * |
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, no. JVET-K0265r1, July 2018 (2018-07-01), Ljubljana, SI, pages 1 - 5, XP030195839 * |
KIYOFUMI ABE ET AL.: "CE6-related: Type4 only AMT", JOINT VIDEO EXPLORATION TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, no. JVET-K0130-v1, 2 July 2018 (2018-07-02), Ljubljana, SI, pages 1 - 7, XP030195622 * |
TAKESHI TSUKUBA 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, no. JVET-K00123-v2, 3 July 2018 (2018-07-03), Ljubljana, SI, pages 1 - 11, XP030198794 * |
TAKESHI TSUKUBA ET AL.: "CE6-related: AMT with only type2/type4 DCT/DST", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, no. JVET-K0394-v2, 15 July 2018 (2018-07-15), Ljubljana, SI, pages 1 - 7, XP030197343 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020184314A1 (en) * | 2019-03-11 | 2020-09-17 | ソニー株式会社 | Image processing device and method |
US11882311B2 (en) | 2019-03-11 | 2024-01-23 | Sony Group Corporation | Image processing device and method |
WO2024188041A1 (en) * | 2023-03-10 | 2024-09-19 | Huawei Technologies Co., Ltd. | Method and system for compressing and employing pattern dependent look-up table |
Also Published As
Publication number | Publication date |
---|---|
JP2022002352A (en) | 2022-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11343538B2 (en) | Image processing apparatus and method | |
US20210144376A1 (en) | Image processing apparatus and method | |
US20220400285A1 (en) | Image processing apparatus and method | |
CN108353194B (en) | Method and apparatus for encoding and decoding video signal | |
JP7235030B2 (en) | Image processing device and method | |
US20240323408A1 (en) | Image processing device and method | |
JP2024105675A (en) | Image processing device and method | |
US20240236323A1 (en) | Image processing device and method | |
WO2019188465A1 (en) | Image encoding device, image encoding method, image decoding device, and image decoding method | |
JP7235031B2 (en) | Image processing device and method | |
WO2020066641A1 (en) | Image processing device and method | |
US20210385456A1 (en) | Image processing apparatus and method | |
US20210037248A1 (en) | Image encoding device, image encoding method, image decoding device, and image decoding method | |
WO2020008714A1 (en) | Image processing device, image processing method, and image processing program | |
JP7517348B2 (en) | Image processing device and method | |
US20240357129A1 (en) | Image processing apparatus and method | |
WO2023195330A1 (en) | Image processing device and method | |
US20220286681A1 (en) | Image processing device and method | |
US20230045106A1 (en) | Image processing apparatus and method | |
WO2020129636A1 (en) | Image encoding device, image encoding method, image decoding device, and image decoding method | |
US20220086489A1 (en) | Image processing apparatus and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19866886 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: 19866886 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |