A method of decoding a coding unit from a bitstream, the coding unit being divided, using a tree structure, from a coding tree unit of an image, the coding unit being capable of having at least a luma component or chroma components, and the chroma components including a Cb component and a Cr component, the method comprising:
- decoding, from the bitstream, a luma transform skip flag for the luma component in a case where the coding unit has the luma component, the luma transform skip flag indicating whether a luma transform process for the luma component is skipped;
- decoding, from the bitstream, a first chroma transform skip flag for the Cb component and a second chroma transform skip flag for the Cr component in a case where the coding unit has the chroma components, the first chroma transform skip flag indicating whether a first chroma transform process for the Cb component is skipped, and the second chroma transform skip flag indicating whether a second chroma transform process for the Cr component is skipped;
- determining, for the coding unit, whether to decode an index for a specific transform process from the bitstream, the specific transform process being different from a primary transform process using the same transform kernel for both a horizontal direction and a vertical direction, wherein a kernel used in the specific transform process is selectable from multiple candidate sets of kernels, and the index is an index for specifying the kernel used in the specific transform process;
- and
- decoding, for the coding unit, the index for the specific transform process from the bitstream, in accordance with a result of determination in the determining,
- wherein in a case where the coding tree unit has a size of 128×128 and a coding tree structure for the luma component in the coding tree unit is to be separate from a coding tree structure for the chroma components in the coding tree unit, (a) the coding tree unit is, in common between the luma component and the chroma components, divided into four regions each having a size of 64×64, (b) a dual tree structure for the luma component and a dual tree structure for the chroma components start for each one of the four regions, and (c) the determination of whether to decode the index is performed for each coding unit divided, using the dual tree structure for the luma component, from a given region among the four regions before the determination of whether to decode the index is performed for each coding unit divided, using the dual tree structure for the chroma components, from the given region,
- wherein the index for the coding unit is always not decoded from the bitstream in a case where the coding unit is divided from the coding tree unit using a single tree structure and each transform block in the coding unit includes a significant coefficient only at a DC position,
- wherein the specific transform process for the coding unit is always not performed regardless of the other conditions and the index for the coding unit is not decoded from the bitstream and a value of the index for the coding unit is inferred to be 0, in a case where (i) the luma transform process, the first chroma transform process, and the second chroma transform process are skipped and (ii) the coding unit is divided from the coding tree unit using the single tree structure,
- wherein the index for the coding unit is not decoded from the bitstream and the value of the index for the coding unit is inferred to be 0, in a case where (i) the luma transform process is skipped and (ii) the coding unit is divided from the coding tree unit using the dual tree structure for the luma component,
- wherein the index for the coding unit is not decoded from the bitstream and the value of the index for the coding unit is inferred to be 0, in a case where (i) the first chroma transform process and the second chroma transform process are skipped and (ii) the coding unit is divided from the coding tree unit using the dual tree structure for the chroma components,
- wherein the index for the coding unit is not decoded from the bitstream and the value of the index for the coding unit is inferred to be 0, in a case where the coding unit is divided from the coding tree unit using the dual tree structure for the chroma components and the coding unit has a predetermined size, and
- wherein a ternary split is capable of being used to divide a coding unit included in the coding tree unit into coding units.