Image encoding / decoding method and device using color space conversion, and method for transmitting bitstream
The image encoding/decoding method employs selective color space conversion to enhance efficiency, addressing the challenge of high-resolution image compression and reducing transmission and storage costs.
Patent Information
- Application Number
- JP2025035249
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2020-01-04
- Filing Date
- 2025-03-06
- Publication Date
- 2025-06-03
- Estimated Expiration
- 2040-10-28
AI Technical Summary
The increasing demand for high-resolution, high-quality images has led to a need for highly efficient image compression techniques to reduce transmission and storage costs.
An image encoding/decoding method and apparatus that utilizes selective color space conversion to improve encoding/decoding efficiency, along with a method for transmitting and storing bitstreams generated by this method.
The proposed method achieves improved encoding/decoding efficiency by selectively applying color space conversion, thereby reducing the amount of data required for transmission and storage while maintaining image quality.
Smart Images

Figure 2025084997000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to an image encoding / decoding method and apparatus, and more particularly, to an image encoding / decoding method using color space conversion, an apparatus, and a method of transmitting a bitstream generated by the image encoding method / apparatus of the present disclosure.
Background Art
[0002] Recently, the demand for high-resolution, high-quality images, such as HD (High Definition) images and UHD (Ultra High Definition) images, has been increasing in various fields. As the image data becomes higher in resolution and quality, the amount of information or bits to be transmitted increases relatively compared to conventional image data. The increase in the amount of information or bits to be transmitted leads to an increase in transmission costs and storage costs.
[0003] Accordingly, there is a need for a highly efficient image compression technique for effectively transmitting, storing, and reproducing information of high-resolution, high-quality images.
Summary of the Invention
Problems to be Solved by the Invention
[0004] An object of the present disclosure is to provide an image encoding / decoding method and apparatus with improved encoding / decoding efficiency.
[0005] Another object of the present disclosure is to provide an image encoding / decoding method and apparatus that improve encoding / decoding efficiency by performing selective color space conversion.
[0006] Furthermore, the present disclosure provides a method of transmitting a bitstream generated by the image encoding method or apparatus according to the present disclosure. An object of the present invention is to provide a method for transmitting a stream.
[0007] Furthermore, the present disclosure aims to provide a recording medium storing a bit stream generated by an image encoding method or apparatus according to the present disclosure. An object of the present invention is to provide a recording medium storing a stream.
[0008] Furthermore, the present disclosure aims to provide a recording medium storing a bit stream received by an image decoding apparatus according to the present disclosure, decoded, and used for restoring an image. The technical problem to be solved by the present disclosure is not limited to the above-described technical problem, and other technical problems not described above will be clearly understood by those having ordinary knowledge in the technical field to which the present disclosure pertains from the following description.
[0009]
Means for Solving the Problems
[0010]
[0011] Also, an image decoding apparatus according to an aspect of the present disclosure is an image decoding apparatus including a memory and at least one processor, where the at least one processor determines a quantization parameter of a current block based on whether a color space conversion is applied to a residual sample of the current block, determines a transform coefficient of the current block based on the quantization parameter, determines a residual sample of the current block using the transform coefficient, and can reset a value of the residual sample based on whether the color space conversion is applied. Here, the processor can clip the quantization parameter so that the value of the quantization parameter has a value less than or equal to a predetermined upper limit value and a value greater than or equal to a predetermined lower limit value. The at least one processor determines a quantization parameter of the current block based on whether a color space conversion is applied to a residual sample of the current block, determines a transform coefficient of the current block based on the quantization parameter, determines a residual sample of the current block using the transform coefficient, and can reset a value of the residual sample based on whether the color space conversion is applied. Here, the processor can clip the quantization parameter so that the value of the quantization parameter has a value less than or equal to a predetermined upper limit value and a value greater than or equal to a predetermined lower limit value. Based on whether a color space conversion is applied to the residual sample of the current block to determine the quantization parameter of the current block, and based on the quantization parameter to determine the transform coefficient of the current block, and use the transform coefficient to determine the residual sample of the current block, and can reset the value of the residual sample based on whether the color space conversion is applied. Here, the processor can clip the quantization parameter so that the value of the quantization parameter has a value less than or equal to a predetermined upper limit value and a value greater than or equal to a predetermined lower limit value. The value of the quantization parameter has a value less than or equal to a predetermined upper limit value and a value greater than or equal to a predetermined lower limit value, and the quantization parameter can be clipped as described above.
[0012] Also, an image encoding method performed by an image encoding apparatus according to an aspect of the present disclosure can include a step of resetting a residual sample based on whether a color space conversion is applied, a step of determining a transform coefficient using the reset residual sample, a step of determining a quantization parameter based on whether the color space conversion is applied, and a step of encoding the transform coefficient based on the quantization parameter. Here, the step of determining the quantization parameter can be performed by clipping the quantization parameter so that the value of the quantization parameter has a value less than or equal to a predetermined upper limit value and a value greater than or equal to a predetermined lower limit value. Based on whether a color space conversion is applied, a step of resetting a residual sample, a step of determining a transform coefficient using the reset residual sample, a step of determining a quantization parameter based on whether the color space conversion is applied, and a step of encoding the transform coefficient based on the quantization parameter. Here, the step of determining the quantization parameter can be performed by clipping the quantization parameter so that the value of the quantization parameter has a value less than or equal to a predetermined upper limit value and a value greater than or equal to a predetermined lower limit value. Here, the step of determining the quantization parameter is such that the value of the quantization parameter has a value less than or equal to a predetermined upper limit value and a value greater than or equal to a predetermined lower limit value, and the quantization parameter can be clipped as described above. The value of the quantization parameter has a value less than or equal to a predetermined upper limit value and a value greater than or equal to a predetermined lower limit value, and the quantization parameter can be clipped as described above.
[0013] Also, a transmission method according to an aspect of the present disclosure can transmit a bitstream generated by the image encoding apparatus or the image encoding method of the present disclosure.
[0014] Also, a computer-readable recording medium according to an aspect of the present disclosure can store a bitstream generated by the image encoding method or the image encoding apparatus of the present disclosure.
[0015] The features briefly summarized and described above regarding the present disclosure are merely exemplary aspects of the detailed description of the present disclosure below and do not limit the scope of the present disclosure.
Advantages of the Invention
[0016] According to the present disclosure, an image encoding / decoding method and apparatus with improved encoding / decoding efficiency can be provided.
[0017] Also, according to the present disclosure, an image encoding / decoding method and apparatus capable of improving encoding / decoding efficiency by performing selective color space conversion can be provided.
[0018] Also, according to the present disclosure, a method for transmitting a bitstream generated by the image encoding method or apparatus of the present disclosure can be provided.
[0019] Also, according to the present disclosure, a recording medium storing a bitstream generated by the image encoding method or apparatus of the present disclosure can be provided.
[0020] Also, according to the present disclosure, a recording medium storing a bitstream received by and decoded by the image decoding apparatus of the present disclosure and used for restoring an image can be provided. .
[0021] The effects obtained in the present disclosure are not limited to the effects described above, and other effects not described above will be hereinafter It will be clearly understood by those having ordinary knowledge in the technical field to which the present disclosure pertains from the following description. .
Brief Description of the Drawings
[0022]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figures 9 - 12
Figures 13 - 14
Figure 15
Figure 16
Figures 17 - 18
Figure 19
Figure 20
Figures 21 - 27
Figure 28
Figure 29
Figure 30
Figure 31
Figure 32
Figures 33 - 35
Figures 36 - 51
Figure 52
Figure 53
Figure 54
[0023] Hereinafter, with reference to the accompanying drawings, examples of the present disclosure will be described in the technical field to which the present disclosure pertains. It will be described in detail so that those having ordinary knowledge can easily implement it. However, the present disclosure can be realized in various different forms and is not limited to the embodiments described herein. It can be realized in various different forms and is not limited to the embodiments described here.
[0024] In describing the embodiments of the present disclosure, when it is determined that a specific description of a known configuration or function may obscure the gist of the present disclosure, the detailed description thereof will be omitted. And in the drawings, parts not related to the description of the present disclosure are omitted, and the same reference numerals are given to the same parts. In the present disclosure, when a certain component is said to be "connected", "coupled" or "connected" to another component, this can include not only a direct connection relationship but also an indirect connection relationship in which another component exists between them. Also, when a certain component is said to "include" or "have" another component, this means that, unless otherwise stated to the contrary, it does not exclude other components and can further include other components. In the present disclosure, terms such as "first", "second", etc. are used only for the purpose of distinguishing one component from another, and do not limit the order or importance among the components unless otherwise specifically mentioned. Therefore, within the scope of the present disclosure, the first component of one embodiment may be called the second component in another embodiment, and similarly, the second component of one embodiment may be called the first component in another embodiment.
[0025] In the present disclosure, components that are distinguished from each other are for clearly explaining their respective features and do not necessarily mean that the components are separated. That is, multiple components may be integrated into one component or one component may be divided into multiple components. components may be integrated into one component or one component may be divided into multiple components. In the present disclosure, when a certain component is said to be "connected", "coupled" or "connected" to another component, this can include not only a direct connection relationship but also an indirect connection relationship in which another component exists between them. Also, when a certain component is said to "include" or "have" another component, this means that, unless otherwise stated to the contrary, it does not exclude other components and can further include other components. In the present disclosure, terms such as "first", "second", etc. are used only for the purpose of distinguishing one component from another, and do not limit the order or importance among the components unless otherwise specifically mentioned. Therefore, within the scope of the present disclosure, the first component of one embodiment may be called the second component in another embodiment, and similarly, the second component of one embodiment may be called the first component in another embodiment.
[0026] In the present disclosure, when a certain component is said to be "connected", "coupled" or "connected" to another component, this can include not only a direct connection relationship but also an indirect connection relationship in which another component exists between them. Also, when a certain component is said to "include" or "have" another component, this means that, unless otherwise stated to the contrary, it does not exclude other components and can further include other components. In the present disclosure, terms such as "first", "second", etc. are used only for the purpose of distinguishing one component from another, and do not limit the order or importance among the components unless otherwise specifically mentioned. Therefore, within the scope of the present disclosure, the first component of one embodiment may be called the second component in another embodiment, and similarly, the second component of one embodiment may be called the first component in another embodiment. In the present disclosure, components that are distinguished from each other are for clearly explaining their respective features and do not necessarily mean that the components are separated. That is, multiple components may be integrated into one component or one component may be divided into multiple components. In the present disclosure, components that are distinguished from each other are for clearly explaining their respective features and do not necessarily mean that the components are separated. That is, multiple
[0027] In the present disclosure, components that are distinguished from each other are for clearly explaining their respective features and do not necessarily mean that the components are separated. That is, multiple components may be integrated into one component or one component may be divided into multiple components. That is, A number of components may be integrated and configured as one hardware or software unit or one component may be distributed and configured as multiple hardware or software units. Therefore, even without further mention, such integrated or distributed embodiments are also within the scope of the present disclosure shown.
[0028] In the present disclosure, the components described in various embodiments are not necessarily essential components and some may be optional components. Therefore, embodiments composed of a subset of the components described in one embodiment are also within the scope of the present disclosure. Also, embodiments that include additional components in addition to the components described in various embodiments are also within the scope of the present disclosure.
[0029] The present disclosure relates to image encoding and decoding, and the terms used in the present disclosure shall have the ordinary meaning in the technical field to which the present disclosure pertains, unless newly defined in the present disclosure.
[0030] In the present disclosure, "video" can mean a set of a series of images over time ("image"). "Picture" generally means a unit indicating any one image in a specific time period, and a slice / tile is an encoding unit that constitutes a part of a picture in encoding. One picture can be composed of one or more slices / titles. Also, a slice / tile can include one or more CTUs (Coding Tree Units). One picture can be composed of one or more slices / titles. One picture can be composed of one or more tile groups It can be composed of Ps. One tile group can contain one or more tiles. A brick can indicate a rectangular area of CTU rows within a tile in a picture. One tile can contain one or more bricks. A brick can indicate a rectangular area of CTU rows within a tile. One tile can be divided into a plurality of bricks, and each brick can contain one or more CTU rows belonging to the tile. A tile that is not divided into a plurality of bricks can also be treated as a brick.
[0031] In the present disclosure, "pixel" or "pel" can mean the smallest unit that constitutes one picture (or image). Also, the term "sample" can be used as a corresponding term for a pixel. A sample can generally indicate a pixel or the value of a pixel, and can also indicate only the pixel / pixel value of the luma component, or can also indicate only the pixel / pixel value of the chroma component.
[0032] In the present disclosure, "unit" can indicate the basic unit of image processing. A unit can contain at least one of a specific area of a picture and information related to the area. One unit can contain one luma block and two chroma blocks (for example, Cb, Cr). A unit can be used interchangeably with terms such as "sample array", "block", or "area" as the case may be. In general, an M×N block consists of M columns and N rows of samples ( or a sample array) or a set (or array) of transform coefficients can be included.
[0033] In the present disclosure, "current block" can mean any one of "current coding block", "current coding unit", "block to be coded", "block to be decoded", or "block to be processed". When prediction is performed, "current block" can mean "current prediction block" or "block to be predicted". When transform (inverse transform) / quantization (inverse quantization) is performed, "current block" can mean "current transform block" or "block to be transformed". When filtering is performed, "current block" can mean "block to be filtered". When prediction is performed, "current block" can mean "current prediction block" or "block to be predicted". When transform (inverse transform) / quantization (inverse quantization) is performed, "current block" can mean "current transform block" or "block to be transformed". When filtering is performed, "current block" can mean "block to be filtered". When transform (inverse transform) / quantization (inverse quantization) is performed, "current block" can mean "current transform block" or "block to be transformed". When filtering is performed, "current block" can mean "block to be filtered". When transform (inverse transform) / quantization (inverse quantization) is performed, "current block" can mean "current transform block" or "block to be transformed". When filtering is performed, "current block" can mean "block to be filtered". When transform (inverse transform) / quantization (inverse quantization) is performed, "current block" can mean "current transform block" or "block to be transformed". When filtering is performed, "current block" can mean "block to be filtered".
[0034] Also, in the present disclosure, unless explicitly stated as a chroma block, "current block" can mean "luma block of the current block". "Chroma block of the current block" can be expressed explicitly including an explicit description of a chroma block such as "chroma block" or "current chroma block". Also, in the present disclosure, unless explicitly stated as a chroma block, "current block" can mean "luma block of the current block". "Chroma block of the current block" can be expressed explicitly including an explicit description of a chroma block such as "chroma block" or "current chroma block". Also, in the present disclosure, unless explicitly stated as a chroma block, "current block" can mean "luma block of the current block". "Chroma block of the current block" can be expressed explicitly including an explicit description of a chroma block such as "chroma block" or "current chroma block". Also, in the present disclosure, unless explicitly stated as a chroma block, "current block" can mean "luma block of the current block". "Chroma block of the current block" can be expressed explicitly including an explicit description of a chroma block such as "chroma block" or "current chroma block".
[0035] In the present disclosure, " / " and "," can be interpreted as "and / or". For example, "A / B" and "A, B" can be interpreted as "A and / or B". Also, "A / B / C" and "A, B, C" can mean "at least one of A, B, and / or C". In the present disclosure, " / " and "," can be interpreted as "and / or". For example, "A / B" and "A, B" can be interpreted as "A and / or B". Also, "A / B / C" and "A, B, C" can mean "at least one of A, B, and / or C". In the present disclosure, " / " and "," can be interpreted as "and / or". For example, "A / B" and "A, B" can be interpreted as "A and / or B". Also, "A / B / C" and "A, B, C" can mean "at least one of A, B, and / or C". In the present disclosure, " / " and "," can be interpreted as "and / or". For example, "A / B" and "A, B" can be interpreted as "A and / or B". Also, "A / B / C" and "A, B, C" can mean "at least one of A, B, and / or C".
[0036] In the present disclosure, "or" can be interpreted as "and / or". For example, " "A or B" can mean 1) only "A", 2) only "B", or 3) "A and B". Alternatively, in the present disclosure, "or" can mean "additionally or alternatively".
[0037] Overview of the Video Coding System
[0038] FIG. 1 is a diagram showing a video coding system according to the present disclosure.
[0039] A video coding system according to an embodiment can include a source device 10 and a receiving device 20. The source device 10 can transmit encoded video and / or image information or data to the receiving device 20 in a file or streaming format via a digital storage medium or a network.
[0040] A source device 10 according to an embodiment can include a video source generation unit 11, an encoding device 12, and a transmission unit 13. A receiving device 20 according to an embodiment can include a receiving unit 21, a decoding device 22, and a rendering unit 23. The encoding device 12 can be referred to as a video / image encoding device, and the decoding device 22 can be referred to as a video / image decoding device. The transmission unit 13 can be included in the encoding device 12. The receiving unit 21 can be included in the decoding device 22. The rendering unit 23 can also include a display unit, and the display unit can be configured as a separate device or an external component.
[0041] The video source generator 11 is a device that generates video / images through a process of capturing, synthesizing, or generating the video / images. The video source generating unit 11 can obtain a video / image by The video / image generating device may include a video capture device and / or a video / image generating device. A capture device can be, for example, one or more cameras, a file containing previously captured video / images, The video / image generating device may include a video / image archive containing images. , for example, computers, tablets, and smartphones, etc. For example, a computer can generate a virtual video / image. In this case, the video / image capture process is performed in accordance with the It can be substituted for the process by which the associated data is generated.
[0042] The encoding device 12 is capable of encoding the input video / image. The encoding device 12 includes: For compression and coding efficiency, a series of steps such as prediction, transformation, and quantization can be performed. The encoding device 12 converts the encoded data (encoded video / image information) into a bitstream. It can be output in bitstream format.
[0043] The transmission unit 13 transmits the encoded video / image information or The data is transmitted in file or streaming format via digital storage media or networks. The digital storage medium can be transmitted to the receiving section 21 of the receiving device 20 as a digital file. B, SD, CD, DVD, Blu-ray (registered trademark: the same applies below), HDD, SSD, etc. The transmission unit 13 can include various storage media such as a file folder. It can include elements for generating media files via a mat and can include elements for transmission via a broadcast / communication network. The receiving unit 21 can extract / receive the bitstream from the storage medium or network and transmit it to the decoding device 22.
[0044] The decoding device 22 can perform a series of procedures such as inverse quantization, inverse transformation, prediction, etc. corresponding to the operation of the encoding device 12 to decode the video / image.
[0045] The rendering unit 23 can render the decoded video / image. The rendered video / image can be displayed via the display unit.
[0046] Overview of the Image Encoding Device
[0047] FIG. 2 is a diagram schematically showing an image encoding device to which an embodiment according to the present disclosure can be applied.
[0048] As shown in FIG. 2, the image encoding device 100 can include an image division unit 110, a subtraction unit 11 5, a conversion unit 120, a quantization unit 130, an inverse quantization unit 140, an inverse transformation unit 150, an addition unit 155 , a filtering unit 160, a memory 170, an inter prediction unit 180, an intra prediction unit 18 5, and an entropy encoding unit 190. The inter prediction unit 180 and the intra prediction unit 185 can be collectively referred to as a "prediction unit". The conversion unit 120, quantization unit 130, inverse quantization unit 140, and inverse transformation unit 150 can be included in a residual ) processing unit. The residual processing unit can further include a subtraction unit 115 .
[0049] All or at least a part of the components constituting the image encoding device 100 may be the same as those in the embodiment. Therefore, it can be realized with one hardware component (e.g., encoder or processor). The memory 170 can also store a decoded picture buffer (DPB). The data may include a digital buffer and may be implemented by a digital storage medium.
[0050] The image division unit 110 divides an input image (or a picture, The division of a frame into one or more processing units In one example, the processing unit may be a coding unit. A coding unit can be called a coding unit (CU). coding tree unit (CTU) or maximum coding unit Largest coding unit (LCU) is QT / BT / TT (Quad -tree / binary-tree / ternary-tree) structure recursively For example, The coding units are based on quadtree, binary and / or ternary tree structures. It can be divided into multiple coding units of deeper depth. For the division of the coding units, a quadtree structure is first applied, followed by a binary tree structure and / or A ternary tree structure can be applied later. Based on the unit, the coding procedure according to the present disclosure can be performed. The coding unit can be used as the final coding unit, and the maximum coding unit can be used as the maximum coding unit. The coding units at a lower depth obtained by splitting the unit can also be used as the final coding unit. Here, the coding procedure can include procedures such as prediction, transformation, and / or restoration, which will be described later. As another example, the processing unit of the coding procedure can be a prediction unit (PU: Prediction Unit) or a transformation unit (TU: Transform Unit). The prediction unit and the transformation unit can be split or partitioned from the final coding unit respectively. The prediction unit can be a unit of sample prediction, and the transformation unit can be a unit for deriving transformation coefficients and / or a unit for deriving a residual signal from the transformation coefficients. The prediction unit (inter prediction unit 180 or intra prediction unit 185) can perform prediction on the processing target block (current block), and generate a predicted block including prediction samples for the current block. The prediction unit can determine whether intra prediction is applied in the current block or CU unit, or whether inter prediction is applied. The prediction unit can generate various information related to the prediction of the current block and transmit it to the entropy coding unit 190. The information related to the prediction can be encoded by the entropy coding unit 190 and output in the form of a bit stream. As another example, the processing unit of the coding procedure can be a prediction unit (PU: Prediction Unit) or a transformation unit (TU: Transform Unit). The prediction unit and the transformation unit can be split or partitioned from the final coding unit respectively. The prediction unit can be a unit of sample prediction, and the transformation unit can be a unit for deriving transformation coefficients and / or a unit for deriving a residual signal from the transformation coefficients. As another example, the processing unit of the coding procedure can be a prediction unit (PU: Prediction Unit) or a transformation unit (TU: Transform Unit). The prediction unit and the transformation unit can be split or partitioned from the final coding unit respectively. The prediction unit can be a unit of sample prediction, and the transformation unit can be a unit for deriving transformation coefficients and / or a unit for deriving a residual signal from the transformation coefficients. The prediction unit and the transformation unit can be split or partitioned from the final coding unit respectively. The prediction unit can be a unit of sample prediction, and the transformation unit can be a unit for deriving transformation coefficients and / or a unit for deriving a residual signal from the transformation coefficients. The prediction unit and the transformation unit can be split or partitioned from the final coding unit respectively. The prediction unit can be a unit of sample prediction, and the transformation unit can be a unit for deriving transformation coefficients and / or a unit for deriving a residual signal from the transformation coefficients. The prediction unit can be a unit of sample prediction, and the transformation unit can be a unit for deriving transformation coefficients and / or a unit for deriving a residual signal from the transformation coefficients. The prediction unit can be a unit of sample prediction, and the transformation unit can be a unit for deriving transformation coefficients and / or a unit for deriving a residual signal from the transformation coefficients. The prediction unit can be a unit of sample prediction, and the transformation unit can be a unit for deriving transformation coefficients and / or a unit for deriving a residual signal from the transformation coefficients.
[0051] The prediction unit (inter prediction unit 180 or intra prediction unit 185) can perform prediction on the processing target block (current block), and generate a predicted block including prediction samples for the current block. The prediction unit (inter prediction unit 180 or intra prediction unit 185) can perform prediction on the processing target block (current block), and generate a predicted block including prediction samples for the current block. The prediction unit (inter prediction unit 180 or intra prediction unit 185) can perform prediction on the processing target block (current block), and generate a predicted block including prediction samples for the current block. The prediction unit can determine whether intra prediction is applied in the current block or CU unit, or whether inter prediction is applied. The prediction unit can determine whether intra prediction is applied in the current block or CU unit, or whether inter prediction is applied. The prediction unit can generate various information related to the prediction of the current block and transmit it to the entropy coding unit 190. The prediction unit can generate various information related to the prediction of the current block and transmit it to the entropy coding unit 190. The information related to the prediction can be encoded by the entropy coding unit 190 and output in the form of a bit stream.
[0052] The intra prediction unit 185 can predict the current block by referring to samples within the current picture. It is possible. The sample to be referred to can also be located in the vicinity (neighbor) of the current block according to the intra prediction mode and / or intra prediction technique, or can be located remotely. The intra prediction mode can include a plurality of non-directional modes and a plurality of directional modes. The non-directional modes can include, for example, the DC mode and the Planar mode. The directional modes can include, for example, 33 directional prediction modes or 65 directional prediction modes according to the degree of refinement of the prediction direction. However, this is only an example, and more or fewer directional prediction modes can be used based on the settings. The intra prediction unit 185 can also determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring blocks. The inter prediction unit 180 can derive a predicted block for the current block based on the reference block (reference sample array) specified by the motion vector on the reference picture. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, sub-blocks, or samples based on the correlation of the motion information between the neighboring blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring blocks include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. The intra prediction unit 185 can also determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring blocks. The inter prediction unit 180 can derive a predicted block for the current block based on the reference block (reference sample array) specified by the motion vector on the reference picture. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, sub-blocks, or samples based on the correlation of the motion information between the neighboring blocks and the current block. The motion information can include a motion vector
[0053] and a reference picture index. The motion information can further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring blocks include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. The inter prediction unit 180 can derive a predicted block for the current block based on the reference block (reference sample array) specified by the motion vector on the reference picture. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, sub-blocks, or samples based on the correlation of the motion information between the neighboring blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring blocks include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. The inter prediction unit 180 can derive a predicted block for the current block based on the reference block (reference sample array) specified by the motion vector on the reference picture. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, sub-blocks, or samples based on the correlation of the motion information between the neighboring blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring blocks include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. and a reference picture index. The motion information can further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring blocks include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. and a reference picture index. The motion information can further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring blocks include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. In the case of inter prediction, the neighboring blocks include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. neighboring block) and the temporal neighboring blocks existing in the reference picture (temporal neighboring block) can be included. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different from each other. The temporal neighboring block can be called by names such as collocated reference block (collocated reference block), collocated CU (col CU), etc. The reference picture including the temporal neighboring block can be referred to as a collocated picture (colPic). For example, the inter prediction unit 180 constructs a motion information candidate list based on neighboring blocks and generates information indicating which candidate is used to derive the motion vector and / or reference picture index of the current block . Inter prediction can be performed based on various prediction modes. For example, in the case of skip mode and merge mode, the inter prediction unit 180 can use the motion information of neighboring blocks as the motion information of the current block . In the case of skip mode, different from merge mode, the residual signal can be not transmitted. In the case of motion vector prediction (MVP) mode, the motion vector of the neighboring block is used as a motion vector predictor, and by encoding the motion vector difference and an indicator for the motion vector predictor , the motion vector of the current block can be signaled. The motion vector difference can mean the difference between the motion vector of the current block and the motion vector predictor . . . . . . . . . .
[0054] The prediction unit generates a prediction signal based on various prediction methods and / or prediction techniques described below. This is possible. For example, the prediction unit can apply intra prediction or inter prediction for predicting the current block, and can also apply intra prediction and inter prediction simultaneously. For predicting the current block, the prediction unit can not only apply intra prediction or inter prediction, but also apply intra prediction and inter prediction simultaneously. A prediction method that applies intra prediction and inter prediction simultaneously for predicting the current block can be called CIIP (combined inter and intra prediction). rediction). Also, the prediction unit can perform intra block copy (IBC) for predicting the current block. This can be used for content image / video coding such as games, for example, like SCC (screen content coding). IBC is a method of predicting the current block using a restored reference block within the current picture at a position a predetermined distance away from the current block. When IBC is applied, the position of the reference block within the current picture can be encoded as a vector (block vector) corresponding to the predetermined distance. IBC basically performs prediction within the current picture, but can be performed in the same manner as inter prediction in terms of deriving a reference block within the current picture. That is, IBC can use at least one of the inter prediction techniques described in the present disclosure.
[0055] The prediction signal generated by the prediction unit can be used to generate a restored signal or can be used to generate a residual signal. The subtraction unit 115 subtracts the input image Subtract the predicted signal (predicted block, predicted sample array) output from the prediction unit from the image signal (original block, original sample array) to generate a residual signal (residual signal, residual block, residual sample array). The generated residual signal can be transmitted to the conversion unit 120. The conversion unit 120 can apply a conversion technique to the residual signal to generate conversion coefficients. For example, the conversion technique can include at least one of DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), KLT (Karhunen-Loeve Transform), GBT (Graph-Based Transform), or CNT (Conditionally Non-linear Transform). Here, GBT means the transform obtained from this graph when representing the relationship information between pixels with a graph. CNT means the transform obtained based on generating a predicted signal using all previously reconstructed pixels and using that. The conversion process can also be applied to pixel blocks having the same size of a square and can also be applied to blocks of variable size that are not square. The quantization unit 130 can quantize the conversion coefficients and transmit them to the entropy encoding unit 190. The entropy encoding unit 190 can perform entropy encoding on the quantized signal (quantized conversion coefficients). The generated residual signal can be transmitted to the conversion unit 120.
[0056] The conversion unit 120 can apply a conversion technique to the residual signal to generate conversion coefficients (transform coefficients). For example, the conversion technique can include at least one of DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), KLT (Karhunen-Loeve Tran sform), GBT (Graph-Based Transform), or CNT ( Conditionally Non-linear Transform). Here, when GBT represents the relationship information between pixels with a graph, it means the transform obtained from this graph. CNT means the transform obtained based on generating a predicted signal using all previously reconstructed pixel and using that. The conversion process can be applied to pixel blocks having the same size of a square and can also be applied to blocks of variable size that are not square. When representing the relationship information between pixels with a graph, GBT means the transform obtained from this graph. CNT means the transform obtained based on generating a predicted signal using all previously reconstructed pixel and using that. The conversion process can be applied to pixel blocks having the same size of a square and can also be applied to blocks of variable size that are not square. pixel to generate a predicted signal and the transform obtained based on that. The conversion process can be applied to pixel blocks having the same size of a square and can also be applied to blocks of variable size that are not square. The conversion process can be applied to pixel blocks having the same size of a square and can also be applied to blocks of variable size that are not square. The conversion process can be applied to pixel blocks having the same size of a square and can also be applied to blocks of variable size that are not square.
[0057] The quantization unit 130 can quantize the conversion coefficients and transmit them to the entropy encoding unit 190. The entropy encoding unit 190 can perform entropy encoding on the quantized signal (quantized conversion coefficients). The information related to) can be encoded and output in the form of a bit stream. The quantized The information regarding the transformed coefficients can be called residual information. The quantization unit 13 0 can reorder the quantized transformed coefficients in block form into a one-dimensional vector form based on the coefficient scan order, and generate the information regarding the quantized transformed coefficients based on the quantized transformed coefficients in the one-dimensional vector form.
[0058] The entropy encoding unit 190 can perform various encoding methods such as, for example, exponential Golomb lomb, CAVLC (context-adaptive variable length coding), CABAC (context-adaptive binary arithmetic coding), etc. The entropy encoding unit 190 can also encode, together or separately, the information necessary for video / image restoration (such as the values of syntax elements, etc.) in addition to the quantized transformed coefficients. The encoded information (such as the encoded video / image information) can be transmitted or stored in units of NAL (network abstraction layer) units in the form of a bit stream. The video / image information can further include information regarding various parameter sets such as an adaptive parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). Also, the video / image information can further include information regarding general constraint information (n) may further be included. The signaling information, transmitted information and / or syntax elements mentioned in this disclosure may be encoded through the above-described encoding procedure and included in the bit stream.
[0059] The bitstream can be transmitted via a network or stored in a digital storage medium. Here, the network can include a broadcast network and / or a communication network etc., and the digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-r ay, HDD, SSD, etc. A transmission unit (not shown) for transmitting the signal output from the entropy encoding unit 190 and / or a storage unit (not shown) for storing can be provided as internal / external elements of the image encoding apparatus 100, or the transmission unit can also be provided as a component of the entropy encoding unit 190.
[0060] The quantized transform coefficients output from the quantization unit 130 can be used to generate a residual signal. For example, by applying inverse quantization and inverse transformation to the quantized transform coefficients via the inverse quantization unit 140 and the inverse transform unit 150, a residual signal (residual block or residual sample) can be restored.
[0061] The adder 155 can generate a restored (reconstructed) signal (restored picture, restored block, restored sample array) by adding the restored residual signal to the prediction signal output from the inter prediction unit 180 or the intra prediction unit 185. When the skip mode is applied, the residual for the processing target block If not, the predicted block can be used as a restored block. Addition unit 1 55 can be called a restoration unit or a restored block generation unit. The generated restored signal can be used for intra prediction of the next processing target block in the current picture and, as will be described later, can be used for inter prediction of the next picture after passing through filtering as well.
[0062] Filtering unit 160 can apply filtering to the restored signal to improve subjective / objective image quality For example, filtering unit 160 can apply various filtering methods to the restored picture to generate a modified restored picture and can save the modified restored picture in memory 170, specifically in the DPB of memory 170 The various filtering methods can include, for example, deblocking filtering, sample adaptive offset , adaptive loop filter , bilateral filter, etc. Filtering unit 160 can generate various information related to filtering as will be described later in the description of each filtering method and transmit it to entropy encoding unit 190 The information related to filtering can be encoded by entropy encoding unit 190 and output in bitstream format as can be. Filtering unit 160 can generate various information related to filtering and transmit it to entropy encoding unit 190 The information related to filtering can be encoded by entropy encoding unit 190 and output in bitstream format as can be.
[0063] The modified restored picture transmitted to memory 170 can be used as a reference picture in inter prediction unit 180 Image encoding apparatus 100 can, through this, perform inter - When prediction is applied, a prediction mismatch between the image encoding device 100 and the image decoding device can be avoided, and the encoding efficiency can also be improved.
[0064] The DPB in the memory 170 can store the corrected restored picture for use as a reference picture in the inter prediction unit 180. The memory 170 can store the motion information of the block for which the motion information in the current picture has been derived (or encoded) and / or the motion information of the block in the already restored picture. The stored motion information can be transmitted to the inter prediction unit 180 for utilization as the motion information of the spatial neighboring blocks or the motion information of the temporal neighboring blocks. The memory 170 can store the restored samples of the restored blocks in the current picture and can transmit them to the intra prediction unit 185. for the purpose of within the current picture and can also store the motion information of the block for which the motion information has been derived (or encoded) and / or the motion information of the block within the already restored picture. The stored motion information is for utilization as the motion information of the spatial neighboring blocks or the motion information of the temporal neighboring blocks and can be transmitted to the inter prediction unit 180. The memory 170 can store the restored samples of the restored blocks within the current picture and can transmit them to the intra prediction unit 185. and can be transmitted to the intra prediction unit 185.
[0065] Overview of the Image Decoding Device
[0066] FIG. 3 is a diagram schematically showing an image decoding device to which an embodiment according to the present disclosure can be applied.
[0067] As shown in FIG. 3, the image decoding device 200 can include an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, an addition unit 235, a filtering unit 240, a memory 2 50, an inter prediction unit 260, and an intra prediction unit 265. The inter prediction unit 260 and the intra prediction unit 265 can be collectively referred to as a "prediction unit". The inverse quantization unit 220 and the inverse transform unit 230 can be included in the residual processing unit. prediction unit 260 and the intra prediction unit 265 can be collectively referred to as a "prediction unit". The inverse quantization unit 220 and the inverse transform unit 230 can be included in the residual processing unit.
[0068] All or at least some of the components constituting the image decoding device 200 may be the same as those in the embodiment. Therefore, it is realized in one hardware component (e.g., a decoder or a processor). The memory 170 may also include a digital picture library (DPB), a digital storage medium (DSM), This can be achieved by:
[0069] The image decoding device 200 receives a bitstream containing video / image information and performs the process shown in FIG. The image is restored by executing a process corresponding to the process performed by the image encoding device 100. For example, the image decoding device 200 can process the processing unit applied in the image coding device. Thus, the processing unit for decoding can be, for example, A coding unit can be a coding unit in a coding tree. The image decoding device can obtain the maximum coding unit or the maximum coding unit by dividing the image. The restored image signal decoded and outputted via the device 200 is reproduced via a reproduction device (not shown). It can be played.
[0070] The image decoding device 200 converts the signal output from the image coding device of FIG. The received signal is then passed through an entropy decoder 210. For example, the entropy decoding unit 210 may decode the bitstream by partitioning the bitstream. Singing to obtain information (e.g., video / image information) required for image restoration (or picture restoration) The video / image information can be derived as an adaptation parameter set (APS), a pixel Pattern Parameter Set (PPS), Sequence Parameter Set (SPS) or Video It may further include information about various parameter sets, such as the parameter set (VPS). It is possible. Also, the video / image information can further include general restriction information (general cons traint information). The image decoding device can further use the information regarding the parameter set and / or the general restriction information to decode the image. The signaling information, received information, and / or syntax elements referred to in the present disclosure can be obtained from the above-mentioned bit stream by being decoded through the decoding procedure. For example, the entropy decoding unit 210 decodes the information in the bit stream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and can output the values of the syntax elements necessary for image restoration and the quantized values of the conversion coefficients regarding the residue al. More specifically, the CAB AC entropy decoding method receives the bits (bin) corresponding to each syntax element from the bit stream, determines a context model using the syntax element information to be decoded, the surrounding blocks, and the decoding information of the block to be decoded, or the information of the symbols / bins decoded in the previous step, and predicts the occurrence probability of the bin based on the determined context model to perform arithmetic decoding of the bin, thereby generating a symbol corresponding to the value of each syntax element. At this time, the CABAC entropy decoding method can update the context model using the information of the decoded symbols / bins for the context model of the next symbol / bin after determining the context model. Among the information decoded by the entropy decoding unit 210, the information regarding prediction is the prediction unit (inter prediction unit 26 AC entropy decoding method receives the bits (bin) corresponding to each syntax element from the bit stream, determines a context model using the syntax element information to be decoded, the surrounding blocks, and the decoding information of the block to be decoded, or the information of the symbols / bins decoded in the previous step, and predicts the occurrence probability of the bin based on the determined context model to perform arithmetic decoding of the bin, thereby generating a symbol corresponding to the value of each syntax element. At this time, the CABAC entropy decoding method can update the context model using the information of the decoded symbols / bins for the context model of the next symbol / bin after determining the context model. Among the information decoded by the entropy decoding unit 210, the information regarding prediction is the prediction unit (inter prediction unit 26 AC entropy decoding method receives the bits (bin) corresponding to each syntax element from the bit stream, determines a context model using the syntax element information to be decoded, the surrounding blocks, and the decoding information of the block to be decoded, or the information of the symbols / bins decoded in the previous step, and predicts the occurrence probability of the bin based on the determined context model to perform arithmetic decoding of the bin, thereby generating a symbol corresponding to the value of each syntax element. At this time, the CABAC entropy decoding method can update the context model using the information of the decoded symbols / bins for the context model of the next symbol / bin after determining the context model. Among the information decoded by the entropy decoding unit 210, the information regarding prediction is the prediction unit (inter prediction unit 26 AC entropy decoding method receives the bits (bin) corresponding to each syntax element from the bit stream, determines a context model using the syntax element information to be decoded, the surrounding blocks, and the decoding information of the block to be decoded, or the information of the symbols / bins decoded in the previous step, and predicts the occurrence probability of the bin based on the determined context model to perform arithmetic decoding of the bin, thereby generating a symbol corresponding to the value of each syntax element. At this time, the CABAC entropy decoding method can update the context model using the information of the decoded symbols / bins for the context model of the next symbol / bin after determining the context model. Among the information decoded by the entropy decoding unit 210, the information regarding prediction is the prediction unit (inter prediction unit 26 Among the information decoded by the entropy decoding unit 210, the information regarding prediction is the prediction unit (inter prediction unit 26 are provided to 0 and the Intra prediction unit 265), and the entropy decoded residual value by the entropy decoding unit 210, that is, the quantized transform coefficient and related parameter information can be input to the inverse quantization unit 220. Also, among the information decoded by the entropy decoding unit 210, the information related to filtering can be provided to the filtering unit 240. On the other hand, a receiving unit (not shown) that receives the signal output from the image encoding device can be further provided as an internal / external element of the image decoding device 200, or the receiving unit can also be provided as a component of the entropy decoding unit 210. On the other hand, the image decoding device according to the present disclosure can be called a video / image / picture decoding device. The image decoding device can include an information decoder (video / image / picture information decoder) and / or a sample decoder (video / image / picture sample decoder). The information decoder can include the entropy decoding unit 210, and the sample decoder can include at least one of the inverse quantization unit 220, the inverse transform unit 230, the addition unit 235, the filtering unit 240, the memory 250, the inter prediction unit 260, and the intra prediction unit 265. In the inverse quantization unit 220, the quantized transform coefficient can be inverse quantized to output the transform coefficient. The inverse quantization unit 220 can reorder the quantized transform coefficients in a two-dimensional block format.
[0071] In this case, the reordering can be performed based on the coefficient scan order performed by the image encoding device. The inverse quantization unit 220 can use quantization parameters (for example,
[0072]
[0072] Using the quantization step size information, inverse quantization is performed on the quantized transform coefficients, and the transform coefficient can be obtained.
[0073] In the inverse transform unit 230, the transform coefficient is inversely transformed to obtain a residual signal (residual block , residual sample array).
[0074] The prediction unit can perform prediction on the current block and generate a predicted block including the predicted samples for the current block . The prediction unit can determine whether intra prediction or inter prediction is applied to the current block based on the information about the prediction output from the entropy decoding unit 210 , and can determine a specific intra / inter prediction mode (prediction technique) . It is the same as described in the explanation of the prediction unit of the image encoding apparatus 100 that the prediction unit can generate a prediction signal based on various prediction methods (techniques) described later.
[0075]
[0076]
[0077] The intra prediction unit 265 can predict the current block by referring to samples within the current picture. The explanation of the intra prediction unit 185 can be similarly applied to the intra prediction unit 265.
[0077] The inter prediction unit 260 can derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. At this time, to reduce the amount of motion information transmitted in the inter prediction mode To achieve this, the motion information is blocked based on the correlation between the motion information of the surrounding blocks and the current block. The motion information can be a motion vector, a sub-block or a sample. The motion information may include an inter prediction method and a reference picture index. It may further include direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In this case, the surrounding blocks are spatial surrounding blocks (spatial surrounding blocks) existing in the current picture. l neighboring block) and the temporally neighboring blocks present in the reference picture It can contain temporal neighboring blocks. For example, the inter prediction unit 260 may construct a motion information candidate list based on neighboring blocks and The motion vector and / or the reference picture of the current block are determined based on the received candidate selection information. The index can be derived based on various prediction modes (techniques). The prediction information may be an interleaved block for the current block. It may include information indicating the mode (technique) of prediction.
[0078] The adder 235 outputs the acquired residual signal to a prediction unit (inter prediction unit 260 and / or or intra prediction unit 265) By adding the sample array to the reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array), It is treated as if skip mode was applied. If there is no residual for the target block, the predicted block is used as the recovery block. The description of the adder 155 can be used for the adder 235. can be applied in such a manner. The adder 235 can be referred to as a restoration unit or a restoration block generation unit The generated restored signal can be used for intra prediction of the next processing target block within the current picture, and can also be used for inter prediction of the next picture through filtering as described later. and can also be used for inter prediction of the next picture through filtering as described later.
[0079] The filtering unit 240 can apply filtering to the restored signal to improve the subjective / objective image quality. For example, the filtering unit 240 can apply various filtering methods to the restored picture to generate a modified restored picture, and can save the modified restored picture in the memory 250, specifically in the DPB of the memory 250. The various filtering methods can include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc. For example, the filtering unit 240 can apply various filtering methods to the restored picture to generate a modified restored picture and can save the modified restored picture in the memory 250, specifically in the DPB of the memory 250. The various filtering methods can include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc. The modified restored picture saved in the DPB of the memory 250 can be used as a reference picture in the inter prediction unit 260. The memory 250 can save the motion information of the block where the motion information in the current picture has been derived (or decoded) and / or the motion information of the block in the picture that has already been restored. The saved motion information can be transmitted to the inter prediction unit 260 for utilization as the motion information of the spatial neighboring blocks or the motion information of the temporal neighboring blocks. The memory 250 can save the restored blocks in the current picture. The various filtering methods can include, for example, deblocking filtering, sample adaptive offset The modified restored picture saved in the DPB of the memory 250 can be used as a reference picture in the inter prediction unit 260. The memory 250 can save the motion information of the block where the motion information in the current picture has been derived (or decoded) and / or the motion information of the block in the picture that has already been restored. The saved motion information can be transmitted to the inter prediction unit 260 for utilization as the motion information of the spatial neighboring blocks or the motion information of the temporal neighboring blocks. The memory 250 can save the restored blocks in the current picture. The modified restored picture saved in the DPB of the memory 250 can be used as a reference picture in the inter prediction unit 260. The memory 250 can save the motion information of the block where the motion information in the current picture has been derived (or decoded) and / or the motion information of the block in the picture that has already been restored. The saved motion information can be transmitted to the inter prediction unit 260 for utilization as the motion information of the spatial neighboring blocks or the motion information of the temporal neighboring blocks. The memory 250 can save the restored blocks in the current picture.
[0080] The (modified) restored picture saved in the DPB of the memory 250 can be used as a reference picture in the inter prediction unit 260. The memory 250 can save the motion information of the block where the motion information in the current picture has been derived (or decoded) and / or the motion information of the block in the picture that has already been restored. The saved motion information can be transmitted to the inter prediction unit 260 for utilization as the motion information of the spatial neighboring blocks or the motion information of the temporal neighboring blocks. The memory 250 can save the restored blocks in the current picture. The memory 250 can save the motion information of the block where the motion information in the current picture has been derived (or decoded) and / or the motion information of the block in the picture that has already been restored. The saved motion information can be transmitted to the inter prediction unit 260 for utilization as the motion information of the spatial neighboring blocks or the motion information of the temporal neighboring blocks. The memory 250 can save the restored blocks in the current picture. The memory 250 can save the motion information of the block where the motion information in the current picture has been derived (or decoded) and / or the motion information of the block in the picture that has already been restored. The saved motion information can be transmitted to the inter prediction unit 260 for utilization as the motion information of the spatial neighboring blocks or the motion information of the temporal neighboring blocks. The memory 250 can save the restored blocks in the current picture. The saved motion information can be transmitted to the inter prediction unit 260 for utilization as the motion information of the spatial neighboring blocks or the motion information of the temporal neighboring blocks. The memory 250 can save the restored blocks in the current picture. The saved motion information can be transmitted to the inter prediction unit 260 for utilization as the motion information of the spatial neighboring blocks or the motion information of the temporal neighboring blocks. The memory 250 can save the restored blocks in the current picture. The memory 250 can save the restored blocks in the current picture. The restored samples of the coded blocks can be saved and transmitted to the intra prediction unit 265 It can be done
[0081] In this specification, the examples described in the filtering unit 160, the inter prediction unit 180 and the intra prediction unit 185 of the image coding apparatus 100 can also be applied to the filtering unit 240, the inter prediction unit 260 and the intra prediction unit 265 of the image decoding apparatus 200 similarly or correspondingly
[0082] Overview of Image Segmentation
[0083] The video / image coding method according to the present disclosure can be performed based on the following image segmentation structure Specifically, procedures such as prediction, residual processing ((inverse) transformation, (inverse) quantization, etc.), syntax element coding, filtering, etc. described later can be performed based on CTUs, CUs (and / or TUs, PUs) derived based on the image segmentation structure The image can be divided in block units, and the block division procedure can be performed by the image division unit 110 of the coding apparatus described above The division-related information can be coded by the entropy coding unit 190 and transmitted to the decoding apparatus in the form of a bit stream The entropy decoding unit 210 of the decoding apparatus can derive the block segmentation structure of the current picture based on the division-related information obtained from the bit stream, and based on this, perform a series of procedures for image decoding (for example, prediction, residual processing, block / picture restoration, loop filtering, etc.) The picture can be divided into coding tree units (C It can be done The entropy decoding unit 210 of the decoding apparatus can derive the block segmentation structure of the current picture based on the division-related information obtained from the bit stream, and based on this, perform a series of procedures for image decoding (for example, prediction, residual processing, block / picture restoration, loop filtering, etc.) The entropy decoding unit 210 of the decoding apparatus can derive the block segmentation structure of the current picture based on the division-related information obtained from the bit stream, and based on this, perform a series of procedures for image decoding (for example, prediction, residual processing, block / picture restoration, loop filtering, etc.) The entropy decoding unit 210 of the decoding apparatus can derive the block segmentation structure of the current picture based on the division-related information obtained from the bit stream, and based on this, perform a series of procedures for image decoding (for example, prediction, residual processing, block / picture restoration, loop filtering, etc.) The entropy decoding unit 210 of the decoding apparatus can derive the block segmentation structure of the current picture based on the division-related information obtained from the bit stream, and based on this, perform a series of procedures for image decoding (for example, prediction, residual processing, block / picture restoration, loop filtering, etc.)
[0084] The picture can be divided into coding tree units (C A picture can be divided into a sequence of CTUs. Figure 4 shows how a picture is divided into CTUs. For example, a CTU can correspond to a Coated Tree Block (CTB). Alternatively, the CTU can extract the coding tree block of a luma sample and the corresponding chroma sample. For example, a three sample array may be used. For a picture containing RGB, the CTU stores NxN blocks of luma samples and NxN blocks of chroma samples. The block may include two corresponding blocks:
[0085] Overview of CTU Segmentation
[0086] As mentioned before, a coding unit is a coding tree unit (CTU) or The maximum coding unit (LCU) is QT / BT / TT (Quad-tree / bi By recursively splitting the nary-tree / ternary-tree structure For example, a CTU can first be partitioned into a quadtree structure. Then, the leaf nodes of the quadtree are further divided by the multitype tree structure. This can be done.
[0087] A quadtree division means dividing the current CU (or CTU) into four equal parts. The division by ,the current CU is divided into 4 CUs with the same width and the same height. If the current CU is not further divided into quadtrees, the current CU is The CU corresponding to the leaf node of the quadtree structure cannot be further divided. It can be used as the final coding unit as mentioned above. The CU corresponding to the subnode can be further divided by the multi-type tree structure. Cut.
[0088] FIG. 5 is a diagram showing a block division type according to a multi-type tree structure. The multi-type division according to the tree structure can include two divisions according to the binary tree structure and two divisions according to the ternary tree structure. It can be included.
[0089] The two divisions according to the binary tree structure can include vertical binary splitting (vertical binary splitting, SPLIT_BT_VER) and horizontal binary splitting (horizo ntal binary splitting, SPLIT_BT_HOR). Vertical binary splitting (SPLIT_BT_VER) means dividing the current CU vertically into two equal parts. As shown in FIG. 4, by vertical binary splitting, two CUs having the same height as the height of the current CU and a width half of the width of the current CU can be generated. Horizontal binary splitting (SPLIT_BT_HOR) means dividing the current CU horizontally into two equal parts. As shown in FIG. 5, by horizontal binary splitting, two CUs having a height half of the height of the current CU and the same width as the width of the current CU can be generated. It can be done. The two divisions according to the ternary tree structure can include vertical ternary splitting (vertical ternar y splitting, SPLIT_TT_VER) and horizontal ternary splitting (horiz ontal ternary splitting, SPLIT_TT_HOR). It can be included.
[0090] Vertical ternary splitting (SPLIT_TT_VER) divides the current CU vertically in a ratio of 1:2:1. As shown in FIG. 5, by vertical ternary splitting y splitting, SPLIT_TT_VER) and horizontal ternary splitting (horiz ontal ternary splitting, SPLIT_TT_HOR) can be included. Vertical ternary splitting (SPLIT_TT_VER) divides the current CU vertically in a ratio of 1:2:1. As shown in FIG. 5, by vertical ternary splitting , two CUs having the same height as the current CU and a width that is 1 / 4 of the width of the current CU, and the current a CU having the same height as the current CU and a width that is half of the width of the current CU can be generated . The horizontal ternary split SPLIT_TT_HOR splits the current CU horizontally in a 1:2:1 ratio. As shown in FIG. 4, by the horizontal ternary split, two CUs having a height that is 1 / 4 of the height of the current CU and the same width as the current CU, and one CU having a height that is half of the height of the current CU and the same width as the current CU can be generated. FIG. 6 is a diagram illustrating a signaling mechanism for block split information in a quadtree with nested multi-type tree structure according to the present disclosure.
[0091] Here, the CTU is treated as the root node of the quadtree, and the CTU is first split into the quadtree structure. Information (e.g., qt_split_flag) indicating whether to perform quadtree split on the current CU (CTU or a node (QT_node) of the quadtree) can be signaled. For example, if the qt_split_flag is a first value (e.g., "1"), the current CU can be split into the quadtree. Also, if the qt_split_flag is a second value (e.g., "0"), the current CU is not split into the quadtree and becomes a leaf node (QT_leaf_node) of the quadtree. Each leaf node of the quadtree can be further split into a multi-type tree structure hereafter. That is, the leaf node of the quadtree can become a node (MTT_node) of the multi-type tree. nested multi-type tree) structure. FIG. 6 is a diagram illustrating a signaling mechanism for block split information in a quadtree with
[0092] Here, the CTU is treated as the root node of the quadtree, and the CTU is first split into the quadtree structure. Information (e.g., qt_split_flag) indicating whether to perform quadtree split on the current CU (CTU or a node (QT_node) of the quadtree) can be signaled. For example, if the qt_split_flag is a first value (e.g., "1"), the current CU can be split into the quadtree. Also, if the qt_split_flag is a second value (e.g., "0"), the current CU is not split into the quadtree and becomes a leaf node (QT_leaf_node) of the quadtree. Each leaf node of the quadtree can be further split into a multi-type tree structure hereafter. That is, the leaf node of the quadtree can become a node (MTT_node) of the multi-type tree. For the current CU (CTU or a node (QT_node) of the quadtree), information (e.g., qt_split_flag) indicating whether to perform quadtree split is signaled. For example, if the qt_split_flag is a first value (e.g., "1"), the current CU can be split into the quadtree. Also, if the qt_split_flag is a second value (e.g., "0"), the current CU is not split into the quadtree and becomes a leaf node (QT_leaf_node) of the quadtree. Each leaf node of the quadtree can be further split into a multi-type tree structure hereafter. That is, the leaf node of the quadtree can become a node (MTT_node) of the multi-type tree. For example, if the qt_split_flag is a first value (e.g., "1"), the current CU can be split into the quadtree. Also, if the qt_split_flag is a second value (e.g., "0"), the current CU is not split into the quadtree and becomes a leaf node (QT_leaf_node) of the quadtree. Each leaf node of the quadtree can be further split into a multi-type tree structure hereafter. That is, the leaf node of the quadtree can become a node (MTT_node) of the multi-type tree. For example, if the qt_split_flag is a first value (e.g., "1"), the current CU can be split into the quadtree. Also, if the qt_split_flag is a second value (e.g., "0"), the current CU is not split into the quadtree and becomes a leaf node (QT_leaf_node) of the quadtree. Each leaf node of the quadtree can be further split into a multi-type tree structure hereafter. That is, the leaf node of the quadtree can become a node (MTT_node) of the multi-type tree. For example, if the qt_split_flag is a second value (e.g., "0"), the current CU is not split into the quadtree and becomes a leaf node (QT_leaf_node) of the quadtree. Each leaf node of the quadtree can be further split into a multi-type tree structure hereafter. That is, the leaf node of the quadtree can become a node (MTT_node) of the multi-type tree. That is, the leaf node of the quadtree can become a node (MTT_node) of the multi-type tree. Each leaf node of the quadtree can be further split into a multi-type tree structure hereafter. That is, the leaf node of the quadtree can become a node (MTT_node) of the multi-type tree. In a multi-type tree structure, in order to indicate whether the current node is further divided, a first flag (a first flag, for example, mtt_split_cu_flag) can be signaled. If the node is further divided (for example, when the first flag is 1), a second flag (a second flag, for example, mtt_sp ) can be signaled to indicate the splitting direction (splitting direction lit_cu_verticla_flag). For example, when the second flag is 1, the splitting direction is vertical, and when the second flag is 0 , the splitting direction can be horizontal. Then, in order to indicate whether the splitting type is a binary splitting type or a ternary splitting type, a third flag (a third flag, for example, mtt_split_cu_binary_flag) can be signaled . For example, when the third flag is 1, the splitting type is a binary splitting type, and when the third flag is 0, the splitting type can be a ternary splitting type. The nodes of the multi-type tree obtained by binary splitting or ternary splitting can be further partitioned in the multi-type tree structure. However, the nodes of the multi-type tree cannot be partitioned into a quadtree structure . When the first flag is 0, the corresponding node of the multi-type tree is not further divided and becomes a leaf node (MTT_leaf_node ) of the multi-type tree. The CU corresponding to the leaf node of the multi-type tree can be used as the final coding unit described above. When the first flag is 0, the corresponding node of the multi-type tree is not further divided and becomes a leaf node (MTT_leaf_node ) of the multi-type tree. The CU corresponding to the leaf node of the multi-type tree can be used as the final coding unit described above. The CU corresponding to the leaf node of the multi-type tree can be used as the final coding unit described above.
[0093] Based on the aforementioned mtt_split_cu_vertical_flag and mtt_spl it_cu_binary_flag, the multi-type tree splitting mode of the CU (multi-type tree splitting mode, MttSplit Mode) can be derived as shown in Table 1. In the following description, the multi-tree split mode can be abbreviated as the multi-tree split type or split type.
[0094]
Table 1
[0095] FIG. 7 shows an example in which a CTU is divided into multiple CUs by applying a multi-type tree after applying a quadtree. In FIG. 7, the thick block edge (bold block e dge) 710 indicates quadtree splitting, and the remaining edges 720 indicate multi-type tree splitting. The CU can correspond to a coding block CB. In one embodiment, the CU can include a coding block of luma samples and two coding blocks of chroma samples corresponding to the luma samples. The chroma component (sample) CB or TB size can be derived based on the component ratio according to the color format of the picture / image (chroma format, for example, 4 :4:4, 4:2:2, 4:2:0, etc.) of the luma component (sample) C B or TB size. When the color format is 4:4:4 , the chroma component CB / TB size can be set to be the same as the luma component CB / TB size. When the color format is 4:2:2, the chroma component CB / TB size can be derived based on the luma component CB / TB size according to the component ratio corresponding to the color format. When the color format is 4:2:2, the chroma component CB / TB size can be derived based on the luma component CB / TB size according to the component ratio corresponding to the color format. When the color format is 4:2:2, the chroma component CB / TB The width can be set to half of the width of the luma component CB / TB, and the height of the chroma component CB / TB can be set to the height of the luma component CB / TB. When the color format is 4: 2:0, the width of the chroma component CB / TB can be set to half of the width of the luma component CB / TB, and the height of the chroma component CB / TB can be set to half of the height of the luma component CB / TB.
[0096] In one embodiment, when the size of the CTU is 128 based on the luma sample unit, the size of the C U can have a size ranging from 128×128, which is the same size as the CTU, to 4×4. In one embodiment, when the 4:2:0 color format (or chroma format) is used, the chroma CB size can have a size ranging from 64×64 to 2×2.
[0097] On the other hand, in one embodiment, the CU size and the TU size can be the same. Or, a plurality of TUs can exist within the CU region. The TU size generally can indicate the size of the luma component (sample) TB (Transform Block).
[0098] The TU size can be derived based on a preset value, the maximum allowable TB size (maxTbSize ). For example, when the CU size is larger than the maxTbSize, a plurality of TUs (TBs) with the maxTbSize can be derived from the CU, and the conversion / inverse conversion can be performed in units of the TU (TB). For example, the maximum allowable luma TB size is 64×64, and the maximum allowable chroma TB size is 32×32. It can be done. If the width or height of the CB divided by the tree structure is greater than the maximum conversion width or height, the CB can be automatically (or implicitly) divided in the horizontal and vertical directions until the TB size limit is satisfied.
[0099] Also, for example, when intra prediction is applied, the intra prediction mode / type is derived in the unit of the C U (or CB), and the peripheral reference sample derivation and prediction sample generation procedures can be performed in the unit of T U (or TB). In this case, one or more TUs (or TBs) can exist within one CU (or CB) region , and in this case, the plurality of TUs ( or TBs) can share the same intra prediction mode / type.
[0100] On the other hand, for the quadtree coding tree scheme with a multi-type tree, the following parameters can be signaled from the encoder to the decoder as SPS syntax elements . For example, CT Usize, which is a parameter indicating the size of the root node of the quadtree, MinQT Size, which is a parameter indicating the minimum allowable size of the leaf node of the quadtree, MaxBTS ize, which is a parameter indicating the maximum allowable size of the root node of the binary tree, MaxTTSi ze, which is a parameter indicating the maximum allowable size of the root node of the ternary tree, MaxMttDepth , which is a parameter indicating the maximum allowed hierarchy depth (m aximum allowed hierarchy depth) of the multi-type tree divided from the leaf node of the quadtree, MinBtSize, which is a parameter indicating the minimum allowable leaf node size of the binary tree, and At least one of a certain MinTtSize can be signaled.
[0101] In one embodiment using a 4:2:0 chroma format, the CTU size can be set to 128×1 28 luma blocks and two 64×64 chroma blocks corresponding to the luma blocks. In this case, MinQTSize can be set to 16×16, MaxBt Size can be set to 128×128, MaxTtSzie can be set to 64×64, M inBtSize and MinTtSize can be set to 4×4, and MaxMttDepth can be set to 4. Quad-tree splitting can be applied to the CTU to generate leaf nodes of the quad-tree. The leaf nodes of the quad-tree can be called leaf QT nodes. The leaf nodes of the quad-tree can have a size from 16×16 (e.g., the MinQTSize ) to 128×128 (e.g., the CTU size). If the leaf QT node is 128×128, it cannot be further split into a binary tree / trinary tree. This is because splitting in this case would exceed MaxBtsize and MaxTt szie (e.g., 64×64). In other cases, the leaf QT node can be further split into a multi-type tree. Thus, the leaf QT node is the root node for the multi-type tree, and the leaf QT node can have a multi-type tree depth (mttDepth) value of 0. If the multi-type tree depth reaches MaxMttdepth (e.g., 4), no further additional splitting can be considered. If the multi-type tree node The width of the block is the same as MinBtSize and is the same as or smaller than 2xMinTtSize In the worst case, no further additional horizontal splitting needs to be considered. If the multi- The height of the tree node is the same as MinBtSize and is the same as or smaller than 2xMinTtSize In the worst case, no further additional vertical splitting needs to be considered. If splitting is not considered in this way, the encoding device can omit the signaling of the splitting information In such a case, the decoding device can derive the splitting information to a predetermined value .
[0102] On the other hand, one CTU can include a coding block of luma samples (hereinafter referred to as "luma block" ), and two coding blocks of chroma samples corresponding thereto (hereinafter referred to as " chroma block"). The coding tree scheme described above can also be applied to the luma block and chroma block of the current CU similarly, or can be applied separately. Specifically, the luma block and chroma block within one CTU can be split into the same block tree structure, and the tree structure in this case can be represented as a single tree (SINGLE_TREE) . Or, the luma block and chroma block within one CTU can be split into an individual block tree structure , and the tree structure in this case can be represented as a dual tree (DUAL_TR EE). That is, when the CTU is split into a dual tree, the block tree structure for the luma block and the block tree structure for the chroma block can exist separately . At this time, the block tree structure for the luma block is a dual block tree structure for the chroma block. At this time, the block tree structure for the luma block is a dual separate. At this time, the block tree structure for the luma block can be a dual can be called the Dual - Tree Luma, and the block - tree structure for chroma blocks can be called the Dual - Tree Chroma (DUAL_TREE_CHROMA). For P and B slices / tile groups, one CTU's luma blocks and chroma blocks can be restricted to have the same coding - tree structure. However, for I slices / tile groups, luma blocks and chroma blocks can have individual block - tree structures. If an individual block - tree structure is applied, the luma CTB (Coding Tree Block) can be split into CUs based on a specific coding - tree structure, and the chroma CTB can be split into chroma CUs based on another coding - tree structure. That is, the CUs in the I slice / tile group to which the individual block - tree structure is applied are composed of the coding blocks of the luma component or the coding blocks of two chroma components, and the CUs of the P or B slice / tile group can be meant to be composed of blocks of three color components (luma component and two chroma components). In the above, the quadtree coding - tree structure with a multi - type tree has been described, but the structure by which the CU is split is not limited to this. For example, the BT structure and the TT structure can be interpreted as concepts included in the Multiple Partitioning Tree (MPT) structure, and the CU can be interpreted as being split by the QT structure and the MPT structure. The CU is split by the QT structure and the MPT structure and...
[0103] has been described above, but the structure by which the CU is split is not limited to this. For example, the BT structure and the TT structure can be interpreted as concepts included in the Multiple Partitioning Tree (MPT) structure, and the CU can be interpreted as being split by the QT structure and the MPT structure. The CU is split by the QT structure and the MPT structure In one example, information about whether the leaf nodes of the QT structure are divided into several blocks is A list of syntax elements (e.g. MPT_split_type) and QT structures that contain information about the A syntax element that contains information about whether the subnode is split vertically or horizontally. The metric elements (e.g. MPT_split_mode) are signaled , a partitioning structure can be determined.
[0104] In another example, the CU is divided in a manner different from the QT, BT, or TT structures. In other words, the QT structure allows a CU at a lower depth to be 1 / 1 the size of a CU at a higher depth. Either the CUs are divided into 4 sizes, or the CUs at lower depths are divided into CUs at higher depths by the BT structure. Or, the TT structure divides the lower depth CU into the higher depth CU. Unlike the CUs that are split into 1 / 4 or 1 / 2 the size of the CUs in the previous example, the CUs in the lower depths are split into 1 / 4 or 1 / 2 the size of the CUs in the previous example. Depending on the depth, the subdivision of the CU at the higher depth is 1 / 5, 1 / 3, 3 / 8, 3 / 5, 2 / 3 or 5 / 8. The method of dividing the CU is not limited thereto.
[0105] Thus, the quadtree coding block structure with the multi-type tree is non It can provide flexible block division structure at any time. Meanwhile, it supports multi-type tree. Due to the type of partitioning used, in some cases different partitioning patterns may potentially result in the same code. The encoding device and the decoding device can derive the result of the input block structure. By limiting the occurrence of such redundant partitioning patterns, The amount of data can be reduced.
[0106] Also, in the video / image encoding and decoding according to this specification, the image processing unit can have a hierarchical structure. One picture can be divided into one or more tiles, bricks, slices , and / or tile groups. One slice can include one or more bricks . One brick can include one or more CTU rows within a tile . A slice can include an integer number of bricks of a picture. One tile group can include one or more tiles. One tile can include one or more CTUs . The CTU can be divided into one or more CUs. A tile can be a rectangular area composed of a specific tile row and a specific tile column consisting of a plurality of CTUs within a picture . A tile group can include an integer number of tiles by a tile raster scan within a picture . A slice header can carry information / parameters applicable to the corresponding slice (blocks within the slice) . When an encoding device or a decoding device has a multi-core processor, the encoding / decoding procedures for the tiles, slices, bricks, and / or tile groups can be processed in parallel.
[0107] In the present disclosure, the names or concepts of slices or tile groups can be used interchangeably. That is , a tile group header can be called a slice header. Here, a slice can have one of the slice types including intra (I) slice, predictive (P) slice, and b i-predictive (B) slice. For blocks within an I slice, inter prediction is not used for prediction, and only intra prediction can be used. Of course, in this case as well, prediction It is also possible to code and signal the original sample values without measurement. P slice For the blocks within, intra prediction or inter prediction can be used. When inter prediction is used, only uni prediction can be used. On the other hand, for the blocks within a B slice intra prediction or inter prediction can be used. When inter prediction is used bi prediction up to maximum can be used.
[0108] The encoding device can determine the tile / tile group, block, slice, maximum and minimum coding unit sizes according to the characteristics of the video image (e.g., resolution), or in consideration of the coding efficiency or parallel processing. And information regarding this or information that can induce this can be included in the bitstream.
[0109] The decoding device can obtain information indicating whether the CTUs within the tile / tile group, block, slice, tile of the current picture are divided into a number of coding units. The encoding device and the decoding device can also improve the coding efficiency by signaling such information only under specific conditions.
[0110] The slice header (slice header syntax) can include information / parameters commonly applicable to the slice. APS (APS syntax) or PPS (PPS syntax) can include information / parameters commonly applicable to one or more pictures. SPS (SPS syntax) can include information / parameters commonly applicable to one or more sequences. VPS (VPS syntax) can include information / parameters commonly applicable to multiple It can include information / parameters applicable to multiple layers in common. DPS (DPS syntax) can include information / parameters applicable to video in general. DPS can include information / parameters applicable to video in general. DPS can include information / parameters related to the combination of CVS (coded video sequence).
[0111] Also, for example, information regarding the division and configuration of the tiles / tile groups / blocks / slices, etc. can be configured in the encoding stage via the upper-level syntax and transmitted to the decoder in bitstream format.
[0112] Quantization / Inverse Quantization
[0113] As described above, the quantization unit of the encoder can apply quantization to the transform coefficients to derive the quantized transform coefficients, and the inverse quantization unit of the encoder or the inverse quantization unit of the decoder can apply inverse quantization to the quantized transform coefficients to derive the transform coefficients.
[0114] In the encoding and decoding of moving images / still images, the quantization rate can be changed, and the compression rate can be adjusted using the changed quantization rate. From the perspective of implementation, instead of directly using the quantization rate considering complexity, a quantization parameter (QP, quantization parameter) can be used. For example, a quantization parameter with an integer value from 0 to 63 can be used, and each quantization parameter value can correspond to the actual quantization rate. Also, the quantization parameter QP for the luma component (luma samples) and the quantization parameter QP for the chroma component (chroma samples) can be set differently. Y and C can be done.
[0115] The quantization process takes the conversion coefficient C as input, divides it by the quantization rate (Qstep), and based on this, the quantized conversion coefficient C` can be obtained. In this case, considering the computational complexity, multiply the quantization rate by a scale to convert it into an integer form, and perform a shift operation only by the value corresponding to the scale value. Based on the product of the quantization rate and the scale value, a quantization scale can be derived. That is, according to QP, the quantization scale can be derived. Applying the quantization scale to the conversion coefficient C, based on this, the quantized conversion coefficient C’ can also be derived.
[0116] The inverse quantization process is the reverse process of the quantization process. Multiply the quantized conversion coefficient C’ by the quantization rate Qstep, and based on this, the restored conversion coefficient C’’ can be obtained. In this case, according to the quantization parameter, a level scale can be derived, and applying the level scale to the quantized conversion coefficient C’, based on this, the restored conversion coefficient C’ can be derived. The restored conversion coefficient C’’ may be somewhat different from the original conversion coefficient C due to the loss in the conversion and / or quantization process. Therefore, in the encoding device, inverse quantization can also be performed in the same way as in the decoding device.
[0117] On the other hand, an adaptive frequency weighting quantization technology that adjusts the quantization intensity according to the frequency can be applied. The adaptive frequency weighting quantization technology has different quantization intensities for different frequencies A method of applying it as follows. The adaptive frequency-dependent weighted quantization applies different quantization intensities for each frequency using a predefined quantization scaling matrix. That is, the quantization / inverse quantization process described above can be performed based on the quantization scaling matrix. For example, depending on whether the prediction mode applied to the current block is inter prediction or intra prediction to generate the residual signal of the current block, different quantization scaling matrices can be used. The quantization scaling matrix can be called a quantization matrix or a scaling matrix. The quantization scaling matrix can be predefined. Also, for frequency adaptive scaling, the frequency-dependent quantization scale information for the quantization scaling matrix can be configured / encoded in the encoder and signaled to the decoder. The frequency-dependent quantization scale information can be called quantization scaling information. The frequency-dependent quantization scale information can include scaling list data. Based on the scaling list data, the (modified) quantization scaling matrix can be derived. Also, the frequency-dependent quantization scale information can include presence flag information indicating the presence or absence of the scaling list data. Or, when the scaling list data is signaled at a higher level (for example, SPS), at a lower level (for example, PPS or t) can apply different quantization intensities for each frequency using a predefined quantization scaling matrix. That is, the quantization / inverse quantization process described above can be performed based on the quantization scaling matrix. For example, depending on whether the prediction mode applied to the current block is inter prediction or intra prediction to generate the residual signal of the current block, different quantization scaling matrices can be used. To generate the residual signal of the current block, whether the prediction mode applied to the current block is inter prediction or intra prediction. Depending on whether it is inter prediction or intra prediction, different quantization scaling matrices can be used. The quantization scaling matrix can be called a quantization matrix or a scaling matrix. The quantization scaling matrix can be called a quantization matrix or a scaling matrix. The quantization scaling matrix can be predefined. Also, for frequency adaptive scaling, the frequency-dependent quantization scale information for the quantization scaling matrix can be configured / encoded in the encoder and signaled to the decoder. The frequency-dependent quantization scale information for the quantization scaling matrix can be configured / encoded in the encoder and signaled to the decoder. The frequency-dependent quantization scale information can be called quantization scaling information. The frequency-dependent quantization scale information can be called quantization scaling information. The frequency-dependent quantization scale information can include scaling list data. Based on the scaling list data, the (modified) quantization scaling matrix can be derived. Based on the scaling list data, the (modified) quantization scaling matrix can be derived. Also, the frequency-dependent quantization scale information can include presence flag information indicating the presence or absence of the scaling list data. That is, the presence flag information indicating the presence or absence of the scaling list data can be included. For example, if the scaling list data is signaled at a higher level (for example, SPS), at a lower level (for example, PPS or t) The scaling list data is modified by (such as an ile group header). Information indicating whether or not, etc. can be further included.
[0118] Transformation / Inverse Transformation
[0119] As described above, the encoding device is predicted via intra / inter / IBC prediction, etc. Based on the predicted block (prediction sample), a residual block (residual sample) ) can be derived, and conversion and quantization are applied to the derived residual sample to , and a quantized conversion coefficient can be derived. Information about the quantized conversion coefficient ( residual information) is included in the residual coding syntax and encoded After that, it can be output in the form of a bitstream. The decoding device obtains the information (residual information) about the quantized conversion coefficient from the said bitstream , decodes it, and can derive the quantized conversion coefficient. The decoding device can derive a residual sample through inverse quantization / inverse conversion based on the quantized conversion coefficient. As described above, at least one of the quantization / inverse quantization and / or conversion / inverse conversion can be omitted. When the conversion / inverse conversion is omitted, the conversion coefficient can also be called a coefficient or a residual coefficient, or can still be called a conversion coefficient for the sake of consistency of expression . Whether or not the conversion / inverse conversion is omitted can be signaled based on a conversion skip flag (for example, tr ansform_skip_flag). The first value of t ransform_skip_flag (for example, 0) indicates whether the conversion is omitted or not for other . ansform_skip_flag's first value (e.g., 0) indicates whether the conversion is skipped for other situations, etc. It can be indicated that it is determined by the syntax element. transform_s The second value of the kip_flag (e.g., 1) can indicate transform omission (e.g., skip).
[0120] The above-mentioned transform / inverse transform can be performed based on a transform kernel. For example, an MTS (multiple transform selection) n) scheme can be applied to perform the transform / inverse transform. In this case, a part of a set of multiple transform kernels can be selected and applied to the current block. The transform kernel can be called by various terms such as a transform matrix and a transform type. For example, a set of transform kernels can indicate a combination of a vertical transform kernel (vertical transform kernel) and a horizontal transform kernel (horizontal transform kernel).
[0121] The above-mentioned transform / inverse transform can be performed in units of CU or TU. That is, the above-mentioned transform / inverse transform can be applied to the residual samples within the CU or the residual samples within the TU. The CU size and the TU size may be the same, or there may be a plurality of TUs within the CU region. On the other hand, the CU size generally can indicate the CB size of the luma component (sample). The TU size generally can indicate the TB size of the luma component (sample). The CB or TB size of the chroma component (sample) can be derived based on the component ratio according to the color format (chroma format, e.g., 4:4:4, 4:2:2, 4:2:0, etc.) and based on the CB or TB size of the luma component (sample). The TU size can be derived based on maxTbSize. For example, the above-mentioned CU size If the size is larger than the maxTbSize, a plurality of TUs (TBs) of the maxTbSize are derived from the CU, and conversion / inverse conversion can be performed in units of the TU (TB). The maxTbSize can be considered for applications of various intra prediction types such as ISP and any determination. Information on the maxTbSize may be determined in advance, or may be generated and encoded by the encoding device and signaled to the encoding device. As described with reference to FIG. 2 above, part or all of the video / image information can be entropy encoded by the entropy encoder 190, and part or all of the video / image information described with reference to FIG. 3 can be entropy decoded by the entropy decoder 310. In this case, the video / image information can be encoded / decoded in units of syntax elements. In this specification, encoding / decoding of information can include being encoded / decoded by the method described in this paragraph. FIG. 8 shows a block diagram of CABAC for encoding one syntax element. In the CABAC encoding process, first, when the input signal is not a binary value but a syntax element, the input signal can be converted to a binary value through binarization. When the input signal is already a binary value, it can be bypassed without going through binarization. Here, each binary number 0 or 1 constituting the binary value can be called a bin.
[0122] Entropy Coding
[0123]
[0124] For example, when the binary string (bin string) after binarization is 110, each of 1, 1, 0 can be called a bin. The bin for one syntax element can indicate the value of the syntax element.
[0125] The binarized bin can be input into a regular coding engine or a bypass coding engine. The regular coding engine can allocate a context model that reflects the probability value for the bin and encode the bin based on the allocated context model. In the regular coding engine, after coding each bin, the probability model for the bin can be updated. The bin coded in this way can be called a context-coded bin. The bypass coding engine can omit the procedure of estimating the probability for the input bin and the procedure of updating the probability model applied to the bin after coding. In the case of the bypass coding engine, instead of allocating a context, a uniform probability distribution (e.g., 50:50) can be applied to code the input bin, thereby improving the coding speed. The bin coded in this way can be called a bypass bin. The context model can be allocated and updated for each context-coded (regular-coded) bin, and the context model can be indicated based on ctxidx or ctxInc. It can be done. ctxidx can be derived based on ctxInc. Specifically , for example, it refers to the context model for each of the bins to be regularly coded That is, the context index (ctxidx) is the context index inc rement (ctxInc) and the context index offset (ctx IdxOffset) can be derived as the sum. Here, the ctxInc can be derived to be different for each bin. The ctxIdxOffset can be represented by the lowest value of the ctxIdx . The lowest value of the ctxIdx is the initial value (initValue) of the ctxIdx and can be called. The ctxIdxOffset is generally a value used for distinguishing from the context model for other syntax elements. The context model for one syntax element can be distinguished / derived based on ctxinc .
[0126] Determine whether to perform encoding through the entropy coding engine in the entropy encoding procedure or through the bypass coding engine, and the coding path can be switched . Entropy decoding can perform the same process as entropy encoding in reverse .
[0127] The above-mentioned entropy coding can be performed as shown in, for example, FIGS. 9 and 10 . Referring to FIGS. 9 and 10, the encoding device (entropy encoding unit) can perform the entropy encoding procedure for image / video information. The image / video The DEO information can include partitioning-related information, prediction-related information (e.g., inter / intra prediction partitioning information, intra prediction mode information, inter prediction mode information, etc.), residual information, in-loop filtering-related information, etc., or can include various syntax elements related thereto. The entropy coding can be performed on a syntax element unit basis. Steps S910 to S920 in FIG. 9 can be performed by the entropy coding unit 190 of the encoding device in FIG. 2 described above. The encoding device can perform binarization on a target syntax element (S910)
[0128] . Here, the binarization can be based on various binarization methods such as Truncated Rice binarization process, Fixed-length binarization process, etc., and the binarization method for the target syntax element can be predefined. The binarization procedure can be performed by the binarization unit 191 within the entropy coding unit 190. The encoding device can perform entropy coding on the target syntax element (S920). The encoding device
[0129] can perform coding based on a normal coding base (context-based) or a bypass coding base on the bin string of the target syntax element based on an entropy coding technique such as CABAC (context-adaptive arithmetic coding) or CAVLC (context-adaptive variable length coding). , the output can be included in the bitstream. The entropy encoding procedure can be performed by the entropy encoding processing unit 192 in the entropy encoding unit 190. As described above, the bitstream can be transmitted to the decoding device via a (digital) storage medium or a network.
[0130] Referring to FIGS. 11 and 12, a decoding device (entropy decoding unit) can decode the encoded image / video information. The image / video information can include partitioning-related information, prediction-related information (e.g., inter / intra prediction partition information, intra prediction mode information, inter prediction mode information, etc.), residual information, in-loop filter ring-related information, etc., or can include various syntax elements related thereto. The entropy coding can be performed on a syntax element-by-syntax element basis. S1110 to S1120 can be performed by the entropy decoding unit 210 of the decoding device shown in FIG. 3 above.
[0131] The decoding device can perform binarization on the target syntax element (S1110). Here, the binarization can be based on various binarization methods such as Truncated Rice binarization process and Fixed-length binarization process, and the binarization method for the target syntax element can be predefined. The decoding device, via the binarization procedure, obtains an available bitstring (bitstring candidate) for the available values of the target syntax element. can be derived. The binarization procedure can be performed by the binarization unit 2 11 in the entropy decoding unit 210.
[0132] The decoding device can perform entropy decoding on the target syntax element (S1120). The decoding device can sequentially decode and parse each bin for the target syntax element from the input bits in the bit stream, and compare the derived bin string with the available bin string for the syntax element. If the derived bin string is the same as one of the available bin strings, the value corresponding to the bin string can be derived as the value of the syntax element. If not, after further parsing the next bit in the bit stream, the above-described procedure can be performed again. Through such a process, it is possible to signal the information using variable-length bits without using the start bit or end bit for specific information (specific syntax element) in the bit stream. Thereby, relatively fewer bits can be allocated for lower values, and the general coding efficiency can be improved. The decoding device can perform context-based or bypass-based decoding on each bin in the bin string from the bit stream based on an entropy coding technique such as CABAC or CAVLC. The entropy decoding procedure can be performed by the entropy decoding processing unit 212 in the entropy decoding unit 210. While sequentially decoding and parsing each bin for the target syntax element from the input bits in the bit stream, the derived bin string can be compared with the available bin string for the syntax element. If the derived bin string is the same as one of the available bin strings, the value corresponding to the bin string can be derived as the value of the syntax element. If not, after further parsing the next bit in the bit stream, the above-described procedure can be performed again. Through such a process, it is possible to signal the information using variable-length bits without using the start bit or end bit for specific information (specific syntax element) in the bit stream. Thereby, relatively fewer bits can be allocated for lower values, and the general coding efficiency can be improved. The decoding device can perform context-based or bypass-based decoding on each bin in the bin string from the bit stream based on an entropy coding technique such as CABAC or CAVLC. The entropy decoding procedure can be performed by the entropy decoding processing unit 212 in the entropy decoding unit 210. This can signal the information using variable-length bits without using the start bit or end bit for specific information (specific syntax element) in the bit stream. As a result, relatively fewer bits can be allocated for lower values, and the general coding efficiency can be improved. The decoding device can perform context-based or bypass-based decoding on each bin in the bin string from the bit stream based on an entropy coding technique such as CABAC or CAVLC.
[0133] The entropy decoding procedure can be performed by the entropy decoding processing unit 212 in the entropy decoding unit 210. The decoding device can perform context-based or bypass-based decoding on each bin in the bin string from the bit stream based on an entropy coding technique such as CABAC or CAVLC. The entropy decoding procedure can be performed by the entropy decoding processing unit 212 in the entropy decoding unit 210. The entropy decoding procedure can be performed by the entropy decoding processing unit 212 in the entropy decoding unit 210. It is. The bitstream can contain various information for image / video decoding as described above. As described above, the bitstream can be transmitted to the decoding device via a (digital) storage medium or a network.
[0134] In this specification, a table (syntax table) including syntax elements can be used to indicate the signaling of information from the encoding device to the decoding device. The order of the syntax elements of the table including the syntax elements used in this specification can indicate the parsing order of the syntax elements from the bitstream. The encoding device can configure and encode the syntax table so that the syntax elements can be parsed by the decoding device in accordance with the parsing order. The decoding device can parse and decode the syntax elements of the syntax table from the bitstream in accordance with the parsing order to obtain the values of the syntax elements.
[0135] General Image / Video Coding Procedure
[0136] In image / video coding, the pictures constituting the image / video can be encoded / decoded in accordance with a series of decoding orders. The picture order corresponding to the output order of the decoded pictures can be set to be different from the decoding order. Based on this, during inter prediction, not only forward prediction but also backward prediction can be performed.
[0137] FIG. 13 shows an example of a schematic picture decoding procedure to which the embodiments of this specification are applicable. FIG. 1 In 3, S1310 can be performed by the entropy decoding unit 210 of the decoding apparatus described above with reference to FIG. 3, S1320 can be performed by a prediction unit including an intra prediction unit 265 and an inter prediction unit 260, S1330 can be performed by a residual processing unit including an inverse quantization unit 220 and an inverse transform unit 230, S1340 can be performed by an addition unit 235, S1350 can be performed by a filtering unit 240. S13 10 can include the information decoding procedure described in this specification, S1320 can include the inter / intra prediction procedure described in this specification, S1330 can include the residual processing procedure described in this specification, S1340 can include the block / picture restoration procedure described in this specification, S1350 can include the in-loop filtering procedure described in this specification. Referring to FIG. 13, the picture decoding procedure can generally include, as shown in the description of FIG. 3, an image / video information acquisition procedure (S1 310) from a bit stream (by decoding), a picture restoration procedure (S1320 to S1340), and an in-loop filtering procedure (S1350) for the restored picture. The picture restoration
[0138] procedure can be performed based on the predicted samples and residual samples obtained through the inter / intra prediction (S1320) and residual processing (S1330, inverse quantization and inverse transform for the quantized transform coefficients) procedures described in this specification. The picture restoration procedure can include the inter / intra prediction (S1320) and residual processing (S1330, inverse quantization and inverse transform for the quantized transform coefficients) procedures described in this specification. The picture restoration procedure can be performed based on the predicted samples and residual samples obtained through the inter / intra prediction (S1320) and residual processing (S1330, inverse quantization and inverse transform for the quantized transform coefficients) procedures described in this specification. The picture restoration procedure can be performed based on the predicted samples and residual samples obtained through the inter / intra prediction (S1320) and residual An in-loop filtering procedure for the restored picture generated by the picture restoration procedure can generate a modified restored picture, and the modified restored picture can be output as a decoded picture, and can also be stored in the decoded picture buffer or memory 250 of the decoding device and used as a reference picture in the inter prediction procedure when decoding subsequent pictures. In some cases, the above-mentioned in-loop filtering procedure can be omitted. In this case, the restored picture can be output as a decoded picture, and can also be stored in the decoded picture buffer or memory 250 of the decoding device and used as a reference picture in the inter prediction procedure when decoding subsequent pictures. The in-loop filtering procedure (S1350) can include, as described above, a deblocking filtering procedure, an SAO (sample adaptive offset) procedure, an ALF (adaptive loop filter) procedure, and / or a bilateral filter procedure, etc., and some or all of them can be omitted. Also, one or some of the deblocking filtering procedure, SAO (sample adaptive offset) procedure, ALF (adaptive loop filter) procedure, and bilateral filter procedure can be sequentially applied, or all of them can be sequentially applied. For example, after the deblocking filtering procedure is applied to the restored picture, the SAO procedure can be performed. Or, for example, the deblocking filtering procedure is applied to the restored picture can be sequentially applied, or all of them can be sequentially applied. For example, after the deblocking filtering procedure is applied to the restored picture, the SAO procedure can be performed. Or, for example, the deblocking filtering procedure is applied to the restored picture As described above, it can include a deblocking filtering procedure, an SAO (sample adaptive offset) procedure, an ALF (adaptive loop filter) procedure, and / or a bilateral filter procedure, etc., and some or all of them can be omitted. Also, one or some of the deblocking filtering procedure, SAO (sample adaptive offset) procedure, ALF (adaptive loop filter) procedure, and bilateral filter procedure can be sequentially applied, or all of them can be sequentially applied. For example, after the deblocking filtering procedure is applied to the restored picture, the SAO procedure can be performed. Or, for example, the deblocking filtering procedure is applied to the restored picture filtering procedure, SAO (sample adaptive offset) procedure procedure, ALF (adaptive loop filter) procedure, and bilateral filter procedure, one or some of them can be sequentially applied or all of them can be sequentially applied. For example, after the deblocking filtering procedure is applied to the restored picture, the SAO procedure can be performed. Or, for example, after the deblocking filtering procedure is applied to the restored picture the SAO procedure can be performed. Or, for example, after the deblocking filtering procedure is applied to the restored picture the SAO procedure can be performed. Or, for example, after the deblocking filtering procedure is applied to the restored picture After the ALF procedure is performed, the ALF procedure can be performed. It can be done.
[0139] FIG. 14 shows an example of a general picture encoding procedure to which the embodiments of the present specification can be applied. 4, S1410 is a process for determining whether the intra prediction unit 185 or the intra prediction unit 186 of the encoding device described above in FIG. S1420 may be performed by a prediction unit including a transform prediction unit 120 and / or the quantization unit 130, the residual processing unit may include the quantization unit 130, and S1430 may include: The entropy coding unit 190 may perform S1410 as described herein. S1420 may include an inter / intra prediction procedure as described herein. S1430 may include a residual processing procedure, and the information code described herein may be The method may include a conversion procedure.
[0140] Referring to FIG. 14, the picture encoding procedure is as shown in the description of FIG. In general, information for picture restoration (e.g., prediction information, residual information, partition information, etc.) is stored in the In addition to the procedure of encoding the video data (partitioning information, etc.) and outputting it in bitstream format, A procedure for generating a reconstructed picture for a current picture and applying an in-loop filter to the reconstructed picture. The encoding device may include a step of applying inverse filtering. The (corrected) Residual samples can be derived, and the output of S1410 is the predicted sample and the previous sample. A reconstructed picture can be generated based on the (corrected) residual samples. The reconstructed picture thus generated is the same as the reconstructed picture generated by the above-mentioned decoding device. They may be the same. Through the in-loop filtering procedure for the restored picture, a corrected restored picture can be generated, which can be stored in the decoded picture buffer or memory 170, and can be used as a reference picture in the inter prediction procedure when encoding subsequent pictures, similar to the case in the decoding device. As described above, in some cases, part or all of the in-loop filtering procedure can be omitted. When the in-loop filtering procedure is performed, the (in-loop) filtering-related information (parameters) can be encoded by the entropy encoding unit 190 and output in the form of a bitstream, and the decoding device can perform the in-loop filtering procedure in a similar manner to the encoding device based on the filtering-related information.
[0141] Through such an in-loop filtering procedure, noises generated during image / video coding, such as blocking artifacts and ringing artifacts, can be reduced, and the subjective / objective visual quality can be improved. Also, by performing the in-loop filtering procedure in both the encoding device and the decoding device, the encoding device and the decoding device can derive the same prediction result, enhance the reliability of picture coding, and reduce the amount of data to be transmitted for picture coding. As described above, picture restoration procedures can be performed not only in the
[0142] decoding device but also in the encoding device. Based on intra prediction / inter prediction for each block unit, a restored block A check can be generated, and a restored picture including a restored block can be generated. If the current picture / slice / tile group is an I picture / slice / tile group the blocks included in the current picture / slice / tile group can be restored based only on intra prediction. On the other hand, if the current picture / slice / tile group is a P or B picture / slice / tile group, the blocks included in the current picture / slice / tile group can be restored based on intra prediction or inter prediction. In this case, inter prediction can be applied to some of the blocks within the current picture / slice / tile group, and intra prediction can also be applied to some of the remaining blocks. The color components of a picture can include a luma component and a chroma component, and unless explicitly limited in this specification, the methods and examples proposed in this specification can be applied to the luma component and the chroma component. The video / image coded according to this specification can be processed, for example, according to the coding hierarchy and structure described later. FIG. 15 is a diagram showing a hierarchical structure for a coded image. The coded image includes a video coding layer (VCL) that decodes the image and handles itself, a lower system that transmits and stores the coded information, and a NAL that exists between the VCL and the lower system and is responsible for the network adaptation function.
[0143] Example of Coding Hierarchy and Structure
[0144]
[0145] (network abstraction layer, network abstraction layer) can be divided into sections. It can be divided.
[0146] In VCL, generate VCL data including compressed image data (slice data), or generate a parameter set including information such as a Picture Parameter Set (PPS), Sequence Parameter Set (SPS), Video Parameter Set (VPS), or an SEI (Supplemental Enhancement Information) message that is additionally required for the decoding process of the image. It can be generated. (Supplemental Enhancement Information) message. It can be generated.
[0147] In NAL, add header information (NAL unit header) to the RBSP (Raw Byte Sequence Payload) generated by VCL to generate a NAL unit. At this time, RBSP refers to slice data, parameter sets, SEI messages, etc. generated by VCL. The NAL unit header can include NAL unit type information specified by the RBSP data included in the corresponding NAL unit. It can be generated. It can be included. It can include. It can be included.
[0148] As shown in the figure, the NAL unit can be divided into a VCL NAL unit and a Non-VCL NAL unit by the RBSP generated by VCL. The VCL NAL unit can mean a NAL unit including information (slice data) for an image, and the Non-VCL NAL unit is for decoding an image. It can be divided. The VCL NAL unit can mean a NAL unit including information (slice data) for an image. The Non-VCL NAL unit is for decoding an image. It is possible to mean an NAL unit containing necessary information (parameter set or SEI message). It can be meant.
[0149] The above-mentioned VCL NAL unit and Non-VCL NAL unit can be transmitted via a network with header information according to the data standard of the lower system. For example, the NAL unit can be transformed into a data format of a predetermined standard such as the H.266 / VVC file format, RTP (Real-time Transport Protocol), TS (Transport Stream), etc., and transmitted via various networks. As described above, the NAL unit type can be specified according to the RBSP data structure (structure) included in the NAL unit, and information for such an NAL unit type can be stored in the NAL unit header and signaled. For example, depending on whether the NAL unit contains information (slice data) for an image, it can be roughly classified into a VCL NAL unit type and a Non-VCL NAL unit type. The VCL NAL unit type can be classified according to the nature and type of the picture included in the VCL NAL unit, and the Non-VCL NAL unit type can be classified according to the type of the parameter set, etc. Below, an example of the NAL unit type specified according to the type of the parameter set included in the Non-VCL NAL unit type, etc. is listed.
[0150] As described above, the NAL unit type can be specified according to the RBSP data structure included in the NAL unit, and information for such an NAL unit type can be stored in the NAL unit header and signaled. For example, depending on whether the NAL unit contains information (slice data) for an image, it can be roughly classified into a VCL NAL unit type and a Non-VCL NAL unit type. The VCL NAL unit type can be classified according to the nature and type of the picture included in the VCL NAL unit, and the Non-VCL NAL unit type can be classified according to the type of the parameter set, etc. Below, an example of the NAL unit type specified according to the type of the parameter set included in the Non-VCL NAL unit type, etc. is listed.
[0151] For example, depending on whether the NAL unit contains information (slice data) for an image, it can be roughly classified into a VCL NAL unit type and a Non-VCL NAL unit type. The VCL NAL unit type can be classified according to the nature and type of the picture included in the VCL NAL unit, and the Non-VCL NAL unit type can be classified according to the type of the parameter set, etc. Below, an example of the NAL unit type specified according to the type of the parameter set included in the Non-VCL NAL unit type, etc. is listed. For example, depending on whether the NAL unit contains information (slice data) for an image, it can be roughly classified into a VCL NAL unit type and a Non-VCL NAL unit type. The VCL NAL unit type can be classified according to the nature and type of the picture included in the VCL NAL unit, and the Non-VCL NAL unit type can be classified according to the type of the parameter set, etc.
[0152] Below, an example of the NAL unit type specified according to the type of the parameter set included in the Non-VCL NAL unit type, etc. is listed. Below, an example of the NAL unit type specified according to the type of the parameter set included in the Non-VCL NAL unit type, etc. is listed.
[0153] -APS (Adaptation Parameter Set) NAL unit :Type for NAL unit containing APS
[0154] -DPS (Decoding Parameter Set) NAL unit: D Type for NAL unit containing DPS
[0155] -VPS (Video Parameter Set) NAL unit: VPS-containing Type for NAL unit containing VPS
[0156] -SPS (Sequence Parameter Set) NAL unit: S Type for NAL unit containing SPS
[0157] -PPS (Picture Parameter Set) NAL unit: PPS Type for NAL unit containing PPS
[0158] The above-mentioned NAL unit types have syntax information for the NAL unit type, and the syntax information can be stored and signaled in the NAL unit header. For example, the syntax information can be nal_unit_type, and the NAL unit type can be specified by the value of nal_unit_type.
[0159] The slice header (slice header syntax) can contain information / parameters that are commonly applicable to the slice. The APS (APS syntax) or PPS (PPS syntax) can be commonly applicable to one or more slices or pictures. It can include information / parameters. The SPS (SPS syntax) can include information / parameters applicable to one or more sequences in common. The VPS (V PS syntax) can include information / parameters applicable to multiple layers in common. The DPS (DPS syntax) can include information / parameters applicable to video in general. The DPS can include information / parameters related to the concatenation of CVS (coded video seq uence). In this specification, the high level syntax (HLS) can include at least one of the APS syntax, PPS syntax, SPS syntax, VPS syntax, DPS syntax, and slice header syntax .
[0160] In this specification, the image / video information encoded by the encoding device and signaled in the form of a bitstream to the decoding device can include not only the partitioning-related information within the picture, the intra / inter prediction information, the residual information, the in-loop filtering information, etc., but also the information included in the slice header, the information included in the APS, the information included in the PPS, the information included in the SPS, and / or the information included in the VPS.
[0161] Overview of Intra Prediction
[0162] Hereinafter, the intra prediction performed by the above-described encoding device and decoding device will be described in more detail. Intra prediction is the reference within the picture to which the current block belongs (hereinafter, the current picture). It is possible to indicate a prediction for generating a predicted sample for the current block based on the sample. Yes.
[0163] This will be described with reference to FIG. 16. When intra prediction is applied to the current block 1601, it is possible to derive the surrounding reference samples used for the intra prediction of the current block 1601. The surrounding reference samples of the current block are the samples 1611 adjacent to the left (left) boundary of the current block of size nW×nH and the bottom-left (bottom-left) a total of 2×nH samples including the adjacent sample 1612, the samples 1621 adjacent to the upper (to p) boundary of the current block and the samples 1622 adjacent to the top-right (top-right) a total of 2×nW samples including the adjacent sample 1622, and one sample 1631 adjacent to the top-left (top- light) of the current block. Or, the surrounding reference samples of the current block may include a plurality of upper surrounding samples in a plurality of columns and a plurality of left surrounding samples in a plurality of rows. light). Or, the surrounding reference samples of the current block may include a plurality of upper surrounding samples in a plurality of columns and a plurality of left surrounding samples in a plurality of rows. The surrounding reference samples of the current block may include a plurality of upper surrounding samples in a plurality of columns and a plurality of left surrounding samples in a plurality of rows. It is also possible.
[0164] In addition, the surrounding reference samples of the current block are a total of nH samples 1641 adjacent to the right (right) boundary of the current block of size nW×nH, the lower ( bottom) boundary of the current block, a total of nW samples 1651 adjacent to the bottom ( bottom) boundary of the current block, and one sample 1642 adjacent to the bottom-right (bottom-right) of the current block. It is also possible to include one sample 1642 adjacent to the bottom-right (bottom-right) of the current block. Yes.
[0165] However, some of the surrounding reference samples of the current block may not have been decoded yet or may not be available. In this case, the decoding device uses the samples that are not available. By replacing (substitution) with available samples, for prediction the peripheral reference samples to be used can be configured. Or, through interpolation (interpolation) of available samples, the peripheral reference samples to be used for prediction can be configured in this way.
[0166] When the peripheral reference samples are derived, (i) the prediction samples can be derived based on the average or interpolation (interpolation) of the neighboring reference samples of the current block, and (ii) the prediction samples can also be derived based on the reference samples existing in a specific (predicted) direction with respect to the prediction samples among the neighboring reference samples of the current block. In the case of (i), it can be called a non-directional mode or a non-angle mode, and in the case of (ii), it can be called a directional mode or an angular mode. Also, among the peripheral reference samples, based on the prediction samples of the current block, through the interpolation of the second peripheral sample and the first peripheral sample located in the opposite direction of the prediction direction of the intra prediction mode of the current block, the prediction samples can also be generated. In the case described above, it can be called linear interpolation intra prediction (Linear interpolation intra prediction, LIP). Also, chroma prediction samples can be generated based on luma samples using a linear model (linear model). In this case, it can be called the LM mode. Also, the temporary prediction samples of the current block are derived based on the filtered peripheral reference samples, and the existing peripheral reference samples For example, at least one reference sample derived according to the prediction mode among the non-filtered peripheral reference samples and the temporary prediction sample are weighted sum to derive the prediction sample of the current block. This is also possible. In the above case, it can be called PDPC (Position dependent in tra prediction). Also, from among the peripheral multi-reference sample lines of the current block, the reference sample line with the highest prediction accuracy is selected, and the prediction sample is derived using the reference sample located in the prediction direction on this line. At this time, intra prediction coding can be performed by indicating (signaling) the used reference sample line to the decoder. In the above case, it can be called multi-reference e line (MRL) intra prediction or MRL-based intra prediction. Also, the current block is divided into vertical or horizontal sub-partitions and intra prediction is performed based on the same intra prediction mode, but peripheral reference samples can be derived and used in units of the sub-partitions. That is, in this case, the intra prediction mode for the current block is applied identically to the sub-partitions, but by deriving and using peripheral reference samples in units of the sub-partitions, the intra prediction performance can be improved depending on the case. Such a prediction method can be called intra s ub-partitions (ISP) or ISP-based intra prediction. Such intra prediction methods are called intra prediction types separately from intra prediction modes (for example, DC mode, Planar mode, and directional mode). The present invention also provides an intra prediction method, which includes: deriving at least one reference sample according to a prediction mode among non-filtered peripheral reference samples; and performing a weighted sum of the at least one reference sample and a temporary prediction sample to derive a prediction sample of a current block. In this case, the method can be called PDPC (Position dependent intra prediction). The present invention further provides an intra prediction method, which includes: selecting a reference sample line with the highest prediction accuracy from among peripheral multi-reference sample lines of a current block; deriving a prediction sample using a reference sample located in a prediction direction on the reference sample line; and signaling the used reference sample line to a decoder to perform intra prediction coding. In this case, the method can be called multi-reference e line (MRL) intra prediction or MRL-based intra prediction. The intra prediction type may be an intra prediction technique or an additional intra prediction mode. For example, the intra prediction type (or additional intra prediction type) can be referred to by various terms. The following modes (e.g., trajectory prediction mode) are selected based on at least one of the above LIP, PDPC, MRL, and ISP. The specific interface such as the LIP, PDPC, MRL, ISP, etc. The general intra prediction method other than the intra prediction type is called the normal intra prediction type. The normal intra prediction type is the one that applies to the specific intra prediction types described above. This refers to a case where the intra prediction mode is not used, and prediction is performed based on the intra prediction mode described above. Meanwhile, if necessary, a post-processing filter can be applied to the derived prediction samples. Ringing can also be performed.
[0167] Specifically, the intra prediction procedure includes an intra prediction mode / type decision step, a peripheral reference step, and a Intra prediction mode / type-based prediction sample derivation step In addition, if necessary, post-processing may be performed on the derived prediction samples. A post-filtering step may also be performed.
[0168] On the other hand, in addition to the above intra-prediction types, ALWIP (affine linea r weighted intraprediction) can be used The ALWIP is a linear weighted intrapre diction) or MIP (matrix weighted intrapred This is called intraprediction or matrix based intraprediction. It can also be exposed. When the MIP is currently applied to a block, i) using the surrounding reference samples for which an averaging procedure has been performed, ii) performing a matrix-vector multiplication (matrix-vector-multiplication ), and iii) optionally further performing a horizontal / vertical interpolation procedure to derive the predicted samples for the current block. The intra prediction mode used for the MIP can be configured to be different from the intra prediction modes used in the above-described LIP, PDPC , MRL, ISP intra prediction, or normal intra prediction. The intra prediction mode for the MIP can be called the MIP intra prediction mode, the MIP prediction mode, or the MIP mode. For example , depending on the intra prediction mode for the MIP, the matrix and offset used in the matrix-vector multiplication can be set to be different. Here, the matrix can be called the (MIP) weight matrix, and the offset can be called the (MIP) offset vector or the (MIP) bias vector . Specific MIP methods will be described later.
[0169] The intra prediction-based block restoration procedure and the intra prediction unit in the encoding apparatus can generally include the following by way of example. S1710 can be performed by the intra prediction unit 18 5 of the encoding apparatus, and S1720 includes at least one of the subtraction unit 115, the conversion unit 12 0, the quantization unit 130, the inverse quantization unit 140, and the inverse conversion unit 150 of the encoding apparatus . It can be performed by the residual processing unit. Specifically, S1720 can be performed by the subtraction unit 115 of the encoder In S1730, the prediction information can be derived by the intra prediction unit 185 and encoded by the entropy encoding unit 190 . In S1730, the residual information can be derived by the residual processing unit and encoded by the entropy encoding unit 190. The residual information is information regarding the residual sample. The residual information can include information regarding the quantized transform coefficients for the residual sample. As described above, the residual sample is derived into transform coefficients via the conversion unit 120 of the encoder, and the transform coefficients can be derived as the quantized transform coefficients via the quantization unit 130. The information regarding the quantized transform coefficients can be encoded by the entropy encoding unit 190 via the residual coding procedure. The encoder can perform intra prediction on the current block (S1710). The encoder can derive the intra prediction mode / type for the current block and derive the surrounding reference samples of the current block, and generate prediction samples within the current block based on the intra prediction mode / type and the above-mentioned surrounding reference samples. Here, the procedure of determining the intra prediction mode / type, deriving the surrounding reference samples, and generating the prediction samples can be performed simultaneously, or any one of the procedures can be performed prior to the other procedures. For example, although not shown in the figure, the intra prediction unit 185 of the encoder performs intra prediction .
[0170] The encoder can perform intra prediction on the current block (S1710). The encoder can derive the intra prediction mode / type for the current block and derive the surrounding reference samples of the current block, and generate prediction samples within the current block based on the intra prediction mode / type and the above-mentioned surrounding reference samples. Here, the procedure of determining the intra prediction mode / type, deriving the surrounding reference samples, and generating the prediction samples can be performed simultaneously, or any one of the procedures can be performed prior to the other procedures. For example, although not shown in the figure, the intra prediction unit 185 of the encoder performs intra prediction mode / type determination, surrounding reference sample derivation, and prediction sample generation procedures may be performed simultaneously, or any one of the procedures may be performed prior to the other procedures. For example, although not shown in the figure, the intra prediction unit 185 of the encoder It can include a measurement mode / type determination unit, a reference sample derivation unit, and a prediction sample derivation unit. The intra prediction mode / type determination unit determines the intra prediction mode / type for the current block, the reference sample derivation unit derives the peripheral reference samples of the current block, and the prediction sample derivation unit can derive the prediction samples of the current block. On the other hand, when the prediction sample filtering procedure described later is performed, the intra prediction unit 185 can further include a prediction sample filter unit. The encoding device can determine the mode / type applied to the current block among a plurality of intra prediction modes / types. The encoding device can compare the RD cost for the intra prediction mode / type and determine the optimal intra prediction mode / type for the current block.
[0171] On the other hand, the encoding device can also perform a prediction sample filtering procedure. The prediction sample filtering can be called post-filtering. By the prediction sample filtering procedure, some or all of the prediction samples can be filtered. In some cases, the prediction sample filtering procedure can be omitted.
[0172] The encoding device can generate a residual sample for the current block based on the (filtered) prediction samples (S1720). The encoding device can compare the prediction samples in the original samples of the current block based on phase and derive the residual sample.
[0173] The symbolization device can encode image information including information related to the intra prediction (prediction information) and residual information related to the residual sample (S1730). The prediction information can include the intra prediction mode information and the intra prediction type information . The symbolization device can output the encoded image information in the form of a bitstream . The output bitstream can be transmitted to the decoding device via a storage medium or a network .
[0174] The residual information can include a residual coding syntax described later . The symbolization device can convert / quantize the residual samples to derive quantized conversion coefficients . The residual information can include information about the quantized conversion coefficients .
[0175] On the other hand, as described above, the symbolization device can generate a restored picture (including restored samples and restored blocks) . For this purpose, the symbolization device can perform inverse quantization / inverse transformation processing on the quantized conversion coefficients again to derive (corrected) residual samples . The reason for performing inverse quantization / inverse transformation again after converting / quantizing the residual samples in this way is to derive the same residual samples as those derived by the decoding device as described above . The symbolization device can generate a restored block including restored samples for the current block based on the prediction samples and the (corrected) residual samples . A restored picture for the current picture can be generated based on the restored block . An in-loop filter is applied to the restored picture . As mentioned above, ring procedures etc. can also be applied.
[0176] The video / image decoding procedure based on intra prediction and the intra prediction unit in the decoding device include In general, the decoding device may include the following: It is possible to perform actions and corresponding actions.
[0177] Steps S1810 to S1830 are performed by the intra prediction unit 265 of the decoding device. The prediction information in S1810 and the residual information in S1840 are encoded in the decoder. The dequantization can be obtained from the bit stream by the tropy decoder 210. The residual processing unit includes at least one of the conversion unit 220 and the inverse conversion unit 230. deriving a residual sample for the current block based on the residual information; Specifically, the inverse quantization unit 220 of the residual processing unit Based on the quantized transform coefficients derived based on the real information, the transform is inversely quantized. The residual processor 230 performs an inverse transformation on the transform coefficients. Then, the residual sample for the current block can be derived by performing the transformation S 1850 can be performed by the adder 235 or the reconstruction unit of the decoding device.
[0178] Specifically, the decoding device performs the following operations based on the received prediction information (intra prediction mode / type information): Based on this, the intra prediction mode / type for the current block can be derived ( The decoding apparatus may derive neighboring reference samples of the current block. The decoding device can determine the intra prediction mode / type and the neighboring reference frame (S1820). Based on the sample, prediction samples within the current block can be generated (S18 30). In this case, the decoding device can perform a prediction sample filtering procedure. The prediction sample filtering can be called post-filtering. Among the said pre diction samples, some or all of them can be filtered by the prediction sample filtering procedure. In some cases, the prediction sample filtering procedure can be omitted.
[0179] The decoding device can generate residual samples for the current block based on the received residual information. The decoding device can generate restored samples for the current block based on the prediction samples and the residual samples, and derive a restored block including the restored samples (S1840). A restored picture for the current picture can be generated based on the restored block. As described above, in-loop filtering procedures and the like can be further applied to the restored picture.
[0180] Here, although not shown in the figure, the intra prediction unit 265 of the decoding device can include an intra prediction mode / type determination unit, a reference sample derivation unit, and a prediction sample derivation unit. The intra prediction mode / type determination unit determines the intra prediction mode / type for the current block based on the intra prediction mode / type information obtained by the entropy decoding unit 210. The reference sample derivation unit derives the peripheral reference samples of the current block, and the prediction sample derivation unit can derive the prediction samples of the current block. On the other hand, when the above-described prediction sample filtering procedure is performed, the intra prediction unit 265 may further include a prediction sample filter unit.
[0181] The intra prediction mode information may include, for example, flag information (e.g., intra_lum a_mpm_flag) indicating whether MPM (most probable mo de) is applied to the current block or whether the remaining mode (remai ning mode) is applied. When MPM is applied to the current block the prediction mode information may further include index information (e.g., intra_luma_mpm_idx) indicating any one of the intra prediction mode candidates (MPM candidates). The intra prediction mode candidates (MPM candidates) can be composed of an MPM candidate list or an MPM list. Also, when MPM is not applied to the current block the intra prediction mode information may further include remaining mode information (e.g., intra_luma_mpm_remainder) indicating any one of the remaining intra prediction modes excluding the intra prediction mode candidates ( MPM candidates). The decoding device can determine the intra prediction mode of the current block based on the intra prediction mode information. For the above-described MIP, a separate M PM list can be configured. Further, the intra prediction type information can be realized in various forms. As an example, the intra prediction type information is an index indicating any one of the intra prediction types MPM candidates) of the remaining intra prediction modes excluding the intra prediction mode candidates ( can further include remaining mode information (e.g., intra_luma_mpm_remainder). The decoding device can determine the intra prediction mode of the current block based on the intra prediction mode information. For the above-described MIP, a separate M PM list can be configured. PM list can be configured.
[0182] Furthermore, the intra prediction type information can be realized in various forms. As an example, the intra prediction type information is an index indicating any one of the intra prediction types indicating any one of the intra prediction types. In another example, the intra prediction type index information may be included. The measurement type information indicates whether the MRL applies to the current block, and if so, is the reference sample line information indicating which reference sample line is used (e.g., intra_luma_ref_idx), the ISP that applies to the current block ISP flag information indicating whether e_flag), which indicates the subpartition type when the ISP is applied ISP type information to be used (for example, intra_subpartitions_split _flag), flag information indicating whether PDCP is applied, or flag information indicating whether LIP is applied In addition, the intra prediction type information may include at least one of the following: may include a MIP flag indicating whether MIP is applied to the current block. do.
[0183] The intra-prediction mode information and / or the intra-prediction type information may be any of the intra-prediction modes described herein. The above coding method can be used to encode / decode the image. The intra prediction mode information and / or the intra prediction type information may be truncated(r ICE) binary code based on entropy coding (e.g. CAB It can be encoded / decoded via AC, CAVLC) coding.
[0184] Overview of ACT (Adaptive Color Transform)
[0185] ACT (Adaptive Color Transform) is a color component Color space transformation to remove unnecessary overlaps between ersion) technology, which has been utilized in the HEVC screen content extension version and can also be applied to VVC.
[0186] In the HEVC SCC extension (HEVC screen content extensio n), ACT has been used to adaptively convert the prediction residual from the existing color space to the YCgCo color space For each conversion unit, by signaling one ACT flag one of the two color spaces can be selectively selected
[0187] For example, the first value of the flag (e.g., 1) can indicate that the residual of the conversion unit is encoded in the original color space The second value of the flag (e.g., 1) can indicate that the residual of the conversion unit is encoded in the YCgCo color space
[0188] FIG. 19 is a diagram showing an example of the decoding process to which ACT is applied. In the example of FIG. 19 motion compensated prediction can correspond to the inter prediction in the present disclosure
[0189] As shown in FIG. 19, the restored picture (or restored block, restored sample array, restored sample pull, restored signal) can be generated based on the predicted output value and the residual output value Here, the residual output value can be the inverse transform output value. Here, the inverse transform can be the normal inverse transform. Here, the normal inverse transform can be the MTS-based inverse transform or the inverse LFNS T (low frequency non-seperable transform) It could be.
[0190] Here, the predicted output value may be a predicted block, a predicted sample array, a predicted sample, or a predicted signal. The residual output value can be the residual block, the residual sample, The signal may be a sequence of residual samples or a residual signal.
[0191] For example, at the coding device side, the ACT process may be induced based on the predicted samples. This can be done on the residual samples, and the output of the ACT process can be provided as an input to a canonical transformation process, where the canonical transformation process is , MTS-based transformation or LFNST.
[0192] (Inverse) ACT information (parameters) is generated by the coding device and coded It can then be transmitted to a decoding device in the form of a bit stream. do.
[0193] The decoder obtains, parses, and decodes (reverse)ACT-related information (parameters). and perform inverse ACT based on information (parameters) related to (inverse) ACT. It is possible.
[0194] Based on the inverse ACT, the (corrected) residual sample (or residual block) For example, by applying inverse quantization to the quantized (transformed) coefficients, By this, the (transform) coefficients can be derived. Then, the (transform) coefficients are transformed inversely. By carrying out the above, a residual sample can be derived. By applying the inverse ACT to the residual sample, the (corrected) residual sample can be obtained. Information (parameters) regarding (reverse) ACT will be described in detail later. will be described later.
[0195] In one embodiment, the core conversion function used in HEVC can be used as a core conversion function (conversion kernel) for color space conversion. For example, matrices for forward and inverse conversions such as the following equations can be used. For example, matrices for forward and inverse conversions such as the following equations can be used. For example, matrices for forward and inverse conversions such as the following equations can be used.
[0196] [Equation]
[0197] [Equation]
[0198] Here, C0, C1, and C2 can correspond to G, B, and R. Here, G is the green color component, B is the blue color component, and R is the red color component. And Here, C0, C1, and C2 can correspond to G, B, and R. Here, G is the green color component, B is the blue color component, and R is the red color component. And C0', C1', and C2' can correspond to Y, Cg, and Co. Here, Y is the luminance, Cg is the green color difference, and Co is the orange color difference component. C0', C1', and C2' can correspond to Y, Cg, and Co. Here, Y is the luminance, Cg is the green color difference, and Co is the orange color difference component.
[0199] Furthermore, in order to compensate for the dynamic range change of the residual before and after color conversion, a QP adjustment of only (-5, -5, -3) can be applied to the transform residual. Details of the QP adjustment will be described later.
[0200]
[0201] - In the case of dual-tree coding / decoding, ACT is deactivated. For example, ACT is It can only be applied to single-tree encoding / decoding.
[0202] - When ISP encoding and decoding are applied, ACT can be deactivated.
[0203] - For chroma blocks to which BDPCM is applied, ACT can be deactivated. BDP ACT can only be activated for luma blocks to which BDPCM is applied.
[0204] - When ACT can be applied, CCLM can be deactivated.
[0205] Figure 20 is a diagram showing an example of a sequence parameter set syntax table in which syntax elements related to ACT are signaled.
[0206] Figures 21 to 27 are diagrams continuously showing an example of a syntax table of an encoding unit in which syntax elements related to ACT are signaled.
[0207] As shown in Figure 20, sps_act_enabled_flag(2010) can be used as an ACT activation flag indicating whether ACT is activated during the decoding process.
[0208] The first value of sps_act_enabled_flag (for example, 0) indicates that ACT is not used and that the flag cu_act_enabled_fl ag(2110, 2710) indicating whether ACT is applied in the encoding unit is not provided in the syntax for the encoding unit. This can be indicated.
[0209] The second value of sps_act_enabled_flag (for example, 1) indicates that ACT can be used and that cu_act_enabled_flag is provided in the syntax for the encoding unit. You can show that you can.
[0210] If sps_act_enabled_flag is not available in the bitstream, The value of sps_act_enabled_flag is induced to the first value (e.g. 0). can be done.
[0211] Also, as shown in FIG. 21, the residual of the current coding unit is coded in the YCgCo color space. The ACT flag indicating whether the 10, 2710) can be used.
[0212] The first value of cu_act_enabled_flag (e.g., 0) is the current coding unit's It can be used to indicate that the residual was coded in the original color space. The second value of _enabled_flag (e.g., 1) indicates that the residual of the current coding unit is It can be shown to be encoded in the YCgCo color space.
[0213] If cu_act_enabled_flag is not provided in the bitstream, This can be induced to a first value (e.g., 0), where the original color space is RGB. It can be a color space.
[0214] QP Induction Method for Transformation Unit Using ACT QP Offset
[0215] In one embodiment, the quantization parameter in the scaling process for the transform coefficients is The induction process and the Qp update process can be performed as follows. For example, The iterative parameter derivation process can be performed using the following parameters:
[0216] - The relative coordinates of the top-left luma sample of the current coding block with respect to the top-left luma sample of the current picture luma coordinates (xCb, yCb) indicating
[0217] - A variable cbWidth representing the width of the current coding block in luma samples
[0218] - A variable cbHeight representing the height of the current coding block in luma samples
[0219] - Whether a single tree (SINGLE_TREE ) or a dual tree was used to split the current coding tree node. If a dual tree was used, a variable treeType indicating whether it is a luma component dual tree (DAUL_TREE_LUMA) or a chroma component dual tree (DAUL_TREE_CHROMA)
[0220] In this process, the luma quantization parameter Qp’Y and the chroma quantization parameters Q p’Cb, Qp’Cr, and Qp’CbCr can be derived.
[0221] The variable luma position (xQg, yQg) can indicate the position of the top-left luma sample of the current quantization group corresponding to the top-left sample of the current picture. Here, the horizontal (hori zontal) position xQg and the vertical (vertical) position yQg can be set to the same values as those of the variables C uQgTopLeftX and the variable CuQgTopLeftY, respectively. CuQgTopLeftX and CuQgTopLeftY can be defined as predetermined values in the coding tree syntax as shown in Figure 28.
[0222] Here, the current quantization group can be the rectangular area within the coding tree block and can share the same qP Y _ PRED value. Its width and height can be the same as the width and height of the coding tree node to which the top-left luma sample position is assigned to CuQgTopLeftX and CuQgTopLeftY respectively respectively.
[0223] If treeType is SINGLE_TREE or DUAL_TREE_LUMA the luma quantization parameter prediction value qP Y _ PRED can be derived as follows.
[0224] 1. The variable qP Y _ PRED is derived as follows.
[0225] (Condition 1) If any one of the following conditions is true, the value of qP Y _ PRED can be set to the same value as SliceQ p Y (where SliceQp Y represents the initial value of the quantization parameter Qp for all slices within the picture Y and can be obtained from the bitstream ). Otherwise, the value of qP Y _ PRED can be set to the value of the luma quantization parameter Qp of the last luma coding unit of the previous quantization Y group in decoding order.
[0226] -(Condition 1-1) If the current quantization group is the first quantization group in the slice
[0227] -(Condition 1-2) when the current quantization group is the first quantization group in the tile case
[0228] -(Condition 1-3) when the current quantization group is the first quantization group in the CTB row of the tile and a predetermined synchronization occurs (for example, when the value of entropy_coding_s ync_enabled_flag is 1)
[0229] 2. Variable qP Y _ A The value of can be derived as follows.
[0230] (Condition 2) If at least one of the following conditions is true, the value of qP Y _ A can be set to the value of qP Y _ PRED Otherwise, the value of qP Y _ A can be set to the luma quantization parameter Qp (xQg-1,yQg) of the coding unit containing the luma coding block covering the luma sample position of the coding unit containing the luma coding block covering the luma sample position Y
[0231] -(Condition 2-1) For the block identified by the sample position (xCb,yCb), if the block identified by the sample position (xQg-1,yQg) is not an available adjacent block case
[0232] -(Condition 2-2) If the CTB containing the luma coding block covering the luma sample position (xQg-1,yQg) is not the same as the CTB containing the current luma coding block at the luma sample position (xCb,yCb), for example, if all of the following conditions are true
[0233] -(Condition 2-2-1) The value of (xQg - 1) >> CtbLog2SizeY is (xCb) >> CtbLog2SizeY is different
[0234] -(Condition 2-2-2) The value of (yQg) >> CtbLog2SizeY is (yCb) >> CtbLog2SizeY is different
[0235] 3. Variable qP Y _ B The value can be derived as follows.
[0236] (Condition 3) If at least one of the following conditions is true, qP Y _ B The value of qP Y _ PRED can be set to the value of qP Y _ B Otherwise, the value of qP (xQg, yQg - 1) can be set to the luma quantization parameter Qp of the coding unit containing the luma coding block covering the luma sample position Y (xCb, yCb).
[0237] -(Condition 3-1) For the block identified by the sample position (xCb, yCb), if the block identified by the sample position (xQg, yQg - 1) is not an available adjacent block
[0238] -(Condition 3-2) If the CTB containing the luma coding block covering the luma sample position (xQg, yQg - 1) is not the same as the CTB containing the current luma coding block at the luma sample position (xCb, yCb), for example, if all of the following conditions are true
[0239] -(Condition 3-2-1) The value of (xQg) >> CtbLog2SizeY is (xCb) >> Different from CtbLog2SizeY
[0240] -(Condition 3-2-2)(yQg-1) >> The value of CtbLog2SizeY is (yCb) >> Different from CtbLog2SizeY
[0241] 4. Luma quantization parameter prediction value qP Y _ PRED can be derived as follows.
[0242] If all of the following conditions are true, qP Y _ PRED is the luma quantization parameter Qp of the coding unit that includes the luma coding block covering the luma sample position (xQg, yQg -1). Y can be set to
[0243] -(For the block identified by the sample position (xCb, yCb) in Condition 3-1), if the block identified by the sample position (xQg, yQg-1) is an available adjacent block
[0244] -If the current quantization group is the first quantization group in the CTB row within the tile
[0245] On the other hand, if not all of the above conditions are true, qP Y _ PRED can be derived as follows.
[0246] [Equation 3] qP Y _ PRED =(qP Y _ A +qP Y _ B +1) >> 1
[0247] The variable Qp Y can be derived according to the following equation.
[0248] [Equation 4] Qp Y =((qP Y _ PRED +CuQpDeltaVal+64+2*QpBdOffse t)%(64+QpBdOffset))-QpBdOffset
[0249] Here, CuQpDeltaVal represents the difference between the luma quantization parameter for the coding unit and its predicted value. This value can be obtained from the bitstream. QpBdOffs et represents the luma and chroma quantization parameter range offset. QpBdOffset is preset to a predetermined constant or can be obtained from the bitstream. For example , QpBdOffset can be calculated by multiplying the value of the syntax element indicating the bit depth of the luma or chroma samples by a predetermined constant. The luma quantization parameter Qp’ can be derived according to the following equation. Y is , can be derived according to the following equation.
[0250] [Equation 5] Qp′ Y =Qp Y +QpBdOffset
[0251] When the value of the variable ChromaArrayType representing the type of the chroma array is not the first value (for example 0) and treeType is SINGLE_TREE or DUAL_TREE_C HROMA, the following processing can be performed.
[0252] - When the value of treeType is DUAL_TREE_CHROMA, the value of the variable Qp Y is set to the same value as the luma quantization parameter Qp of the luma coding unit covering the luma sample position (xCb + cbWidth / 2, yCb + cbHeight / Y 2). can be achieved.
[0253] -Variable qP Cb , qP Cr and qP CbCr can be derived as shown in the following equations.
[0254] [Equation 6] qP Chroma = Clip3(-QpBdOffset, 63, Qp Y ) qP Cb = ChromaQpTable[0][qP Chroma qP Cr = ChromaQpTable[1][qP Chroma qP CbCr = ChromaQpTable[2][qP Chroma
[0255] Chroma quantization parameter Qp′ for Cb and Cr components Cb and Qp′ Cr and the chroma quantization parameter for joint Cb-Cr coding Qp′ CbCr can be derived as shown in the following equations.
[0256] [Equation 7] Qp′ Cb = Clip3(-QpBdOffset, 63, qP Cb + pps_cb_qp _offset + slice_cb_qp_offset + CuQpOffset Cb ) + QpBdOffset Qp′ Cr = Clip3(-QpBdOffset, 63, qP Cr + pps_cr_qp _offset + slice_cr_qp_offset + CuQpOffset Cr ) + QpBdOffset Qp′ CbCr = Clip3(-QpBdOffset, 63, qP CbCr + pps_joi nt_cbcr_qp_offset + slice_joint_cbcr_qp_of fset + CuQpOffset CbCr ) + QpBdOffset
[0257] In the above formula, pps_cb_qp_offset and pps_cr_qp_off set are the offsets used to derive Qp’ Cb and Qp’ Cr and can be obtained from the bitstream for the picture parameter set. slice _cb_qp_offset and slice_cr_qp_offset are the offsets used to derive Qp’ Cb and Qp’ Cr and can be obtained from the bitstream for the slice header. CuQpOffset and CuQpOff Cb set are the offsets used to derive Qp’ Cr and Qp’ Cb and can be obtained from the bitstream for the conversion Cr unit.
[0258] Also, for example, the inverse quantization process for the conversion coefficients can be performed using the following parameters.
[0259] - The relative coordinates (xTbY, yTbY) of the upper left sample of the current luma transform block with respect to the upper left luma sample of the current picture
[0260] - The variable nTbW representing the width of the transform block
[0261] - Variable nTbH representing the height of the conversion block
[0262] - Variable cIdx representing the color component of the current block
[0263] The output of this process can be an array d of scaled conversion coefficients. Here, the size of the array d can be (nTbW) × (nTbH). The individual elements that make it up can be identified by d[x] [y].
[0264] For this purpose, the quantization parameter qP can be derived as follows. If the value of cIdx is 0 , qP can be derived as in the following mathematical formula.
[0265] [Equation 8] qP = Qp′ Y
[0266] Otherwise, if the value of TuCResMode[xTbY][yTbY] is 2 , it can be derived as in the following mathematical formula.
[0267] [Equation 9] qP = Qp′ CbCr
[0268] Otherwise, if the value of cIdx is 1, qP can be derived as in the following mathematical formula.
[0269] [Equation 10] qP = Qp′ Cb
[0270] Otherwise, if the value of cIdx is 2, qP can be derived as in the following mathematical formula.
[0271] [Equation 11] qP = Qp′ Cr
[0272] After that, the quantization parameter qP can be updated as follows. And the variable rectNo The nTsFlag and bdShift can be derived as follows. For example, transfo If the value of rm_skip_flag[xTbY][yTbY][cIdx] is 0 ( For example, when the transformation is not skipped for the current transformation block), it can be derived as in the following formula. derived.
[0273] [Equation 12] qP = qP - (cu_act_enabled_flag[xTbY][yTbY]? 5 : 0) rectNonTsFlag = 0 bdShift = 10
[0274] Otherwise, when the value of transform_skip_flag[xTbY][yTbY] cIdx] is 1 (for example, when the transformation is skipped for the current transformation block), it can be derived as in the following formula. derived.
[0275] [Equation 13] qP = Max(QpPrimeTsMin, qP) - (cu_act_enabled _flag[xTbY][yTbY]? 5 : 0) rectNonTsFlag = ((((Log2(nTbW) + Log2(nTbH) ) & 1) == 1 bdShift = BitDepth + (rectNonTsFlag? 1 : 0) + (( Log2(nTbW) + Log2(nTbH)) / 2) - + pic_dep_quant _enabled_flag
[0276] Here, QpPrimeTsMin is the allowed can represent the minimum quantization parameter value. This can be determined by a predetermined constant or can be derived from the syntax elements of the bit stream related thereto.
[0277] Here, the suffixes Y, Cb, and Cr can represent the G, B, and R color components in the RGB color model or can represent the Y, Cg, and Co color components in the YCgCo color model.
[0278] BDPCM (Block Difference Pulse Code Modul ation) Overview
[0279] An image encoding device and an image decoding device according to an embodiment can perform differential encoding of a residual signal. For example, the image encoding device can encode the residual signal by subtracting a prediction signal from the residual signal of the current block, and the image decoding device can decode the residual signal by adding the prediction signal to the residual signal of the current block. An image encoding device and an image decoding device according to an embodiment can perform differential encoding of the residual signal by applying BDPCM described later.
[0280] BDPCM according to the present disclosure can be performed in a quantized residual domain. The quantized residual domain can include a quantized residual signal (or quantized residual coefficients), and when applying BDPCM, the transformation on the quantized residual signal can be skipped. For example, when applying BDPCM, the residual signal For the signal, the transform can be skipped and quantization can be applied. The residual domain may include quantized transform coefficients.
[0281] In one embodiment where BDPCM is applied, the image coding apparatus performs intra prediction mode Induce the residual block of the predicted current block and quantize the residual block The image coding device can generate a residual block by converting the current block into a If the residual signal differential coding mode is performed for By differentially encoding the residual block, we can derive a modified residual block. The image coding apparatus then outputs a differential code indicating a differential coding mode of the residual signal. The coding mode information and the modified residual block are coded to generate a bit stream. It is possible to generate a program.
[0282] More specifically, when BDPCM is applied to the current block, the predicted The predicted block (prediction block) containing the samples obtained by the prediction is generated by intra prediction. In this case, the intra prediction mode for performing the intra prediction can be set as a bit It can also be signaled via the packet stream, and the prediction direction of BDPCM, which will be described later, In addition, the intra prediction mode can be derived based on the vertical prediction method. The prediction direction may be determined to be either a vertical prediction mode or a horizontal prediction direction mode. For example, if the prediction direction of BDPCM is horizontal, the intra prediction mode is horizontal prediction direction. The prediction block of the current block is generated by the horizontal intra prediction. It can be done. Alternatively, when the prediction direction of BDPCM is the vertical direction, intra The prediction mode is determined as the vertical prediction direction mode, and the predicted block of the current block can be generated by intra prediction in the vertical direction When horizontal intra prediction is applied, the value of the pixel adjacent to the left side of the current block can be determined as the predicted sample value of the samples included in the corresponding row of the current block When horizontal intra prediction is applied, the value of the pixel adjacent to the left side of the current block can be determined as the predicted sample value of the samples included in the corresponding row of the current block When vertical intra prediction is applied, the value of the pixel adjacent to the upper side of the current block can be determined as the predicted sample value of the samples included in the corresponding column of the current block When vertical intra prediction is applied, the value of the pixel adjacent to the upper side of the current block can be determined as the predicted sample value of the samples included in the corresponding column of the current block When vertical intra prediction is applied, the value of the pixel adjacent to the upper side of the current block can be determined as the predicted sample value of the samples included in the corresponding column of the current block When BDPCM is applied to the current block, the method for generating the predicted block of the current block can be similarly performed in the image encoding apparatus and the image decoding apparatus When BDPCM is applied to the current block, the method for generating the predicted block of the current block can be similarly performed in the image encoding apparatus and the image decoding apparatus
[0283] When BDPCM is applied to the current block, the image encoding apparatus can generate a residual block including the residual samples of the current block by subtracting the previous predicted block from the current block When BDPCM is applied to the current block, the image encoding apparatus can generate a residual block including the residual samples of the current block by subtracting the previous predicted block from the current block The image encoding apparatus can quantize the residual block, and then encode the difference value (difrence or delta) between the quantized residual samples and the predictor of the quantized residual samples The image encoding apparatus can quantize the residual block, and then encode the difference value (difrence or delta) between the quantized residual samples and the predictor of the quantized residual samples The image decoding apparatus can obtain the quantized residual samples of the current block by obtaining the difference value restored from the bit stream and based on the predictor, thereby generating the quantized residual block of the current block The image decoding apparatus can obtain the quantized residual samples of the current block by obtaining the difference value restored from the bit stream and based on the predictor, thereby generating the quantized residual block of the current block The image decoding apparatus can obtain the quantized residual samples of the current block by obtaining the difference value restored from the bit stream and based on the predictor, thereby generating the quantized residual block of the current block After that, the image decoding apparatus can inverse quantize the quantized residual block and then add it to the predicted block to restore the current block After that, the image decoding apparatus can inverse quantize the quantized residual block and then add it to the predicted block to restore the current block After that, the image decoding apparatus can inverse quantize the quantized residual block and then add it to the predicted block to restore the current block
[0284] FIG. 29 illustrates a method for encoding residual samples of BDPCM according to the present disclosure. The residual block in FIG. , which can be generated by the image coding device by subtracting the predicted block from the current block. 29 quantized residual blocks k) can be generated by the image coding device by quantizing the residual block. In Figure 29, r i,j is the residual sample at coordinate (i,j) in the current block. When the size of the current block is M×N, the value of i can be 0 to M-1. The value of j can be 0 to N-1. For example, the residual is For example, r i,j is the current block's (i , j) can be derived by subtracting the value of the predicted sample from the value of the original sample of the coordinate. For example, r i,j is the unfiltered sample from the upper or left boundary sample. The value of the left adjacent pixel is copied along a line across the prediction block using the Horizontal intra prediction, or vertical intra prediction, where the upper adjacent lines are copied to individual lines of the predicted block. It may be a predicted residual after intra-prediction.
[0285] In FIG. 29, Q(r i,j ) is the quantized residue of the (i,j) coordinate in the current block. For example, Q(r i,j ) is r i,j It is possible to show the quantized value of Cut.
[0286] The prediction of BDPCM is performed on the quantization residual samples in FIG. 29 and corrected A modified quantized residual block R' of size M×N including the modified quantized residu al samples r' can be generated
[0287] When the prediction direction of BDPCM is horizontal, the value of the modified quantization residual sample at the (i, j) coordinates in the current block (r' ) can be calculated as shown in the following equation i,j
[0288]
Equation
[0289] As in Equation 14 above, when the prediction direction of BDPCM is horizontal, the r' value at the (0, j) coordinates 0,j is directly assigned the value Q(r 0,j ) of the quantization residual sample i,j The r' values for the other (i, j) coordinates are derived as the difference value between the value Q(r i,j ) of the quantization residual sample at the (i, j) coordinates and the value Q(r i-1,j ) of the quantization residual sample at the (i - 1, j) coordinates. That is, instead of encoding the value Q(r ) of the quantization residual sample at the (i, j) coordinates, the difference value calculated using the value Q(r i,j ) of the quantization residual sample at the (i - 1, j) coordinates as the predicted value is used as the modified quantization residu al sample value (r' i-1,j ) to derive the modified quantization residu al sample value (r' i,j ), and then r' i,j Encode the value.
[0290] When the prediction direction of BDPCM is the vertical direction, the correction of the (i, j) coordinates in the current block The value (r’) of the quantized residual sample thus obtained i,j can be calculated as shown in the following formula.
[0291]
Equation
[0292] As in the above formula 15, when the prediction direction of BDPCM is the vertical direction, the r’ value of the (i, 0) coordinate i,0 is the value Q(r i,0 ) of the quantized residual sample directly assigned. For the r’ i,j value of the other (i, j) coordinates, it is derived as the difference value between the value Q(r ) of the quantized residual sample of the (i, j) coordinate i,j and the value Q(r i,j-1 ) of the quantized residual sample of the (i, j - 1) coordinate. That is, instead of encoding the value Q(r ) of the quantized residual sample of the (i, j) coordinate i,j , the difference value calculated using the value Q(r ) of the quantized residual sample of the (i, j - 1) coordinate as the predicted value is used as the corrected quantized re i,j-1 sidual sample value (r’ ) after derivation, and then the r’ i,j value is encoded. i,j
[0293] As described above, the process of using the adjacent quantized residual sample values as predicted values to correct the current quantized residual sample value can be called BDPCM prediction.
[0294] Finally, the image encoding device includes the corrected The quantized residual block can be encoded and transmitted to an image decoding device. At this time, as described above, no conversion is performed on the modified quantized residual block.
[0295] FIG. 30 shows the modified quantized residual block generated by performing BDPCM of the present disclosure.
[0296] In FIG. 30, Horizontal BDPCM shows the modified quantized residual block generated according to Equation 14 when the prediction direction of BDPCM is horizontal. Also, Vertical BDPCM shows the modified quantized residual block generated according to Equation 15 when the prediction direction of BDPCM is vertical.
[0297] FIG. 31 is a flowchart showing the procedure for encoding the current block by applying BDPCM in an image encoding device.
[0298] First, when the current block, which is the block to be encoded, is input (S3110), a prediction block can be generated by performing prediction on the current block (S3120). The prediction block in step S3120 is an intra prediction block, and the intra prediction mode can be determined as described above. Based on the prediction block generated in step S3120, the residual block of the current block can be generated (S3130). For example, the image encoding device subtracts the prediction block (predicted sample value) from the current block (original sample value) to obtain the residual block (residual sample value). ) can be generated. For example, by executing step S3130, the residue dual block can be generated. Quantization is performed on the residue block generated in step S3130 (S3140), and a quantized residue block is generated , and BDPCM prediction can be performed on the quantized residue block (S 3150). The quantized residue block generated as a result of executing step S3140 is the quantized residue block in FIG. 29, and a corrected quantized residue block in FIG. 30 can be generated according to the BDPCM prediction result and prediction direction in step S3150 . The BDPCM prediction in step S3150 has been described with reference to FIGS. 29 and 30, so specific description is omitted. Thereafter, the image encoding device can encode the corrected quantized residue dual block (S3160) to generate a bitstream . At this time, the conversion for the corrected quantized residue block can be skipped . The BDPCM operation in the image encoding device described with reference to FIGS. 29 to 31 can be performed in reverse by the image decoding device.
[0299] FIG. 32 is a flowchart showing the procedure for restoring the current block by applying BDPCM in the image decoding device.
[0300] The image decoding device can obtain information (image information ) necessary for restoring the current block from the bitstream (S3210). The information necessary for restoring the current block is information regarding prediction of the current block (prediction information), information regarding the residue of the current block (res
[0301] idue information), etc. It can include (dual information), etc. The image decoding apparatus can perform prediction on the current block based on the information on the current block and generate a predicted block ( S3220). The prediction on the current block is an intra prediction, and the specific explanation is the same as that described with reference to FIG. 31 . In FIG. 32, the step of generating a predicted block (S3220) for the current block is illustrated as being performed prior to the steps S3230 to S3250 of generating the residual block of the current block. However, it is not limited thereto, and the predicted block of the current block can also be generated after the residual block of the current block is generated. Alternatively, the residual block of the current block and the predicted block of the current block can also be generated simultaneously. The image decoding apparatus can generate the residual block of the current block by parsing the residual information of the current block from the bit stream (S3 230). The residual block generated in step S3230 can be the corrected quantized residual block shown in FIG. 30. The image decoding apparatus can perform BDPC M prediction on the corrected quantized residual block of FIG. 30 (S3240) and can generate the quantized residual block of FIG. 29. The BDPCM prediction in step S3240 is a procedure for generating the quantized residual block of FIG. 29 from the corrected quantized residual
[0302] block of FIG. 30, so it can correspond to the reverse process of step S3150 performed by the image encoding apparatus. For example, image restoration The residual block of the current block generated in step S3230 can be the corrected quantized residual block shown in FIG. 30. The residual block generated in step S3230 can be the corrected quantized residual block shown in FIG. 30. The residual block generated in step S3230 can be the corrected quantized residual block shown in FIG. 30.
[0303] The image decoding apparatus can perform BDPC M prediction on the corrected quantized residual block of FIG. 30 (S3240) and can generate the quantized residual block of FIG. 29. The BDPCM prediction in step S3240 is a procedure for generating the quantized residual block of FIG. 29 from the corrected quantized residual block of FIG. 30, so it can correspond to the reverse process of step S3150 performed by the image encoding apparatus. For example, image restoration The BDPCM prediction in step S3240 is a procedure for generating the quantized residual block of FIG. 29 from the corrected quantized residual block of FIG. 30, so it can correspond to the reverse process of step S3150 performed by the image encoding apparatus. For example, image restoration The BDPCM prediction in step S3240 is a procedure for generating the quantized residual block of FIG. 29 from the corrected quantized residual block of FIG. 30, so it can correspond to the reverse process of step S3150 performed by the image encoding apparatus. For example, image restoration The quantization device can induce a modified residual block by performing differential encoding on a residual block if the differential encoding mode information (e.g., bdpc m_flag) obtained from the bitstream indicates a differential encoding mode in which differential encoding of the residual coefficients is performed by applying BDPCM. The image decoding device can correct at least one target residual coefficient among the residual coefficients in the residual block by using the target residual coefficient and the predicted residual coefficient. The predicted residual coefficient can be determined based on the prediction direction indicated by the differential encoding direction information (e.g., bdpcm_dir_flag) obtained from the bitstream. The differential encoding direction information can indicate either the vertical direction or the horizontal direction. The image decoding device can assign the value obtained by adding the target residual coefficient and the predicted residual coefficient to the position of the target residual coefficient. Here, the predicted residual coefficient can be the coefficient adjacent immediately before the target residual coefficient in the order according to the prediction direction. in the prediction direction indicated by the differential encoding direction information (e.g., bdpcm_dir_flag) obtained from the bitstream. The differential encoding direction information can indicate either the vertical direction or the horizontal direction. The image decoding device can assign the value obtained by adding the target residual coefficient and the predicted residual coefficient to the position of the target residual coefficient. Here, the predicted residual coefficient can be the coefficient adjacent immediately before the target residual coefficient in the order according to the prediction direction. in the order according to the prediction direction. Here, the predicted residual coefficient can be the coefficient adjacent immediately before the target residual coefficient in the order according to the prediction direction.
[0304] Hereinafter, the BDPCM prediction in step S3240 performed by the image decoding device will be described in more detail. The decoding device can calculate the quantized residual sample Q(r by performing the calculation opposite to that performed by the encoding device beforehand. For example, when the prediction direction of BDPC M is the horizontal direction, the image decoding device can generate a quantized residual block from the modified quantized residual block using Equation 16. i,j ) can be calculated. For example, when the prediction direction of BDPC M is the horizontal direction, the image decoding device can generate a quantized residual block from the modified quantized residual block using Equation 16. quantized residual block from the modified quantized residual block using Equation 16.
[0305]
Number
[0306] As defined in Equation 16, the value of the quantized residual sample at the (i, j) coordinates Q(r i,j ) can be calculated by summing the values of the modified quantized residual samples from the (0, j) coordinates to the (i, j) coordinates.
[0307] Alternatively, the value of the quantized residual sample Q(r ) at the (i, j) coordinates can be calculated using Equation 17 instead of Equation 16. i,j
[0308]
Number
[0309] Equation 17 is the inverse process corresponding to Equation 14. According to Equation 17, the value of the quantized residual sample Q(r ) at the (0, j 0,j ) coordinates is derived as the value r’ of the modified quantized residual sample at the (0, j) coordinates. 0,j For the other (i, j) coordinates, the value of Q(r ) is derived as the sum of the value r’ i,j of the modified quantized residual sample at the (i, j) coordinates and the value Q(r i,j of the quantized residual sample at the (i - 1, j) coordinates. That is, by using the value Q(r i-1,j ) of the quantized residual sample at the (i - 1, j) coordinates as the predicted value and summing the difference value r’ i-1,j i,j ) , the value Q(r i,j ) of the quantized residual sample can be derived. i,j
[0310] When the prediction direction of BDPCM is the vertical direction, the image decoding apparatus uses Equation 18 to generate a quantization residual block from the modified quantization residual block. It is possible.
[0311]
Equation
[0312] As defined in Equation 18, the value of the quantization residual sample at the (i, j) coordinates Q(r i,j ) can be calculated by summing the values of the modified quantization residuals from the (i, 0) coordinates to the (i, j) coordinates. Samples.
[0313] Alternatively, the value of the quantization residual sample Q(r ) at the (i, j) coordinates can be calculated using Equation 19 instead of Equation 18. i,j ) can be calculated.
[0314]
Equation
[0315] Equation 19 is the inverse process corresponding to Equation 15. According to Equation 19, the value of the quantization residual sample Q(r ) at the (i, 0 i,0 ) coordinates is derived as the value r' of the modified quantization residual sample at the (i, 0) coordinates. i,0 For the other (i, j) coordinates, Q(r i,j ) is the value r' i,j of the modified quantization residual sample at the (i, j) coordinates, and the value Q(r i,j-1 ) of the quantization residual sample at the (i, j - 1) coordinates, and is induced as the sum of is derived. That is, the value Q(r of the quantization residual sample at the (i, j-1) coordinates is used as the predicted value, and the difference value r' i,j- 1 ) is added up, so that the quantization residual sample value Q(r i,j ) can be derived. Pull value Q(r i,j ) can be induced.
[0316] When step S3240 is performed by the method described above and a quantization residual block composed of quantization residual samples is generated, the image decoding device performs inverse quantization on the quantization residual block (S3250), and thus the residual block of the current block can be generated. When BDPCM is applied, as described above, the transformation for the current block is skipped, so the inverse transformation for the inverse quantization residual block can be skipped. After that, the image decoding device can restore the current block based on the prediction block generated in step S3220 and the residual block generated in step S3250 (S3260). For example, the image decoding device can add the prediction block (the value of the predicted sample) and the residual block (the value of the residual sample) to restore the current block (the value of the restored sample). For example, the restored sample value can be generated by adding the inverse quantized quantization sample Q (Q(r )) to the intra-block prediction value. Whether BDPCM is applied to the current block or not, the differential coding mode information indicating this is signaled via the bitstream. Since the transformation for the current block is skipped, the inverse transformation for the inverse quantization residual block can be skipped.
[0317] Then, the image decoding device can restore the current block based on the prediction block generated in step S3220 and the residual block generated in step S3250 (S3260). For example, the image decoding device can add the prediction block (the value of the predicted sample) and the residual block (the value of the residual sample) to restore the current block (the value of the restored sample). For example, the restored sample value can be generated by adding the inverse quantized quantization sample Q to the intra-block prediction value. Whether BDPCM is applied to the current block or not, the differential coding mode information indicating this is signaled via the bitstream. For example, the image decoding device can add the prediction block (the value of the predicted sample) and the residual block (the value of the residual sample) to restore the current block (the value of the restored sample). For example, the restored sample value can be generated by adding the inverse quantized quantization sample Q (Q(r )) to the intra-block prediction value. Whether BDPCM is applied to the current block or not, the differential coding mode information indicating this is signaled via the bitstream. to the intra-block prediction value. Whether BDPCM is applied to the current block or not, the differential coding mode information indicating this is signaled via the bitstream. -1 (Q(r i,j )) is added, and thus the restored sample value can be generated. Whether BDPCM is applied to the current block or not, the differential coding mode information indicating this is signaled via the bitstream. For example, the restored sample value can be generated by adding the inverse quantized quantization sample Q to the intra-block prediction value. Whether BDPCM is applied to the current block or not, the differential coding mode information indicating this is signaled via the bitstream. It is also possible. When BDPCM is currently applied to a block, differential coding direction information indicating the prediction direction of BDPCM is signaled via a bitstream. When BDPCM is not currently applied to the current block, the differential coding direction information may not be signaled. When BDPCM is not applied to the current block, the differential coding direction information may not be signaled. There is a possibility that it is not signaled.
[0318] Figures 33 to 35 are diagrams schematically showing the syntax for signaling information related to BDPCM. It is a diagram schematically showing.
[0319] Figure 33 is a diagram showing the syntax of a sequence parameter set according to an embodiment for signaling BDPCM information. In one embodiment, all SPS RBSPs included in at least one access unit (AU) having 0 as the TemporalId or provided via external means can be set to be available before being referenced in the decoding process. And the SPS NAL unit including the SPS RBSP can be set to have the same nuh_layer_id as the nuh_layer_id of the PPS NAL unit that references it. In CVS, all SPS NAL units having a specific sps_seq_parameter_set_id value can be set to have the same content. The seq_parameter_set_rbsp() syntax in Figure 33 discloses the sps_transform_skip_enable_flag described above and the sps_bdpcm_enabled_flag described later. In one embodiment, all SPS RBSPs included in at least one access unit (AU) having 0 as the TemporalId or provided via external means can be set to be available before being referenced in the decoding process. And the SPS NAL unit including the SPS RBSP can be set to have the same nuh_layer_id as the nuh_layer_id of the PPS NAL unit that references it. In CVS, all SPS NAL units having a specific sps_seq_parameter_set_id value can be set to have the same content. The seq_parameter_set_rbsp() syntax in Figure 33 discloses the sps_transform_skip_enable_flag described above and the sps_bdpcm_enabled_flag described later. And the SPS NAL unit including the SPS RBSP can be set to have the same nuh_layer_id as the nuh_layer_id of the PPS NAL unit that references it. It can be set to have the same nuh_layer_id as the nuh_layer_id of the PPS NAL unit that references it. In CVS, all SPS NAL units having a specific sps_seq_parameter_set_id value can be set to have the same content. It can be set to have the same content. The seq_parameter_set_rbsp() syntax in Figure 33 discloses the sps_transform_skip_enable_flag described above and the sps_bdpcm_enabled_flag described later. The seq_parameter_set_rbsp() syntax in Figure 33 discloses the sps_transform_skip_enable_flag described above and the sps_bdpcm_enabled_flag described later. The sps_bdpcm_enabled_flag is disclosed.
[0320] The syntax element sps_bdpcm_enabled_flag can indicate whether the intra_bdpcm_flag is provided in the CU syntax for the intra coding unit. For example, the first value (e.g., 0) of the sps_bdpcm_enabled_flag can indicate that the intra_bdpcm_flag is not provided in the CU syntax for the intra coding unit. The second value (e.g., 1) of the sps_bdpcm_enabled_flag can indicate that the intra_bdpcm_flag can be provided in the CU syntax for the intra coding unit. On the other hand, if the sps_bdpcm_enabled_flag is not provided, the value of the sps_bdpcm_enabled_flag can be set to the first value (e.g., 0). for the intra coding unit, whether the intra_bdpcm_flag is provided in the CU syntax can be indicated. For example, the first value (e.g., 0) of the sps_bdpcm_enabled_fla g can indicate that the intra_bdpcm_flag is not provided in the CU syntax for the intra coding unit. The sps_b dpcm_enabled_flag's second value (e.g., 1) can indicate that for the intra coding unit, the intra_bdpcm_flag can be provided in the CU syntax for the intra coding unit, whether the intra_bdpcm_flag can be provided in the CU syntax can be indicated. On the other hand, when the sps_bdpcm_enabled_flag is provided not, the value of the sps_bdpcm_enabled_flag can be set to the first value (e.g., 0) in the case where the sps_bdpcm_enabled_flag is not provided, the value of the sps_bdpcm_enabled_flag can be set to the first value (e.g., 0) can be set.
[0321] FIG. 34 is a diagram showing an example of the syntax for signaling whether restrictions on BDPCM apply. In one example, certain restriction conditions in the encoding / decoding process can be signaled using the general_constraint_info() syntax. Using the syntax of FIG. 34, the syntax element no_bdpcm_constraint_flag can be signaled to indicate whether the value of the above-described sps_bdpcm_enabled_flag should be set to 0. For example, the first value (e.g., 0) of the no_bdpcm_constraint_flag can indicate that such a restriction does not apply. When the value of the no_bdpcm_constraint_flag is the second value (e.g., 1), sps_bdpc in the encoding / decoding process, certain restriction conditions can be signaled using the general_constraint_info() syntax Using the syntax of FIG. 34, the syntax element no_bdpcm_constraint_flag can be signaled to indicate whether the value of the above-described sps_bd pcm_enabled_flag should be set to 0 can be signaled. For example, the first value (e.g., 0) of the no_bdpcm_constraint_flag can indicate that such a restriction does not apply. no_bdpcm_c onstraint_flag's value is the second value (e.g., 1), sps_bdpc m_enabled_flag should be set to 0 The value of m_enabled_flag can be forced to a first value (e.g., 0).
[0322] FIG. 35 shows a code for signaling information about BDPCM to a coding unit. 35 is a diagram illustrating an example of the ng unit() syntax. Using the ding_unit() syntax, the syntax element intra_bdpc m_flag and intra_bdpcm_dir_flag are signaled. The syntax element intra_bdpcm_flag is located at (x0,y0). It can indicate whether BDPCM is applied to the current luma coding block being placed.
[0323] For example, the first value of intra_bdpcm_flag (e.g., 0) indicates the current luma coding It is possible to indicate that BDPCM does not apply to a block. The second value of _flag (e.g., 1) indicates that BDPCM is applied to the current luma coding block. The intra_bdpcm_flag can be used to indicate whether BDPCM is applied. This indicates whether the transform is skipped and whether the intra-luma prediction mode is used later. This can be indicated by the intra_bdpcm_dir_flag mentioned above. Cut.
[0324] On the other hand, the value of the above-mentioned variable BdpcmFlag[x][y] is x=x0..x0+cb For Width-1 and y=y0..y0+cbHeight-1, intra_b Can be set to the value of dpcm_flag.
[0325] The syntax element intra_bdpcm_dir_flag specifies the prediction method of BDPCM. can indicate a direction. For example, the first value of intra_bdpcm_dir_flag ( for example, 0) can indicate that the BDPCM prediction direction is horizontal. Intr The second value of a_bdpcm_dir_flag (for example, 1) can indicate that the BDPCM prediction direction is vertical direction.
[0326] On the other hand, the value of the variable BdpcmDir[x][y] can be set to the value of intra_bdpcm_ dir_flag for x = x0..x0 + cbWidth - 1 and y = y0..y0 + cbHeight - 1.
[0327] Intra Prediction for Chroma Blocks
[0328] When intra prediction is performed on the current block, prediction can be performed on the luma component block (luma block) of the current block and on the chroma component block (chroma block), and in this case, the intra prediction mode for the chroma block can be set separately from the intra prediction mode for the luma block .
[0329] For example, the intra prediction mode for the chroma block can be indicated based on the intra chroma prediction mode information, and the intra chroma prediction mode information can be signaled in the form of the intra _chroma_pred_mode syntax element. As an example, the intra chroma prediction mode information is the Planar mode, DC mode, vertical mode, horizontal mode, D M (Derived Mode), CCLM (Cross-component lin It is possible to point to any one of the (ear model) modes. Here, Pla nar mode is the 0th intra prediction mode, the DC mode is the 1st intra prediction mode, and the vertical mode described above is the 26th intra prediction mode, and the horizontal mode is the 10th intra prediction mode can be shown respectively. DM can also be called direct mode . CCLM can also be called LM (linear model). CCLM can include any one of L_CCLM, T_CCLM, and LT_CCLM .
[0330] On the other hand, DM and CCLM are dependent intra prediction modes that predict chroma blocks using luma block information. The DM is an intra prediction mode for the same intra prediction mode as that for the luma component is applied as the intra prediction mode for the chroma component and can indicate the mode. Also, the CCLM is an intra prediction mode in which, after subsampling the restored samples of the luma block in the process of generating the prediction block for the chroma block, the samples derived by applying the CCLM parameters α and β to the subsampled samples are used as the prediction samples of the chroma block and can be shown.
[0331] Overview of the CCLM (Cross - component linear model) Mode Summary
[0332] As described above, the CCLM mode can be applied to the chroma block. The CCLM mode is an intra prediction mode using the correlation between the luma block and the chroma block corresponding to the luma block, and the peripheral samples of the luma block and the chroma It is performed by deriving a linear model based on the surrounding samples of the luma block. And, based on the derived linear model and the restored samples of the luma block, the predicted samples of the chroma block can be derived. Specifically, when the CCLM mode is applied to the current chroma block, parameters for the linear model can be derived based on the surrounding samples used for the intra prediction of the current chroma block and the surrounding samples used for the intra prediction of the current luma block. For example, the linear model for CCLM can be expressed based on the following formula.
[0333] Here, pred (i,j) can indicate the predicted sample at the (i,j) coordinates of the current chroma block within the current CU. rec ’(i,j) can indicate the restored sample at the (i,j) coordinates of the current luma block within the CU. For example, the rec ’(i,j) can indicate the down-sampled restored sample of the current luma block. The linear model coefficients α and β can be signaled or can be derived from the surrounding samples.
[0334]
Equation
[0335] c (i,j) L L pled
[0336] Joint Coding of Residuals (Joint CbCr)
[0337] In the encoding / decoding process according to an embodiment, the chroma residuals are both encoded / decoded. It can be done. This can be called residual joint coding, and also joint CbC can be called r(Joint CbCr). Whether the application ( activation) of the joint coding mode of CbCr is signaled by the joint coding mode signaling flag tu_joint_cbcr_residual_flag at the transform unit level. And the selected coding mode can be derived by the chroma CBF. The flag tu_joint_cbcr_residual_fla g can exist when the value of at least one chroma CBF for the transform unit is 1. For the normal chroma residual coding mode, the chroma QP offset value indicating the difference between the normal chroma QP offset value signaled and the chroma QP offset value for the CbCr joint coding mode can be signaled via the PPS or slice header. Such a QP offset value can be used to derive the chroma QP value for the block using the joint chroma residual coding mode. When mode 2 in the following table is activated for the transform unit in the corresponding joint chroma coding mode, the chroma QP offset can be added to the target luma-derived chroma QP (applied luma-derived chroma QP) during quantization and decoding of the transform unit. For other modes such as modes 1 and 3 in the following table, the chroma QP can be derived in the same way as obtained for a normal C b or Cr block. Such a transform
[0338] When mode 2 in the following table is activated for the transform unit in the corresponding joint chroma coding mode, the chroma QP offset can be added to the target luma-derived chroma QP (applied luma-derived chroma QP) during quantization and decoding of the transform unit. When mode 2 in the following table is activated for the transform unit in the corresponding joint chroma coding mode, the chroma QP offset can be added to the target luma-derived chroma QP (applied luma-derived chroma QP) during quantization and decoding of the transform unit. When mode 2 in the following table is activated for the transform unit in the corresponding joint chroma coding mode, the chroma QP offset can be added to the target luma-derived chroma QP (applied luma-derived chroma QP) during quantization and decoding of the transform unit. ma QP) during quantization and decoding of the transform unit.
[0339] For other modes such as modes 1 and 3 in the following table, the chroma QP can be derived in the same way as obtained for a normal C b or Cr block. Such a transform The restoration process of chroma residuals (resCb and resCr) from a block can be selected by the following table. When this mode is activated, one single combined chroma residual block (resJointC[x][y] in the following table) is signaled , and the residual block resCb for Cb and the residual block resCr for Cr can be derived considering information such as the coded value CSign described in tu_cbf_cb, tu_cbf_cr, and the slice header.
[0340] In the encoding device, the combined chroma component can be derived as follows. Depending on the combined coding mode, resJointC{1,2} can be generated in the following order. When the mode is 2 (single residual with reconstruction C b = C, Cr = CSign*C), the combined residual can be determined according to the following formula.
[0341] [Equation 21] resJointC[x][y] = (resCb[x][y] + CSign*resC r[x][y]) / 2.
[0342] Otherwise, when the mode is 1 (single residual with reconstruction Cb = C, Cr = (CSign*C) / 2), the combined residual can be determined according to the following formula.
[0343] [Equation 22] resJointC[x][y] = (4*resCb[x][y] + 2*CSign* resCr[x][y]) / 5.
[0344] Instead, when the mode is 3 (single residual with reconstruction Cr = C, Cb = (CSign * C) / 2), the common residue dual can be determined according to the following formula.
[0345] [Equation 23] resJointC[x][y]=(4 * resCr[x][y]+2 * CSign * resCb[x][y]) / 5.
[0346]
Table 2
[0347] The above table shows the restoration of the chroma residual. CSign indicates the sign value +1 or -1 specified in the slice header. resJointC[][] indicates the transmitted residual. The mode in the above table indicates TuCResMode described later. The three common chroma coding modes in the above table can only be supported for I slices. For P and B slices, only mode 2 can be supported. Therefore, for P and B slices, the syntax element tu_joint_cbcr_residual_flag can only be provided when the values of the two chroma cbf (e.g., tu_cbf_cb and tu_cbf_cr) are both 1 . On the other hand, the conversion depth can be removed in the context modeling of tu_cbf_luma and tu_cbf_cb.
[0348] Example 1: QP Update Scheme Using ACT Qp_offset
[0349] As described above, the update of QP for applying ACT can be performed. As described The update of QP has various problems. For example, when using the method described above, different ACT Qp offsets cannot be set for each individual color component. Furthermore, the induced qP value can also have a negative value. Therefore, in the following embodiments, a method of applying clipping to the qP value induced based on the value of the ACT QP offset of the color component value will be described. For each individual color component, different ACT Qp offsets cannot be set. Furthermore, the induced qP value can also have a negative value. Therefore, in the following embodiments, a method of applying clipping to the qP value induced based on the value of the ACT QP offset of the color component value will be described. For each individual color component, different ACT Qp offsets cannot be set. Furthermore, the induced qP value can also have a negative value. Therefore, in the following embodiments, a method of applying clipping to the qP value induced based on the value of the ACT QP offset of the color component value will be described.
[0350] In one embodiment, the quantization parameter qP can be induced as follows.
[0351] First, when the value of cIdx is 0, qP and the ACT Qp offset can be induced as follows according to the following formula. First, when the value of cIdx is 0, qP and the ACT Qp offset can be induced as follows according to the following formula.
[0352] [Equation 24] qP = Qp’Y ActQpOffset = 5
[0353] Otherwise, when the value of TuCResMode[xTbY][yTbY] is 2 , qP and the ACT Qp offset can be induced as follows according to the following formula.
[0354] [Equation 25] qP = Qp’ CbCr ActQpOffset = 5
[0355] Otherwise, when the value of cIdx is 1, qP and the ACT Qp offset can be induced as follows according to the following formula. Otherwise, when the value of cIdx is 1, qP and the ACT Qp offset can be induced as follows according to the following formula.
[0356] [Equation 26] qP = Qp’ Cb ActQpOffset = 3
[0357] The quantization parameter qP can be updated as follows.
[0358] The value of transform_skip_flag[xTbY][yTbY][cIdx] If it is 0, qP can be derived as shown in the following equation.
[0359] [Equation 27] qP = Max(0, qP - (cu_act_enabled_flag[xTbY] yTbY]ActQpOffset:0))
[0360] Otherwise, if the value of transform_skip_flag[xTbY][yTbY] cIdx] is 1, qP can be derived as shown in the following equation.
[0361] [Equation 28] qP = Max(0, Max(QpPrimeTsMin, qP) - (cu_act_e nabled_flag[xTbY][yTbY]? ActQpOffset:0))
[0362] In other embodiments, if the value of transform_skip_flag[xTbY][yTb Y][cIdx] is 1, qP can be clipped using the value of QpPri meTsMin instead of 0 as shown in the following equation.
[0363] [Equation 29] qP = Max(QpPrimeTsMin, qP - (cu_act_enabled_ flag[xTbY][yTbY]? ActQpOffset:0)
[0364] On the other hand, in another embodiment, the quantization parameter qP can be derived as follows.
[0365] First, if the value of cIdx is 0, qP and the ACT Qp offset can be derived as follows. as follows.
[0366] [Equation 30] qP = Qp’ Y ActQpOffset = 5
[0367] Otherwise, when the value of TuCResMode[xTbY][yTbY] is 2 , qP and the ACT Qp offset can be derived as follows in the following equation.
[0368] [Equation 31] qP = Qp’ CbCr ActQpOffset = 5
[0369] Otherwise, when the value of cIdx is 1, qP and the ACT Qp offset can be derived as follows in the following equation.
[0370] [Equation 32] qP = Qp’ Cb ActQpOffset = 5
[0371] Otherwise, when the value of cIdx is 2, qP and the ACT Qp offset can be derived as follows in the following equation.
[0372] [Equation 33] qP = Qp’ Cr ActQpOffset = 3
[0373] The quantization parameter qP can be updated as follows.
[0374] The value of transform_skip_flag[xTbY][yTbY][cIdx] is 0, qP can be derived as follows in the following equation.
[0375] [Equation 34] qP = Max(0, qP - (cu_act_enabled_flag[xTbY] yTbY]ActQpOffset:0))
[0376] Instead, when the value of transform_skip_flag[xTbY][yTbY] cIdx] is 1, qP can be derived as follows in the following formula.
[0377] [Formula 35] qP = Max(0, Max(QpPrimeTsMin, qP) - (cu_act_e nabled_flag[xTbY][yTbY]? ActQpOffset:0))
[0378] In other embodiments, when the value of transform_skip_flag[xTbY][yTb Y][cIdx] is 1, qP can be clipped using the value of QpP rimeTsMin instead of 0 as follows in the following formula.
[0379] [Formula 36] qP = Max(QpPrimeTsMin, qP - (cu_act_enabled_ flag[xTbY][yTbY]? ActQpOffset:0))
[0380] On the other hand, in another embodiment, the quantization parameter qP can be derived as follows.
[0381] First, when the value of cIdx is 0, qP and the ACT Qp offset can be derived as follows in the following formula. ollows.
[0382] [Formula 37] qP = Qp′ Y ActQpOffset = -5
[0383] Otherwise, when the value of TuCResMode[xTbY][yTbY] is 2 , qP and ACT Qp offset can be derived as follows:
[0384] [Equation 38] qP = Qp′ CbCr ActQpOffset = -5
[0385] Otherwise, when the value of cIdx is 1, qP and ACT Qp offset can be derived as follows: as shown in the following equation:
[0386] [Equation 39] qP = Qp′ Cb ActQpOffset = -5
[0387] Otherwise, when the value of cIdx is 2, qP and ACT Qp offset can be derived as follows: as shown in the following equation:
[0388] [Equation 40] qP = Qp′ Cr ActQpOffset = -3
[0389] The quantization parameter qP can be updated as follows:
[0390] When the value of transform_skip_flag[xTbY][yTbY][cIdx] is 0, qP can be derived as follows:
[0391] [Equation 41] qP = Max(0, qP + (cu_act_enabled_flag[xTbY] yTbY]? ActQpOffset : 0))
[0392] Otherwise, when transform_skip_flag[xTbY][yTbY] When the value of [[cIdx]] is 1, qP can be derived as shown in the following equation.
[0393] [Equation 42] qP = Max(0, Max(QpPrimeTsMin, qP) + (cu_act_e nabled_flag[xTbY][yTbY]? ActQpOffset : 0))
[0394] On the other hand, in another embodiment, when the value of transform_skip_flag[xTbY][ yTbY][cIdx] is 1, qP can be clipped using the value of QpPrimeTsMin instead of 0, as shown in the following equation.
[0395] [Equation 43] qP = Max(QpPrimeTsMin, qP + (cu_act_enabled_ flag[xTbY][yTbY]? ActQpOffset : 0))
[0396] In the foregoing description, Y, Cb, and Cr can represent three color components. For example, in the ACT transformation, Y can correspond to C0. Cb can correspond to C1 or Cg and Cr can correspond to C2 or Co.
[0397] Also, the values -5, -5, -3 of ACTQpOffset for the three color components may be replaced with other values or other variables.
[0398] Example 2: Signaling of QP Offset Adjustment for ACT
[0399] In the foregoing embodiments, the ACT QP offset adjustment is fixed at -5, -5, and -3 for the Y, Cg, and Co components. In this embodiment, the ACT QP adjustment offset To provide even more flexibility in the tone, the ACT QP offset is signaled as follows. The ACT QP offset can be signaled as a parameter within the PPS .
[0400] In one embodiment, the qp_offset can be signaled according to the syntax table of FIG. 36 . The syntax elements for this are as follows
[0401] The syntax element pps_act_qp_offsets_present_flag can indicate whether syntax elements related to the ACT QP offset are present within the PPS . For example, pps_act_qp_offsets_present_f lag can indicate whether the syntax elements pps_act_y_qp_offset, pps _act_cb_qp_offset and pps_act_cr_qp_offset are signaled as part of the PPS
[0402] For example, the first value of pps_act_qp_offsets_present_flag (e.g., 0) can indicate that pps_act_y_qp_offset, pps_act_cb_q p_offset and pps_act_cr_qp_offset are not signaled via the PPS syntax table
[0403] The second value of pps_act_qp_offsets_present_flag (e.g., 1) can indicate that pps_act_y_qp_offset, pps_act_cb_qp_of fset and pps_act_cr_qp_offset are signaled via the PPS syntax table can be indicated to be signaled via.
[0404] If the pps_act_qp_offsets_present_flag is not provided from the bitstream the pps_act_qp_offsets_present_flag can be derived to a first value (e.g., 0). For example, if a flag (e.g., sps_act_enabled_flag signaled in SPS) indicating that ACT is applicable has a first value (e.g., 0) indicating that ACT is not applicable, the pps_act_qp_offsets_present_flag can be forced to have the first value (e.g., 0).
[0405] The syntax elements pps_act_y_qp_offset_plus5, pps_act_cb_qp_offset_plus5, and pps_act_cr_qp_offset_plus3 can be used to determine the offsets to be applied to the quantization parameter values qP for each of the luma, Cb, and Cr components when the value of the syntax element cu_act_enabled_flag is a second value (e.g., 1) indicating that ACT is applicable to the current coding unit. If the values of pps_act_y_qp_offset_plus5, pps_act_cb_qp_offset_plus5, and pps_act_cr_qp_offset_plus3 are not present in the bitstream, each value can be set to 0.
[0406] By the syntax element, the value of the variable PpsActQpOffsetY can be determined as pps_act_y_qp_offset_plus5 - 5. The variable Pp The value of sActQpOffsetCb can be determined as pps_act_cb_qp_offset_p lus5 - 5. And the value of the variable PpsActQpOffsetC r can be determined as pps_act_cb_qp_offset_plus3 - 3 and so on.
[0407] Here, since ACT is not an orthonormal transformation ), 5, 5, and 3 can be applied as the constant offset values to be subtracted above. In one embodiment, for bitstream consistency, the values of PpsActQpOffsetY, PpsActQpOffsetCb, and PpsActQpOffsetCr can have values from - 12 to 12. And according to the embodiment, the Qp offset value can be replaced and used with other constant values other than 5, 5, and 3.
[0408] In another embodiment, QP can be adjusted using a more flexible ACT_QP offset . In the following embodiments, an example where the ACT QP offset is signaled through the bitstream will be described. Thereby, the ACT QP offset can have a wider offset range . Therefore, since the QP updated using the ACT QP offset is more likely to be outside the available range, it is necessary to perform clipping on the upper and lower limits for the updated QP (more detailed embodiments are disclosed in Embodiments 6 and 7 described later ).). ).
[0409] The variables PpsActQpOffsetY, PpsActQ pOffsetCb, PpsActQpOffsetCr, and PpsActQpOff setCbCr can be a value derived using the ACT QP offset signaled via the bitstream, or a preset constant. For bitstream compliance PpsActQpOffsetY, PpsActQpOffsetCb, P psActQpOffsetCr, and PpsActQpOffsetCbCr can have values from -1 2 to +12.
[0410] If the value of the QP offset is signaled without using a fixed value and the value has a value from -12 to 12, in addition to clipping the lower limit value of the derived QP value to avoid a negative QP, it is also necessary to clip the upper limit value of the derived QP value.
[0411] To ensure that the value of qP does not have a negative value, the minimum value of qP can be forced to 0. Alternatively, the minimum value of qP can be set to a value determined by the signaled syntax element. For example, to signal the minimum value of qP when the transform skip mode is applied, the syntax element QpPrimeTsMin indicating the value of qP applied when the transform skip mode is applied can be used. The maximum value of qP can be limited to the maximum available value of qP (e.g., 63) or the maximum available qP value determined by the signaled syntax element.
[0412] In one embodiment according to the above, the quantization parameter qP can be derived as follows. First , when the value of cIdx is 0, qP and the ACT Qp offset are derived as in the following formula Can be derived.
[0413] [Equation 44] qP = Qp′ Y ActQpOffset = PpsActQpOffsetY
[0414] Otherwise, when the value of TuCResMode[xTbY][yTbY] is 2 , qP and the ACT Qp offset can be derived as follows in the following equation.
[0415] [Equation 45] qP = Qp′ CbCr ActQpOffset = PpsActQpOffsetCbCr
[0416] Otherwise, when the value of cIdx is 1, qP and the ACT Qp offset are as follows can be derived as shown in the following equation.
[0417] [Equation 46] qP = Qp′ Cb ActQpOffset = PpsActQpOffsetCb
[0418] Otherwise, when the value of cIdx is 2, qP and the ACT Qp offset are as follows can be derived as shown in the following equation.
[0419] [Equation 47] qP = Qp′ Cr ActQpOffset = PpsActQpOffsetCr
[0420] In one embodiment, the quantization parameter qP can be updated as follows. The value of transform_skip_flag[xTbY][yTbY][cIdx] is 0, qP can be derived as follows in the following equation.
[0421] [Equation 48] qP = Clip3(0, 63, qP - (cu_act_enabled_flag[x TbY][yTbY]? ActQpOffset : 0))
[0422] Otherwise, when the value of transform_skip_flag[xTbY][yTbY] cIdx] is 1, qP can be derived as follows in the following equation.
[0423] [Equation 49] qP = Clip3(0, 63, Max(QpPrimeTsMin, qP) - (cu_ act_enabled_flag[xTbY][yTbY]? ActQpOffset : 0)
[0424] In other embodiments, when the value of transform_skip_flag[xTbY][yTb Y][cIdx] is 1, the minimum value of qP can be clipped using the value of QpPrimeTsMin instead of 0 as follows in the following equation.
[0425] [Equation 50] The quantization parameter qP can be updated as follows.
[0426] When the value of transform_skip_flag[xTbY][yTbY][cIdx] is 0, qP can be derived as follows in the following equation.
[0427] qP = Clip3(0, 63, qP - (cu_act_enabled_flag[x TbY][yTbY]? ActQpOffset : 0))
[0428] Otherwise, when transform_skip_flag[xTbY][yTbY] When the value of [[cIdx]] is 1, qP can be derived as follows in the following equation.
[0429] qP = Clip3(QpPrimeTsMin, 63, qP - cu_act_enab led_flag[xTbY][yTbY]? ActQpOffset:0)
[0430] In another embodiment, the quantization parameter qP can be updated as follows.
[0431] The value of transform_skip_flag[xTbY][yTbY][cIdx] When it is 0, qP can be derived as follows in the following equation.
[0432] [Equation 51] qP = Clip3(0, 63 + QpBdOffset, qP + (cu_act_ena bled_flag[xTbY][yTbY]? ActQpOffset:0))
[0433] Otherwise, when the value of transform_skip_flag[xTbY][yTbY][ cIdx] is 1, qP can be derived as follows in the following equation.
[0434] [Equation 52] qP = Clip3(0, 63 + QpBdOffset, Max(QpPrimeTsM in, qP) + (cu_act_enabled_flag[xTbY][yTbY]? ActQpOffset:0)
[0435] In another embodiment, when the value of transform_skip_flag[xTbY][yTb Y][cIdx] is 1, the minimum value of qP can be clipped using the value of QpPrimeTsMin instead of 0 as follows in the following equation. to use the value of QpPrimeTsMin for clipping instead of 0.
[0436] [Equation 53] The quantization parameter qP can be updated as follows. The value of transform_skip_flag[xTbY][yTbY][cIdx] If it is 0, qP can be derived as in the following equation. qP = Clip3(0, 63 + QpBdOffset, qP + (cu_act_ena bled_flag[xTbY][yTbY]? ActQpOffset : 0))
[0437] Otherwise, if the value of transform_skip_flag[xTbY][yTbY] cIdx] is 1, qP can be derived as in the following equation.
[0438] qP = Clip3(QpPrimeTsMin, 63 + QpBdOffset, qP + cu_act_enabled_flag[xTbY][yTbY]? ActQpOff set : 0)
[0439] Example 3: Scheme Allowing ACT When Chroma BDPCM is Performed
[0440] In one embodiment, when BDPCM is applied to a luma component block, ACT can be applied to encode / decode the block. However, when BDPCM is applied to a chroma component block, ACT can be restricted from being applied to encode / decode the block. , it can be applied to encode / decode the block. However, when BDPCM is applied to a chroma component block block, ACT can be restricted from being applied to encode / decode the block. for that purpose.
[0441] On the other hand, even when BDPCM is applied to a chroma component block, by applying ACT to the block the encoding performance can be improved. FIG. 37 shows the syntax for applying ACT even when BDPCM is applied to a chroma component block block to apply ACT as well. An embodiment of the S structure is shown. As shown in FIG. 37, depending on the value of the cu_act_enabled_flag indicating whether ACT is applied to the current coding unit or not, by removing the condition for obtaining the BDPCM syntax element for the chroma component, regardless of whether ACT is applied to the chroma component block, the BDPCM syntax element for it can be obtained, and thus BDCPM encoding can be performed. Whether or not, the condition for obtaining the BDPCM syntax element for the chroma component is removed, so that regardless of whether ACT is applied to the chroma component block, the BDPCM syntax element for it can be obtained, and thus BDCPM encoding can be performed.
[0442] Example 4: Scheme Applying ACT Even When Encoded / Decoded by CCLM
[0443] Both CCLM and ACT aim to remove unnecessary duplication between components. Although there is a partially overlapping application between CCLM and ACT, even after applying all of them, the duplication between components is not completely removed. Therefore, by applying CCLM and ACT together, more duplication between components can be removed. CCLM and ACT both aim to remove unnecessary duplication between components. There is a partially overlapping application between CCLM and ACT, but even after applying all of them, the duplication between components is not completely removed. Therefore, by applying CCLM and ACT together, more duplication between components can be removed. There is a partially overlapping application between CCLM and ACT, but even after applying all of them, the duplication between components is not completely removed. Therefore, by applying CCLM and ACT together, more duplication between components can be removed. Therefore, by applying CCLM and ACT together, more duplication between components can be removed.
[0444] The following embodiments will describe embodiments of applying CCLM and ACT together. The decoding device can apply CCLM first and then ACT when performing decoding. When applying ACT to both BDPCM and CCLM for the chroma component, the syntax table for signaling this can be modified as shown in FIG. 38. Thus, as shown in the syntax table of FIG. 38, among the restrictions for signaling the syntax elements related to intra_bdpcm_chroma and cclm, the if (!cu_act_enabled_flag) for signaling the syntax element according to whether ACT is applied or not can be removed from the syntax table. When applying ACT to both BDPCM and CCLM for the chroma component, the syntax table for signaling this can be modified as shown in FIG. 38. Thus, as shown in the syntax table of FIG. 38, among the restrictions for signaling the syntax elements related to intra_bdpcm_chroma and cclm, the if (!cu_act_enabled_flag) for signaling the syntax element according to whether ACT is applied or not can be removed from the syntax table. When applying ACT to both BDPCM and CCLM for the chroma component, the syntax table for signaling this can be modified as shown in FIG. 38. Thus, as shown in the syntax table of FIG. 38, among the restrictions for signaling the syntax elements related to intra_bdpcm_chroma and cclm, the if (!cu_act_enabled_flag) for signaling the syntax element according to whether ACT is applied or not can be removed from the syntax table. As shown in the syntax table of FIG. 38, among the restrictions for signaling the syntax elements related to intra_bdpcm_chroma and cclm, the if (!cu_act_enabled_flag) for signaling the syntax element according to whether ACT is applied or not can be removed from the syntax table. cclm, the if (!cu_act_enabled_flag) for signaling the syntax element according to whether ACT is applied or not can be removed from the syntax table. is applied or not can be removed from the syntax table. u_act_enabled_flag) for signaling the syntax element according to whether ACT is applied or not can be removed from the syntax table.
[0445] Example 5: Flexible ACT Qp Application Scheme Including Joint CbCr
[0446] When the ACT mode is applied, the predicted residual can be converted from one color space (e.g., G BR or YCbCr) to the YCgCo color space. Then, the residual of the conversion unit can be encoded in the YCgCo color space. As an example of the ACT core conversion ( conversion kernel) used for color space conversion, the following conversion kernel described above can be used.
[0447]
Number
[0448]
Number
[0449] As described in the above formula, the conversions of C0’, C1’ and C2’ (where C0’ = Y , C1’ = Cg, C2’ = Co) are not normalized. For example, the L2 norm (L2no rm) does not have a value of 1. For example, the L2 norm of the conversion for individual components is about 0.6 for C0’ and C 1’, and about 0.7 for C2’. Here, the L2 norm is a value obtained as the square root of the sum of the squares of all coefficients. For example, C 0’ can be calculated as 2 / 4*C0 + 1 / 4*C1 + 1 / 4*C2. Therefore, the norm of C0’ can be calculated as the square root of (2 / 4*2 / 4 + 1 / 4*1 / 4 + 1 / 4*1 / 4). Thus, this can be calculated as the square root of 6 / 16 and can be calculated to have a value of about 0.6.
[0450] When the non-normalized conversion is applied, the dynamic range of individual components becomes irregular. And This results in a degradation of the encoding performance in a normal video compression system.
[0451] To compensate for the dynamic range of the residual signal, QP adjustment can be performed by transmitting QP offset values for compensating the dynamic range change for individual transform components. For example such an embodiment is not only a general QP adjustment control method for ACT transform, but also applicable to joint CbCr. For the joint CbCr, it can also be applied.
[0452] Since the individual color components are not encoded independently but together, the method as described in Embodiment 3 for joint CbCr causes a dynamic range change between the individual color components. brings about a change in the dynamic range.
[0453] In an encoding and decoding method according to an embodiment, the ACT QP offset adjustment can be fixed at -5, which can be similarly applied to Y, Cg, and Co. This can be applied similarly to Y, Cg, and Co.
[0454] In one embodiment, to provide flexible Qp control for individual components and joint CbCr, different ACT Q p offsets for Y, Cb, Cr, and / or joint CbCr can be allowed to be used. The ACT Qp offset value can be determined based on whether it is a component index and / or joint CbCr, and / or whether it is in joint CbCr mode. and / or joint CbCr, and / or whether it is in joint CbCr mode. It can be determined based on whether it is a component index and / or joint CbCr, and / or whether it is in joint CbCr mode.
[0455] To denote the ACT Qp offset, ppsActQpOffsetY, pps ActQpOffsetCb, and ppsActQpOffsetCr can be used. And for the joint where both the Cb component and the Cr component have a CBF with a value other than 0 both the Cb component and the Cr component have a CBF with a value other than 0 for the joint For the ACT QP offset of CbCr mode 2, ppsActQpOffsetC bCr can be used. These values (e.g., ppsActQpOffsetY, ppsA ctQpOffsetCb, ppsActQpOffsetCr, ppsActQpOf fsetCbCr) are determined in advance to a predetermined value or can be signaled via the bitstream. The ACT QP offset of the joint CbCr mode can be set to other methods or other values.
[0456] In one embodiment, the ACT Qp offsets for Y, Cb, and Cr can be -5, -5, - 3, and -4 can be used for joint CbCr.
[0457] In another embodiment, the ACT Qp offsets for Y, Cb, and Cr can be -5, -4 , -3, and -3 can be used for the joint CbCr mode where the value of tu_cbf_cb is not 0.
[0458] In another embodiment, the ACT QP offset of joint CbCr mode 2 can have its own offset value for it. In the case of other joint CbCr modes , the ACT QP offset can use the offset of the corresponding component. For example, the quantization parameter qP can be determined as follows. First, when the value of cIdx is 0, qP and the ACT Qp offset can be derived as in the following equations.
[0459] [Equation 56] qP = Qp′ Y ActQpOffset = ppsActQpOffsetY
[0460] Otherwise, when the value of TuCResMode[xTbY][yTbY] is 2 , qP and ACT Qp offset can be derived as follows:
[0461] [Equation 57] qP = Qp′ CbCr ActQpOffset = ppsActQpOffsetCbCr
[0462] Otherwise, when the value of cIdx is 1, qP and ACT Qp offset can be derived as follows Equation:
[0463] [Equation 58] qP = Qp′ Cb ActQpOffset = ppsActQpOffsetCb
[0464] Otherwise, when the value of cIdx is 2, qP and ACT Qp offset can be derived as follows Equation:
[0465] [Equation 59] qP = Qp′ Cr ActQpOffset = ppsActQpOffsetCr
[0466] In one embodiment, the quantization parameter qP can be updated as follows
[0467] The value of transform_skip_flag[xTbY][yTbY][cIdx] is 0, qP can be derived as follows
[0468] [Equation 60] qP = Clip3(0, 63 + QpBdOffset, qP+(cu_act_ena bled_flag[xTbY][yTbY]? ActQpOffset:0))
[0469] Instead, when the value of transform_skip_flag[xTbY][yTbY] cIdx] is 1, qP can be derived as shown in the following equation.
[0470] [Equation 61] qP = Clip3(QpPrimeTsMin, 63 + QpBdOffset, qP + cu_act_enabled_flag[xTbY][yTbY]? ActQpOff set:0)
[0471] In another embodiment, for the joint CbCr mode where tu_cbf_cb!= 0 (for example, when it corresponds to modes 1 and 2), ppsActQpOffsetCb can be used to determine the offset for joint CbCr. Alternatively, for the joint CbCr mode where tu_c bf_cb == 0 (for example, when it corresponds to mode 3), ppsActQpOffsetCr can be used to determine the offset for joint CbCr. For example, the above-described embodiment can be modified and applied as follows. The quantization parameter qP can be updated as follows. First, when the value of cIdx is 0 , qP and the ACT Qp offset can be derived as shown in the following equation.
[0472]
[0473] [Equation 62] qP = Qp′ Y
[0474] ActQpOffset = ppsActQpOffsetY Otherwise, when the value of TuCResMode[xTbY][yTbY] is 2 , qP can be derived as shown in the following equation.
[0475] [Equation 63] qP = Qp′ CbCr
[0476] Otherwise, when the value of cIdx is 1, qP and the ACT Qp offset can be derived as follows as shown in the following equation.
[0477] [Equation 64] qP = Qp′ Cb ActQpOffset = ppsActQpOffsetCb
[0478] Otherwise, when the value of cIdx is 2, qP and the ACT Qp offset can be derived as follows as shown in the following equation.
[0479] [Equation 65] qP = Qp′ Cr ActQpOffset = ppsActQpOffsetCr
[0480] For the ACT Qp offset for the joint CbCr mode, if the value of cIdx is not 0 and the value of TuCResMode[xTbY][yTbY] is not 0, it can be determined according to the following pseudo code.
[0481] [Equation 66] if(TuCResMode[xTbY][yTbY] is equal to 1 or 2) ActQpOffset = ppsActQpOffsetCb; else ActQpOffset = ppsActQpOffsetCr;
[0482] In one embodiment, the quantization parameter qP can be updated as follows. transfor When the value of m_skip_flag[xTbY][yTbY][cIdx] is 0, q P can be derived as follows.
[0483] [Equation 67] qP = Clip3(0, 63 + QpBdOffset, qP + (cu_act_ena bled_flag[xTbY][yTbY]? ActQpOffset : 0))
[0484] Otherwise, when the value of transform_skip_flag[xTbY][yTbY] cIdx] is 1, qP can be derived as follows.
[0485] [Equation 68] qP = Clip3(QpPrimeTsMin, 63 + QpBdOffset, qP + cu_act_enabled_flag[xTbY][yTbY]? ActQpOff set : 0)
[0486] In another embodiment, regardless of the joint CbCr mode, when the component index is Y then ppsActQpOffsetY is used, and when the component index is Cb then ppsActQpOffsetCb is used, and when the component index is Cr then qP can be derived using ppsActQpOffsetCr. For example, the quantization parameter qP can be derived as follows.
[0487] First, when the value of cIdx is 0, qP and the ACT Qp offset can be derived as follows. as follows.
[0488] [Equation 69] qP = Qp′ Y ActQpOffset = ppsActQpOffsetY
[0489] Otherwise, when the value of TuCResMode[xTbY][yTbY] is 2 , qP and ACT Qp offset can be derived as follows in the following formula.
[0490] [Equation 70] qP = Qp′ CbCr ActQpOffset = (cIdx == 1)? ppsActQpOffsetCb : ppsActQpOffsetCr
[0491] Otherwise, when the value of cIdx is 1, qP and ACT Qp offset can be derived as follows in the following formula.
[0492] [Equation 71] qP = Qp′ Cb ActQpOffset = ppsActQpOffsetCb
[0493] Otherwise, when the value of cIdx is 2, qP and ACT Qp offset can be derived as follows in the following formula.
[0494] [Equation 72] qP = Qp′ Cr ActQpOffset = ppsActQpOffsetCr
[0495] The quantization parameter qP can be updated as follows.
[0496] The value of transform_skip_flag[xTbY][yTbY][cIdx] is 0, qP can be derived as follows in the following formula.
[0497] [Equation 73] qP = Clip3(0, 63 + QpBdOffset, qP+(cu_act_ena bled_flag[xTbY][yTbY]?ActQpOffset:0))
[0498] Instead, when the value of transform_skip_flag[xTbY][yTbY] cIdx] is 1, qP can be derived as follows in the following formula.
[0499] [Equation 74] qP = Clip3(QpPrimeTsMin, 63 + QpBdOffset, qP + cu_act_enabled_flag[xTbY][yTbY]?ActQpOff set:
[0500] Example 6: Scheme Signaling ACT Qp Offset Including Joint CbCr
[0501] Next, an example in which the ACT QP offset is signaled via the bitstream to provide more flexibility is described. The ACT QP offset can be signaled via a header set in the SPS, PPS, picture header, slice header, or other types. The ACT Qp offset for joint CbCr can be signaled separately, or can be derived from the ACT QP offsets for Y, Cb, and Cr.
[0502] Without loss of generality, an example of a syntax table for signaling the ACT Qp offset in the PPS is shown in FIG. 39. As in the example of FIG. 39, one ACT Q p offset can be signaled for joint CbCr. The syntax elements described in the syntax table of FIG. 39 are described.
[0503] Syntax element pps_act_qp_offsets_present_flag can indicate whether a syntax element regarding the ACT QP offset exists within the PPS. For example, pps_act_qp_offsets_present_f lag can indicate whether the following syntax elements pps_act_y_qp_offset_plu sX1, pps_act_cb_qp_offset_plusX2, pps_act_ cr_qp_offset_plusX3, and pps_act_cbcr_qp_of fset_plusX4 are signaled as part of the PPS.
[0504] For example, the first value (e.g., 0) of pps_act_qp_offsets_present_flag can indicate that pps_act_y_qp_offset_plusX1, pps_a ct_cb_qp_offset_plusX2, pps_act_cr_qp_off set_plusX3, and pps_act_cbcr_qp_offset_plus X4 are not signaled via the PPS syntax table.
[0505] The second value (e.g., 1) of pps_act_qp_offsets_present_flag can indicate that pps_act_y_qp_offset_plusX1, pps_act_c b_qp_offset_plusX2, pps_act_cr_qp_offset_ plusX3, and pps_act_cbcr_qp_offset_plusX4 are signaled via the P PS syntax table.
[0506] If the pps_act_qp_offsets_present_flag is not provided from the bitstream , the pps_act_qp_offsets_present_f lag can be derived to a first value (e.g., 0). For example, if there is a flag (e.g., sps_act_enable d_flag signaled in the SPS) indicating that ACT can be applied and it has a first value (e.g., 0) indicating that ACT is not applied , the pps_act_qp_offsets_present_flag can be forced to have the first value (e.g., 0 ). )
[0507] The syntax elements pps_act_y_qp_offset_plusX1, pps_ act_cb_qp_offset_plusX2, pps_act_cr_qp_of fset_plusX3, and pps_act_cbcr_qp_offset_plu sX4 can be used to determine the offsets applied to the quantization parameter value qP for each of the luma, C b, Cr components, and the joint CbCr component when the value of the syntax element cu_act_enabled_flag is a second value (e.g., 1) indicating that ACT is applied to the current coding unit . If the values of pps_act_y_qp_off set_plusX1, pps_act_cb_qp_offset_plusX2, p ps_act_cr_qp_offset_plusX3, and pps_act_cbc r_qp_offset_plusX4 do not exist in the bitstream, each value can be set to 0 .
[0508] According to the above syntax elements, the variable PpsActQpOffset is as shown in the following formula Y, PpsActQpOffsetCb, PpsActQpOffsetCr, and Pp The values of sActQpOffsetCbCr can be determined.
[0509] [Equation 75] PpsActQpOffsetY = pps_act_y_qp_offset_plu sX1 - X1 PpsActQpOffsetCb = pps_act_cb_qp_offset_p lusX2 - X2 PpsActQpOffsetCr = pps_act_cr_qp_offset_p lusX3 - X3 PpsActQpOffsetCbCr = pps_act_cbcr_qp_offs et_plusX4 - X4
[0510] Here, X1, X2, X3, and X4 can represent predetermined constant values. This may be the same value or different values from each other, and only some of them may have the same value as each other.
[0511] In one embodiment, for bitstream consistency, PpsActQpOffset Y, PpsActQpOffsetCb, PpsActQpOffsetCr, and Pps The values of ActQpOffsetCbCr are restricted to have values from -12 to 12. can be.
[0512] According to the determination of the above variables, the quantization parameter qP can be determined as follows. First, When the value of cIdx is 0, qP and the ACT Qp offset can be derived as shown in the following equation. can be.
[0513] [Equation 76] qP = Qp′ Y ActQpOffset = PpsActQpOffsetY
[0514] Otherwise, when the value of TuCResMode[xTbY][yTbY] is 2 , qP and the ACT Qp offset can be derived as follows.
[0515] [Equation 77] qP = Qp′ CbCr ActQpOffset = PpsActQpOffsetCbCr
[0516] Otherwise, when the value of cIdx is 1, qP and the ACT Qp offset can be derived as follows in the following formula.
[0517] [Equation 78] qP = Qp′ Cb ActQpOffset = PpsActQpOffsetCb
[0518] Otherwise, when the value of cIdx is 2, qP and the ACT Qp offset can be derived as follows in the following formula. [Equation 79] qP = Qp′ Cr ActQpOffset = PpsActQpOffsetCr
[0519] In another embodiment for signaling the ACT Qp offset, a plurality of ACT QP offsets can be signaled for different joint CbCr modes identified as modeA and m odeB.
[0520] Joint CbCr mode A can represent a joint CbCr mode having tu_cbf_cb with a value other than 0, such as mode 1 and mode 2 in Table 2 described above And joint CbCr mode B can indicate a joint CbCr mode having tu_cbf_cb with a value of 0, such as mode 3 in Table 2 described above. Accordingly, a modified syntax table is shown in FIG. 40. The syntax elements described in the syntax table of FIG. 40 will be described. More specifically, the syntax elements pps_act_y_qp_offset_plusX1, pps_
[0521] act_cb_qp_offset_plusX2, pps_act_cr_qp_of fset_plusX3, pps_act_cbcr_qp_offset_modeA _plusX4, and pps_act_cbcr_qp_offset_modeB_p lusX5 can be used to determine the offsets applied to the quantization parameter values q P for each of the luma, Cb, Cr components and the joint CbCr component when the value of the syntax element cu_act_enabled_flag is a second value (e.g., 1) indicating that ACT is applied to the current coding unit. If the values of pps_act_y_qp_o ffset_plusX1, pps_act_cb_qp_offset_plusX2 , pps_act_cr_qp_offset_plusX3, pps_act_cbc r_qp_offset_modeA_plusX4, and pps_act_cbcr_q p_offset_plusX5 do not exist in the bitstream, each value can be set to 0. According to the syntax elements, variables PpsActQpOffset Y, PpsActQpOffsetCb, PpsActQpOffsetCr, PpsA can be set as in the following equations.
[0522] According to the syntax elements, variables PpsActQpOffset Y, PpsActQpOffsetCb, PpsActQpOffsetCr, PpsA The values of ctQpOffsetCbCrModeA and PpsActQpOffsetCbCrM odeB can be determined.
[0523] [Equation 80] PpsActQpOffsetY = pps_act_y_qp_offset_plu sX1 - X1 PpsActQpOffsetCb = pps_act_cb_qp_offset_p lusX2 - X2 PpsActQpOffsetCr = pps_act_cr_qp_offset_p lusX3 - X3 PpsActQpOffsetCbCrModeA = pps_act_cbcr_qp _offset_modeA_plusX4 - X4 PpsActQpOffsetCbCrModeB = pps_act_cbcr_qp _offset_modeB_plusX5 - X5
[0524] Here, X1, X2, X3, X4, and X5 can represent predetermined constant values. This may be the same value or different values from each other, and only some of them may have the same value as each other. In one embodiment, for bitstream consistency, PpsActQpOffsetY, P psActQpOffsetCb, PpsActQpOffsetCr, PpsActQ pOffsetCbCrModeA, and PpsActQpOffsetCbCrMode B can be restricted to have values from -12 to 12.
[0525] According to the determination of the above variables, the quantization parameter qP can be determined as follows. First, when the value of cIdx is 0, qP and the ACT Qp offset can be derived as follows.
[0526] [Equation 81] qP = Qp′ Y ActQpOffset = PpsActQpOffsetY
[0527] Otherwise, when the value of TuCResMode[xTbY][yTbY] is 2 , qP can be derived as follows:
[0528] [Equation 82] qP = Qp′ CbCr
[0529] Otherwise, when the value of cIdx is 1, qP and ACT Qp offset can be derived as follows: Equation
[0530] [Equation 83] qP = Qp′ Cb ActQpOffset = PpsActQpOffsetCb
[0531] Otherwise, when the value of cIdx is 2, qP and ACT Qp offset can be derived as follows: Equation
[0532] [Equation 84] qP = Qp′ Cr ActQpOffset = PpsActQpOffsetCr
[0533] And when the value of cIdx is not 0 and the value of TuCResMode[xTbY][yTbY] is not 0, the ACT Qp offset can be derived as follows:
[0534] [Equation 85] ActQpOffset = (tu_cbf_cb[xTbY][yTbY])? Pps ActQpOffsetCbCrModeA: PpsActQpOffsetCbCrM odeB
[0535] On the other hand, in another embodiment, ActQpOffset may be derived as follows when the value of TuCResMode[xT bY][yTbY] is 2.
[0536] [Equation 86] ActQpOffset=(tu_cbf_cb[xTbY][yTbY])?(PP sQpOffsetCbCrModeA + slice_act_CbCr_qp_off set_ModeA):(PPsQpOffsetCbCrModeB + slice_a ct_CbCr_qp_offset_ModeB)
[0537] In another embodiment for signaling the ACT Qp offset, only the ACT QP offsets for Y, Cb, and Cr can be signaled as in the syntax table of FIG. 41. The ACT QP offset for joint CbCr can be derived from Pp sActQpOffsetY, PpsActQpOffsetCb, and / or PpsAc tQpOffsetCr.
[0538] In one embodiment, the ACT Qp offset for CbCr can be set to the value of PpsActQpO ffsetCb. In another embodiment, for the ACT Qp offset for CbCr, when in the joint CbCr mode where the value of tu_cbf_cb is not 0, it can be set to the same value as PpsActQpOffsetCb, and when in the joint CbCr mode where the value of tu_cbf_ cb is 0, it can be set to PpsActQpOffse cb. It can be set to the same value as tCr. Or, conversely, it can also be set.
[0539] Figure 41 is a diagram showing another embodiment of the syntax table for signaling the ACT Qp offset in PPS. According to the determination of the syntax elements in Figure 41, the quantization parameter qP can be determined as follows. First, when the value of cIdx is 0, qP and ACT Q p offset can be derived as shown in the following formula.
[0540] [Formula 87] qP = Qp′ Y ActQpOffset = PpsActQpOffsetY
[0541] Otherwise, when the value of TuCResMode[xTbY][yTbY] is 2 , qP and ACT Qp offset can be derived as shown in the following formula.
[0542] [Formula 88] qP = Qp′ CbCr ActQpOffset = (cIdx == 1)? PpsActQpOffsetCb: PpsActQpOffsetCr
[0543] On the other hand, in another embodiment, the value of ActQpOffset can be determined as follows as well.
[0544] [Formula 89] ActQpOffset = (tu_cbf_cb[xTbY][yTbY])? Pps ActQpOffsetCb: PpsActQpOffsetCr
[0545] Otherwise, when the value of cIdx is 1, qP and ACT Qp offset can be derived as follows as shown in the formula.
[0546] [Equation 90] qP = Qp′ Cb ActQpOffset = PpsActQpOffsetCb
[0547] Otherwise, when the value of cIdx is 2, qP and the ACT Qp offset can be derived as shown in the following mathematical formula.
[0548] [Equation 91] qP = Qp′ Cr ActQpOffset = PpsActQpOffsetCr
[0549] Example 7: Signaling of ACT Qp Offset at Multiple Levels
[0550] In one embodiment, the ACT QP offset can be signaled at multiple levels. As in the previous Example 6, in addition to signaling the ACT QP offset at one level such as PPS, the ACT QP offset can also be signaled at a lower level (e.g., in a slice header, a picture header, or other types of headers suitable for performing Qp control) (e.g., slice header, picture header, or other types of headers suitable for performing Qp control).
[0551] Two embodiments are described below. FIGS. 42 and 43 show examples in which the ACT QP offset is signaled via a slice header and a picture header. In such a way, the ACT QP offset can be signaled at multiple levels.
[0552] The syntax elements shown in FIGS. 42 and 43 are described below. The syntax element pps_slice_act_qp_offsets_present_fla g can indicate whether the syntax elements slice_act_y_qp_offset, sli ce_act_cb_qp_offset, slice_act_cr_qp_offs et, and slice_act_cbcr_qp_offset exist in the slice header. For example, the first value (e.g., 0) of pps_slice_act_qp_offsets_present_fl
[0553] ag can indicate that slice_act_y_qp_offset, slic e_act_cb_qp_offset, slice_act_cr_qp_offse t, and slice_act_cbcr_qp_offset do not exist in the slice header.
[0554] For example, the second value (e.g., 1) of pps_slice_act_qp_offsets_present_fl ag can indicate that slice_act_y_qp_offset, slic e_act_cb_qp_offset, slice_act_cr_qp_offse t, and slice_act_cbcr_qp_offset exist in the slice header.
[0555] The syntax elements slice_act_y_qp_offset, slice_act _cb_qp_offset, slice_act_cr_qp_offset, and s lice_act_cbcr_qp_offset can indicate the offsets for the quantization parameter values qP for each of the luma, Cb, Cr components, and the joint intra CbCr components. slice_act_y_qp_offset, slice_act_ cb_qp_offset, slice_act_cr_qp_offset, and slice_act_cbcr_qp_offset can indicate the offsets for the quantization parameter values qP for each of the luma, Cb, Cr components, and the joint The values of cb_qp_offset, slice_act_cr_qp_offset, and slice_act_cbcr_qp_offset can be restricted to have values from -12 to 12. When the values of slice_act_y_qp_offset, slice_act _cb_qp_offset, slice_act_cr_qp_offset, and s lice_act_cbcr_qp_offset do not exist in the bitstream, each value can be set to 0. PpsActQpOffsetY + slice_act_ y_qp_offset, PpsActQpOffsetCb + slice_act_c b_qp_offset, PpsActQpOffsetCr + slice_act_c r_qp_offset and PpsActQpOffsetCbCr + slice_ac t_cbcr_qp_offset can also be restricted to have values from -12 to 12.
[0556] Various modification embodiments for signaling the ACT QP offset for joint CbCr at the PPS level can be applied. For example, signaling one QP set for joint CbCr, signaling multiple ACT Qp offsets for different modes of joint CbCr, or inducing this without signaling the ACT Qp offset for joint CbCr, using the ACTQpOffset for Y, Cb, Cr and / or the mode of joint CbCr, is applicable when signaling via the slice header.
[0557] Two modification embodiments are shown in FIGS. 44 and 45. FIG. 44 shows one embodiment of signaling the ACT Qp offset within the slice header. FIG. 45 shows another embodiment of signaling the ACT Qp offset in the slice header. In FIG. 45, only the ACT Qp offsets for Y, Cb, and Cr are signaled, and the slice-level ACT QP offset for joint CbCr can be derived from slice_act_y_qp_offset, slice_act_cb_qp_offset, and / or slice_act_cr_qp_offset. This can be determined based on the mode type of joint CbCr. In one embodiment, the slice-level ACT Qp offset for CbCr can be set to the same value as slice_act_cb_qp_offset. In other embodiments, for the joint CbCr mode with tu_cbf_cb having a value other than 0, the slice-level ACT Qp offset for joint CbCr can be set to the same value as slice_act_cb_qp_offset. And for the joint CbCr mode with tu_cbf_cb having a value of 0, the slice-level ACT Qp offset for joint CbCr can be set to the same value as slice_act_cr_qp_offset. On the other hand, in other embodiments, the syntax element can be signaled in the slice header or picture header. To achieve this, the following encoding / decoding can be performed. This can be determined based on the mode type of joint CbCr. In one embodiment, the slice-level ACT Qp offset for CbCr can be set to the same value as slice_act_cb_qp_offset. In other embodiments, for the joint CbCr mode with tu_cbf_cb having a value other than 0, the slice-level ACT Qp offset for joint CbCr can be set to the same value as slice_act_cb_qp_offset. And for the joint CbCr mode with tu_cbf_cb having a value of 0, the slice-level ACT Qp offset for joint CbCr can be set to the same value as slice_act_cr_qp_offset. In other embodiments, for the joint CbCr mode with tu_cbf_cb having a value other than 0, the slice-level ACT Qp offset for joint CbCr can be set to the same value as slice_act_cb_qp_offset. And for the joint CbCr mode with tu_cbf_cb having a value of 0, the slice-level ACT Qp offset for joint CbCr can be set to the same value as slice_act_cr_qp_offset. And for the joint CbCr mode with tu_cbf_cb having a value of 0, the slice-level ACT Qp offset for joint CbCr can be set to the same value as slice_act_cr_qp_offset. In the case of the joint CbCr mode with tu_cbf_cb having a value of 0, the slice-level ACT Qp offset for joint CbCr can be set to the same value as slice_act_cr_qp_offset. The slice-level ACT Qp offset for joint CbCr can be set to the same value as slice_act_cr_qp_offset.
[0558] On the other hand, in other embodiments, the syntax element can be signaled in the slice header or picture header. To achieve this, the following encoding / decoding can be performed. To achieve this, the following encoding / decoding can be performed.
[0559] - A flag pps_picture_slice_act_qp_offsets_present_flag indicating whether the ACT Qp offset exists in the picture header or in the slice header can be signaled in the PPS.
[0560] - If ACT is applicable and the value of pps_picture_slice_act_qp_offsets_present_flag is the second value (e.g., 1), a flag pic_act_qp_offsets_present_flag indicating whether the ACT Qp offset exists in the picture header can be signaled in the picture header. Here, the second value (e.g., 1) of pic_act_qp_offsets_present_flag can indicate that the ACT Qp offsets for all slices of the picture corresponding to the picture header are provided in the picture header.
[0561]
[0562] - The first value (e.g., 0) of pic_act_qp_offsets_present_flag can indicate that the ACT Qp offset for all slices of the picture corresponding to the picture header is not provided in the picture header. For example, if ACT is applicable, the value of pps_picture_slice_act_qp_offsets_present_flag is the second value (e.g., 1), and the value of pic_act_qp_offsets_present_flag is the first value (e.g., 0), the ACT Qp offset for the slice can be provided in the slice header.
[0561]
[0562] Figure 46 shows the syntax table of the PPS in which the pps_pic_slice_act_qp_offsets_prese nt_flag is signaled. The syntax element pps_pic_slice_act_qp_offsets_pres ent_flag can indicate whether the ACT Qp offset is provided in the picture header and / or slice he ader. For example, the first value (e.g., 0) of pps_pic_slice_act_qp_offsets_present_flag can indic ate that the ACT Qp offset is not provided in the picture header and slice header. The second valu e (e.g., 1) of pps_pic_slice_act_qp_offsets_present_flag can indicate that the ACT Qp offset can be provided in the picture header or slice header. If pps_pic_slice_act_qp_offsets_present_flag is not provided in the bitstream, the value of pps_pic_slice_act_qp_offsets_pr esent_flag can be determined as the first value (e.g., 0).
[0563] Figure 47 shows the syntax table of the picture header for signaling the ACT Qp offset. The syntax element pic_act_qp_offsets_present_flag can indicate whether the ACT Qp offset is provided in the picture header. The first value (e.g., 0) of pic_act_qp_offsets_present_flag can indicate that the ACT Qp offset is not provided in the picture header. The syntax element pic_act_qp_offset s_present_flag can indicate whether the ACT Qp offset is provided in the picture header. The first value (e.g., 0) of pic_act_qp_offsets_present_flag can indicate that the ACT Qp offset is not pr ovided in the picture header. The first value (e.g., 0) of pic_act_qp_offsets_present_flag can ind It can be indicated that it is not provided and can be provided by the slice header. pic_act_q The second value (e.g., 1) of p_offsets_present_flag is ACT Qp It can be indicated that the offset is provided by the picture header. pic_act_ When the value of qp_offsets_present_flag is not provided in the bitstream its value can be determined to be 0.
[0564] Figure 48 is a diagram showing the syntax table of the slice header for signaling the ACT Qp offset. In the syntax table of Figure 48, the syntax elements slice_act_y_qp_offset, slice_act_cb_qp_ offset, slice_act_cr_qp_offset, and slice_ac t_cbcr_qp_offset can indicate the offset for the quantization parameter value qP for the luma, Cb, and Cr components. slice_act_y_qp_of fset, slice_act_cb_qp_offset, slice_act_cr _qp_offset, and slice_act_cbcr_qp_offset can have values from -12 to 12. Furthermore, PpsActQpOffset Y+slice_act_y_qp_offset, PpsActQpOffsetCb +slice_act_cb_qp_offset, and PpsActQpOffset Cr+slice_act_cr_qp_offset can be restricted to have a range of values from -12 to 12. Y+slice_act_y_qp_offset, PpsActQpOffsetCb +slice_act_cb_qp_offset, and PpsActQpOffset Cr+slice_act_cr_qp_offset can be restricted to have a range of values from -12 to 12.
[0565] On the other hand, slice_act_y_qp_offset, slice_act_cb_q If the values of p_offset, slice_act_cr_qp_offset, and slice_ act_cbcr_qp_offset are not provided in the bitstream, if the value of ps_pic_slice_act_qp_offsets_present_flag is a first value (e.g., 0), the values of slice_act_y_qp_offset, s lice_act_cb_qp_offset, and slice_act_cr_qp_ offset can be determined to be 0. Otherwise, if the value of pps_pic_slice_ac t_qp_offsets_present_flag is a second value (e.g., 1), then the values of slice_act_y_qp_offset, slice_act_cb_qp_ offset, and slice_act_cr_qp_offset can be determined to be the same as the values of ps_act_y_qp_offset, pps_act_cb_qp_offset, and pps_act_cr_qp_offset, respectively.
[0566] On the other hand, when the ACT Qp offset exists in both the slice header and the picture header, the final offset value used to derive the qP value can be determined as the value obtained by adding the value of the offset signaled in the PPS and the value of the offset signaled in the slice header or the picture header.
[0567] More specifically, in one embodiment, the quantization parameter qP can be determined as follows. First, when the value of cIdx is 0, qP and the ACT Qp offset can be derived as follows in the following formula.
[0568] [Equation 92] qP = Qp′ Y ActQpOffset = PPsQpOffsetY + slice_act_y_qp _offset
[0569] Otherwise, when the value of TuCResMode[xTbY][yTbY] is 2 , qP and the ACT Qp offset can be derived as follows.
[0570] [Equation 93] qP = Qp′ CbCr ActQpOffset = PPsQpOffsetCbCr + slice_act_C bCr_qp_offset
[0571] Otherwise, when the value of cIdx is 1, qP and the ACT Qp offset can be derived as follows Equation.
[0572] [Equation 94] qP = Qp′ Cb ActQpOffset = PpsActQpOffsetCb + slice_act_ Cb_qp_offset
[0573] Otherwise, when the value of cIdx is 2, qP and the ACT Qp offset can be derived as follows Equation.
[0574] [Equation 95] qP = Qp′ Cr ActQpOffset = PpsActQpOffsetCr + slice_act_ Cr_qp_offset
[0575] In another embodiment, a number of ACT Qp offsets for the joint CbCr are When signaled, the ActQpOffset for joint CbCr can be determined as follows as follows
[0576] First, when the value of cIdx is 0, qP and the ACT Qp offset can be derived as in the following equations as follows
[0577] [Equation 96] qP = Qp′ Y ActQpOffset = PPsQpOffsetY + slice_act_y_qp _offset
[0578] Otherwise, when the value of TuCResMode[xTbY][yTbY] is 2 qP can be derived as in the following equation
[0579] [Equation 97] qP = Qp′ CbCr
[0580] Otherwise, when the value of cIdx is 1, qP and the ACT Qp offset can be derived as in the following equations
[0581] [Equation 98] qP = Qp′ Cb ActQpOffset = PpsActQpOffsetCb + slice_act_ Cb_qp_offset
[0582] Otherwise, when the value of cIdx is 2, qP and the ACT Qp offset can be derived as in the following equations
[0583] [Equation 99] qP = Qp′ Cr ActQpOffset = PpsActQpOffsetCr + slice_act_ Cr_qp_offset
[0584] And when the value of cIdx is not 0 and the value of TuCResMode[xTbY][yTbY] is not 0, the ACT Qp offset can be derived as in the following formula.
[0585] [Equation 100] ActQpOffset=(tu_cbf_cb[xTbY][yTbY])?(PP sQpOffsetCbCrModeA+slice_act_CbCr_qp_off set_ModeA):(PPsQpOffsetCbCrModeB+slice_a ct_CbCr_qp_offset_ModeB)
[0586] In another embodiment, when the ACT Qp offset for joint CbCr is not provided, qP and ActQpOffset for the Y, Cb, and / or Cr components are determined, and the ActQpOffset for joint CbCr can be determined using the ACT Qp offsets for the Y, Cb, and / or Cr components as follows. For example, in the above-described embodiment, when the value of TuCResMode[xTbY][yTbY] related to Equation 97 is 2, the calculation steps of qP can be changed and implemented as follows.
[0587] "Otherwise, when the value of TuCResMode[xTbY][yTbY] is 2, qP and the ACT Qp offset can be derived as in the following formula.
[0588] [Equation 101] qP=Qp′ CbCr ActQpOffset=(cIdx==1])?(PPsQpOffsetCb+s lice_act_Cb_qp_offset):(PPsQpOffsetCr+sl ice_act_Cr_qp_offset)]]
[0589] On the other hand, in another embodiment, the value of ActQpOffset can be determined as follows .
[0590] [Equation 102] ActQpOffset=(tu_cbf_cb[xTbY][yTbY])?(PP sQpOffsetCb+slice_act_Cb_qp_offset):(PPs QpOffsetCr+slice_act_Cr_qp_offset)
[0591] Example 8: Scheme Signaling a Set of Multiple ACT Qp Offsets
[0592] In this embodiment, a solution using a list of ACT Qp offsets will be described. For this , the following processing can be performed.
[0593] a) Within a parameter set (e.g., SPS or PPS), a set of a number of ACT Qp offsets can be signaled in the form of a list. Each set within the list can include ACT Qp offsets for Y, Cb, Cr, and the joint CbCr component. For simplicity, the list of ACT Qp offsets can be signaled in the same parameter set as the parameter set that signals the list of chroma Qp offsets.
[0594] b) The number of sets of ACT Qp offsets within the list can be the same as the number of sets of chroma Qp offsets signaled in the PPS.
[0595] c) The ACT Qp offset used to derive the qP for each coding unit As a set, it can be an ACT Qp offset belonging to a list having an index for the chroma Qp offset for the coding unit (e.g., cu_chroma_qp_offset_idx).
[0596] d) As an alternative embodiment of the above b) and c), the following can be done.
[0597] - The number of sets of ACT Qp offsets in the list can be signaled . The number of sets of ACT Qp offsets in the list may be different from the number of sets of chroma Qp offsets.
[0598] - When ACT is applicable, an index indicating the index of the ACT Qp offset used for the coding unit can be signaled.
[0599] A syntax for signaling a list of ACT Qp offsets that does not deviate from the above concept can be used as shown in FIG. 49. For example, pps_act_y_qp_off set, pps_act_cb_qp_offset, pps_act_cr_qp_o ffset, and pps_act_cbcr_qp_offset can be used to determine the offsets applied to the quantization parameter values qP for the luma, Cb, and Cr components and joint Cb Cr when the value of cu_act_e nabled_flag is 1.
[0600] pps_act_y_qp_offset, pps_act_cb_qp_offse t, pps_act_cr_qp_offset, and pps_act_cbcr_qp _offset values do not exist, each value can be derived to 0.
[0601] When the value of cu_act_enabled_flag is the second value (e.g., 1), and cu_c When the value of hroma_qp_offset_flag is the second value (e.g., 1), ac t_y_qp_offset_list[i], act_cb_qp_offset_l ist[i], act_cr_qp_offset_list[i], and act_cb cr_qp_offset_list[i] are used to determine the offsets applied to the quantization parameter value qP for each of the luma, Cb, and Cr components and the joint Cb Cr components respectively. act_y_qp_offset_list[i], act_cb_ qp_offset_list[i], act_cr_qp_offset_list i], and act_cbcr_qp_offset_list[i] do not exist, each value can be derived to 0. In this case, each value can be derived to 0. In this case, each value can be derived to 0.
[0602] In this embodiment, the quantization parameter qP can be determined as follows. First, when the value of cIdx is 0, qP and the ACT Qp offset can be derived as shown in the following equation.
[0603] [Equation 103] qP = Qp′ Y ActQpOffset = pps_act_y_qp_offset+(cu_chr oma_qp_offset_flag)?act_y_qp_offset_list [cu_chroma_qp_offset_idx]:0+slice_act_y_ qp_offset Otherwise, when the value of TuCResMode[xTbY][yTbY] is 2 , qP and ACT Qp offset can be derived as follows:
[0604] [Equation 104] qP = Qp′ CbCr ActQpOffset = pps_act_cbcr_qp_offset + (cu_ chroma_qp_offset_flag)? act_cbcr_qp_offse t_list[cu_chroma_qp_offset_idx] : 0 + slice_ act_cbcr_qp_offset
[0605] Otherwise, when the value of cIdx is 1, qP and ACT Qp offset can be derived as follows :
[0606] [Equation 105] qP = Qp′ Cb [ActQpOffset = pps_act_cb_qp_offset + (cu_c hroma_qp_offset_flag)? act_cb_qp_offset_l ist[cu_chroma_qp_offset_idx] : 0 + slice_act _cb_qp_offset Otherwise, when the value of cIdx is 2, qP and ACT Qp offset can be derived as follows :
[0607] [Equation 106] qP = Qp′ Cr ActQpOffset = pps_act_cr_qp_offset + (cu_ch roma_qp_offset_flag)? act_cr_qp_offset_li st[cu_chroma_qp_offset_idx]:0 + slice_act_ cr_qp_offset Example 9: ACT Color Space Transformation Scheme for Application to Both Lossless and Lossy Coding
[0608] The matrix-based color space conversion for the forward and inverse conversions described above is as follows summarized.
[0609]
Table 3
[0610] Since some value loss occurs in the processing of Co and Cg in the above conversion, it is impossible to restore to the original state. For example, when converting the sample values in the RGB color space to the YCgCo color space and then inverse-converting back to the RGB color space, the values of the original samples will not be fully restored . Therefore, the conversion according to Table 3 above cannot be used for lossless coding. Even when lossless coding is applied, it is necessary to improve the color space conversion algorithm so that no sample value loss occurs after the color space conversion. Examples 9 and 10 disclose color space conversion algorithms applicable not only to lossless coding but also to lossy coding.
[0611]
[0611] In the following examples, a scheme for performing ACT using a reversible color space conversion that can be restored to the original state and is applicable not only to lossy coding but also to lossless coding will be described . Such a reversible color space conversion can be applied to the encoding and decoding methods described above. The ACT Qp offset can also be adjusted for the following color space conversion. The color space conversion according to one embodiment can be performed as shown in the following mathematical formula. For example, the forward conversion from the GBR color space to the YCgCo color space can be performed according to the following mathematical formula. can be carried out by the following mathematical formula.
[0612] [Equation 107] Co = R - B; t = B + (Co >> 1); Cg = G - t; Y = t + (Cg >> 1);
[0613] Also, the reverse conversion from the YCgCo color space to the GBR color space is performed by the following equation obtained.
[0614] [Equation 108] t = Y - (Cg >> 1) G = Cg + t B = t - (Co >> 1) R = Co + B
[0615] The conversion between the YCgCo color space and the RGB color space by the above equations can be restored to the original state is. That is, the color space conversion by the above equations supports complete restoration. For example, even if the reverse conversion is performed after the forward conversion the sample values are maintained the same. Thus, the color space conversion by the above equations can be called a reversible YCgCo-R color conversion. Here, R can be an abbreviation of reversible, meaning that it can be restored to the original state. Y The CgCo-R conversion can be provided by increasing the bit depths of Cg and Co by 1 compared to existing conversions . In the case of having such conditions, other forms of reversible conversions can also be used like the above conversion.
[0616] Since conversions such as the above equations have different norm values from the previously described conversions the ACT Qp offsets for Y, Cg, and Co can be adjusted to compensate for the dynamic range change due to the color space conversion .
[0617] When the above-described conversion is applied, the ACT Qp offset according to one embodiment can be explained to have values of (-5, -5, -5) for Y, C g, Co as described. However, when the recoverable conversion in this embodiment is applied, values other than (-5, -5, -5) can be specified as the ACT Qp offset according to one embodiment. For example, as the ACT Qp offset according to one embodiment, values of (-5, 1, 3) for Y, Cg, Co can be used.
[0618] In other embodiments, the ACT QP offset can be signaled via a bitstream as in the above-described Example 6 or 7.
[0619] For example, when the above-described YCgCo-R conversion is used together with the ACT Qp offset (-5, 1, 3), as shown in the following figure, it was observed that there is no encoding loss for lossy encoding environments (e.g., QP 22, 27, 3 2, 37). Further, when ACT is applied, it was observed that an additional 5% encoding performance can be obtained in achieving lossless encoding.
[0620]
Table 4
[0621] The VVC specification for including an integrated ACT matrix can be described as in the following table.
[0622]
Table 5
[0623] For example, a residual sample array r of size (nTbW)×(nTbH)Y , r Cb and and r Cr can be updated as follows.
[0624] [Equation 109] tmp = r Y [x][y] - (r Cb [x][y] >> 1) r Y [x][y] = tmp + r Cb [x][y] r Cb [x][y] = tmp - (r Cr [x][y] >> 1) r Cr [x][y] = r Cb [x][y] + r Cr [x][y]
[0625] Example 10: ACT Execution Scheme for Performing Multiple Color Transformations Based on Explicit Signaling
[0626] In this embodiment, at least one color conversion can be performed by ACT. Which color conversion is performed can be determined by a flag signaled via the bitstream. Such a flag can be signaled at multiple levels or distinguishable granularities such as SPS, PPS, picture headers, and slices.
[0627] In one embodiment, a predetermined flag can be signaled to indicate which ACT is applied. For example, if the value of the flag is 1, an ACT based on a recoverable color conversion can be applied. If the value of the flag is 0, an ACT based on an irrecoverable color conversion can be applied.
[0628] In other embodiments, a predetermined flag for ACT can be signaled to indicate which color conversion is used. An example of the syntax signaled in SPS is shown in FIG. 50 is described in. The syntax element in FIG. 50 will be described. The syntax element sp s_act_reversible_conversion cannot be restored to the original state can indicate whether to use the conversion formula. The first value of sps_act_reversible_ conversion (for example, 0) can indicate that the conversion formula in which ACT is not restored to the original state is used. The second value of sps_act_reversible_conv ersion (for example, 1) can indicate that the conversion formula in which ACT can be restored to the original state is used.
[0629] Thus, the variable lossyCoding indicating whether lossy coding is performed can be set as follows in the formula.
[0630] [Equation 110] lossyCoding = (!sps_act_reversible_conver sion)
[0631] Using the lossyCoding flag, the pseudo code for the decoder to perform the reverse conversion from YCgCo to G BR in the decoding process can be expressed as follows.
[0632] [Equation 111] If (sps_act_reversible_conversion == 1) { / / YCgCo-R reversible conversion t = Y-(Cg >> 1) G = Cg + t B = t-(Co >> 1) R = Co + B } else{ t = Y - Cg G = Y + Cg B = t - Co R = t + Co }
[0633] Thus, the VVC specification shown in Table 5 of Example 9 can be modified as shown in the following table 。
[0634]
Table 6
[0635] According to the above table, the residual update process using color space conversion can use the following parameters as the input for this process 。 - Variable nTbW representing the width of the block - Variable nTbH representing the height of the block - Element r Y Array r of size (nTbW ) × (nTbH) for luma residual samples composed of [x][y] Y 、 - Element r Cb Array r of size (nTb W) × (nTbH) for chroma residual samples composed of [x][y] Cb 、 - Element r Cr Array r of size (nTb W) × (nTbH) for chroma residual samples composed of [x][y] Cr 、
[0636] The output for this process is as follows
[0637] - Updated array r of size (nTbW) × (nTbH) for luma residual samples 、 Y 、 - Updated array r of size (nTbW) × (nTbH) for chroma residual samples 、 Cb 、 - Updated (nTbW)×(nTbH) - sized array r for chroma residual samples of the array r Cr ,
[0638] By executing this process, the residual sample array r of size (nTbW)×(nTbH) can be updated as follows. Arrays r Y , r Cb and r Cr First, when the value of sps_act_reversible_conversion is the second value (
[0639] e.g., 1), the residual sample array r of size (nTbW)×(nTbH) can be updated as follows. Arrays r , r Y , r Cb and r Cr can be updated according to the following formula.
[0640] [Equation 112] tmp = r Y [x][y] - (r Cb [x][y] >> 1)) r Y [x][y] = tmp + r Cb [x][y]) r Cb [x][y] = tmp - (r Cr [x][y] >> 1)) r Cr [x][y] = r Cb [x][y] + r Cr [x][y]
[0641] Otherwise (e.g., if the value of sps_act_reversible_conversion is the first value (e.g., 0)), the residual sample array r of size (nTbW)×(nTbH) can be updated as follows. Arrays r , r Y , r Cb and r Cr can be updated according to the following formula.
[0642] [Equation 113] tmp = r Y [x][y] - r Cb [x][y] r Y [x][y] = r Y [x][y] + r Cb [x][y] r Cb [x][y] = tmp - r Cr [x][y] r Cr [x][y] = tmp + r Cr [x][y]
[0643] The inverse YCgCo transformation and the YCgCo-R inverse transformation have some similarities. In the transformation that can restore to the original state, when Cg and Co are replaced by Cg' = Cg << 1 and Co' = Co < <1, this can operate in the lossy inverse transformation. The following equations show an example for this.
[0644] [Equation 114] t = Y - (Cg' >> 1) = Y - Cg G = Cg' + t = Y + Cg B = t - (Co' >> 1) = t - Co = Y - Cg - Co R = Co' + B = t + Co = Y - Cg + Co
[0645] Therefore, in an alternative embodiment, instead of maintaining two color conversions, only the conversion that can restore to the original state can be used. In the lossy encoding case, the Cg and Co components can be scaled by 1 / 2 in the operation of the encoding device and scaled by 2 in the operation of the decoding device. This enables the use of one integrated conversion even when supporting lossy and lossless cases. Furthermore, when lossy encoding is performed, it can also have the additional advantage that the bit depth may not change.
[0646]
Table 7
[0647] In one embodiment, a flag indicating which ACT conversion is used (e.g., actSh iftFlag) can be used according to the syntax of FIG. 51. In the syntax table of FIG. 51, the syntax element sps_act_shift_flag can indicate whether a step of shifting color components is applied while ACT is applied. For example, the first value of sps_act_shift_flag (e.g., 0) can indicate that a step of shifting color components is not applied while ACT is applied . The second value of sps_act_shift_flag (e.g., 1) can indicate that a step of shifting color components is applied while ACT is applied . The variable actShift tFlag can be set to the value of sps_act_shift_flag. Pseudo code for realizing the reverse conversion from YCgCo to GBR in the decoding device can be created as follows using actShiftFlga.
[0648]
Table 8
[0649] Example 11: ACT Execution Scheme for Performing Multiple Color Transformations Using Induction of Transformation Type In one embodiment, at least one color conversion can be used when performing ACT. And , which color conversion type is used can be derived based on other information in the bit stream .
[0650] In one embodiment, there are two types of A-T transformations: A-T transformations that can be restored to their original state and A-T transformations that cannot be restored to their original state. Two ACT conversion types are available, including the CT conversion. For example, the variable tuIsTransformSkip identifies If the conversion type is skip conversion, the ACT conversion that can be restored to the original state is Otherwise (for example, if the transformation type is not a skip transformation), the original ACT transformations that cannot be restored to a state can be used. Two types of pseudocode can be used: .
[0651] [Table 9]
[0652] [Table 10]
[0653] In another embodiment, the ACT conversion type can be determined based on the QP value. If the value is below a threshold (e.g., QpPrimeTsMin), the original state can be restored. If not (e.g., if the Qp value exceeds a certain threshold), the ACT transformation can be used. In such cases, a non-reversible ACT transformation may be used.
[0654] Example 12: QP Induction Scheme Using ACT QP Offset
[0655] This embodiment relates to the above-mentioned embodiments 1 and 2. In the above-mentioned embodiments 1 and 2, Derived Qp' Y , Qp' CbCr , Qp' Cb , Qp' Cr It was explained that it includes as QP 。The methods described in Examples 1 and 2 correct the induced Qp value using the ACT QP offset and apply the essential clipping technique so that the corrected QP value for transform coefficient scaling does not go out of the valid range.
[0656] This example describes a scheme of including the ACT QP offset in the QP induction process Y that induces Qp’, CbCr Qp’, Cb Qp’, Cr Qp’. Since the QP induction process already includes a predetermined clipping step so that the induced QP value does not go out of the valid range including the ACT QP offset in the QP induction process can simplify the overall QP induction steps for the transform coefficient scaling process while avoiding additional clipping steps and ensure that the final QP does not go out of the valid range.
[0657] As described in the previous examples, the ACT QP offset can be pre-specified as a constant or signaled via the bitstream. Without deviating from consistency, the ACT QP offsets for Y, Cb, Cr, and CbCr can be denoted as ppsActQpOffsetY, ppsActQpOffsetCb, ppsAct QpOffsetCr, and ppsActQpOffsetCbCr in the following description. ppsActQpOffsetY, ppsActQpOffsetCb, ppsAc tQpOffsetCr, and ppsActQpOffsetCbCr can be constants or variables having values from -M to N. Here, M and N are, in one example, lossy coding In the case, they may be set to 12 respectively, and in the lossless encoding case, they may be set to 0 respectively. Furthermore, at least one ACT QP offset can be derived from other ACT QP offset values. For example, ppsActQpOffsetCbCr can be set to the same value as ppsActQpOffsetCb or ppsActQ pOffsetCr based on the intra CbCr mode.
[0658] The decoding process for QP derivation using the ACT QP offset can be performed as described below. First, in the case of the quantization parameter derivation process, the following parameters can be utilized for this process.
[0659] - Luma coordinates (xCb, yCb) indicating the relative coordinates of the upper left luma sample of the current coding block with respect to the upper left luma sample of the current picture,
[0660] - Variable cbWidth representing the width of the current coding block in luma samples,
[0661] - Variable cbHeight representing the height of the current coding block in luma samples
[0662] - Indicates whether a single tree (SINGLE_TREE ) or a dual tree was used to split the current coding tree node. If a dual tree was used, a variable treeType indicating whether it is a luma component dual tree (DAUL_TREE_LUMA) or a chroma component dual tree (DAUL_TREE_CHROMA)
[0663] In this quantization parameter derivation process, the luma quantization parameter Qp' Y and chroma quantization parameter Qp'Cb , Qp’ Cr and Qp’ CbCr can be derived.
[0664] After that, the variable Qp Y can be derived by the following formula.
[0665] [Equation 115] Qp Y = ((qP Y _ PRED + CuQpDeltaVal + 64 + 2 * QpBdOffse t) % (64 + QpBdOffset)) - QpBdOffset
[0666] The luma quantization parameter Qp’ Y can be der...
Claims
1. An image decoding method performed by an image decoding device, comprising: Color space conversion is applied to the residual samples of the current block. determining a quantization parameter for the current block based on whether the quantization parameter is used; determining transform coefficients of the current block based on the quantization parameter; determining a residual sample of the current block using the transform coefficients; 、 Resetting the value of the residual sample based on whether the color space conversion is applied or not determining a threshold value for the first and second eigenvalues; The step of determining the quantization parameter is performed by determining whether the value of the quantization parameter is a predetermined upper limit The quantization parameter is clipped to have a value equal to or less than a predetermined lower limit and a value equal to or greater than a predetermined lower limit. A method of decoding an image by pinging.
2. The image decoding method according to claim 1 , wherein the predetermined lower limit value of the quantization parameter is zero.
3. The predetermined upper limit of the quantization parameter is a syntax expression that represents the bit depth of a sample. The image decoding method of claim 1 , wherein the determination is based on a factor.
4. The step of determining the quantization parameter includes: determining a quantization parameter based on the color components of the current block; determining a quantization parameter offset based on color components of the current block; and, resetting the quantization parameter using the quantization parameter offset The image decoding method of claim 1 , comprising:
5. resetting the quantization parameter using the quantization parameter offset is performed by adding the quantization parameter offset to the quantization parameter.
5. The image decoding method according to claim 4,
6. A color space transformation is applied to the residual samples of the current block. If the color component of the pixel is a luma component, the value of the quantization parameter offset is determined to be −5. The image decoding method according to claim 5 .
7. A color space transformation is applied to the residual samples of the current block. If the color component of the pixel is the chroma Cb component, the value of the quantization parameter offset is determined to be 1. The image decoding method according to claim 5 , wherein
8. A color space transformation is applied to the residual samples of the current block. If the color component of the image is a chroma Cr component, the value of the quantization parameter offset is determined to be 3. The image decoding method according to claim 5 , wherein
9. The step of resetting the value of the residual sample includes resetting the value of the luma component residual sample.
2. The image processing method of claim 1, wherein the image processing is performed based on half the chrominance and chrominance residual sample values. Decryption method.
10. The half value of the chroma residual sample value is shifted to the chroma residual sample value. The image decoding method according to claim 9, wherein the image is obtained by performing a soft operation.
11. The luma component residual sample value is multiplied by half the chroma Cb component residual sample value.
10. The luma component residual sample value is reset by adding 2. The image decoding method according to claim 1 .
12. The luma component residual sample value is multiplied by half the chroma Cb component residual sample value. and the half value of the chroma Cr component residual sample value is subtracted to obtain the chroma Cb 10. The image decoding method of claim 9, wherein component residual sample values are reset.
13. An image decoding device, comprising: Memory, and at least one processor, The at least one processor: Color space conversion is applied to the residual samples of the current block. determining a quantization parameter for the current block based on whether the quantization parameter is used; determining transform coefficients of the current block based on the quantization parameter; determining residual samples of the current block using the transform coefficients; Resetting the value of the residual sample based on whether the color space conversion is applied or not Determine, The processor is configured to: This is performed by clipping the quantization parameter so that it has a value equal to or greater than a lower limit. An image decoding device.
14. An image coding method performed by an image coding device, comprising: Residual based on whether color space conversion has been applied Reconfiguring the sample; determining transform coefficients using the reset residual samples; determining a quantization parameter based on whether or not a conversion of the color space is applied; and, and encoding the transform coefficients based on the quantization parameter; The step of determining the quantization parameter is performed by determining whether the value of the quantization parameter is a predetermined upper limit The quantization parameter is clipped to have a value equal to or less than a predetermined lower limit and a value equal to or greater than a predetermined lower limit. A method of encoding an image by pinging.
15. A method for transmitting a bit stream generated by the image coding method according to claim 14. Law.
Citation Information
Patent Citations
QP derivation and offset for adaptive color transform in video coding
US20160100168A1