Image encoding / decoding method and device using color space conversion, and method for transmitting bitstream
Patent Information
- Application Number
- JP2024016864
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-01-04
- Filing Date
- 2024-02-07
- Publication Date
- 2025-03-18
- Estimated Expiration
- 2040-10-28
AI Technical Summary
【0016】 本開示によれば、符号化/復号化効率が向上した画像符号化/復号化方法及び装置が提 供されることができる。
Smart Images

Figure 0007648817000022 
Figure 0007648817000023 
Figure 0007648817000024
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 and apparatus using color space conversion. Image encoding / decoding method and device according to the present disclosure, and image generated by the image encoding method / device according to the present disclosure The present invention relates to a method for transmitting a bitstream. [Background technology]
[0002] Recently, high resolution, high quality images, such as HD (High Definition) images, And there are various fields where demand for UHD (Ultra High Definition) images is high. The higher the resolution and quality of image data, the more expensive it becomes compared to conventional image data. , the amount of information or bits transmitted increases relatively. The increase results in increased transmission and storage costs.
[0003] This allows for the effective transmission, storage and playback of high-resolution, high-quality image information. Highly efficient image compression technology is required. Summary of the Invention [Problem to be solved by the invention]
[0004] The present disclosure provides an image encoding / decoding method and apparatus with improved encoding / decoding efficiency. The purpose of this document is to:
[0005] The present disclosure also aims to improve the efficiency of encoding / decoding by performing selective color space conversion. The object of the present invention is to provide an image encoding / decoding method and apparatus that can achieve this.
[0006] The present disclosure also relates to a bitstream generated by an image encoding method or apparatus according to the present disclosure. The present invention provides a method for transmitting a beam.
[0007] The present disclosure also relates to a bitstream generated by an image encoding method or apparatus according to the present disclosure. The present invention aims to provide a recording medium on which a ream is stored.
[0008] The present disclosure also relates to a method for decoding an image received and decoded by an image decoding device according to the present disclosure. The object of the present invention is to provide a recording medium on which a bitstream used for restoration is stored.
[0009] The technical problem to be solved by the present disclosure is not limited to the above-mentioned technical problem, Other technical problems that are not solved by the present disclosure will be understood by those skilled in the art from the following description. This will be clearly understood by those who are familiar with it. [Means for solving the problem]
[0010] The image decoding method performed by the image decoding device according to one aspect of the present disclosure includes: Whether color space conversion is applied to the residual samples of the determining a quantization parameter for the current block based on whether the quantization parameter is determining transformation coefficients of the current block based on the parameter; determining a residual sample of the current block using the color space conversion; resetting the value of the residual sample based on whether conversion is applied; Here, the step of determining the quantization parameter may include The value of the parameter is set to be equal to or less than a predetermined upper limit value and equal to or greater than a predetermined lower limit value. This can be done by performing clipping on the quantization parameters.
[0011] In addition, an image decoding device according to an aspect of the present disclosure includes a memory and at least one processor. In an image decoding apparatus including a processor, the at least one processor performs a Whether or not color space conversion is applied to the residual samples. determining a quantization parameter for the current block based on the quantization parameter; and determining a transform coefficient of the current block by using the transform coefficient. determining a dual sample and determining whether the color space conversion is applied to the register; The processor may reset the values of the quantization samples. The parameter value is set to a value equal to or less than a predetermined upper limit value and equal to or greater than a predetermined lower limit value. Clipping may be performed on the quantization parameters.
[0012] In addition, the image encoding method performed by the image encoding device according to one aspect of the present disclosure is a color space encoding method. resetting the residual sample based on whether a transformation between determining a conversion coefficient using the reset residual sample; determining a quantization parameter based on whether a spatial transformation is applied; and encoding the transform coefficients based on a quantization parameter. Here, the step of determining the quantization parameter comprises determining a value of the quantization parameter based on a predetermined The quantization parameter is set to have a value equal to or less than a predetermined upper limit value and a value equal to or more than a predetermined lower limit value. This can be done by clipping the
[0013] In addition, a transmission method according to an aspect of the present disclosure includes: It is possible to transmit a bitstream generated by
[0014] In addition, a computer-readable recording medium according to an aspect of the present disclosure includes the image encoding method or can store the bitstream generated by the image coding device.
[0015] The features of the present disclosure briefly summarized above are illustrative of the present disclosure and are set forth below in the detailed description of the present disclosure. These are merely exemplary embodiments and are not intended to limit the scope of the present disclosure. Effect of the Invention
[0016] According to the present disclosure, there is provided an image encoding / decoding method and apparatus with improved encoding / decoding efficiency. can be provided.
[0017] In addition, according to the present disclosure, selective color space conversion is performed to improve the efficiency of encoding / decoding. It is possible to provide an image encoding / decoding method and apparatus capable of achieving the above.
[0018] According to the present disclosure, the bit rate generated by the image coding method or device according to the present disclosure is A method for transmitting a packet stream may be provided.
[0019] According to the present disclosure, the bit rate generated by the image coding method or device according to the present disclosure is A recording medium storing the stream can be provided.
[0020] According to the present disclosure, a video signal received and decoded by the video decoding device according to the present disclosure is A recording medium storing a bitstream used for image restoration can be provided. .
[0021] The effects obtained by the present disclosure are not limited to the above-mentioned effects, and other effects not described above include the following: From the following description, it will be clearly understood by a person having ordinary skill in the art to which the present disclosure pertains. I guess so. [Brief description of the drawings]
[0022] [Figure 1] FIG. 1 is a schematic diagram illustrating a video coding system to which an embodiment of the present disclosure can be applied. [Diagram 2] 1 is a diagram illustrating an image encoding device to which an embodiment of the present disclosure can be applied; [Diagram 3] 1 is a diagram illustrating an image decoding device to which an embodiment of the present disclosure can be applied; [Figure 4] FIG. 2 is a diagram showing an image division structure according to an embodiment. [Diagram 5] FIG. 11 is a diagram showing an example of a block division type according to a multi-type tree structure. [Figure 6] FIG. 1 illustrates an example signaling mechanism for block partition information in a quadtree with nested multi-type tree structure according to the present disclosure. [Figure 7] FIG. 1 illustrates an embodiment in which a CTU is divided into multiple CUs. [Figure 8] FIG. 2 is a block diagram illustrating CABAC according to one embodiment for encoding one syntax element. [Figure 9-12] FIG. 2 is a diagram illustrating entropy encoding and decoding according to one embodiment. [Figure 13-14] FIG. 2 illustrates an example of a picture decoding and encoding procedure according to an embodiment. [Figure 15] FIG. 2 illustrates a hierarchical structure for a coded image according to one embodiment. [Figure 16] FIG. 2 is a diagram showing surrounding reference samples according to one embodiment; [Figure 17-18] FIG. 2 is a diagram illustrating intra-prediction according to an embodiment. [Figure 19] FIG. 1 is a diagram showing an embodiment of a decoding process to which ACT is applied. [Figure 20] FIG. 13 illustrates an example of a sequence parameter set syntax table in which syntax elements related to ACT are signaled. [Figure 21-27] 1 shows a sequence of an embodiment of a syntax table of a coding unit in which ACT-related syntax elements are signaled. FIG. [Figure 28] FIG. 2 illustrates a coding tree syntax according to one embodiment. [Figure 29] 1 is a diagram illustrating a method of encoding residual samples of BDPCM according to one embodiment. FIG. [Diagram 30] 4 illustrates a modified quantized residual block produced by performing BDPCM according to one embodiment. [Diagram 31] 11 is a flowchart showing a procedure for encoding a current block by applying BDPCM in an image encoding device according to an embodiment. [Diagram 32] 11 is a flowchart showing a procedure for reconstructing a current block by applying BDPCM in an image decoding apparatus according to an embodiment. [Figure 33-35] A diagram showing a schematic diagram of a syntax for signaling information regarding BDPCM. [Figure 36-51] FIG. 2 illustrates a syntax table for signaling ACT syntax elements according to a specific embodiment of the present disclosure. [Figure 52] FIG. 2 is a diagram illustrating an image decoding method according to an embodiment. [Diagram 53] FIG. 1 is a diagram illustrating an image encoding method according to an embodiment. [Figure 54] FIG. 1 illustrates a content streaming system to which an embodiment of the present disclosure can be applied. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0023] Hereinafter, with reference to the accompanying drawings, embodiments of the present disclosure will be described in detail. The present disclosure will be described in detail so that a person having ordinary skill in the art can easily carry out the disclosure. As those skilled in the art would realize, the described embodiments may be implemented in various different forms, all without departing from the spirit or scope of the present invention.
[0024] In describing the embodiments of the present disclosure, specific descriptions of known configurations or functions are provided. If it is determined that there is a risk of making the main points of the disclosure unclear, a detailed explanation will be provided. In the drawings, parts that are not related to the description of the present disclosure are omitted. Similar parts are designated by similar reference numerals.
[0025] In this disclosure, a component may be "coupled," "connected," or "connected" to another component. When this is the case, this does not only mean that there is a direct connection between them, but also that there is another component between them. It also includes the existence of an indirect connection relationship. When the term "include" or "have" is used, this does not include other constituent elements, unless specifically stated to the contrary. It does not mean that an element is excluded, but that it can further include another component.
[0026] In this disclosure, the terms "first," "second," etc., refer to one component relative to another component. Unless otherwise stated, the order or importance of the components is not used to distinguish them from one another. Therefore, within the scope of the present disclosure, the first component of one embodiment may be In one embodiment, the second component may be referred to as a second component. Similarly, the second component of one embodiment may be referred to as a second component of another embodiment. In this embodiment, it may be referred to as the first component.
[0027] In this disclosure, components that are distinct from one another are referred to in order to clearly describe their respective features. This does not mean that the components are necessarily separate. Several components may be integrated into one hardware or software unit. Even if one component is distributed and composed of multiple hardware or software units, Thus, even if not specifically mentioned, such integrated or distributed embodiments are also included in the present disclosure. Included in the scope of the disclosure.
[0028] In this disclosure, the components described in the various embodiments are essential components. This does not imply that the present invention is limited to the above-mentioned embodiments, and some may be optional components. Embodiments consisting of a subset of the components disclosed herein are also within the scope of the present disclosure. Examples including components other than those described in the embodiments are also included in the scope of the present disclosure. do.
[0029] This disclosure relates to image encoding and decoding, and the terms used in this disclosure are Unless otherwise defined in this disclosure, the terms have their ordinary meaning in the technical field to which this disclosure pertains. It is possible.
[0030] In this disclosure, "video" refers to a sequence of images over time. A "picture" can generally mean a collection of Slice / tile refers to a unit that indicates one image in a certain period of time. A tile is a coding unit that constitutes a part of a picture during coding. A texture can consist of one or more slices / tiles. A slice / tile can also consist of one or more It can contain the above CTU (coding tree unit). A picture can consist of one or more slices / tiles. A picture can consist of one or more tile groups. A tile group can consist of one or more tiles. A block can represent a rectangular area of a CTU row in a tile in a picture. A tile is It can contain one or more bricks. A brick is a CTU row in a tile. A tile can be divided into multiple bricks. Each brick can contain one or more CTU rows that belong to a tile. Tiles that are not divided into multiple bricks can also be treated as bricks.
[0031] In this disclosure, a "pixel" or "pel" refers to one pixel. It can also mean the smallest unit that makes up a chart (or image). It also corresponds to a pixel. The term "sample" can be used to describe a sample. It can indicate the value of a pixel or a pixel, and the luma component of the pixel / pixel It is also possible to show only the value, which shows only the chroma component pixel / pixel values. It is also possible.
[0032] In this disclosure, a "unit" may refer to a basic unit of image processing. A unit is a representation of a particular region of a picture and at least some of the information related to that region. A unit can contain one luma block and two chroma (e.g. For example, Cb, Cr) blocks. Do not confuse with terms such as "channel array," "block," or "area." In the general case, an M × N block is a set of samples ( or sample array) or transform coefficients It may comprise a set (or array).
[0033] In this disclosure, a "current block" is a "current coding block", a "current code "block to be coded", "block to be decoded" or "block to be processed" When a prediction is made, the "current block" can mean one of the following: "Lock" can mean "current prediction block" or "block to be predicted." When transformation / quantization is performed, the "current block" is the "current transformation block". This can mean a "block to be converted" or a "block to be converted". In this case, the "current block" may mean the "block to be filtered."
[0034] In addition, in this disclosure, the "current block" is not necessarily a chroma block unless explicitly stated. Unless otherwise specified, it can mean "the luma block of the current block." "Roma block" is explicitly called "chroma block" or "current chroma block". It can be expressed by including the explicit mention of ROMA block.
[0035] In this disclosure, " / " and "," can be interpreted as "and / or." For example, "A / B" and "A, B" can be interpreted as "A and / or B". " / B / C" and "A, B, C" mean "at least one of A, B and / or C." It is possible.
[0036] In this disclosure, "or" can be interpreted as "and / or." For example, "A or B" means 1) only "A", 2) only "B", or 3) "A and Alternatively, in this disclosure, "or" can mean "A" and "B". "Additionally or alternatively" It is possible.
[0037] Video Coding System Overview
[0038] FIG. 1 is a diagram illustrating a video coding system according to this disclosure.
[0039] In one embodiment, the video coding system includes a source device 10 and a receiving device 11. The source device 10 may include a video encoding device (video encoding device) and a video encoding device (video encoding device). and / or image information or data in file or streaming format. The image data may be transmitted to the receiving device 20 via a digital storage medium or a network.
[0040] In one embodiment, a source device 10 includes a video source generator 11, an encoder 12, and a The receiving device 20 according to an embodiment includes a receiving unit 21, a decoding unit 22, a decoding unit 23, a decoding unit 24, a decoding unit 25, a decoding unit 26, a decoding unit 27, a decoding unit 28, a decoding unit 29, a decoding unit 30, a decoding unit 31, a decoding unit 32, a decoding unit 33, a decoding unit 34, a decoding unit 35, a decoding unit 36, a decoding unit The encoding device 12 may include a video encoding device 22 and a rendering unit 23. The decoding device 22 may be referred to as a video / image decoding device. The transmitting unit 13 may be included in the encoding device 12. The receiving unit 21 may be included in a decoding device 22. The rendering unit 23 may The display unit may also include a separate device or external component. It can also be configured as:
[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 may include elements for generating media files via a broadcast program. / It may include elements for transmitting over a communication network. extracts / receives the bitstream from the storage medium or network and decodes it The information can be transmitted to the device 22.
[0044] The decoder 22 performs some of the operations, such as inverse quantization, inverse transformation, and prediction, that correspond to the operations of the encoder 12. The following steps can be taken to decode the video / image.
[0045] The rendering unit 23 is capable of rendering the decoded video / images. The rendered video / images can be displayed via a display unit.
[0046] Overview of the image encoding device
[0047] FIG. 2 is a diagram illustrating an image encoding device to which an embodiment of the present disclosure can be applied.
[0048] As shown in FIG. 2, the image encoding device 100 includes an image division unit 110, a subtraction unit 11 5, transform unit 120, quantization unit 130, inverse quantization unit 140, inverse transform unit 150, and addition unit 155 , a filtering unit 160, a memory 170, an inter prediction unit 180, and an intra prediction unit 18 The inter prediction unit 180 and the inter prediction unit 190 may include an inter prediction unit 180 and an entropy coding unit 190. The quantizer 185 and the predictor 186 may be collectively referred to as the "predictor." The residual quantization unit 130, the inverse quantization unit 140, and the inverse transformation unit 150 The residual processing unit may further include a subtraction unit 115. It is also possible.
[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 is a part of a coding tree. 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 lower depth coding unit obtained by dividing the unit is the final coding unit. Here, the coding procedure includes prediction, transformation, and the like, which will be described later. In another example, the coding step may include a conversion and / or restoration step. The processing unit is a prediction unit (PU) or a transform unit. The prediction unit may be a transform unit (TU). and the transform units are split or partitioned from the final coding unit, respectively. The prediction unit may be a unit of sample prediction. The transform unit may be a unit for deriving transform coefficients and / or a residue from the transform coefficients. It can be a unit that induces a residual signal.
[0051] The prediction unit (the inter prediction unit 180 or the intra prediction unit 185) predicts a current block ( and performing a prediction for the current block (current block), and performing a predicted sample including a prediction sample for the current block. The prediction unit can generate a predicted block. Intra prediction or inter prediction is applied to the current block or CU. The prediction unit can determine whether the current block is predicted based on various information. The prediction information can be generated and transmitted to the entropy coding unit 190. The image data can be encoded by the entropy encoding unit 190 and output in a bitstream format. Cut.
[0052] The intra prediction unit 185 predicts the current block by referring to samples in the current picture. The referenced samples may be in intra prediction mode and / or intra prediction mode. According to the measurement technique, the current block may be located in the neighborhood. Intra prediction modes can be combined with multiple non-directional modes. The non-directional modes may include, for example, DC and Pl The directional modes include anar mode, depending on the granularity of the prediction direction. For example, it may include 33 directional prediction modes or 65 directional prediction modes. However, this is merely an example and more or less directional prediction models may be used based on the configuration. The intra prediction unit 185 uses the prediction mode applied to the surrounding blocks. In addition, the prediction mode to be applied to the current block can be determined.
[0053] The inter prediction unit 180 predicts a reference block identified by a motion vector on a reference picture. Based on the reference sample array, a predicted block for the current block is derived. In this case, in order 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 the spatial surrounding blocks present in the current picture. neighboring block) and the temporal neighboring blocks present in the reference picture (temporal neighboring block). The reference picture including the reference block and the reference picture including the temporal peripheral block are the same. The time-peripheral blocks may be the same or different from each other. (collocated reference block), collocated CU(col The reference picture including the temporally peripheral block can be called a CU. This is called a collocated picture (colPic). For example, the inter prediction unit 180 may calculate motion information based on the neighboring blocks. A candidate list is constructed, and a motion vector and / or a reference picture index of the current block are It is possible to generate information that indicates which candidates are used to derive the formula Inter prediction can be performed based on various prediction modes, for example, skip mode. In the case of the merge mode and the inter prediction mode, the inter prediction unit 180 uses the motion information of the neighboring blocks as the current It can be used as the motion information of the block. In the case of skip mode, it is the same as in merge mode. Unlike the above, the residual signal may not be transmitted. In the MVP mode, the motion vectors of the surrounding blocks are The vector is used as a motion vector predictor. The motion vector difference and By encoding an indicator for the motion vector predictor The motion vector difference is then expressed as , it may 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 techniques described below. For example, the prediction unit may use intra prediction or inter prediction for predicting the current block. In addition to applying inter-prediction, it is also possible to apply intra-prediction and inter-prediction simultaneously. Intra prediction and inter prediction can be applied simultaneously to predict the current block. The prediction method used is CIIP (combined inter and intra p The prediction unit can be called the prediction of the current block. To achieve this, an intra block copy (IBC) is performed. Intra-block copy is possible, for example, with SCC (screen content For image / video coding of games and other content, such as .t coding IBC can be used to find a block in the current picture at a given distance from the current block. This is a method of predicting the current block using the already restored reference block. When the reference block is used, the position of the reference block in the current picture is a vector corresponding to the predetermined distance. IBC is basically a method to encode the current pixel as a vector. In that it performs prediction within a picture, but derives reference blocks within the current picture, It can be performed similarly to inter prediction, i.e., IBC can be performed in the same manner as described in this disclosure. At least one of the inter prediction techniques can be used.
[0055] The prediction signal generated by the prediction unit is used to generate a reconstructed signal or The subtraction unit 115 can be used to generate a residual signal. The prediction signal (prediction signal) output from the prediction unit is The residual signal (residual block, predicted sample array) is subtracted from the residual signal (residual block, predicted sample array). al signal, residual block, residual sample array). The generated residual signal can be transmitted to the conversion unit 120 .
[0056] The transform unit 120 applies a transform technique to the residual signal to generate transform coefficients (transform coefficients). For example, the transform technique can generate DCT (Discrete Cosine Transform), DST(Discrete Sine Transform), KLT(Karhunen-Loeve Tran sform), GBT (Graph-Based Transform), or CNT ( Conditionally Non-linear Transform Here, GBT expresses the relationship information between pixels as a graph. When we express it as, we mean the transformation obtained from this graph. CNT is the previously restored All previously reconstructed pixels The term refers to a transformation that is obtained based on a prediction signal generated using a set of 128 pixels. The transformation process can also be applied to blocks of pixels having the same size as a square. It can also be applied to blocks of variable size, regardless of shape.
[0057] The quantization unit 130 quantizes the transform coefficients and transmits the quantized transform coefficients to the entropy coding unit 190. The entropy coding unit 190 converts the quantized signal (quantized transform coefficients) into The quantized information (information about the image) can be encoded and output in the form of a bit stream. The information about the transformed coefficients that is quantized can be called residual information. 0 is block-wise quantized based on the coefficient scan order. The transformed coefficients may be re-arranged in a one-dimensional vector format, generating information about the quantized transform coefficients based on the quantized transform coefficients; It is also possible.
[0058] The entropy coding unit 190 may use, for example, an exponential Golomb lomb), CAVLC(context-adaptive variable le ngth coding), CABAC(context-adaptive bina It can perform various encoding methods such as arithmetic coding. In addition to the quantized transform coefficients, the entropy coding unit 190 also uses Required information (e.g., syntax element values) The encoded information (e.g., the encoded video Video / image information) is encoded in bitstream format using NAL (network abstract). The video / Image information includes the adaptation parameter set (APS), picture parameter set (PPS), Such as sequence parameter set (SPS) or video parameter set (VPS) The video / image may further include information about various parameter sets. The information is general constraint information. n) may further include the signaling information and transmitted information referred to in this disclosure. and / or the syntax elements are encoded via the encoding procedure described above to form the bitstream. can be included in the stream.
[0059] The bitstream can be transmitted over a network or digitally The network may be a broadcast network and / or a communication network. Digital storage media can include USB, SD, CD, DVD, Blu-ray, etc. It can include various storage media such as SSD, HDD, etc. A transmitting unit (not shown) for transmitting the signal output from the conversion unit 190 and / or a storing unit for storing the signal. (not shown) may be provided as an internal / external component of the image coding device 100, or The transmission unit may also be included as a component of the entropy coding unit 190 .
[0060] The quantized transform coefficients output from the quantizer 130 are used to generate a residual signal. For example, the quantized transform coefficients can be dequantized by the inverse quantization unit 140 and the and the inverse transform unit 150 applies inverse quantization and inverse transform to obtain a residual signal. (residual block or residual sample) can be restored.
[0061] The adder 155 outputs the restored residual signal to the inter prediction unit 180 or the intra prediction unit 190. The signal is added to the predicted signal output from the measurement unit 185 to perform reconstruction. ed) signals (reconstructed picture, reconstructed block, reconstructed sample array) can be generated. The residual for the current block is calculated as if the skip mode was applied. If not, the predicted block can be used as the reconstruction block. 55 can be called a restoration unit or a restoration block generator. The generated restoration signal is can be used for intra prediction of the next block to be processed in the current picture. , which is then used for inter prediction of the next picture after filtering as described below. It is also possible.
[0062] The filtering unit 160 applies filtering to the restored signal to obtain subjective / objective image quality. For example, the filtering unit 160 may apply various Applying a filtering method to generate a modified reconstructed picture The corrected reconstructed picture can be stored in the memory 170, specifically in the The various filtering methods can be stored in the DPB. filtering, sample adaptive offset ffset), adaptive loop filter , bilateral filters, etc. The filtering unit 160 performs filtering as described later in the description of each filtering method. The entropy coding unit 190 can generate various information related to the filtering and transmit it to the entropy coding unit 190. The filtering information is encoded by the entropy coding unit 190 into bits. The image can be output in a multi-stream format.
[0063] The corrected reconstructed picture transmitted to the memory 170 is then referenced by the inter-prediction unit 180. The image coding device 100 can use the image as an inter-picture. When the prediction is applied, the prediction mismatch between the image encoding device 100 and the image decoding device is This can be avoided and the coding efficiency can be improved.
[0064] The DPB in the memory 170 is used as a reference picture in the inter prediction unit 180. The memory 170 stores the current picture. The motion information of the block from which the motion information is derived (or coded) and / or the already restored The stored motion information of the intra-picture block may be stored. is used as the motion information of the spatial surrounding blocks or the temporal surrounding blocks. , can be transmitted to the inter prediction unit 180. The memory 170 stores The reconstructed samples of the reconstructed blocks can be stored and transmitted to the intra prediction unit 185. It is possible.
[0065] Overview of the image decoding device
[0066] FIG. 3 is a diagram illustrating an image decoding device to which an embodiment of the present disclosure can be applied.
[0067] As shown in FIG. 3, the image decoding device 200 includes an entropy decoding unit 210, The inverse quantization unit 220, the inverse transformation unit 230, the addition unit 235, the filtering unit 240, and the memory 2 The inter prediction unit 50 may include an inter prediction unit 260 and an intra prediction unit 265. The prediction unit 260 and the intra prediction unit 265 may be collectively referred to as a “prediction unit.” The quantization unit 220 and the inverse transformation unit 230 may 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). The video / image information may also include general constraint information. The image decoding device may further include traint information. information about said parameter set and / or said general restriction for decoding an image, The signaling information referred to in this disclosure, the received information, The information and / or syntax elements are decoded via the decoding procedure to obtain the previous The bit stream can be obtained by, for example, the entropy decoding unit 210. It is based on coding methods such as Exponential Golomb Coding, CAVLC or CABAC. The information in the bit stream is decoded and the values of the syntax elements required for image restoration, In particular, the quantized values of the transform coefficients for the CAB The AC entropy decoding method extracts bits corresponding to each syntax element from the bitstream. Receives a bin, and returns information on syntax elements to be decoded, neighboring blocks, and Using the decoded information of the block or the information of symbols / bins decoded in the previous step Based on the determined context model, Based on the bin probability, we predict the occurrence probability of the bin and perform arithmetic decoding of the bin. By performing the decoding process, symbols corresponding to the values of each syntax element are generated. At this time, the CABAC entropy decoding method uses the context model After the decision of the next symbol / bin, the decoded symbol is The context model can be updated using the information from the / bins. Entropy Decoding Among the information decoded by the decoding unit 210, information related to prediction is transmitted to a prediction unit (inter prediction unit 26 0 and the intra prediction unit 265), and the entropy is decoded by the entropy decoding unit 210. The decoded residual values, i.e., the quantized transform coefficients and associated parameter information The information can be input to the inverse quantization unit 220. Among the information decoded by the step 23, the information related to filtering is sent to the filtering unit 240. Meanwhile, a receiving unit ( (not shown) may be further provided as an internal / external element of the image decoding device 200, Alternatively, the receiver may be implemented as a component of the entropy decoding unit 210 .
[0071] On the other hand, the image decoding device according to the present disclosure is called a video / image / picture decoding device. The image decoding device may include an information decoder (video / image / picture information decoder). decoder) and / or sample decoder (video / image / picture sample decoder) The information decoder may include an entropy decoder 210. The sample decoder includes an inverse quantization unit 220, an inverse transform unit 230, an adder unit 235, a filter The prediction unit 240, the memory 250, the inter prediction unit 260, and the intra prediction unit 265 It may include at least one.
[0072] The inverse quantization unit 220 inverse quantizes the quantized transform coefficients and outputs the transform coefficients. The inverse quantization unit 220 rearranges the quantized transform coefficients in a two-dimensional block format. In this case, the reordering may be performed by adjusting the coefficient scan order performed by the image coding apparatus. The inverse quantization unit 220 may perform the inverse quantization based on the quantization parameter (e.g., quantization step size information) to perform inverse quantization on the quantized transform coefficients; The transform coefficient can be obtained.
[0073] The inverse transform unit 230 inversely transforms the transform coefficients to generate a residual signal (residual block , residual sample array) can be obtained.
[0074] The prediction unit performs prediction for a current block, and a prediction sample for the current block is A predicted block containing The prediction unit performs the prediction based on the information on the prediction output from the entropy decoding unit 210. Then, whether intra prediction or inter prediction is applied to the current block. and determine a specific intra / inter prediction mode (prediction technique). It is possible.
[0075] The prediction unit can generate a prediction signal based on various prediction methods (techniques) described below. is the same as that described in the description of the prediction unit of the image encoding device 100.
[0076] The intra prediction unit 265 predicts the current block by referring to samples in the current picture. The intra prediction unit 185 can be described with respect to the intra prediction unit 265. The same can be applied to
[0077] The inter prediction unit 260 predicts a reference block identified by a motion vector on a reference picture. Based on the reference sample array, a predicted block for the current block is derived. In this case, in order 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. The adder 235 is called a reconstruction unit or a reconstruction block generator. The reconstructed signal can be used as the input for the next block to be processed in the current picture. The next picture can then be used for prediction, after filtering as described below. It can also be used for inter prediction of the channel.
[0079] The filtering unit 240 applies filtering to the restored signal to obtain subjective / objective image quality. For example, the filtering unit 240 may add various Applying a filtering method to generate a modified reconstructed picture The corrected reconstructed picture can be stored in the memory 250, specifically in the The various filtering methods can be stored in the DPB. filtering, sample adaptive offset ffset), adaptive loop filter , bilateral filters, etc.
[0080] The (corrected) reconstructed picture stored in the DPB of the memory 250 is used by the inter prediction unit 2 60 can be used as a reference picture. The motion information of the block from which the motion information is derived (or decoded) and / or the motion information of the block that has already been reconstructed The motion information of the blocks in the selected picture may be stored. , in order to utilize it as motion information of spatial surrounding blocks or motion information of temporal surrounding blocks, The memory 250 may transmit the reconstruction data to the inter-prediction unit 260. The reconstructed samples of the blocks can be stored and transmitted to the intra prediction unit 265. It is possible.
[0081] In this specification, the filtering unit 160 and the inter-prediction unit The embodiments described above for the intra-prediction unit 180 and the intra-prediction unit 185 are respectively implemented as an image decoding device 200. The filtering unit 240, the inter prediction unit 260, and the intra prediction unit 265 are also It can be applied to or correspondingly.
[0082] Image Segmentation Overview
[0083] The video / image coding method according to the present disclosure is based on the following image partitioning structure: Specifically, the prediction, residual processing ((inverse) transformation, (inverse) quantization) described below can be performed. The steps of image segmentation, syntax element coding, filtering, etc. This is based on the CTU, CU (and / or TU, PU) derived based on the structure. The image can be divided into blocks, and the block division procedure is as described above. This can be done in the image division unit 110 of the encoding device. The division-related information is the entropy The signal is encoded by the encoding unit 190 and can be transmitted to a decoding device in the form of a bit stream. The entropy decoding unit 210 of the device Based on the information, a block division structure of the current picture is derived, and image decoding is performed based on the block division structure. A series of steps for the It is possible to perform functions such as loop filtering.
[0084] A picture is a set of 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 division
[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 the block division types according to the multi-type tree structure. The splitting by the iptree structure is a splitting by two binary tree structures and two ternary tree structures. This may include a percentage.
[0089] The two partitions of the binary tree structure are called vertical binary partitions. splitting, SPLIT_BT_VER and horizontal binary splitting Intel binary splitting, SPLIT_BT_HOR) Vertical binary split (SPLIT_BT_VER) splits the current CU vertically into two. As shown in Figure 4, a vertical binary partition divides the current Two CUs are created that have the same height as the CU and half the width of the current CU. Horizontal binary split (SPLIT_BT_HOR) splits the current CU into two parts horizontally. As shown in Figure 5, a horizontal binary partitioning is now Two CUs are created, each with half the height of the CU and the same width as the current CU. It is possible.
[0090] The two partitions by the ternary tree structure are called vertical ternary partitions. y splitting, SPLIT_TT_VER) and horizontal ternary splitting (horiz ontal ternary splitting, SPLIT_TT_HOR) Vertical ternary split (SPLIT_TT_VER) splits the current CU vertically. As shown in Figure 5, the vertical ternary division 2 CUs each having the same height as the current CU and a width 1 / 4 of the current CU's width; A CU can be created that has the same height as the CU and half the width of the current CU. Horizontal ternary split SPLIT_TT_HOR splits the current CU horizontally in a 1:2:1 ratio. As shown in Figure 4, the horizontal ternary partitioning reduces the current CU’s Two CUs with a height of 1 / 4 the height and width of the current CU, and a width of 1 / 2 the height of the current CU. A CU can be created that has the same height and width as the current CU.
[0091] FIG. 6 illustrates a quadtree with multitype trees according to the present disclosure. Signaling block division information in nested multi-type tree structure FIG. 1 illustrates a mechanism for
[0092] Here, the CTU is treated as the root node of the quadtree, and the CTU is For the current CU (CTU or quadtree node (QT_node)), Information indicating whether or not to perform quadtree splitting (e.g., qt_split_flag) is For example, if qt_split_flag is the first value (e.g. For example, "1", the current CU can be split into a quadtree. If lit_flag is the second value (e.g., "0"), the current CU is split into a quadtree. Each leaf node in a quadtree is a QT_leaf_node. The nodes can then be further divided into multi-type tree structures, i.e., quadtrees. A leaf node of can be a multitype tree node (MTT_node). In a multitype tree structure, the first 1 flag (a first flag, e.g., mtt_split_cu_flag) can be signaled. If the node is further split (e.g. If the first flag is 1, the splitting direction A second flag (e.g., mtt_sp lit_cu_verticla_flag) can be signaled. For example, if the second flag is 1, the division direction is vertical, and if the second flag is 0, In this case, the split direction can be horizontal. Then, the split type is binary split. A third flag (a thi rd flag, e.g., mtt_split_cu_binary_flag) is For example, if the third flag is 1, the split type is binary. If the third flag is 0, the division type is ternary division type. Multi-types obtained by binary or ternary partitioning. The nodes of the type tree may be further partitioned into a multitype tree structure. Yes, but the nodes of a multitype tree are partitioned into a quadtree structure. If the first flag is 0, the corresponding node of the multitype tree is It is not split further and is a leaf node of the multitype tree (MTT_leaf_node The CUs that correspond to the leaf nodes of the multitype tree are the final coding It can be used as a recording unit.
[0093] The above mtt_split_cu_vertical_flag and mtt_spl Multi-type tree split mode for CU based on it_cu_binary_flag (multi-type tree splitting mode, MttSplit The multi-tree mode can be derived as shown in Table 1. The splitting mode can be abbreviated as multi-tree splitting type or splitting type.
[0094] [Table 1]
[0095] Figure 7 shows that the CTU is divided into multiple CUs by applying the multi-type tree after the quadtree. In Fig. 7, the bold block edge dge) 710 indicates a quadtree partition, and the remaining edges 720 indicate a multitype tree partition. A CU may correspond to a coding block CB. is a coding block of luma samples and a coding block of chroma samples corresponding to the luma samples. Chroma components (samples) CB or The TB size depends on the color format of the picture / image (chroma format, e.g. 4 Luma component (sample) C according to the component ratio (4:4, 4:2:2, 4:2:0, etc.) It can be derived based on B or TB size. Color format is 4:4:4 If so, the chroma component CB / TB size is set equal to the luma component CB / TB size. If the color format is 4:2:2, the chroma components CB / TB The width of the luma component CB / TB can be set to half the width of the chroma component CB / TB. The height can be set to the height of the luma component CB / TB. If the color format is 4: If it is 2:0, the width of the chroma components CB / TB is set to half the width of the luma components CB / TB. The height of the chroma component CB / TB can be set to half the height of the luma component CB / TB. It can be done.
[0096] In one embodiment, when the size of the CTU is 128 in terms of luma sample units, The size of U ranges from 128x128, the same size as CTU, to 4x4. In one embodiment, the 4:2:0 color format (or chroma format) matte), the chroma CB size must have a size between 64x64 and 2x2 can be done.
[0097] Alternatively, in one embodiment, the CU size and the TU size may be the same. In addition, multiple TUs can exist within a CU area. The TU size is generally determined by the luma component. The min(sample)TB(Transform Block) size can be indicated.
[0098] The TU size is a preset value that is the maximum allowable TB size (maxTbSize For example, the CU size may be derived based on the maxTbSiz If the maxTbSize is larger than e, multiple TUs (TBs) having the maxTbSize are is derived, and the transform / inverse transform can be performed in the TU (TB) unit. For example, The maximum allowable luma TB size is 64x64, and the maximum allowable chroma TB size is 32x32. If the width or height of the CB divided by the tree structure is equal to the maximum conversion width, or height, the CB will automatically (or implicitly) It can be divided until the TB size limit is met.
[0099] Also, for example, when intra prediction is applied, the intra prediction mode / type is The procedure for deriving the neighboring reference samples and generating the predicted samples is performed in units of T It can be done in U (or TB) units. In this case, within one CU (or CB) area In this case, one or more TUs (or TBs) may exist in the or TB) can share the same intra prediction mode / type.
[0100] On the other hand, for a quadtree coding tree scheme with multi-type trees, The parameters are signaled from the encoder to the decoder as SPS syntax elements. For example, the parameter CT Usize, MinQT, a parameter indicating the minimum allowable size of a leaf node in the quadtree Size, MaxBTS is a parameter that indicates the maximum allowable size of the root node of the binary tree. ize, MaxTTSi, a parameter indicating the maximum allowable size of the root node of the ternary tree ze, the maximum allowable hierarchical depth of the multitype tree split from the leaf nodes of the quadtree (m A parameter indicating the maximum allowed hierarchy depth. MaxMttDepth is a parameter that indicates the minimum allowable leaf node size of a binary tree. MinBtSize, and a parameter indicating the minimum allowable leaf node size of the ternary tree. At least one of the MinTtSizes may be signaled.
[0101] In one embodiment using a 4:2:0 chroma format, the CTU size is 128×1 It is set to 28 luma blocks and two 64x64 chroma blocks corresponding to the luma blocks. In this case, MinQTSize is set to 16x16 and MaxBt Size is set to 128x128, MaxTtSzie is set to 64x64, M inBtSize and MinTtSize are set to 4x4, and MaxMttDepth can be set to 4. The quadtree split is applied to the CTU and the leaf nodes of the quadtree The leaf nodes of the quadtree can be called leaf QT nodes. The leaf nodes of the quadtree are 16x16 in size (e.g., the MinQTSize ) to 128x128 size (e.g. the CTU size) If the leaf QT node is 128x128, it is further split into a binary / ternary tree. This means that even if MaxBtsize and MaxTt This is because the size exceeds the limit (e.g. 64x64). Otherwise, the leaf QT node The nodes can be further divided into multitype trees. Thus, the leaf QT nodes The node is the root node for the multitype tree and is a leaf QT nodes can have a multitype tree depth (mttDepth) value of 0 If the multitype tree depth reaches MaxMttdepth (e.g. 4), In this case, no further splitting can be considered. The width of the border is equal to MinBtSize and is equal to or less than 2xMinTtSize. If so, no further horizontal divisions may be considered. The height of the subtree node is equal to MinBtSize and equal to 2xMinTtSize. If the vertical division is less than 1, no additional vertical divisions may be considered. In this case, when partitioning is not taken into account, the encoding device may omit signaling of partitioning information. In such a case, the decoding device can induce the division information to a predetermined value. do.
[0102] On the other hand, one CTU is a coding block of luma samples (hereinafter referred to as a luma block). ") and the two coding blocks of the corresponding chroma samples (hereinafter " The coding tree scheme described above may include a coding block. The same scheme can now be applied to the luma and chroma blocks of a CU. In particular, within one CTU, The luma blocks and chroma blocks may be divided into the same block tree structure, The tree structure in this case can be expressed as a single tree (SINGLE_TREE). Alternatively, the luma blocks and chroma blocks in one CTU may be organized as separate block tree structures. In this case, the tree structure is divided into a dual tree (DUAL_TR EE) that is, when the CTU is divided into dual trees, Separate block tree structure for locks and chroma blocks In this case, the block tree structure for the luma block can be It can be called dual tree luma (DUAL_TREE_LUMA) and the chroma block The block tree structure for the block is dual tree chroma (DUAL_TREE_CHR For P and B slices / tile groups, one The luma and chroma blocks in a CTU have the same coding tree structure. However, for I slices / tile groups, the luma blocks can be The block and chroma blocks can have separate block tree structures. When the block tree structure is applied, the Luma CTB (Coding Tree Block k) is divided into CUs based on a specific coding tree structure, and the chroma CTB is The chroma CUs may be divided into chroma CUs based on the coding tree structure of The CUs in an I-slice / tile group to which the separate block tree structure is applied are the luma components. It consists of a coding block of one chrominance component or a coding block of two chrominance components, The CU of a B slice / tile group has three color components (a luma component and two chroma components) ) blocks.
[0103] Above we have described the quadtree coding tree structure with multi-type trees. However, the structure in which the CU is divided is not limited to this. For example, the BT structure and the TT structure Multiple Partitioning Tree (MP) T) structure, and CU can be interpreted as a concept included in the QT structure and the MPT structure. The CU is divided 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] In addition, in the video / image encoding and decoding according to this specification, the image processing unit is a hierarchical A picture can have a general structure: one or more tiles, bricks, or slices. , and / or tile groups. A slice contains one or more bricks. A brick can contain one or more CTU rows in a tile. A slice can contain an integer number of bricks of a picture. A loop can contain one or more tiles. A tile can contain one or more CTUs. The CTU can be divided into one or more CUs. A tile is a pixel. A rectangular area consisting of a specific tile row and a specific tile column that consists of multiple CTUs in a chat A tile group can be an integer number of tiles in a picture. The slice header contains the slice (blocks within the slice). It can carry information / parameters applicable to multiple If the tiles, slices, bricks and / or tile groups have a The encoding / decoding procedures for the groups can be parallelized.
[0107] In this disclosure, the designations or concepts of slices or tile groups may be used interchangeably. The tile group header can be called a slice header. The slices are intra(I) slice, predictive(P) slice, and One of the slice types including the i-predictive(B) slice For blocks in an I slice, we can have inter prediction for prediction. In this case, the prediction is not used, and only intra prediction can be used. It is also possible to code and signal the original sample values without measuring. For blocks in, intra prediction or inter prediction can be used, and inter prediction is used. When a block is used in a B slice, only uni-prediction is available. For the 3D image, intra prediction or inter prediction can be used. When inter prediction is used, can be used up to bi-prediction.
[0108] The coding device may select a suitable number of bits depending on the characteristics of the video image (e.g., resolution) or on the coding scheme. Considering efficiency or parallelism, tiles / tile groups, bricks, slices, max and The minimum coding unit size can be determined and information about this or Information that can guide this can be included in the bitstream.
[0109] The decoder detects tiles / tile groups, bricks, slices, and tiles in the current picture. To obtain information indicating whether a CTU in a The coding and decoding devices can signal such information only under certain conditions. By performing coding on the received signal, it is possible to improve the coding efficiency.
[0110] The slice header (slice header syntax) is commonly applied to the slices. It can contain information / parameters that can be used in APS (APS syntax) or PP S (PPS syntax) is information / parameters that are commonly applicable to one or more pictures. An SPS (SPS syntax) is a set of statements that are common to one or more sequences. It can contain applicable information / parameters. VPS (VPS syntax) is It can contain information / parameters that are commonly applicable to multiple layers. The video tag (video tag) may contain information / parameters that are commonly applicable to all videos. DPS is information related to the binding of CVS (coded video sequence) / Can contain parameters.
[0111] Also, for example, the division and configuration of the tiles / tile groups / bricks / slices, etc. The information about the above is configured in the encoding stage via the higher level syntax. It can be transmitted to the decoding device in a bit stream format.
[0112] Quantization / Dequantization
[0113] As described above, the quantization unit of the encoding device applies quantization to the transform coefficients to produce the quantized The inverse quantization unit of the encoding device or the inverse quantization unit of the decoding device can derive the transform coefficients. may apply inverse quantization to the quantized transform coefficients to derive the transform coefficients.
[0114] In the coding and decoding of moving images / still images, the quantization rate can be changed. The compression ratio can be adjusted using the quantization ratio. Instead of using the quantization rate directly, we use the quantization parameter (QP). parameter) can be used, for example an integer quantity between 0 and 63. Each quantization parameter value corresponds to an actual quantization rate. In addition, the quantization parameter QP Y and , the quantization parameter QP for the chroma components (chroma samples) C Set to be different from It can be done.
[0115] The quantization process takes the conversion coefficient C as input, divides it by the quantization rate (Qstep), and calculates the Based on this, the quantized transform coefficients C' can be obtained. In this case, taking into consideration the computational complexity, Then, the quantization rate is multiplied by the scale to convert it into an integer form, and a shift operation is performed by the value corresponding to the scale value. The quantization scale is calculated based on the product of the quantization rate and the scale value. That is, the quantization scale can be derived according to the QP. The quantization scale is applied to the transform coefficients C, and based on this, The quantized transform coefficients C' can also be derived.
[0116] The inverse quantization process is the inverse process of the quantization process, and applies the quantization rate Q step, and based on this, the restored transform coefficients C'' can be obtained. In this case, the level scale is derived according to the quantization parameter. and applying the level scale to the quantized transform coefficients C' to obtain The restored transform coefficients C' can be derived by subtracting And / or there may be some difference from the original transform coefficients C due to loss in the quantization process. Therefore, the encoding device can perform inverse quantization in the same way as the decoding device. can.
[0117] On the other hand, adaptive frequency-weighted quantization (AQQ) adjusts the quantization strength according to the frequency. tive frequency weighting quantization) technology The adaptive frequency-weighted quantization technique can be applied by applying different quantization strengths to different frequencies. The adaptive frequency-weighted quantization is a method of applying a predefined amount Applying quantization strength to each frequency differently using a quantization scaling matrix That is, the above-mentioned quantization / inverse quantization process can be performed by using the quantization scaling matrix. For example, the size of the current block and / or A prediction applied to a current block to generate a residual signal for the current block. Different quantization scales depending on whether the mode is inter prediction or intra prediction. The quantization scaling matrix can be a quantization matrix. The quantization scaling matrix can be called a scaling matrix. For frequency adaptive scaling, the above Frequency-specific quantization scale information for the quantization scaling matrix is generated by the encoding device. The frequency-dependent quantization schedule may be encoded and signaled to a decoding device. The frequency-specific quantization scaling information may be called quantization scaling information. The file information includes the scaling list data (scaling_list_data). The (modified) quantization scale can be calculated based on the scaling list data. In addition, the frequency-specific quantization scale information can be derived. is a present flag indicating whether the scaling list data is present or not. ag) information, or the scaling list data may be at a higher level (e.g. If signaled at a lower level (e.g. PPS or t The scaling list data is modified in the tile group header, etc. The information may further include information indicating whether or not the
[0118] Conversion / reverse conversion
[0119] As described above, the encoding device predicts the image using intra / inter / IBC prediction, etc. Based on the predicted block (predicted sample), the residual block (residual sample) ) can be derived, and the derived residual samples can be transformed and quantized to obtain , the quantized transform coefficients can be derived. Residual information) is coded in the residual coding syntax. The decoding device can then output the bitstream. The quantized transform coefficients are decoded by obtaining residual information from the image. The decoder can then derive the quantized transform coefficients. Based on the number, the residual samples can be derived through inverse quantization / inverse transformation. As mentioned above, at least one of the quantization / dequantization and / or transformation / inverse transformation If the transform / inverse transform is omitted, the transform coefficients are They may also be called conversion coefficients, or for uniformity of expression they may still be called transformation coefficients. The omission of the transform / inverse transform is determined by a transform skip flag (e.g., tr can be signaled based on the t The first value of ransform_skip_flag (e.g., 0) determines whether to skip the transformation or not. It can be shown that the syntax element transform_s determines the The second value of kip_flag (e.g., 1) indicates a conversion omission (e.g., skip). can be done.
[0120] The transformation / inverse transformation can be performed based on a transformation kernel. MTS (multiple transform selection) for inverse transformation n) scheme can be applied. In this case, among a set of many transformation kernels, A part of them can be selected and applied to the current block. The transformation kernel is a transformation matrix or a transformation For example, a set of transformation kernels is , vertical transformation kernel (vertical transformation kernel) and horizontal transformation kernel (horizontal transformation kernel) It is possible to show a combination of
[0121] The transform / inverse transform may be performed in units of CU or TU. / The inverse transform is performed on the residual samples in the CU or the residual samples in the TU. The CU size and the TU size may be the same, or multiple TUs may be included in the CU area. On the other hand, the CU size generally refers to the luma component (sample) CB size. The TU size generally refers to the luma component (sample) TB size. The chroma component (sample) CB or TB size depends on the color format (chroma frame). Depending on the component ratio (e.g. 4:4:4, 4:2:2, 4:2:0, etc.) , can be derived based on the luma component (sample) CB or TB size. The U size can be derived based on maxTbSize. For example, If the size is greater than the maxTbSize, the CU is A number of TUs (TBs) are derived, and conversion / inverse conversion is performed on a TU (TB) basis. The maxTbSize can be adjusted according to the application of various intra prediction types such as ISP. The information on the maxTbSize may be determined in advance. Alternatively, it may be generated and encoded in the encoding device and signaled to the encoding device.
[0122] Entropy Coding
[0123] As previously described with reference to FIG. 2, some or all of the video / image information may be The video signal can be entropy coded by the video coding unit 190 as described with reference to FIG. A part or all of the image information is entropy decoded by the entropy decoding unit 310. In this case, the video / image information is represented by syntax elements. In this specification, information is encoded / decoded in units of "Encoding" may include encoding / decoding by the methods described in this paragraph. .
[0124] FIG. 8 shows a block diagram of CABAC for encoding one syntax element. The ABAC coding process begins with the case where the input signal is not a binary value but a syntax element. In this case, the input signal can be converted to a binary value through binarization. If the input signal is already a binary value, it can be bypassed without going through the binarization process. Here, each binary digit 0 or 1 that makes up a binary value can be called a bin. For example, if the binary string (bin string) after binarization is 110, then 1, 1, Each of the 0s can be called a bin. The option can indicate the value of the syntax element.
[0125] The binarized bins are then processed by either the regular coding engine or the bypass (b ypass) coding engine. The model assigns a context model that reflects a probability value to that bin. The bin can then be coded based on the assigned context model. In the regular coding engine, after coding for each bin, The probability model for the bins coded in this way can be updated. We call these context-coded bins. The bypass coding engine is a procedure that estimates probabilities for input bins. By doing so, it is possible to omit the step of updating the probability model applied to the bin after coding. For the bypass coding engine, a uniform coding scheme is used instead of allocating contexts. By applying a probability distribution (e.g., 50:50) to code the incoming bins This can improve the coding speed. This can be called a bypass bin. It can be assigned and updated by bin, which is text coded (regularly coded). The context model can be specified based on ctxidx or ctxInc. ctxidx can be derived based on ctxInc. For example, a context model for each of the regular coded bins may be specified. The context index (ctxidx) is rement(ctxInc) and context index offset(ctx IdxOffset) where ctxInc is the sum of , can be derived differently for each bin. The lowest value of the ctxIdx can be expressed as The minimum value of the ctxIdx is the initial value (initValue) of the ctxIdx. The ctxIdxOffset can generally be called A value used to distinguish between context models for elements. The context model for the context element can be partitioned / derived based on ctxinc. can.
[0126] Entropy coding is done through a regular coding engine or by Decide which path to encode through the coding engine and switch the coding path. Entropy decoding is a process similar to entropy coding. It can be done in reverse order.
[0127] The above-mentioned entropy coding is performed, for example, as shown in FIG. 9 and FIG. 10. 9 and 10, the encoding device (entropy encoding unit) performs the following operations: An entropy coding procedure can be performed on the image / video information. Video information includes partitioning-related information, prediction-related information (e.g., inter / intra Prediction category information, intra prediction mode information, inter prediction mode information, etc.), residual information, in-loop filtering related information, etc. The entropy coding may include various syntax elements. Steps S910 to S920 in FIG. 9 can be performed in units of box elements. This can also be performed by the entropy coding unit 190 of the coding apparatus of FIG.
[0128] The encoding device may perform binarization on the target syntax element (S910). Here, the binarization is performed using the Truncated Rice binarization method. process, Fixed-length binarization process s, etc., and the binarization method for the target syntax element The binarization procedure is performed in the entropy coding unit 190. This can be performed by the binarization unit 191.
[0129] The encoding device is capable of performing entropy encoding on the target syntax element. The encoding device uses CABAC (context-adaptive adaptive (rithmetic coding) or CAVLC (context-adaptiv Entropy coding such as ELVLC Based on the technique, a regular coding vector is generated for the bin string of the target syntax element. It can perform context-based or bypass coding-based encoding. , the output of which can be included in a bitstream. is performed by the entropy coding processing unit 192 in the entropy coding unit 190. As mentioned above, the bitstream can be stored on a (digital) storage medium or The encoded data can then be transmitted to a decoding device via a network.
[0130] Referring to FIG. 11 and FIG. 12, the decoding device (entropy decoding unit) The image / video information can be decoded by the partition. information related to the prediction, information related to prediction (e.g., inter / intra prediction classification information, intra prediction prediction mode information, inter-prediction mode information, etc.), residual information, in-loop filter It may contain various syntax elements related to the ring information, etc. The entropy coding may be performed on a syntax element basis. S1110 to S1120 are the entropy decoding process of the decoding device shown in FIG. This can be performed by the encoding unit 210.
[0131] The decoding device can perform binarization on the target syntax element (S1110 Here, the binarization is performed using the Truncated Rice binarization method. process, Fixed-length binarization process ss, etc., and binarization for the target syntax element The method can be predefined. The decoding device derives the target sequence through the binarization procedure. The available bin strings (bin string candidates) for the available values of the syntax elements are The binarization procedure can be derived by the binarization unit 2 in the entropy decoding unit 210. This can be done by 11.
[0132] The decoding device is capable of performing entropy decoding on the target syntax element. The decoding device can derive the target symbol from input bits in the bit stream (S1120). While sequentially decoding and parsing each bin for the tax element, the derived bin string is The bin string can be compared to the available bin strings for that syntax element. If the derived bin string is the same as one of the available bin strings, If so, the value corresponding to the bin string is derived as the value of the syntax element. If not, the next bit in the bitstream can be parsed further. After sifting, the above procedure can be repeated. The start or end bit for a particular piece of information (a particular syntax element) in the stream. Instead of using a single bit, the information can be signaled using a variable number of bits. This allows relatively fewer bits to be allocated to low values, This can improve general coding efficiency.
[0133] The decoder uses entropy coding techniques such as CABAC or CAVLC. For each bin in the bin string, The entropy decoding procedure can perform bypass-based decoding. This can be performed by the entropy decoding processing unit 212 in the entropy decoding unit 210. The bitstream contains various information for image / video decoding as described above. As mentioned above, the bitstream may be stored on a (digital) storage medium or can be transmitted to the decoding device over a network.
[0134] In this specification, to indicate the signaling of information from an encoding device to a decoding device, A table containing syntax elements (syntax table) can be used. The order of the syntax elements in the table containing the syntax elements used is determined by the bitstream. It is possible to indicate the parsing order of syntax elements from the stream. The encoding device can transmit the syntax elements to the decoding device in accordance with the parsing order. A syntax table can be constructed and encoded so that it can be parsed by The syntactic device parses the syntax elements of the syntax table from the bitstream. The syntax elements can be parsed and decoded according to the parsing order to obtain their values. do.
[0135] General Image / Video Coding Procedures
[0136] In image / video coding, the pictures that make up an image / video are encoded as a series of decoded The data can be encoded / decoded according to the decoding order. The picture order that corresponds to the output order of the decoded pictures. The picture order may be set differently from the decoding order. Based on this, in inter prediction, backward prediction is performed in addition to forward prediction. It is possible.
[0137] FIG. 13 shows an example of a general picture decoding procedure to which the embodiments of the present specification can be applied. 3, S1310 is the entropy decoding unit 210 of the decoding device described above in FIG. S1320 may be performed by controlling the intra prediction unit 265 and the inter prediction unit 260. S1330 may be performed by a prediction unit including the inverse quantization unit 220 and the inverse transform unit 230. S1340 can be performed in the residual processing unit including the adder unit 235. S1350 may be performed by the filtering unit 240. S1320 may include the information decoding procedure described herein, and S1330 may include the information decoding procedure described herein. and S1330 may include an inter / intra prediction procedure as described in the present specification. S1340 may include the residual processing procedure described in S1350 may include a block / picture reconstruction procedure as described herein. The method may include an in-loop filtering procedure.
[0138] Referring to FIG. 13, the picture decoding procedure is as shown in the description of FIG. In summary, the image / video information acquisition step (S1 310), a picture restoration procedure (S1320 to S1340), and a procedure for the restored picture. The picture decoding step may include an in-loop filtering step (S1350). The original procedure is the inter / intra prediction (S1320) and residue prediction described in this specification. The result is obtained through the process of inverse quantization and inverse transformation of the quantized transform coefficients (S1330). The pixel value can be calculated based on the predicted sample and the residual sample. The in-loop filtering procedure is performed on the reconstructed picture generated by the reconstruction procedure. A modified reconstructed picture can be generated through the above-mentioned process. The corrected reconstructed picture can be output as a decoded picture, and the decoded picture can be output as a The decoded picture is stored in the decoded picture buffer or memory 250 of the decoding device. In some cases, the previous picture can be used as a reference picture in the inter prediction procedure. The in-loop filtering step can be omitted, in which case the reconstructed picture is decoded. The decoded picture can be output as a decoded picture buffer of the decoding device. The image data is stored in the memory 250 and is used as a reference picture in the inter prediction procedure when decoding a picture. The in-loop filtering step (S1350) can be used as a filter. As mentioned above, the deblocking filtering procedure, SAO (sample ad adaptive offset procedure, ALF (adaptive loop filter) r) procedure and / or bi-lateral filter The deblocking process may include a procedure, some or all of which may be omitted. filtering procedure, SAO (sample adaptive offset) procedure The ALF (adaptive loop filter) procedure and the bilateral filtering procedure One or parts of the bi-lateral filter procedure are applied sequentially. For example, the reconstructed picture may be After the deblocking filtering procedure is applied to the Or, for example, a deblocking filtering procedure can be applied to the reconstructed 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. Through an in-loop filtering procedure on the reconstructed picture, the correction A corrected reconstructed picture can be generated, which is stored in a decoded picture buffer or memory. The image data can be stored in the image decoder 170 and used for subsequent picture encoding, just as in the decoding device. It can sometimes be used as a reference picture in the inter prediction procedure. In some cases, some or all of the in-loop filtering steps may be omitted. When the in-loop filtering procedure is performed, The information (parameters) is encoded by the entropy encoding unit 190 and converted into a bitstream format. and a decoding device outputs the encoded signal based on the filtering-related information. The in-loop filtering procedure can be performed in a similar manner to the device.
[0141] Through such an in-loop filtering procedure, blocking artifacts (a rtifact and ringing artifacts, etc. It can reduce noise generated during coding and improve subjective / objective visual quality. In addition, in-loop filtering can be used in both the encoding device and the decoding device. By performing the matching procedure, the encoding device and the decoding device derive the same prediction results. This can improve the reliability of picture coding and can be transmitted for picture coding. This can reduce the amount of data that needs to be processed.
[0142] As mentioned above, the picture recovery procedure is performed not only in the decoding device but also in the coding device. The reconstructed block can be generated based on intra prediction / inter prediction for each block. A reconstructed picture including the reconstruction blocks can be generated. The current picture / slice / tile group is an I-picture / slice / tile group. If so, the blocks included in the current picture / slice / tile group are On the other hand, the current picture / slice / type can be reconstructed based on the prediction alone. If the current picture / slice / tile group is a P or B picture / slice / tile group, Blocks in a layer / slice / tile group can be predicted either intra or inter. In this case, the current picture / slice / tile group can be restored based on Inter prediction is applied to some blocks in the Intra prediction can also be applied to the color components of a picture. Unless expressly limited herein, the methods and The embodiments are applicable to the luma and chroma components.
[0143] Example of coding hierarchy and structure
[0144] The coded video / images according to the present invention may be, for example, coded according to the following coding steps: It can be processed according to layers and structures.
[0145] FIG. 15 shows a hierarchical structure for a coded image. The image is encoded and processed by the VCL (video coding language) which handles the image decoding process and itself. ayer, a subsystem that transmits and stores coded information , and NAL, which exists between the VCL and the lower system and is responsible for network adaptation functions. (network abstraction layer) can be divided.
[0146] In VCL, generate VCL data that includes compressed image data (slice data). or Picture Parameter Set: PPS, Sequence Parameter Set t:SPS), Video Parameter Set (V A parameter set including information such as the PS or SEI required for the image decoding process. (Supplemental Enhancement Information) message It can generate sage.
[0147] In NAL, the RBSP (Raw Byte Sequence P ayload) to add header information (NAL unit header) to NAL unit At this time, the RBSP is the slice data generated by the VCL, The NAL unit header contains the corresponding NA Contains NAL unit type information specified by the RBSP data included in the L unit. It is possible to do so.
[0148] As shown in the figure, NAL units are assigned to VCs by the RBSPs generated by the VCL. VCL NAL units and Non-VCL NAL units can be classified into VC L NAL unit is a NAL unit that contains information about a picture (slice data). Non-VCL NAL units can represent the number of frames required to decode a picture. It means a NAL unit that contains necessary information (parameter set or SEI message). You can taste it.
[0149] The above-mentioned VCL NAL unit and Non-VCL NAL unit are It can be transmitted over the network with header information according to the data standard. For example, NAL units are used in H.266 / VVC file formats, RTP (R eal-time Transport Protocol), TS (Transport Protocol) The data is then transformed into a prescribed standard data format such as Stream (Swap Stream) and transmitted over various networks. It can be transmitted in the form of a single bit.
[0150] As described above, the NAL unit is a RBSP data structure included in the NAL unit. Depending on the structure, a NAL unit type can be specified. Such information about the NAL unit type is stored in the NAL unit header and It can be nulled.
[0151] For example, whether a NAL unit contains information about a picture (slice data) NAL unit types are broadly classified into VCL and Non-VCL NAL unit types. The VCL NAL unit type indicates that the VCL NAL unit contains It can be classified according to the nature and type of picture, etc. The knit type can be classified according to the type of parameter set.
[0152] The following describes the types of parameter sets included in Non-VCL NAL unit types: Examples of NAL unit types identified are listed below.
[0153] -APS(Adaptation Parameter Set) NAL unit :Type for NAL units containing APS
[0154] -DPS(Decoding Parameter Set) NAL unit:D Type for NAL units that contain PS
[0155] -VPS (Video Parameter Set) NAL unit: Contains VPS NAL unit type
[0156] -SPS(Sequence Parameter Set) NAL unit:S Type for NAL units that contain PS
[0157] -PPS (Picture Parameter Set) NAL unit: PPS Type for NAL units containing
[0158] The above mentioned NAL unit types provide syntax information for the NAL unit types. The syntax information is stored and signaled in a NAL unit header. For example, the syntax information may be nal_unit_type. The NAL unit type can be specified by the value of nal_unit_type.
[0159] The slice header (slice header syntax) is commonly applied to the slices. The APS (APS syntax) or A PPS (PPS syntax) is a common format that can be applied to one or more slices or pictures. The SPS (SPS syntax) can include one or more The VPS (V PS syntax) can contain information / parameters that are commonly applicable to multiple layers. The DPS (DPS syntax) is a common information / parameter that can be applied to all video. The DPS may include a CVS (coded video sequence) parameter. It contains information / parameters regarding the concatenation of In this specification, the term "high level syntax" is used. ntax, HLS) refers to the APS syntax, PPS syntax, and SPS syntax. syntax, VPS syntax, DPS syntax, and slice header syntax It may include at least one of the following:
[0160] In this specification, the term "data" refers to data that is encoded from an encoding device to a decoding device in the form of a bit stream. The image / video information to be signaled includes partitioning related information within a picture, Includes intra / inter prediction information, residual information, in-loop filtering information, etc. In addition, the information included in the slice header, the information included in the APS, Including information contained in the PPS, information contained in the SPS, and / or information contained in the VPS It is possible.
[0161] Overview of Intra Prediction
[0162] The intra prediction performed by the encoding device and the decoding device described above will be described in more detail below. Intra prediction is performed by using a reference block in the picture to which the current block belongs (hereinafter, the current picture). A prediction may be generated based on the sample for the current block. do.
[0163] This will be described with reference to FIG. 16. When intra prediction is applied to a current block 1601, The neighboring reference samples to be used for intra prediction of the current block 1601 can be derived. The neighboring reference samples of the current block are the left and right neighboring samples of the current block of size nW×nH. (left) Sample 1611 adjacent to the boundary and at the bottom-left A total of 2 × nH samples, including 1612 adjacent samples, are p) Sample 1621 adjacent to the boundary and the sample adjacent to the top-right A total of 2 × nW samples including pull 1622, as well as the top-left side of the current block (top- Alternatively, the current block may include one sample 1631 adjacent to the current block (light). The peripheral reference samples of the lock are the upper peripheral samples of multiple columns and the left peripheral samples of multiple rows. It can also include:
[0164] In addition, the peripheral reference samples of the current block are arranged on the right side of the current block of size nW×nH. A total of nH samples adjacent to the right border of the current block are bottom) A total of nW samples 1651 adjacent to the boundary, and the bottom right of the current block It can also include one adjacent sample 1642 on the bottom-right side. .
[0165] However, some of the surrounding reference samples of the current block have not yet been decoded. In this case, the decoder may use the unavailable samples. By substituting the samples with the available samples, the prediction You can configure the surrounding reference samples to use, or use an interpolation of the available samples ( Through interpolation, we construct the surrounding reference samples to be used for prediction. This can be done.
[0166] If the neighboring reference samples are derived, (i) the neighbors of the current block ng) The average or interpolation of the reference sample (ii) predictive samples based on the current block The reference samples that exist in a specific (prediction) direction with respect to the prediction sample among the surrounding reference samples of the block. The predicted sample can also be derived based on the reference sample. (ii) directional mode It can also be called the angular mode. The current block is subjected to intra prediction based on the predicted sample of the current block. The second surrounding sample and the first surrounding sample located in the opposite direction to the prediction direction of the mode. The predicted samples can also be generated through linear interpolation. Linear interpolation intra prediction It can also be called a linear mode ction (LIP). l) may be used to generate chroma prediction samples based on the luma samples. In this case, it can be called LM mode. a neighboring reference sample for the current block based on the neighboring reference sample; The intra prediction samples, i.e., the unfiltered neighboring reference samples, at least one reference sample derived according to a prediction mode and the provisional prediction sample; A weighted sum is then used to derive a predicted sample of the current block. In the above case, PDPC (Position Dependent Indicator) Also, the surroundings of the current block can be called tra prediction. From the multiple reference sample lines, the reference sample line with the highest prediction accuracy is selected. A prediction sample is derived using a reference sample located in a prediction direction in the line, When the reference sample line is used, the decoder is informed of the used reference sample line. In the above case, multi-reference prediction coding can be performed. e line(MRL)intra prediction or MRL-based intra It can also be called a prediction. It can also be used to divide the current block into vertical or horizontal subpartitions. The sub-partitions are divided into sub-parts and intra-predicted based on the same intra-prediction mode. In this case, the neighboring reference samples can be derived and used in each segment. The intra prediction mode for the current block is applied to the sub-partitions in the same manner. By deriving and using the neighboring reference samples in the sub-partition unit, This improves the intra prediction performance. This is called ub-partitions (ISP) or ISP-based intra prediction. Such an intra prediction method is an intra prediction mode (e.g., DC mode, These are called intra prediction types, classified as Planar mode and Directional mode. 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. When the MIP is applied to the current block, i) averaging ( ii) matrix vector analysis using surrounding reference samples where a procedure for averaging was performed matrix-vector-multiplication ) procedure, and iii) horizontal / vertical interpolation procedures if necessary. By further performing the steps, a prediction sample for the current block can be derived. The intra prediction mode used for the MIP can be the same as the above-mentioned LIP, PDPC , MRL, ISP intra prediction, or normal intra prediction. The intra prediction mode for the MIP can be configured to be different from the MIP image. These modes may be referred to as intra-prediction modes, MIP prediction modes, or MIP modes. For example, Depending on the intra prediction mode for the MIP, the matrix vector multiplication The matrix and offset used in the application can be set differently. Here, the matrix can be called a (MIP) weighting matrix, and the The offset is a (MIP) offset vector or a (MIP) bias vector. The specific MIP method will be described later.
[0169] The block reconstruction procedure based on intra prediction and the intra prediction unit in the encoding device are roughly as follows. The method may include, for example, the following: 5, and S1720 can be performed by the subtraction unit 115 and the conversion unit 12 of the encoding device. 0, a quantization unit 130, an inverse quantization unit 140, and an inverse transform unit 150. Specifically, S1720 may be performed by a residual processing unit including the code In S1730, the prediction information is The trajectory prediction unit 185 derives the trajectory prediction signal and the entropy coding unit 190 encodes the trajectory prediction signal. In S1730, the residual information is derived by the residual processing unit. The residual can be encoded by the entropy encoding unit 190. The residual information is information about the residual sample. It may include information about the quantized transform coefficients for the residual samples. As described above, the residual samples are transformed through the transform unit 120 of the encoding device. The transform coefficients are derived as transform coefficients quantized through a quantization unit 130. The information about the quantized transform coefficients can be derived as a residual code. The image can be encoded by the entropy encoding unit 190 through a coding procedure.
[0170] The encoding device may perform intra prediction on the current block (S1710). The encoding device derives an intra-prediction mode / type for the current block, The intra prediction mode / type and the neighboring reference samples of the previous block can be derived. A prediction sample is generated in the current block based on the neighboring reference samples, where Deciding intra prediction mode / type, deriving neighboring reference samples, and generating predicted samples The steps may be performed simultaneously or one step may precede the other. For example, although not shown, the intra prediction unit 185 of the encoding device performs intra prediction. The measurement mode / type determination unit may include a reference sample derivation unit and a predicted sample derivation unit, The intra prediction mode / type decision unit decides the intra prediction mode / type for the current block. A reference sample deriving unit derives neighboring reference samples of the current block, and The predicted sample of the current block can be derived by the predicted sample deriving unit. When the prediction sample filtering procedure described below is performed, the intra prediction unit 185 performs the prediction The encoding device may further include a sample filter unit. Among the modes / types, the mode / type to be applied to the current block is determined. The encoding device can compare the RD cost for the intra prediction mode / type. and determining an optimal intra prediction mode / type for the current block. do.
[0171] On the other hand, the coding device may also perform a prediction sample filtering procedure. The prediction sample is then filtered using a filter called post-filtering. A filter procedure filters out some or all of the predicted samples. In some cases, the predictive sample filtering step can be omitted. It is Noh.
[0172] The coding device performs a coding process for the current block based on the (filtered) prediction samples. The encoding device can generate a residual sample for the current comparing the predicted samples with the original samples of the current block based on phase; Dual samples can be derived.
[0173] The encoding device receives information regarding the intra prediction (prediction information) and the residual sub-prediction The image information including the residual information about the sample can be encoded (S1730 The prediction information includes the intra prediction mode information and the intra prediction type information. The encoding device outputs the encoded image information in a bit stream format. The output bit stream can be restored via a storage medium or a network. The signal can be transmitted to a decryption device.
[0174] The residual information includes a residual coding syntax to be described later. The encoding device transforms and quantizes the residual samples to obtain the quantized The residual information can be used to derive the quantized transform coefficients. It may contain information about.
[0175] On the other hand, as described above, the encoding device generates a reconstructed picture (reconstructed samples and reconstructed blocks) For this purpose, the encoding device can generate the quantized transform function The numbers are then inverse quantized / inverse transformed again to derive the (corrected) residual samples. In this way, after the residual samples are transformed / quantized, they are inversely quantized / inversely transformed again. The reason for the conversion is that the residual samples derived by the decoder are the same as those derived by the decoder, as described above. The coding device derives the residual sample by using the predicted sample and the (corrected) The residual sample is then reconstructed based on the residual sample. A reconstruction block may be generated based on the reconstruction block. A reconstructed picture can be generated for the reconstructed 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). A prediction sample in the current block can be generated based on the sample (S18 30). In this case, the decoder can perform a predictive sample filtering procedure. The predictive sample filtering can be called post-filtering. A measurement sample filtering procedure filters some or all of the prediction samples. In some cases, the predictive sample filtering step can be omitted. This can be omitted.
[0179] The decoder generates a residual for the current block based on the received residual information. The decoder can generate the predicted samples and the registered samples. generating a reconstructed sample for the current block based on the dual sample; A reconstruction block including the samples may be derived (S1840). A reconstructed picture for the current picture may be generated based on the reconstruction. Further in-loop filtering procedures can be applied to the picture, as described above. It is.
[0180] Here, the intra prediction unit 265 of the decoding device performs intra prediction, although not shown in the figure. The prediction mode / type determination unit, the reference sample derivation unit, and the prediction sample derivation unit can be included. In this case, the intra prediction mode / type determination unit determines the intra prediction mode / type obtained by the entropy decoding unit 210. The intra prediction mode for the current block based on the intra prediction mode / type information. The reference sample deriving unit derives neighboring reference samples of the current block. The predicted sample derivation unit may derive predicted samples of the current block. On the other hand, when the above-mentioned predicted sample filtering procedure is performed, the intra prediction unit 265 may further include a predictive sample filter unit.
[0181] The intra-prediction mode information is, for example, MPM (most probable mode). Whether the remaining mode is applied to the current block or Flag information indicating whether the lumping mode is applied (for example, intra_lumping mode) a_mpm_flag), which indicates which MPM is applied to the current block. In this case, the prediction mode information is one of the intra prediction mode candidates (MPM candidates). The index information (for example, intra_luma_mpm_idx) that points to one of the The intra-prediction mode candidates (MPM candidates) may further include an MPM candidate list. The MPM may be configured as a list of the current block or an MPM list. If the intra prediction mode information is not applied to the intra prediction mode candidate ( Remaining refers to any one of the remaining intra prediction modes excluding the MPM candidates. Add more luma mode information (e.g., intra_luma_mpm_remainder) The decoding device may further include a decoding unit for decoding the current block based on the intra-prediction mode information. For the above-mentioned MIP, a separate M A PM list can be constructed.
[0182] Furthermore, the intra prediction type information may be implemented in various forms. The intra prediction type information indicates 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 is used in the HEVC Screen Content Extension Version. This also applies to VVC.
[0186] HEVC SCC extension In n), the predicted residual is adaptively converted from the existing color space to the YCgCo color space. ACT has been used to convert the conversion units into units of interest. One of the two color spaces is selectively selected by signaling the It can be done.
[0187] For example, the first value of the flag (e.g., 1) indicates that the residual of the conversion unit is in the original color space. The second value of the flag (e.g., 1) indicates that the transform unit It can be shown that the residuals of are coded in the YCgCo color space.
[0188] FIG. 19 is a diagram showing an embodiment of a decoding process to which ACT is applied. In the embodiment of FIG. In this case, motion compensated prediction may correspond to inter prediction in this disclosure.
[0189] As shown in FIG. 19, a reconstructed picture (or a reconstructed block, a reconstructed sample array, a reconstructed sample A signal (a pull, a restored signal) is generated based on the predicted and residual outputs. Here, the residual output value may be the inverse transform output value. The transformation may be a regular inverse transformation, where the regular inverse transformation is an MTS-based inverse transformation or an 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 The information (parameters) related to (reverse)ACT will be explained in detail later. State.
[0195] In one embodiment, the core transform function used in HEVC is It can be used as a function (transformation kernel). For example, the forward and inverse transformations shown in the following formulas can be used. A matrix for the orientation transformation can be used.
[0196]
number
[0197]
number
[0198] Here, C0, C1, and C2 can correspond to G, B, and R. Here, G is green ( green color component, B is the blue color component, and R is the red color component. Thus, C0', C1' and C2' can correspond to Y, Cg and Co, where Y is where Cg is the green color difference component, and Co is the orange color difference component.
[0199] In addition, to compensate for the dynamic range changes of the residual before and after the color conversion, the conversion level Only QP adjustments of (-5, -5, -3) can be applied to duals. will be discussed later.
[0200] Meanwhile, in the encoding and decoding process according to one embodiment, when ACT is applicable, Restrictions may apply.
[0201] In the case of dual tree encoding / decoding, ACT is inactivated. For example, ACT is Only applicable to single-tree encoding / decoding.
[0202] - ACT can be deactivated when ISP encoding and decoding is applied.
[0203] -ACT can be deactivated for chroma blocks to which BDPCM is applied. ACT can only be activated for luma blocks to which CM is applied.
[0204] -If ACT is applicable, CCLM can be inactivated.
[0205] Figure 20 shows the sequence parameters by which syntax elements related to ACT are signaled. FIG. 13 is a diagram illustrating an example of a data set syntax table.
[0206] 21 to 27 show coding units in which syntax elements related to ACT are signaled. 1 is a diagram showing an example of a syntax table of
[0207] As shown in FIG. 20, an ACT activation flag is provided to indicate whether ACT is activated during the decoding process. sps_act_enabled_flag(2010) can be used as a lag.
[0208] The first value of sps_act_enabled_flag (e.g. 0) indicates that ACT is used. The flag cu_act_enabled_fl indicates whether ACT is applied in the coding unit. indicates that ag(2110, 2710) is not provided in the syntax for the coding unit. It is possible.
[0209] The second value of sps_act_enabled_flag (for example, 1) indicates whether ACT is enabled. cu_act_enabled_flag is provided in the syntax for the coding 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] ACT QP offset-based QP derivation method for transform units
[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 top-left luma sample of the current coding block relative to the top-left luma sample of the current picture The relative coordinates of the luma (xCb, yCb),
[0217] a variable cbWidth that represents the width of the current coding block in luma samples,
[0218] - cbHeight variable that represents the height of the current coding block in luma samples
[0219] -Use single tree (SINGLE_TREE) to split the current coding tree node. ) or whether a dual tree was used. If a dual tree is used, Is it a dual tree of chroma components (DAUL_TREE_LUMA) or dual tree of chroma components (DAUL_TREE_LUMA)? The variable treeType indicates whether the tree is a DAUL_TREE_CHROMA tree or not.
[0220] In this process, the luma quantization parameter Qp'Y and the chroma quantization parameter Q p'Cb, Qp'Cr and Qp'CbCr can be derived.
[0221] The variable luma position (xQg, yQg) is the current position corresponding to the top-left sample of the current picture. The position of the top left luma sample of the child group can be indicated. Here, the horizontal (hori The zontal position xQg and the vertical position yQg are respectively the variables C Must be set equal to the value of uQgTopLeftX and the variable CuQgTopLeftY CuQgTopLeftX and CuQgTopLeftY can be used as shown in Figure 28. A given value in the coding tree syntax It can be defined as:
[0222] Here, the current quantization group can be a rectangular region in the coding tree block. , the same qP Y _ PRED The width and height are the upper left luma sample. The positions are assigned to CuQgTopLeftX and CuQgTopLeftY respectively. The width and height of the coding tree node may be the same as that of the corresponding
[0223] treeType is SINGLE_TREE or DUAL_TREE_LUMA If, luma quantization parameter prediction value qP Y _ PRED can be derived as follows:
[0224] 1. Variable qP Y _ PRED is derived as follows:
[0225] (Condition 1) If any one of the following conditions is true, then qP Y _ PRED The value of SliceQ p Y where SliceQp Y The Quantization parameter Qp for all slices Y This indicates the initial value of (Can be obtained from qP Y _ PRED The value of is the previous quantization in the decoding order. The luma quantization parameter Qp of the last luma coding unit of the group Y It can be set to a value of Cut.
[0226] - (Condition 1-1) The current quantization group is the first quantization group in the slice. case
[0227] - (Condition 1-2) If the current quantization group is the first quantization group in the tile If
[0228] - (Conditions 1-3) The current quantization group is the first quantization group in the CTB row of the tile. When a certain synchronization occurs (e.g., entropy_coding_s (If the value of 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, then qP Y _ A The value of qP Y _ PRED Otherwise, qP Y _ A The value of is the luma sample position ( The luma quantization parameter of the coding unit that contains the luma coding block covering xQg-1, yQg) Parameter Qp Y can be set to a value of
[0231] - (Condition 2-1) For a block identified by the sample position (xCb, yCb), The block identified by the sample position (xQg-1, yQg) is not an available adjacent block. case,
[0232] - (Condition 2-2) The luma coding block that covers the luma sample position (xQg-1, yQg) The CTB containing the lock is the current luma coding block at luma sample position (xCb, yCb). If it is not the same as the CTB that contains the lock, for example, if all of the following conditions are true:
[0233] -(Condition 2-2-1) (xQg-1) >> The value of CtbLog2SizeY is (xCb) >>Different from CtbLog2SizeY
[0234] -(Condition 2-2-2) (yQg)>>The value of CtbLog2SizeY is (yCb)>> Different from CtbLog2SizeY
[0235] 3. Variable qP Y _ B The value of can be derived as follows:
[0236] (Condition 3) If at least one of the following conditions is true, then qP Y _ B The value of qP Y _ PRED Otherwise, qP Y _ B The value of is the luma sample position ( The luma quantization parameter of the coding unit including the luma coding block covering xQg, yQg-1) is Parameter Qp Y can be set to a value of
[0237] - (Condition 3-1) For a block identified by the sample position (xCb, yCb), The block identified by sample position (xQg, yQg-1) is not an available adjacent block. case,
[0238] - (Condition 3-2) The luma coding block that covers the luma sample position (xQg, yQg-1) The CTB containing the lock is the current luma coding block at luma sample position (xCb, yCb). If it is not the same as the CTB that contains the lock, for example, if all of the following conditions are true:
[0239] -(Condition 3-2-1) (xQg)>>The value of 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, then qP Y _ PRED is the luma sample position (xQg, yQg The luma quantization parameter Qp of the coding unit including the luma coding block covering Y can be set to
[0243] - (Condition 3-1) For a block identified by the sample position (xCb, yCb), The block identified by the sample position (xQg, yQg-1) is an available adjacent block. case
[0244] - If the current quantization group is the first quantization group in a CTB row in a tile
[0245] On the other hand, if all the above conditions are not true, then qP Y _ PRED can be derived as the following formula:
[0246] [Formula 3] qP Y _ PRED =(qP Y _ A +qP Y _ B +1)>>1
[0247] Variable Qp Y can be derived according to the following formula:
[0248] [Formula 4] Qp Y =((qP Y _ PRED +CuQpDeltaVal+64+2*QpBdOffse t)%(64+QpBdOffset))-QpBdOffset
[0249] where CuQpDeltaVal is the luma quantization parameter for the coding unit and its This value can be obtained from the bitstream. et represents the luma and chroma quantization parameter range offset. can be preset to a certain constant or obtained from the bitstream. For example, , QpBdOffset is a syntax that indicates the bit depth of the luma or chroma sample. The luma quantization parameter Qp' can be calculated by multiplying the element value by a predetermined constant. Y teeth , can be derived according to the following formula:
[0250] [Formula 5] Qp′ Y =Qp Y +QpBdOffset
[0251] The value of the variable ChromaArrayType, which indicates the type of chroma array, is the first value (for example 0) and treeType is SINGLE_TREE or DUAL_TREE_C If it is HROMA, the following processing can be performed.
[0252] -If the value of treeType is DUAL_TREE_CHROMA, the variable Qp Y The value is the luma sample position (xCb+cbWidth / 2, yCb+cbHeight / 2) The luma quantization parameter Qp of the luma coding unit that covers Y It is set to the same value as This can be done.
[0253] - variable qP Cb , qP Cr and qP CbCr can be derived as the following formula:
[0254] [Formula 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 parameters Qp' for Cb and Cr components Cb and Qp′ Cr and Cb-Cr Chroma quantization parameters for joint Cb-Cr coding Qp′ CbCr can be derived as the following formula:
[0256] [Formula 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, pps_cr_qp_off set is Qp' Cb and Qp' Cr The offset used to guide the The slice parameter set can be obtained from the bitstream. _cb_qp_offset and slice_cr_qp_offset are the offsets of Qp' Cb and Qp' Cr The offset used to derive the bit length relative to the slice header. CuQpOffset Cb and CuQpOff set Cr is Qp' Cb and Qp' Cr is the offset used to derive the transformation The bitstream for the unit can be obtained.
[0258] Also, for example, the inverse quantization process for the transform coefficients is performed using the following parameters: It can be done.
[0259] The top-left sample of the current luma transform block relative to the top-left luma sample of the current picture The relative coordinates of the luma coordinates (xTbY, yTbY)
[0260] - Variable nTbW representing the width of the transformation block
[0261] - Variable nTbH representing the height of the transformation block
[0262] - Variable cIdx that represents the color component of the current block
[0263] The output of this process may be an array d of scaled transform coefficients, where The size can be (nTbW) × (nTbH). The individual components that make up this are d[x] It can be identified by [y].
[0264] For this purpose, the quantization parameter qP can be derived as follows. In this case, qP can be derived as follows:
[0265] [Formula 8] qP=Qp′ Y
[0266] Otherwise, if TuCResMode[xTbY][yTbY] has the value 2 , which can be derived as the following formula.
[0267] [Formula 9] qP=Qp′ CbCr
[0268] Otherwise, if the value of cIdx is 1, qP can be derived as follows:
[0269] [Formula 10] qP=Qp′ Cb
[0270] Otherwise, if the value of cIdx is 2, qP can be derived as follows:
[0271] [Formula 11] qP=Qp′ Cr
[0272] Then, the quantization parameter qP can be updated as follows: nTsFlag and bdShift can be derived as follows. For example, If the value of rm_skip_flag[xTbY][yTbY][cIdx] is 0 ( For example, if the transform is not skipped for the current transform block, the following formula is used: Can lead.
[0273] [Formula 12] qP=qP-(cu_act_enabled_flag[xTbY][yTbY]5 :0) rectNonTsFlag=0 bdShift=10
[0274] Instead, transform_skip_flag[xTbY][yTbY][ If the value of [cIdx] is 1 (for example, a transformation is skipped for the current transformation block), In this case, the formula can be derived as follows:
[0275] [Formula 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] where QpPrimeTsMin is the maximum allowed value when the conversion skip mode is applied. This can represent the minimum quantization parameter value that is to be used. This can be determined to be a predetermined constant or Alternatively, it may be derived from a syntax element in the bitstream relating to this.
[0277] Here, the suffixes Y, Cb, and Cr represent the G, B, and R color components in the RGB color model. or it can represent the Y, Cg, Co color components in the YCgCo color model.
[0278] BDPCM(Block Difference Pulse Code Module Overview of the
[0279] An image encoding device and an image decoding device according to an embodiment of the present invention perform differential encoding of a residual signal. For example, the image coding apparatus may perform the following for the residual signal of the current block: By subtracting the prediction signal from the residual signal, the residual signal can be coded. The residual signal of the current block is added to the prediction signal by the residual signal of the current block. The image encoding device and the image decoding device according to the embodiment of the present invention are By applying BDPCM (described later), the residual signal is differentially encoded. can be done.
[0280] The BDPCM according to the present disclosure is a quantized residual domain The quantized residual domain can be used. The domain is the quantized residual signal (or the quantized residual coefficients). When BDPCM is applied, the quantized residual signal is converted 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. Alternatively, if the prediction direction of BDPCM is vertical, then intra-frame coding can be performed. The prediction mode is determined as the vertical prediction direction mode, and the prediction block of the current block is in the vertical direction. It can be generated by intra prediction. When horizontal intra prediction is applied, If the pixel value is not included in the current block's row, the pixel value is added to the left of the current block. The predicted sample value of the sample thus obtained can be determined as the vertical intra-sample value. When prediction is applied, the values of the pixels adjacent to the top of the current block are It can be determined as the predicted sample value of the sample included in the column. If BDPCM is applied to the current block, a prediction block is generated for the current block. The method can be performed in an image encoding device and an image decoding device alike.
[0283] When BDPCM is applied to a current block, the image coding apparatus By subtracting the predicted block, a register containing the residual samples of the current block is obtained. The image coding device can generate a residual block. After quantizing the block, the quantized residual sample and the prediction of the quantized residual sample are The difference (or delta) between the predictor and the The image decoding device can perform the following operations on the difference value and the predictor reconstructed from the bit stream. The quantized residual samples of the current block are obtained based on the Then, the image decoding device can generate a quantized residual block of the image. The quantized residual block is inversely quantized and then added to the predicted block. , the block can now be restored.
[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 BDPCM prediction is done on the quantized residual samples of Figure 29 and is corrected. Modified quantized residual samples A modified quantized residual block of size M × N containing al samples r' The modified quantized residual block (R') is generated. can be achieved.
[0287] When the prediction direction of BDPCM is horizontal, the (i,j) coordinate in the current block is corrected. The value of the quantized residual sample (r' i,j ) can be calculated using the following formula:
[0288]
number
[0289] As shown in Equation 14, when the prediction direction of BDPCM is horizontal, the (0,j) coordinate 'r' 0,j The value is the quantized residual sample value Q(r 0,j ) is assigned as is r' for other (i,j) coordinates i,j The value is the quantized residual sample of the (i,j) coordinate. The value of Q(r i,j ) and the quantized residual sample value Q(r i-1,j ) is derived as the difference value between the quantized residual sample of the (i,j) coordinate. The value of Q(r i,j ), we use the quantized residual sample of the (i-1,j) coordinate as the Pull value Q(r i-1,j ) as the predicted value, the difference value calculated is the corrected quantization level. Dual sample value (r' i,j ) and then r' i,jEncode the value.
[0290] When the prediction direction of BDPCM is vertical, the (i,j) coordinate in the current block is corrected. The value of the quantized residual sample (r' i,j ) can be calculated using the following formula:
[0291]
number
[0292] As shown in Equation 15, when the prediction direction of BDPCM is vertical, the (i, 0) coordinate 'r' i,0 The value is the quantized residual sample value Q(r i,0 ) is assigned as is r' for other (i,j) coordinates i,j The value is the quantized residual sample of the (i,j) coordinate. The value of Q(r i,j ) and the quantized residual sample value Q(r i,j-1 ) is derived as the difference value between the quantized residual sample of the (i,j) coordinate. The value of Q(r i,j ), we use the quantized residual sample of the (i,j-1) coordinate as the Pull value Q(r i,j-1 ) as the predicted value, the difference value calculated is the corrected quantization level. Dual sample value (r' i,j ) and then r' i,j Encode the value.
[0293] As mentioned before, the neighboring quantized residual sample values are used as predictors to estimate the current The process of modifying the quantized residual sample values can be called BDPCM prediction.
[0294] Finally, the image coding apparatus includes a modified quantized residual sample. The quantized residual block can be encoded and transmitted to an image decoding device. As described above, no transformation is performed on the modified quantized residual block. stomach.
[0295] FIG. 30 shows a modified quantized residual block generated by performing the BDPCM of the present disclosure. Indicates a lock.
[0296] In Fig. 30, Horizontal BDPCM is a method for predicting the horizontal direction of BDPCM. When the direction is the direction, the modified quantized residual block generated according to Equation 14 is Vertical BDPCM indicates that the prediction direction of BDPCM is vertical. When Shows.
[0297] FIG. 31 shows a method for encoding a current block by applying BDPCM in an image encoding device. 1 is a flowchart showing the procedure.
[0298] First, when a current block to be coded is input (S3110), A prediction can be performed on the block to generate a predicted block (S3120). The prediction block of step S3120 is an intra prediction block, and the intra prediction mode is , can be determined as described above. A residual block of the current block can be generated (S3130). For example, The image coding device converts the current block (the value of the original sample) into a predicted block (the value of the predicted sample). The residual block (residual sample value) is subtracted from the residual block (residual sample value) For example, by executing step S3130, the register in FIG. A dual block can be generated. The residual block is quantized (S3140), and a quantized residual block is generated. Then, BDPCM prediction can be performed on the quantized residual block (S 3150). The quantized residual block generated as a result of step S3140 is The block is the quantized residual block in FIG. 29, and the BDPCM prediction block in step S3150 As a result of the measurement, the modified quantized residual block shown in FIG. 30 is generated according to the prediction direction. The BDPCM prediction in step S3150 can be explained with reference to FIG. 29 and FIG. 30. Since the above explanation has been given, a detailed explanation will be omitted. The dual block can be encoded (S3160) to generate a bitstream. In this case, the transformation for the modified quantized residual block is skipped. This can be done.
[0299] The BDPCM operation in the image coding apparatus described with reference to FIGS. This can be done in reverse in the image decoder.
[0300] FIG. 32 shows a procedure for recovering a current block by applying BDPCM in an image decoding device. 1 is a flowchart showing the process.
[0301] The image decoding device extracts information (image information) necessary for restoring the current block from the bit stream. The information required to restore the current block is Information about the lock prediction (prediction information), information about the residual of the current block (reg The image decoding device may include information on the current block, such as dual information. Based on the information, a prediction can be made for the current block to generate a predicted block ( S3220). The prediction for the current block is intra prediction. In FIG. 32, the predicted block for the current block is The step of generating a residual block (S3220) is to generate a residual block of the current block. However, this is shown to be performed prior to steps S3230 to S3250. Not limited to, after the residual block of the current block is generated, A predicted block can be generated, or a residual block of the current block can be generated. The predicted block of the current block can be generated simultaneously.
[0302] The image decoding device parses the residual information of the current block from the bit stream. By doing so, a residual block of the current block can be generated (S3 230). The residual block generated in step S3230 is , may be a modified quantized residual block.
[0303] The image decoding device performs BDPC on the modified quantized residual block in FIG. M prediction is performed (S3240) to generate the quantized residual block shown in FIG. The BDPCM prediction in step S3240 can be performed using the modified quantized residuals in FIG. This is a procedure for generating the quantized residual block of FIG. 29 from the block, so the image code This corresponds to the reverse process of step S3150 performed by the image decoding device. The decoder receives differential coding mode information (e.g., bdpc m_flag) is applied to the residual coefficient differential coding by BDPCM. By indicating the differential encoding mode to be performed, differential encoding can be performed on the residual block. The image decoding device can derive a modified residual block by , using the corrected residual coefficients and the predicted residual coefficients, and modify at least one of the residual coefficients to be modified. The predicted residual coefficients can be obtained by subtracting the differential code from the bitstream. The direction is determined based on the prediction direction indicated by the encoding direction information (e.g., bdpcm_dir_flag). The differential encoding direction information can be either the vertical direction or the horizontal direction. The image decoding apparatus can indicate the direction of the residual coefficients to be corrected and the prediction level. and allocating the sum of the residual coefficient and the residual coefficient to the position of the residual coefficient to be corrected. Here, the predicted residual coefficients are the ones to be corrected in the order according to the prediction direction. It may be the coefficient immediately adjacent to the residual coefficient.
[0304] The BDPCM prediction in step S3240 performed by the image decoding apparatus will be described in more detail below. The decoder performs the reverse of the calculations previously performed by the encoder. , the quantized residual sample Q(r i,j ) can be calculated. For example, BDPC When the prediction direction of M is the horizontal direction, the image decoding apparatus uses Equation 16 to obtain the modified A quantized residual block can be generated from the quantized residual block.
[0305]
number
[0306] As defined in Equation 16, the value of the quantized residual sample at the (i,j) coordinate is Q(r i,j ) is the modified quantized residue from (0,j) coordinate to (i,j) coordinate. It can be calculated by adding up the values of the sample.
[0307] Alternatively, the quantized residue of the (i, j) coordinate can be calculated by using Equation 17 instead of Equation 16. The sample value Q(r i,j ) can be calculated.
[0308]
number
[0309] Equation 17 is the inverse process of Equation 14. According to Equation 17, (0,j ) coordinate quantized residual sample value Q(r 0,j ) is the corrected version of the (0,j) coordinate Quantized residual sample value r' 0,j The other (i,j) coordinates are derived as Q(r i,j ) is the value r' of the corrected quantized residual sample at the (i,j) coordinate i,j and The quantized residual sample value Q(r i-1,j ) as a sum of That is, the quantized residual sample value Q(r i-1,j ) Using as a predicted value, the difference value r' i,j By adding up the quantized residual samples, Q(r i,j ) can be derived.
[0310] When the prediction direction of BDPCM is the vertical direction, the image decoding apparatus uses Equation 18 to obtain Generating a quantized residual block from the modified quantized residual block can be done.
[0311]
number
[0312] As defined in Equation 18, the value of the quantized residual sample at the (i,j) coordinate is Q(r i,j ) is the corrected quantized residue from coordinate (i,0) to coordinate (i,j). It can be calculated by adding up the values of the sample.
[0313] Alternatively, the quantized residue of the (i, j) coordinate can be calculated by using Equation 19 instead of Equation 18. The sample value Q(r i,j ) can be calculated.
[0314]
number
[0315] Equation 19 is the inverse process of Equation 15. According to Equation 19, (i,0 ) coordinate quantized residual sample value Q(r i,0 ) is the corrected version of the (i,0) coordinate Quantized residual sample value r' i,0 The other (i,j) coordinates are derived as Q(r i,j ) is the value r' of the corrected quantized residual sample at the (i,j) coordinate i,j , and the quantized residual sample value Q(r i,j-1 ) and the sum of That is, the value Q(r i,j- 1) is used as the predicted value, and the difference value r' i,j By adding up the quantized residual sample, Pull value Q(r i,j ) can be derived.
[0316] Step S3240 is performed according to the above-mentioned method, and the quantized residual samples are When the quantized residual block is generated, the image decoding apparatus By performing inverse quantization on the current block (S3250), the current block is When BDPCM is applied, as mentioned above, The transform for the current block is skipped, so the transform for the inverse quantized residual block is The inverse transformation can be skipped.
[0317] Then, the image decoding apparatus performs the process of decoding the predicted block generated in step S3220 and the The current block is restored based on the residual block generated by the S3250. For example, the image decoding apparatus can generate a predicted block (a predicted sample). The residual block (residual sample value) is added to the residual block (residual sample value) to obtain the For example, the current block (the value of the restored sample) can be restored by The dequantized quantized sample Q -1 (Q(r i,j )) will be added The reconstructed sample value can be generated by applying BDPCM to the current block. Differential encoding mode information indicating whether the differential encoding mode is to be used or not is signaled via the bitstream. In addition, if BDPCM is applied to the current block, the predicted Differentially encoded direction information indicating the direction of travel is signaled via the bit stream. If BDPCM is not applied to the current block, the differential encoding direction information is It may not be signaled.
[0318] 33 to 35 show syntax for signaling information related to BDPCM. FIG.
[0319] FIG. 33 illustrates a sequence parameter diagram for signaling BDPCM information according to one embodiment. FIG. 1 illustrates the syntax of a data set. At least one access unit with 0 as the access unit ID t, AU) or provided via external means. P can be set to be used before it is referenced in the decryption process. An SPS NAL unit that contains an S RBSP is a PPS NAL unit that references it. It is set to have the same nuh_layer_id as the nuh_layer_id of In CVS, you can use the specific sps_seq_parameter_set_ All SPS NAL units with the id value can be set to have the same content. The seq_parameter_set_rbsp() syntax in Figure 33 includes the following: The above-mentioned sps_transform_skip_enable_flag and sps_bdpcm_enabled_flag is disclosed.
[0320] The syntax element sps_bdpcm_enabled_flag specifies whether intracode The intra_bdpcm_flag is provided in the CU syntax for the For example, sps_bdpcm_enabled_fla The first value of g (e.g., 0) is the intra_bdp for an intra coding unit. It can be indicated that cm_flag is not provided in the CU syntax. The second value of dpcm_enabled_flag (e.g., 1) enables intra-coding unit. For units, intra_bdpcm_flag can be provided in the CU syntax. On the other hand, if sps_bdpcm_enabled_flag is provided, If not, the value of sps_bdpcm_enabled_flag is the first value (for example, 0). can be set to
[0321] Figure 34 shows the syntax for signaling whether restrictions on BDPCM apply. FIG. 1 illustrates an embodiment of a method for encoding / decoding a video signal. The conditions are specified using the general_constraint_info() syntax. Using the syntax of FIG. 34, the sps_bd Syntax indicating whether the value of pcm_enabled_flag should be set to 0. The no_bdpcm_constraint_flag element is signaled. For example, the first value of no_bdpcm_constraint_flag (e.g. 0) can be used to indicate that no such restrictions apply. If the value of onstraint_flag is the second value (for example, 1), sps_bdpc 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. For example, the first value of intra_bdpcm_dir_flag ( For example, 0) can indicate that the BDPCM prediction direction is horizontal. The second value of a_bdpcm_dir_flag (e.g., 1) indicates that the BDPCM prediction direction is vertical. It can be shown that it is a direction.
[0326] On the other hand, the value of the variable BdpcmDir[x][y] is x=x0..x0+cbWidth -1 and y=y0..y0+cbHeight-1, intra_bdpcm_ Can be set to the value of dir_flag.
[0327] Intra prediction for chroma blocks
[0328] If intra prediction is performed on the current block, the luma component block ( The prediction is performed for the chroma component lock (chroma block) and the chroma component lock (chroma block). In this case, the intra prediction mode for the chroma block can be The intra prediction mode can be set separately from the intra prediction mode for the block.
[0329] For example, the intra prediction mode for a chroma block is The intra-chroma prediction mode information may be indicated based on intra chroma prediction mode information. It is signaled in the form of the _chroma_pred_mode syntax element. As an example, the intra-chroma prediction mode information can be a Planar mode, C mode, vertical mode, horizontal mode, D M (Derived Mode), CCLM (Cross-component lin It can refer to any one of the Plain ear model modes. The nar mode is the 0th intra prediction mode, the DC mode is the 1st intra prediction mode, The vertical mode is intra prediction mode No. 26, and the horizontal mode is intra prediction mode No. 10. DM can also be called direct mode. CCLM can also be called LM (linear model). It can contain one of L_CCLM, T_CCLM, or LT_CCLM. .
[0330] On the other hand, DM and CCLM use the information of luma blocks to predict chroma blocks. The DM is an intra prediction mode for the luma component. The same intra prediction mode is applied as the intra prediction mode for the chrominance component. The CCLM can also indicate the mode in which a prediction block for a chroma block is to be used. After subsampling the recovered samples of the luma block during the process of generating the block, The subsampled samples were derived by applying the CCLM parameters α and β. and indicating an intra prediction mode in which the sample is used as a prediction sample for the chroma block. This can be done.
[0331] Overview of CCLM (Cross-component linear model) mode Essential
[0332] As mentioned before, CCLM modes can be applied to chroma blocks. , the correlation between the luma block and the chroma block corresponding to the luma block (correlation It is an intra prediction mode using the quantization (quantization) method, which uses the surrounding samples and the quantization This is done by deriving a linear model based on the surrounding samples of the roma block. Based on the linear model and the reconstructed samples of the luma block, Prediction samples can be derived.
[0333] Specifically, if the CCLM mode is applied to the current chroma block, The surrounding samples used for intra prediction of the current luma block and the The parameters for the linear model can be derived based on the surrounding samples used. For example, a linear model for CCLM can be expressed based on the following equation:
[0334]
number
[0335] Here, pred c (i,j) is the (i,j) of the current chroma block in the current CU The predicted sample of the coordinates can be shown. L '(i,j) is the current For example, the reconstructed sample of the (i, j) coordinate of the current luma block can be represented as c L '(i,j) is the down-sampling of the current luma block. The linear model coefficients α and β are the signal It can be sampled, but can also be derived from surrounding samples.
[0336] Joint coding of residuals (Joint CbCr)
[0337] In the encoding / decoding process according to one embodiment, the chroma residual is encoded / decoded together. This can be called joint coding of residuals, and the joint CbC It can also be called Joint CbCr (Joint CbCr). The activation is signaled at the transform unit level by the joint coding mode signaling flag. The flag tu_joint_cbcr_residual_flag is used to signal The selected coding mode can then be determined by the chroma CBF. The flag tu_joint_cbcr_residual_fla g shall be present if at least one chroma CBF for the conversion unit has a value of 1. Normal clock signaling for regular chroma-residual encoding modes is possible. Chroma QP offset value and chroma QP offset value for CbCr joint coding mode The chroma QP offset value to indicate the difference is added to the signal via the PPS or slice header. Such QP offset values can be nulled by co-chroma residuals. It can be used to derive a chroma QP value for the block using the coding mode.
[0338] The corresponding co-chroma coding mode, mode 2 in the table below, is active for the transform unit. If the chroma QP offset is set, the chroma QP offset is set during the quantization and decoding of the transform unit. The target is applied luma-derived chroma QP ma QP).
[0339] For other modes such as modes 1 and 3 in the table below, the chroma QP is the normal C It can be derived in the same manner as obtained for the b or Cr block. The process of recovering the chroma residuals (resCb and resCr) from the blocks is as follows: When this mode is activated, one single co-chroma register can be selected by The resJointC[x][y] in the table below is signaled. , a residual block for Cb, and a residual block for Cb and Cr resCr is written to tu_cbf_cb, tu_cbf_cr, and the slice header. The derivation can be derived by taking into account information such as CSign, the encoded value of the
[0340] In the coding device, the joint chroma components can be derived as follows: Therefore, resJointC{1,2} can be generated in the following order: In the case of single residual with reconstruction C b=C, Cr=CSign*C), the joint residual can be determined according to the following formula:
[0341] [Formula 21] resJointC[x][y]=(resCb[x][y]+CSign*resC r[x][y]) / 2.
[0342] Otherwise, if the mode is 1 (single residual with reconstruction Cb=C, Cr=(CSign*C) / 2), joint register The dual can be determined according to the following formula:
[0343] [Formula 22] resJointC[x][y]=(4*resCb[x][y]+2*CSign* resCr[x][y]) / 5.
[0344] Otherwise, if the mode is 3 (single residual with reconstruction Cr=C, Cb=(CSign*C) / 2), joint register The dual can be determined according to the following formula:
[0345] [Formula 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 chroma residuals. CSign is specified in the slice header. resJointC[][] indicates the transmitted residue code value +1 or -1. The mode in the above table indicates TuCResMode, which will be described later. The three joint chroma coding modes in are only supported for I slices. For slices, only mode 2 is supported. Therefore, for P and B slices, The syntax element tu_joint_cbcr_residual_flag specifies two Chroma cbf (e.g. tu_cbf_cb and tu_cbf_cr) values are both 1 On the other hand, tu_cbf_luma and tu_cbf_cb can only be provided if Transformation depth can be removed in context modeling.
[0348] Example 1: QP update method using ACT Qp_offset
[0349] As described above, the QP can be updated to apply the ACT. The QP update has various problems. For example, when using the method mentioned above, It is not possible to set different ACT Qp offsets for different color components. The calculated qP value can also have a negative value. Therefore, in the following examples, the color component values How to apply clipping to the derived Qp value based on the ACT QP offset value Explain the law.
[0350] In one embodiment, the quantization parameter qP can be derived as follows:
[0351] First, when the value of cIdx is 0, the qP and ACT Qp offsets are calculated as follows: This can be induced.
[0352] [Formula 24] qP=Qp'Y ActQpOffset=5
[0353] Otherwise, if TuCResMode[xTbY][yTbY] has the value 2 , qP and ACT Qp offset can be derived as follows:
[0354] [Formula 25] qP=Qp' CbCr ActQpOffset=5
[0355] Otherwise, if the value of cIdx is 1, the qP and ACT Qp offsets are It can be derived like an equation.
[0356] [Formula 26] qP=Qp' Cb ActQpOffset=3
[0357] The quantization parameter qP can be updated as follows:
[0358] transform_skip_flag[xTbY][yTbY][cIdx] value When is 0, qP can be derived as follows:
[0359] [Formula 27] qP=Max(0,qP-(cu_act_enabled_flag[xTbY][ yTbY]ActQpOffset:0)
[0360] Instead, transform_skip_flag[xTbY][yTbY][ When the value of cIdx is 1, qP can be derived as follows:
[0361] [Formula 28] qP=Max(0,Max(QpPrimeTsMin,qP)-(cu_act_e enabled_flag[xTbY][yTbY]?ActQpOffset:0))
[0362] In another embodiment, transform_skip_flag[xTbY][yTb If the value of [Y][cIdx] is 1, qP is QpPri instead of 0 as shown in the formula below. It can be clipped using the value of meTsMin.
[0363] [Formula 29] qP=Max(QpPrimeTsMin,qP-(cu_act_enabled_ flag[xTbY][yTbY]?ActQpOffset:0)
[0364] Meanwhile, in another embodiment, the quantization parameter qP can be derived as follows:
[0365] First, when the value of cIdx is 0, the qP and ACT Qp offsets are calculated as follows: This can be induced.
[0366] [Formula 30] qP=Qp' Y ActQpOffset=5
[0367] Otherwise, if TuCResMode[xTbY][yTbY] has the value 2 , qP and ACT Qp offset can be derived as follows:
[0368] [Formula 31] qP=Qp' CbCr ActQpOffset=5
[0369] Otherwise, if the value of cIdx is 1, the qP and ACT Qp offsets are It can be derived like an equation.
[0370] [Formula 32] qP=Qp' Cb ActQpOffset=5
[0371] Otherwise, if the value of cIdx is 2, the qP and ACT Qp offsets are It can be derived like an equation.
[0372] [Formula 33] qP=Qp' Cr ActQpOffset=3
[0373] The quantization parameter qP can be updated as follows:
[0374] transform_skip_flag[xTbY][yTbY][cIdx] value When is 0, qP can be derived as follows:
[0375] [Formula 34] qP=Max(0,qP-(cu_act_enabled_flag[xTbY][ yTbY]ActQpOffset:0)
[0376] Instead, transform_skip_flag[xTbY][yTbY][ When the value of cIdx is 1, qP can be derived as follows:
[0377] [Formula 35] qP=Max(0,Max(QpPrimeTsMin,qP)-(cu_act_e enabled_flag[xTbY][yTbY]?ActQpOffset:0))
[0378] In another embodiment, transform_skip_flag[xTbY][yTb If the value of [y][cIdx] is 1, qP is QpP instead of 0, as shown in the following formula. It can be clipped using the rimeTsMin value.
[0379] [Formula 36] qP=Max(QpPrimeTsMin,qP-(cu_act_enabled_ flag[xTbY][yTbY]?ActQpOffset:0))
[0380] However, in another embodiment, the quantization parameter qP can be derived as follows:
[0381] First, when the value of cIdx is 0, the qP and ACT Qp offsets are calculated as follows: This can be induced.
[0382] [Formula 37] qP=Qp′ Y ActQpOffset=-5
[0383] Otherwise, if TuCResMode[xTbY][yTbY] has the value 2 , qP and ACT Qp offset can be derived as follows:
[0384] [Formula 38] qP=Qp′ CbCr ActQpOffset=-5
[0385] Otherwise, if the value of cIdx is 1, the qP and ACT Qp offsets are It can be derived like an equation.
[0386] [Formula 39] qP=Qp′ Cb ActQpOffset=-5
[0387] Otherwise, if the value of cIdx is 2, the qP and ACT Qp offsets are It can be derived like an equation.
[0388] [Formula 40] qP=Qp′ Cr ActQpOffset=-3
[0389] The quantization parameter qP can be updated as follows:
[0390] transform_skip_flag[xTbY][yTbY][cIdx] value When is 0, qP can be derived as follows:
[0391] [Formula 41] qP=Max(0,qP+(cu_act_enabled_flag[xTbY][ yTbY]?ActQpOffset:0)
[0392] Instead, transform_skip_flag[xTbY][yTbY][ When the value of cIdx is 1, qP can be derived as follows:
[0393] [Formula 42] qP=Max(0,Max(QpPrimeTsMin,qP)+(cu_act_e enabled_flag[xTbY][yTbY]?ActQpOffset:0))
[0394] On the other hand, in another embodiment, transform_skip_flag[xTbY][ If the value of [yTbY][cIdx] is 1, qP is set to 0 instead of 1, as shown in the following formula: Can be clipped using the value of QpPrimeTsMin.
[0395] [Formula 43] qP=Max(QpPrimeTsMin,qP+(cu_act_enabled_ flag[xTbY][yTbY]?ActQpOffset:0))
[0396] In the above description, Y, Cb, and Cr can represent three color components. For example, In the ACT transform, Y can correspond to C0. Cb corresponds to C1 or Cg. And Cr can correspond to C2 or Co.
[0397] In addition, the ACTQpOffset values -5, -5, and -3 for the three color components are may be replaced with the value of .times. ...
[0398] Example 2: Signaling QP Offset Adjustment to ACT
[0399] In the above embodiment, the ACT QP offset adjustment is performed for the Y, Cg, and Co components. In this embodiment, the ACT QP adjustment offset is fixed at -5, -5, and -3. To provide more flexibility to clients, the ACT QP offset can be signaled. The ACT QP offset is signaled as a parameter in the PPS. It can be ringed.
[0400] In one embodiment, qp_offset is calculated according to the syntax table of FIG. The syntax elements for this are:
[0401] Syntax element pps_act_qp_offsets_present_flag indicates whether the syntax element for ACT QP offset is present in the PPS. For example, pps_act_qp_offsets_present_f The lag is expressed by the syntax elements pps_act_y_qp_offset and pps _act_cb_qp_offset and pps_act_cr_qp_offset It can indicate whether it is signaled as PPS or not.
[0402] For example, the first value of pps_act_qp_offsets_present_flag (For example, 0) is pps_act_y_qp_offset, pps_act_cb_q p_offset and pps_act_cr_qp_offset are PPS syntax It may be indicated that it is not signaled via the table.
[0403] The second value of pps_act_qp_offsets_present_flag (for example 1) is pps_act_y_qp_offset, pps_act_cb_qp_of fset and pps_act_cr_qp_offset are in the PPS syntax table. It can be shown that the signaling is performed via
[0404] pps_act_qp_offsets_present_flag is bitstream If the offset is not provided by the system, The lag can be induced to a first value (e.g., 0). For example, ACT can be applied. A flag indicating whether or not the If p_flag) has a first value (e.g., 0) indicating that ACT is not applied, ps_act_qp_offsets_present_flag is the first value (e.g. 0) can be forced to have
[0405] Syntax elements pps_act_y_qp_offset_plus5, pps_a ct_cb_qp_offset_plus5 and pps_act_cr_qp_off set_plus3 is the value of the syntax element cu_act_enabled_flag If is a second value (e.g., 1) indicating that ACT applies to the current coding unit The offset applied to the quantization parameter value qP for each of the luma, Cb, and Cr components. can be used to determine the offset. 5, pps_act_cb_qp_offset_plus5 and pps_act_cr If the _qp_offset_plus3 values are not present in the bitstream, then each value is 0. can be set to.
[0406] The syntax element sets the value of the variable PpsActQpOffsetY to pps_ The variable Pp can be determined as act_y_qp_offset_plus5-5. The value of sActQpOffsetCb is pps_act_cb_qp_offset_p lus5-5 and the variable PpsActQpOffsetC The value of r is determined as pps_act_cb_qp_offset_plus3-3. This can be done.
[0407] Here, ACT is an orthonormal transformation ), so 5, 5, and 3 can be applied as the constant offset values to be subtracted. In an embodiment, for bitstream consistency, PpsActQpOffsetY, The values of PpsActQpOffsetCb and PpsActQpOffsetCr are - 12 to 12. And, depending on the embodiment, the Qp offset The values can be replaced with other constant values other than 5, 5, and 3.
[0408] In another embodiment, the QP can be adjusted using a more flexible ACT_QP offset. In the following example, the ACT QP offset is signaled via the bitstream. This will explain an example where the ACT QP offset has a wider offset range. Therefore, the QP updated with the ACT QP offset can be used Because the probability of being out of the range is higher, the updated QP is subject to upper and lower bounds. (More detailed examples are disclosed in Examples 6 and 7 below.) It has been done.)
[0409] Variables PpsActQpOffsetY and PpsActQ indicating the ACT QP offset pOffsetCb, PpsActQpOffsetCr, and PpsActQpOff setCbCr uses the ACT QP offset signaled via the bitstream. It can be a value derived using a bitstream or a preset constant. For the purpose of psActQpOffsetCr and PpsActQpOffsetCbCr are -1 It can have a value from 2 to +12.
[0410] If the QP offset value is signaled instead of using a fixed value, and If the value has a value between -12 and 12, it is induced to avoid QPs with negative values. In addition to clipping the lower bound of the derived QP value, we also clip the upper bound of the induced QP value. You also need to map it.
[0411] To prevent qP from having negative values, the minimum value of qP may be forced to 0. Alternatively, the minimum value of qP can be determined by a signaled syntax element. For example, the minimum value of qP can be set to the value that is used when the transform skip mode is applied. indicates the value of qP that is applied when conversion skip mode is applied for signaling purposes. The syntax element QpPrimeTsMin can be used to determine the maximum value of qP. The maximum value allowed (e.g. 63) or determined by the syntax element signaled. This can be limited to the maximum available qP value.
[0412] In one embodiment according to the above, the quantization parameter qP can be derived as follows: If the value of cIdx is 0, the qP and ACT Qp offsets are derived as follows: Can lead.
[0413] [Formula 44] qP=Qp′ Y ActQpOffset=PpsActQpOffsetY
[0414] Otherwise, if TuCResMode[xTbY][yTbY] has the value 2 , qP and ACT Qp offset can be derived as follows:
[0415] [Formula 45] qP=Qp′ CbCr ActQpOffset=PpsActQpOffsetCbCr
[0416] Otherwise, if the value of cIdx is 1, the qP and ACT Qp offsets are It can be derived like an equation.
[0417] [Formula 46] qP=Qp′ Cb ActQpOffset=PpsActQpOffsetCb
[0418] Otherwise, if the value of cIdx is 2, the qP and ACT Qp offsets are It can be derived like an equation.
[0419] [Formula 47] qP=Qp′ Cr ActQpOffset=PpsActQpOffsetCr
[0420] In one embodiment, the quantization parameter qP can be updated as follows: transform_skip_flag[xTbY][yTbY][cIdx] value When is 0, qP can be derived as follows:
[0421] [Formula 48] qP=Clip3(0,63,qP-(cu_act_enabled_flag[x TbY][yTbY]?ActQpOffset:0)
[0422] Instead, transform_skip_flag[xTbY][yTbY][ When the value of cIdx is 1, qP can be derived as follows:
[0423] [Formula 49] qP=Clip3(0,63,Max(QpPrimeTsMin,qP)-(cu_ act_enabled_flag[xTbY][yTbY]?ActQpOffset :0)
[0424] In another embodiment, transform_skip_flag[xTbY][yTb If the value of [Y][cIdx] is 1, the minimum value of qP is instead of 0, as shown in the following formula: can be clipped using the value of QpPrimeTsMin.
[0425] [Formula 50] The quantization parameter qP can be updated as follows:
[0426] transform_skip_flag[xTbY][yTbY][cIdx] value When is 0, qP can be derived as follows:
[0427] qP=Clip3(0,63,qP-(cu_act_enabled_flag[x TbY][yTbY]?ActQpOffset:0)
[0428] Instead, transform_skip_flag[xTbY][yTbY][ When the value of cIdx is 1, qP can be derived as follows:
[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] transform_skip_flag[xTbY][yTbY][cIdx] value When is 0, qP can be derived as follows:
[0432] [Formula 51] qP=Clip3(0,63+QpBdOffset,qP+(cu_act_ena bled_flag[xTbY][yTbY]?ActQpOffset:0))
[0433] Instead, transform_skip_flag[xTbY][yTbY][ When the value of cIdx is 1, qP can be derived as follows:
[0434] [Formula 52] qP=Clip3(0,63+QpBdOffset,Max(QpPrimeTsM in,qP)+(cu_act_enabled_flag[xTbY][yTbY]? ActQpOffset:0)
[0435] In another embodiment, transform_skip_flag[xTbY][yTb If the value of [Y][cIdx] is 1, the minimum value of qP is instead of 0, as shown in the following formula: can be clipped using the value of QpPrimeTsMin.
[0436] [Formula 53] The quantization parameter qP can be updated as follows: transform_skip_flag[xTbY][yTbY][cIdx] value When is 0, qP can be derived as follows: qP=Clip3(0,63+QpBdOffset,qP+(cu_act_ena bled_flag[xTbY][yTbY]?ActQpOffset:0))
[0437] Instead, transform_skip_flag[xTbY][yTbY][ When the value of cIdx is 1, qP can be derived as follows:
[0438] qP=Clip3(QpPrimeTsMin,63+QpBdOffset,qP+ cu_act_enabled_flag[xTbY][yTbY]?ActQpOff set:0)
[0439] Example 3: A method for allowing ACT when chroma BDPCM is performed
[0440] In one embodiment, when BDPCM is applied to a luma component block, ACT is However, BDPCM can be applied to encode / decode the block. When applied to a block of data, ACT uses the can be restricted so that it does not apply to
[0441] On the other hand, even if BDPCM is applied to a chroma component block, By applying ACT, the coding performance can be improved. Syntax for applying ACT even when applying BDPCM to component blocks As shown in FIG. 37, the ACT is applied to the current coding unit. Depending on the value of cu_act_enabled_flag, which indicates whether By removing the condition to obtain the BDPCM syntax element, the chroma component block Regardless of whether ACT is applied to a This allows BDCPM encoding to be performed.
[0442] Example 4: Method for applying ACT even when encoding / decoding with CCLM
[0443] Both CCLM and ACT aim to remove unnecessary overlap between components. There are some overlapping areas between LM and ACT, but even after applying all of these, The overlap between CCLM and ACT cannot be completely eliminated. This allows more overlap between components to be removed.
[0444] The following example describes an embodiment in which CCLM and ACT are applied together. The device may first apply CCLM and then ACT when performing the decryption. If ACT is applied to both BDPCM and CCLM for chroma components, this is signaled. The syntax table for linking can be modified as shown in Figure 38. As shown in the syntax table in 38, intra_bdpcm_chroma and Restrictions for signaling syntax elements related to cclm that ACT applies. The if(!c) expression is used to signal whether a syntax element is used or not. u_act_enabled_flag) can be removed from the syntax table.
[0445] Example 5: Flexible ACT Qp application method including joint CbCr
[0446] When ACT mode is applied, the predicted residual is calculated from one color space (e.g., G It can be converted to YCbCr, YCgCo, or YCbCr color space. And the residual of the conversion unit can be encoded in the YCgCo color space. The ACT core transform ( As an example of the transformation kernel, the following transformation kernel described above can be used.
[0447]
number
[0448]
number
[0449] As described in the above formula, C0', C1' and C2' (where C0'=Y , C1'=Cg, C2'=Co) transformations are not normalized. For example, the L2 norm (L2no rm) does not have a value of 1. For example, the L2 norm of the transformation for the individual components is C0' and C For L1' it has a value of about 0.6 and for C2' it has a value of about 0.7. The norm is the square root of the sum of all the squares of the coefficients. For example, C 0'=2 / 4*C0+1 / 4*C1+1 / 4*C2. Therefore, C0' The norm can be calculated as the square root of (2 / 4*2 / 4+1 / 4*1 / 4+1 / 4*1 / 4). Therefore, this can be calculated as the square root of 6 / 16 and is estimated to have a value of approximately 0.6. It can be calculated.
[0450] If a normalized transformation is not applied, the dynamic range of the individual components will be irregular, and This results in degradation of coding performance in conventional video compression systems.
[0451] To compensate for the dynamic range of the residual signal, the dynamic range changes for the individual transform components A QP adjustment can be performed by transmitting a compensating QP offset value. For example, Such an embodiment is not only a general QP adjustment control method for the ACT transform, but also a job This can also be applied to the input CbCr.
[0452] Since the individual color components are coded together, rather than coded independently, The method as described in Example 3 for joint CbCr reduces the dynamic range between the individual color components. Bring about change.
[0453] In the encoding and decoding method according to one embodiment, the ACT QP offset adjustment is set to -5. This can be applied to Y, Cg, and Co in the same way.
[0454] In one embodiment, it provides flexible Qp control for individual components and joint CbCr. For this purpose, different ACT Q values for Y, Cb, Cr and / or joint CbCr are used. It is acceptable to use a Qp offset. The ACT Qp offset value is and / or joint CbCr mode and / or joint CbCr mode The decision can be based on whether
[0455] To express the ACT Qp offset, use ppsActQpOffsetY, pps ActQpOffsetCb, ppsActQpOffsetCr can be used. Then, the joints with CBFs where both the Cb and Cr components have non-zero values are For ACT QP offset in CbCr mode 2, ppsActQpOffsetC bCr can be used. These values (e.g., ppsActQpOffsetY, ppsA ctQpOffsetCb, ppsActQpOffsetCr, ppsActQpOf fsetCbCr) is either predefined or set via the bitstream. The ACT QP offset for joint CbCr mode can be signaled as The bits may be set in other ways or to other values.
[0456] In one embodiment, the ACT Qp offsets for Y, Cb, and Cr are -5, -5, - 3 can be used, and -4 can be used for joint CbCr.
[0457] In another embodiment, the ACT Qp offsets for Y, Cb, and Cr are -5, -4 , -3 can be used, and for joint CbCr modes where the value of tu_cbf_cb is not 0 -3 can be used for this purpose.
[0458] In another embodiment, the ACT QP offset for the joint CbCr mode 2 is For other joint CbCr modes, In this case, the ACT QP offset can use the offset of that component. For example, The quantization parameter qP can be determined as follows. First, if the value of cIdx is 0, The qP and ACT Qp offsets can be derived as follows:
[0459] [Formula 56] qP=Qp′ Y ActQpOffset=ppsActQpOffsetY
[0460] Otherwise, if TuCResMode[xTbY][yTbY] has the value 2 , qP and ACT Qp offset can be derived as follows:
[0461] [Formula 57] qP=Qp′ CbCr ActQpOffset=ppsActQpOffsetCbCr
[0462] Otherwise, if the value of cIdx is 1, the qP and ACT Qp offsets are as follows: It can be derived as a formula.
[0463] [Formula 58] qP=Qp′ Cb ActQpOffset=ppsActQpOffsetCb
[0464] Otherwise, if the value of cIdx is 2, the qP and ACT Qp offsets are It can be derived as a formula.
[0465] [Formula 59] qP=Qp′ Cr ActQpOffset=ppsActQpOffsetCr
[0466] In one embodiment, the quantization parameter qP can be updated as follows:
[0467] transform_skip_flag[xTbY][yTbY][cIdx] value When is 0, qP can be derived as follows:
[0468] [Formula 60] qP=Clip3(0,63+QpBdOffset,qP+(cu_act_ena bled_flag[xTbY][yTbY]?ActQpOffset:0))
[0469] Instead, transform_skip_flag[xTbY][yTbY][ When the value of cIdx is 1, qP can be derived as follows:
[0470] [Formula 61] qP=Clip3(QpPrimeTsMin,63+QpBdOffset,qP+ cu_act_enabled_flag[xTbY][yTbY]?ActQpOff set:0)
[0471] In another embodiment, for joint CbCr mode with tu_cbf_cb !=0, (e.g., for modes 1 and 2) using ppsActQpOffsetCb. Alternatively, the offset for the joint CbCr can be determined using tu_c For joint CbCr modes with bf_cb==0 (e.g., mode 3) If the offset is 1, ppsActQpOffsetCr is used to set the offset for joint CbCr. For example, the above embodiment can be modified as follows: do.
[0472] The quantization parameter qP can be updated as follows. First, if the value of cIdx is 0, , qP and ACT Qp offset can be derived as follows:
[0473] [Formula 62] qP=Qp′ Y ActQpOffset=ppsActQpOffsetY
[0474] Otherwise, if TuCResMode[xTbY][yTbY] has the value 2 , qP can be derived as follows:
[0475] [Formula 63] qP=Qp′ CbCr
[0476] Otherwise, if the value of cIdx is 1, the qP and ACT Qp offsets are It can be derived like an equation.
[0477] [Formula 64] qP=Qp′ Cb ActQpOffset=ppsActQpOffsetCb
[0478] Otherwise, if the value of cIdx is 2, the qP and ACT Qp offsets are It can be derived like an equation.
[0479] [Formula 65] qP=Qp′ Cr ActQpOffset=ppsActQpOffsetCr
[0480] The ACT Qp offset for the joint CbCr mode is If the value of TuCResMode[xTbY][yTbY] is not 0, the following pseudo This can be determined according to the code.
[0481] [Formula 66] if(TuCResMode[xTbY][yTbY] is euqal to 1 or 2) ActQpOffset = ppsActQpOffsetCb; else ActQpOffset = ppsActQpOffsetCr;
[0482] In one embodiment, the quantization parameter qP can be updated as follows: If the value of m_skip_flag[xTbY][yTbY][cIdx] is 0, then q P can be derived using the following formula:
[0483] [Formula 67] qP=Clip3(0,63+QpBdOffset,qP+(cu_act_ena bled_flag[xTbY][yTbY]?ActQpOffset:0))
[0484] Instead, transform_skip_flag[xTbY][yTbY][ When the value of cIdx is 1, qP can be derived as follows:
[0485] [Formula 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, the component index Y If , use ppsActQpOffsetY and the component index is Cb. In some cases, ppsActQpOffsetCb is used and the component index is Cr. In some cases, ppsActQpOffsetCr can be used to derive qP. For example, The quantization parameter qP can be derived as follows.
[0487] First, when the value of cIdx is 0, the qP and ACT Qp offsets are calculated as follows: This can be induced.
[0488] [Formula 69] qP=Qp′ Y ActQpOffset=ppsActQpOffsetY
[0489] Otherwise, if TuCResMode[xTbY][yTbY] has the value 2 , qP and ACT Qp offset can be derived as follows:
[0490] [Formula 70] qP=Qp′ CbCr ActQpOffset=(cIdx==1)?ppsActQpOffsetCb: ppsActQpOffsetCr
[0491] Otherwise, if the value of cIdx is 1, the qP and ACT Qp offsets are It can be derived like an equation.
[0492] [Formula 71] qP=Qp′ Cb ActQpOffset=ppsActQpOffsetCb
[0493] Otherwise, if the value of cIdx is 2, the qP and ACT Qp offsets are It can be derived like an equation.
[0494] [Formula 72] qP=Qp′ Cr ActQpOffset=ppsActQpOffsetCr
[0495] The quantization parameter qP can be updated as follows:
[0496] transform_skip_flag[xTbY][yTbY][cIdx] value When is 0, qP can be derived as follows:
[0497] [Formula 73] qP=Clip3(0,63+QpBdOffset,qP+(cu_act_ena bled_flag[xTbY][yTbY]?ActQpOffset:0))
[0498] Instead, transform_skip_flag[xTbY][yTbY][ When the value of cIdx is 1, qP can be derived as follows:
[0499] [Formula 74] qP=Clip3(QpPrimeTsMin,63+QpBdOffset,qP+ cu_act_enabled_flag[xTbY][yTbY]?ActQpOff set:
[0500] Example 6: Signaling ACT Qp offset with joint CbCr
[0501] In order to provide more flexibility, the ACT QP offset is now passed through the bitstream. The ACT QP offset is signaled in the SPS, PPS, and picture Signaling via a header set, such as a chat header, slice header, or other type The joint CbCr ACT Qp offsets can be signaled separately. may be ringed or derived from the ACT QP offsets for Y, Cb, and Cr. good.
[0502] Without loss of generality, PP An example of a syntax table for signaling the ACT Qp offset in S is shown in Figure 39. As shown in the example of FIG. 39, one ACT Q for the joint CbCr The p offset can be signaled as shown in the syntax table of FIG. This section describes the syntax elements defined in the RFC 2444 standard.
[0503] Syntax element pps_act_qp_offsets_present_flag indicates whether the syntax element for ACT QP offset is present in the PPS. For example, pps_act_qp_offsets_present_f The lag is specified by the syntax element pps_act_y_qp_offset_plus, which will be described later. sX1, pps_act_cb_qp_offset_plusX2, pps_act_ cr_qp_offset_plusX3 and pps_act_cbcr_qp_of It can indicate whether fset_plusX4 is signaled as PPS or not.
[0504] For example, the first value of pps_act_qp_offsets_present_flag (For example, 0) is 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 It can be indicated that X4 is not signaled via the PPS syntax table. do.
[0505] The second value of pps_act_qp_offsets_present_flag (for example 1) 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 P It can be shown that this is signaled via the PS syntax table.
[0506] pps_act_qp_offsets_present_flag is bitstream If the offset is not provided by the system, The lag can be induced to a first value (e.g., 0). For example, ACT can be applied. A flag indicating that the d_flag) has a first value (e.g., 0) indicating that ACT does not apply; pps_act_qp_offsets_present_flag is the first value (e.g. 0 ).
[0507] 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 is the current code for the syntax element cu_act_enabled_flag. If the second value (e.g., 1) indicates that ACT is applied to the conversion unit, then the luma, C b, Cr components and joint CbCr components are quantized as qP. Can be used to determine the offset to be applied. set_plusX1, pps_act_cb_qp_offset_plusX2, p ps_act_cr_qp_offset_plusX3, and pps_act_cbc If the r_qp_offset_plusX4 value is not present in the bitstream, can be set to 0.
[0508] According to the syntax elements, the variable PpsActQpOffset is calculated as follows: Y, PpsActQpOffsetCb, PpsActQpOffsetCr, and Pp The value of sActQpOffsetCbCr can be determined.
[0509] [Formula 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. They may be the same or different values, or only some of them may have the same value.
[0511] In one embodiment, for bitstream consistency, PpsActQpOffset Y, PpsActQpOffsetCb, PpsActQpOffsetCr, and Pps The value of ActQpOffsetCbCr is restricted to have values from -12 to 12. Cut.
[0512] Depending on the determination of the variables, the quantization parameter qP can be determined as follows: If the value of cIdx is 0, the qP and ACT Qp offsets are derived as follows: can.
[0513] [Formula 76] qP=Qp′ Y ActQpOffset=PpsActQpOffsetY
[0514] Otherwise, if TuCResMode[xTbY][yTbY] has the value 2 , qP and ACT Qp offset can be derived as follows:
[0515] [Formula 77] qP=Qp′ CbCr ActQpOffset=PpsActQpOffsetCbCr
[0516] Otherwise, if the value of cIdx is 1, the qP and ACT Qp offsets are It can be derived like an equation.
[0517] [Formula 78] qP=Qp′ Cb ActQpOffset=PpsActQpOffsetCb
[0518] Otherwise, if the value of cIdx is 2, the qP and ACT Qp offsets are It can be derived like an equation. [Formula 79] qP=Qp′ Cr ActQpOffset=PpsActQpOffsetCr
[0519] In another embodiment for signaling the ACT Qp offset, modeA and m Multiple ACTs for different joint CbCr modes identified as odeB The QP offset can be signaled.
[0520] Joint CbCr Mode A is a mode that uses a maximum of 0, such as Mode 1 and Mode 2 in Table 2 above. It is possible to indicate a joint CbCr mode with tu_cbf_cb having a value outside And the joint CbCr mode B has a value of 0, like mode 3 in Table 2 above. It is possible to indicate a joint CbCr mode with tu_cbf_cb. The modified syntax table is shown in FIG. The syntax elements shown in the table are explained below.
[0521] Syntax elements pps_act_y_qp_offset_plusX1, pps_ 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 uses the syntax element cu_act_enabled_flag, which is currently If the second value (e.g., 1) indicates that ACT is applied to the coding unit, the luma , the quantization parameter value q for each of the Cb, Cr components and the joint CbCr component Can be used to determine the offset to be applied to P. 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 If the p_offset_plusX5 values are not present in the bitstream, they are set to 0. It can be set.
[0522] According to the syntax elements, the variable PpsActQpOffset is calculated as follows: Y, PpsActQpOffsetCb, PpsActQpOffsetCr, PpsA ctQpOffsetCbCrModeA and PpsActQpOffsetCbCrM The value of odeB can be determined.
[0523] [Formula 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. may be the same or different, or only some of them may have the same value. In the embodiment, for bitstream consistency, PpsActQpOffsetY, P psActQpOffsetCb, PpsActQpOffsetCr, PpsActQ pOffsetCbCrModeA and PpsActQpOffsetCbCrMode The value of B can be constrained to have values from -12 to 12.
[0525] Depending on the determination of the variables, the quantization parameter qP can be determined as follows: If the value of cIdx is 0, the qP and ACT Qp offsets are derived as follows: can.
[0526] [Formula 81] qP=Qp′ Y ActQpOffset=PpsActQpOffsetY
[0527] Otherwise, if TuCResMode[xTbY][yTbY] has the value 2 , qP can be derived as follows:
[0528] [Formula 82] qP=Qp′ CbCr
[0529] Otherwise, if the value of cIdx is 1, the qP and ACT Qp offsets are as follows: It can be derived as a formula.
[0530] [Formula 83] qP=Qp′ Cb ActQpOffset=PpsActQpOffsetCb
[0531] Otherwise, if the value of cIdx is 2, the qP and ACT Qp offsets are It can be derived as a formula.
[0532] [Formula 84] qP=Qp′ Cr ActQpOffset=PpsActQpOffsetCr
[0533] And the value of cIdx is not 0, but TuCResMode[xTbY][yTbY] If the value of is not 0, the ACT Qp offset can be derived as follows:
[0534] [Formula 85] ActQpOffset=(tu_cbf_cb[xTbY][yTbY])?Pps ActQpOffsetCbCrModeA:PpsActQpOffsetCbCrM odeB
[0535] Meanwhile, in another embodiment, ActQpOffset is TuCResMode[xT When the value of [bY][yTbY] is 2, the following formula may be derived:
[0536] [Formula 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 offset for the signaling is specified as shown in the syntax table in Figure 41. The ACT QP offset for joint CbCr can be calculated by subtracting sActQpOffsetY, PpsActQpOffsetCb and / or PpsAc Can be derived from tQpOffsetCr.
[0538] In one embodiment, the ACT Qp offset for CbCr is PpsActQpO In another embodiment, the CbCr values can be set to the value of ffsetCb. ACT Qp offset is applied to joint CbCr modes with non-zero values for tu_cbf_cb. In the case of the TU_ACTQPOffsetCb mode, it can be set to the same value as PpsActQpOffsetCb, and In the case of joint CbCr mode where the value of cb is 0, PpsActQpOffset It can be set to the same value as tCr, or vice versa.
[0539] Figure 41 shows the syntax table for signaling the ACT Qp offset in PPS. FIG. 42 is a diagram showing another embodiment of the present invention; The ACT QP can be determined as follows. First, if the value of cIdx is 0, then qP and ACT Q The p offset can be derived as follows:
[0540] [Formula 87] qP=Qp′ Y ActQpOffset=PpsActQpOffsetY
[0541] Otherwise, if TuCResMode[xTbY][yTbY] has the value 2 , qP and ACT Qp offset can be derived as follows:
[0542] [Formula 88] qP=Qp′ CbCr ActQpOffset=(cIdx==1)?PpsActQpOffsetCb: PpsActQpOffsetCr
[0543] Meanwhile, in another embodiment, the value of ActQpOffset is determined as follows: It is also possible.
[0544] [Formula 89] ActQpOffset=(tu_cbf_cb[xTbY][yTbY])?Pps ActQpOffsetCb:PpsActQpOffsetCr
[0545] Otherwise, if the value of cIdx is 1, the qP and ACT Qp offsets are It can be derived like an equation.
[0546] [Formula 90] qP=Qp′ Cb ActQpOffset=PpsActQpOffsetCb
[0547] Otherwise, if the value of cIdx is 2, the qP and ACT Qp offsets are It can be derived like an equation.
[0548] [Formula 91] qP=Qp′ Cr ActQpOffset=PpsActQpOffsetCr
[0549] Example 7: Signaling ACT Qp offsets at multiple levels
[0550] In one embodiment, the ACT QP offset is signaled at multiple levels. As in the previous Example 6, the ACT QP offset can be set at one level, such as PPS. In addition to signaling the QP offset at lower levels, the ACT QP offset also (For example, a slice header, a picture header, or a Other types of headers) can be signaled.
[0551] Two examples are described below. Figures 42 and 43 show slice headers and picture headers. In this example, the ACT QP offset is signaled via the In this case, the ACT QP offset can be signaled at multiple levels.
[0552] The syntax elements shown in Figures 42 and 43 will be explained below. pps_slice_act_qp_offsets_present_fla g is the syntax element slice_act_y_qp_offset, slice ce_act_cb_qp_offset, slice_act_cr_qp_offs et and slice_act_cbcr_qp_offset are present in the slice header. It can indicate whether it exists or not.
[0553] For example, pps_slice_act_qp_offsets_present_fl The first value of ag (for example, 0) is slice_act_y_qp_offset, slic e_act_cb_qp_offset, slice_act_cr_qp_offse t and slice_act_cbcr_qp_offset are present in the slice header It can be shown that it does not.
[0554] For example, pps_slice_act_qp_offsets_present_fl The second value of ag (for example, 1) is slice_act_y_qp_offset, slic e_act_cb_qp_offset, slice_act_cr_qp_offse t and slice_act_cbcr_qp_offset are present in the slice header It can be shown that
[0555] Syntax elements slice_act_y_qp_offset, slice_act _cb_qp_offset, slice_act_cr_qp_offset, and s lice_act_cbcr_qp_offset is the offset for the luma, Cb, Cr components, and Jo indicates the offset for the quantization parameter value qP for each of the input Cb and Cr components. slice_act_y_qp_offset, slice_act_ cb_qp_offset, slice_act_cr_qp_offset, and sl The value of ice_act_cbcr_qp_offset ranges from -12 to 12. slice_act_y_qp_offset, slice_act _cb_qp_offset, slice_act_cr_qp_offset, and s lice_act_cbcr_qp_offset value not present in bitstream In this case, each value can be set to 0. y_qp_offset, PpsActQpOffsetCb+slice_act_c b_qp_offset, PpsActQpOffsetCr+slice_act_c r_qp_offset and PpsActQpOffsetCbCr+slice_ac The value of t_cbcr_qp_offset is also restricted to have values between -12 and 12. Cut.
[0556] Signaling ACT QP offsets for joint CbCr at PPS level Various modifications can be made to the implementation. For example, one QP off for joint CbCr. signal a set or multiple sets for joint CbCr of different modes Signals ACT Qp offset or AC for joint CbCr ACTQpOffs for Y, Cb, Cr without signaling T Qp offset A method to induce this using et and / or joint CbCr modes is This is applicable when signaling via a header.
[0557] Two modified embodiments are shown in Figures 44 and 45. Figure 44 shows the FIG. 45 shows an example of signaling the ACT Qp offset in slices. FIG. 45 shows another embodiment of signaling the ACT Qp offset in the header. In this case, only the ACT Qp offsets for Y, Cb, and Cr are signaled. The slice-level ACT QP offset for joint CbCr is slice_act_y_qp_offset, slice_act_cb_qp_off It can be derived from slice_act_cr_qp_offset, slice_act_cr_qp_offset, and / or slice_act_cr_qp_offset. This can be determined based on the mode type of the joint CbCr. The slice level ACT Qp offset for bCr is slice_act_cb_ It may be set to the same value as qp_offset. For joint CbCr mode with tu_cbf_cb having value The slice-level ACT Qp offset for Cr is slice_act_cb_ Can be set to the same value as qp_offset and tu_cb with a value of 0 For joint CbCr mode with f_cb, the slider for joint CbCr The slice level ACT Qp offset is slice_act_cr_qp_offset can be set to the same value as
[0558] However, in other embodiments, the syntax element is a slice header or a picture header. To achieve this, the encoding / decoding is done as follows: Encryption can be performed.
[0559] -ACT Qp offset is in the picture header or slice header Flag indicating whether the picture slice exists in the The ffsets_present_flag can be signaled in the PPS.
[0560] -ACT is applicable and pps_picture_slice_act_qp_o If the value of ffsets_present_flag is the second value (for example, 1), ACT A flag pic_act_q indicating whether the Qp offset is present in the picture header Signaling p_offsets_present_flag in the picture header Here, pic_act_qp_offsets_present_fl The second value of ag (e.g., 1) is used to match all the slices of the picture corresponding to the picture header. This indicates that the ACT Qp offset for the frame is provided in the picture header. can be done.
[0561] -The first value of pic_act_qp_offsets_present_flag (e.g. (0) is the ACT for all slices of the picture corresponding to the picture header. It may be indicated that the Qp offset is not provided in the picture header. For example, ACT is applicable and pps_picture_slice_act_qp_off The value of sets_present_flag is the second value (for example, 1), and pic_act If the value of _qp_offsets_present_flag is the first value (e.g., 0), In this case, the ACT Qp offset for the slice can be provided in the slice header.
[0562] Figure 46 shows the pps_pic_slice_act_qp_offsets_prese FIG. 1 is a diagram showing a syntax table of a PPS in which nt_flag is signaled. Syntax element pps_pic_slice_act_qp_offsets_pres ent_flag indicates whether the ACT Qp offset is in the picture header and / or slice. For example, pps_pic_slice_ The first value of act_qp_offsets_present_flag (e.g., 0) is A CT Indicates that the Qp offset is not provided in the picture header or slice header. pps_pic_slice_act_qp_offsets_pre The second value of sent_flag (e.g. 1) indicates that the ACT Qp offset is in the picture header. The pps_pic_slice header can indicate that the slice is available. ce_act_qp_offsets_present_flag is set in the bitstream. If not provided, pps_pic_slice_act_qp_offsets_pr The value of esent_flag may be determined to be a first value (eg, 0).
[0563] Figure 47 shows the syntax of the picture header for signaling the ACT Qp offset. 1 is a diagram showing a syntax table of the pic_act_qp_offset syntax element. s_present_flag is the flag that indicates whether the ACT Qp offset is provided in the picture header. pic_act_qp_offsets_present The first value of t_flag (e.g. 0) indicates that the ACT Qp offset is provided in the picture header. pic_act_q is not provided and can be indicated as available in the slice header. The second value of p_offsets_present_flag (for example, 1) is the ACT Qp It can be indicated that the offset is provided in the picture header. If the value of qp_offsets_present_flag is not provided in the bitstream, If not, the value may be determined to be 0.
[0564] Figure 48 shows the syntax of the slice header for signaling the ACT Qp offset. In the syntax table of FIG. elements slice_act_y_qp_offset, slice_act_cb_qp_ offset, slice_act_cr_qp_offset, and slice_ac t_cbcr_qp_offset is the quantization parameter for the luma, Cb, and Cr components. slice_act_y_qp_of fset, slice_act_cb_qp_offset, slice_act_cr The values of _qp_offset and slice_act_cbcr_qp_offset are , which can have values from -12 to 12. In addition, PpsActQpOffset Y+slice_act_y_qp_offset, PpsActQpOffsetCb +slice_act_cb_qp_offset and PpsActQpOffset Cr+slice_act_cr_qp_offset has a value range from -12 to 12. can be restricted to have a certain range.
[0565] On the other hand, slice_act_y_qp_offset, slice_act_cb_q p_offset, slice_act_cr_qp_offset, and slice_ If a value for act_cbcr_qp_offset is not provided in the bitstream, p ps_pic_slice_act_qp_offsets_present_flag If the value of is the first value (for example, 0), slice_act_y_qp_offset, s lice_act_cb_qp_offset and slice_act_cr_qp_ The offset value can be determined as 0. If the value of t_qp_offsets_present_flag is the second value (for example, 1), For example, slice_act_y_qp_offset, slice_act_cb_qp_ The values of offset and slice_act_cr_qp_offset are p ps_act_y_qp_offset, pps_act_cb_qp_offset, and pps_act_cr_qp_offset can be determined to be the same value.
[0566] On the other hand, if the ACT Qp offset exists in both the slice header and the picture header, If so, the final offset value used to derive the qP value is the offset signaled by the PPS. The offset value signaled in the slice or picture header is used. The offset value can be added to the value.
[0567] More specifically, in one embodiment, the quantization parameter qP can be determined as follows: First, if the value of cIdx is 0, the qP and ACT Qp offsets are calculated as follows: can be guided to.
[0568] [Formula 92] qP=Qp′ Y ActQpOffset=PPsQpOffsetY+slice_act_y_qp _offset
[0569] Otherwise, if TuCResMode[xTbY][yTbY] has the value 2 , the qP and ACT Qp offsets can be derived as follows:
[0570] [Formula 93] qP=Qp′ CbCr ActQpOffset=PPsQpOffsetCbCr+slice_act_C bCr_qp_offset
[0571] Otherwise, if the value of cIdx is 1, the qP and ACT Qp offsets are as follows: It can be derived as a formula.
[0572] [Formula 94] qP=Qp′ Cb ActQpOffset=PpsActQpOffsetCb+slice_act_ Cb_qp_offset
[0573] Otherwise, if the value of cIdx is 2, the qP and ACT Qp offsets are It can be derived as a formula.
[0574] [Formula 95] qP=Qp′ Cr ActQpOffset=PpsActQpOffsetCr+slice_act_ Cr_qp_offset
[0575] In another embodiment, multiple ACT Qp offsets for joint CbCr are If signaled, ActQpOffset for joint CbCr shall be It can be determined as follows.
[0576] First, if the value of cIdx is 0, the qP and ACT Qp offsets are as follows: can be guided to.
[0577] [Formula 96] qP=Qp′ Y ActQpOffset=PPsQpOffsetY+slice_act_y_qp _offset
[0578] Otherwise, if TuCResMode[xTbY][yTbY] has the value 2 , qP can be derived as follows:
[0579] [Formula 97] qP=Qp′ CbCr
[0580] Otherwise, if the value of cIdx is 1, the qP and ACT Qp offsets are as follows: It can be derived as a formula.
[0581] [Formula 98] qP=Qp′ Cb ActQpOffset=PpsActQpOffsetCb+slice_act_ Cb_qp_offset
[0582] Otherwise, if the value of cIdx is 2, the qP and ACT Qp offsets are It can be derived as a formula.
[0583] [Formula 99] qP=Qp′ Cr ActQpOffset=PpsActQpOffsetCr+slice_act_ Cr_qp_offset
[0584] And the value of cIdx is not 0, but TuCResMode[xTbY][yTbY] If the value of is not 0, the ACT Qp offset can be derived as follows:
[0585] [Formula 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, an ACT Qp offset for joint CbCr is provided. If not, then qP and ActQpOffset for the Y, Cb and / or Cr components are determined. The ActQpOffset for the joint CbCr is calculated as follows: / or the ACT Qp offset of the Cr component. In the example, the value of TuCResMode[xTbY][yTbY] associated with formula 97 is 2, the calculation step of qP can be modified and implemented as follows:
[0587] "Otherwise, if the value of TuCResMode[xTbY][yTbY] is 2, In this case, the qP and ACT Qp offset can be derived as follows:
[0588] [Formula 101] qP=Qp′ CbCr ActQpOffset=(cIdx==1])?(PPsQpOffsetCb+s lice_act_Cb_qp_offset):(PPsQpOffsetCr+sl ice_act_Cr_qp_offset)
[0589] Meanwhile, in another embodiment, the value of ActQpOffset can be determined according to the following formula: do.
[0590] [Formula 102] ActQpOffset=(tu_cbf_cb[xTbY][yTbY])?(PP sQpOffsetCb+slice_act_Cb_qp_offset):(PPs QpOffsetCr+slice_act_Cr_qp_offset)
[0591] Example 8: A method for signaling a set of multiple ACT Qp offsets
[0592] In this embodiment, a method using a list of ACT Qp offsets is described. To this end, the following processing may be carried out.
[0593] a) Within a parameter set (e.g., SPS or PPS), a number of ACs are A set of T Qp offsets can be signaled. Each set in the list is , Cb, Cr, and the ACT Qp offset for the joint CbCr component. For simplicity, the list of ACT Qp offsets is The list of It can be done.
[0594] b) The number of sets of ACT Qp offsets in the list is signaled in the PPS. May be equal to the number of sets of chroma Qp offsets.
[0595] c) The ACT Qp off used to derive qP for each coding unit. As a set, an index to the chroma Qp offset for the coding unit (e.g. , cu_chroma_qp_offset_idx) Qp offset can be used.
[0596] d) As an alternative to b) and c) above, 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 is equal to the number of sets of chroma Qp offsets. The number may differ.
[0598] - if ACT is applicable, the ACT Qp offset used for the coding unit An index indicating the index can be signaled.
[0599] Signal a list of ACT Qp offsets, not straying from the concepts above The syntax can be used as shown in Figure 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 are If the enabled_flag value is 1, the luma, Cb and Cr components and the joint Cb Used to determine the offset to be applied to the quantization parameter value qP for Cr. Can be used.
[0600] pps_act_y_qp_offset, pps_act_cb_qp_offse t, pps_act_cr_qp_offset, and pps_act_cbcr_qp If the _offset value is not present, each value can be derived to 0.
[0601] The value of cu_act_enabled_flag is the second value (for example, 1), and 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] is the luma, Cb and Cr components and the joint Cb Determine the offset to be applied to the quantization parameter value qP for each of the Cr components. can be used to qp_offset_list[i], act_cr_qp_offset_list[ If the values of act_cbcr_qp_offset_list[i] and act_cbcr_qp_offset_list[i] do not exist, In this case, each value can be guided to 0.
[0602] In this embodiment, the quantization parameter qP can be determined as follows. When the value of is 0, the qP and ACT Qp offsets can be derived as follows:
[0603] [Formula 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, if TuCResMode[xTbY][yTbY] has the value 2 , qP and ACT Qp offset can be derived as follows:
[0604] [Formula 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, if the value of cIdx is 1, the qP and ACT Qp offsets are It can be derived like an equation.
[0606] [Formula 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, if the value of cIdx is 2, the qP and ACT Qp offsets are It can be derived as a formula.
[0607] [Formula 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 conversion scheme for both lossless and lossy coding
[0608] The conversion between matrix-based color spaces for the forward and inverse transforms described above is as follows: It can be summarized.
[0609] [Table 3]
[0610] The above conversion involves some loss of values in the processing of Co and Cg, so For example, it is impossible to convert a sample value in the RGB color space to the YCgCo color space. When converting the image to RGB color space, the original sample values are not fully restored. Therefore, the transformation according to Table 3 above cannot be used for lossless coding. Even if applied, the color space conversion algorithm is used to ensure that no sample value loss occurs after color space conversion. The algorithm needs to be improved. Examples 9 and 10 are not only lossless coding, but also lossy coding. A color space conversion algorithm is disclosed that can also be applied in encoding.
[0611] In the following example, the original state can be restored to the original state, which can be applied not only to lossy coding but also to lossless coding. This article explains how to perform ACT using reversible color space conversion. Such a reversible color space transformation can be applied to the encoding and decoding methods described above. The CT Qp offset can also be adjusted for the following color space conversions: Conversion can be performed using the following formula: For example, from GBR color space to YCgCo color space The forward transformation can be performed according to the following equation:
[0612] [Formula 107] Co = RB; t=B+(Co>>1); Cg = Gt; Y = t + (Cg>>1);
[0613] The reverse conversion from YCgCo color space to GBR color space is performed using the following formula: obtain.
[0614] [Formula 108] t=Y-(Cg>>1) G=Cg+t B=t-(Co>>1) R=Co+B
[0615] The above formulas for conversion between YCgCo and RGB color spaces are restorable to the original state. That is, the color space conversion by the above formula supports perfect restoration, e.g., forward conversion The sample values remain the same even if the inverse transform is performed after the transform. The color space transformation by this method can be called the restorable YCgCo-R color transformation, where R is It may be an abbreviation of reversible, which means that something can be restored to its original state. The CgCo-R transformation increases the bit depth of Cg and Co by 1 compared to the existing transformation. If such a condition is met, other forms of reversible transformations may also be provided by the above. It can be used like a transform.
[0616] The above transformation has a different norm value than the previous transformation. ACT Qp offsets for Y, Cg, and Co account for dynamic range changes due to color space conversion. can be adjusted to compensate.
[0617] When the above conversion is applied, the ACT Qp offset according to one embodiment is It has been explained that g and Co can have values of (-5, -5, -5). However, when the restorable transformation in this embodiment is applied, You can specify a value other than (-5, -5, -5) as the ACT Qp offset. For example, In one embodiment, the ACT Qp offset is (-5, 1, 3) values can be used.
[0618] In another embodiment, the ACT QP offset is bit-wise as in embodiment 6 or 7 above. The information can be signaled via the traffic stream.
[0619] For example, the YCgCo-R conversion mentioned above is consistent with the ACT QP offset (-5, 1, 3). When used together, as shown in the figure below, lossy coding environment (e.g., QP 22, 27, 3 2, 37) it was observed that there was no coding loss. In this case, an additional 5% coding performance can be obtained to achieve lossless coding. It was observed that.
[0620] [Table 4]
[0621] The VVC specification for including the integrated ACT matrix can be written as in the table below.
[0622] [Table 5]
[0623] For example, the residual sample array r of size (nTbW) × (nTbH)Y , r Cb Reach Bir Cr can be updated as follows:
[0624] [Formula 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 implementation scheme for multiple color transformations based on explicit signaling
[0626] In this embodiment, at least one color transformation can be performed by ACT. This is determined by a flag signaled via the bitstream. Such flags are found in a number of places, such as SPS, PPS, picture headers and slices. It can be signaled at levels or in identifiable granularies.
[0627] In one embodiment, a predefined flag is added to the signal to indicate which ACT applies. For example, if the value of the flag is 1, ACT based on restorable color transformation can be performed. If the value of the flag is 0, ACT based on irreversible color transformation is applicable. Cut.
[0628] In another embodiment, a predefined flag to the ACT indicates which color transform is to be used. An example of the syntax signaled in the SPS is shown in Figure 50. The syntax elements in Figure 50 are described below. Syntax element sp s_act_reversible_conversion is not restored to its original state You can indicate whether or not to use a conversion formula. sps_act_reversible_ The first value of conversion (e.g. 0) is the number of conversions that do not restore ACT to its original state. It can be shown that using the formula sps_act_reversible_conv The second value of ersion (e.g. 1) allows ACT to use a transformation formula that can restore the original state. It can be shown that
[0629] As a result, the variable lossyCoding, which indicates whether lossy coding is performed, is It can be set up like a formula.
[0630] [Formula 110] lossyCoding=(!sps_act_reversible_conver sion
[0631] The lossyCoding flag is used to indicate that the decoder should convert YCgCo to G during the decoding process. The pseudocode for performing the reverse transformation to BR can be expressed as follows:
[0632] [Formula 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] As a result, the VVC specifications shown in Table 5 of Example 9 can be modified as shown in the table below. .
[0634] [Table 6]
[0635] According to the above table, the residual update process using color space conversion is The following parameters can be used as input to - nTbW, the block width variable - Variable nTbH representing the block height -Element r Y [x][y] for the luma residual sample (nTbW )×(nTbH) size array r Y , -Element r Cb [x][y] for the chroma residual sample (nTb W) × (nTbH) size array r Cb , -Element r Cr [x][y] for the chroma residual sample (nTb W) × (nTbH) size array r Cr ,
[0636] The output for this process is:
[0637] -Updated (nTbW) x (nTbH) size for luma residual samples Array r Y , -Updated size of (nTbW) x (nTbH) for chroma residual samples The array r Cb , -Updated size of (nTbW) x (nTbH) for chroma residual samples The array r Cr ,
[0638] By executing this process, a residual sample of size (nTbW) × (nTbH) is created. r Y , r Cb and r Cr can be updated as follows:
[0639] First, the value of sps_act_reversible_conversion is the second value ( For example, in the case of 1), the residual sample array of size (nTbW) × (nTbH) r Y , r Cb and r Cr can be updated as follows:
[0640] [Formula 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. sps_act_reversible_conversi If the value of on is the first value (for example, 0), a register of size (nTbW) × (nTbH) is created. Dual sample array Y , r Cb and r Cr can be updated as follows:
[0642] [Formula 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 YCgCo inverse transform and the YCgCo-R inverse transform have some similarities. In the transformation that can restore the state, Cg and Co are Cg'=Cg<<1 and Co'=Co< <1, this can work with a lossy inverse transform. shows an example of this.
[0644] [Formula 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 keeping the two color transformations, Only reversible transforms can be used. In the lossy coding case, the Cg and Co components is scaled by 1 / 2 in the operation of the encoding device, and scaled by 2 in the operation of the decoding device. This allows for a single integrated system to support both lossy and lossless cases. Furthermore, even in the case of lossy coding, It can have the added advantage that bit depths may remain unchanged.
[0646] [Table 7]
[0647] In one embodiment, a flag (e.g., actSh iftFlag) can be used according to the syntax in Figure 51. In this table, the syntax element sps_act_shift_flag indicates whether ACT is It can be indicated whether or not a step of shifting the color components during application is applied. For example, the first value of sps_act_shift_flag (e.g., 0) indicates that ACT is applied. It can be shown that no step of shifting the color components is applied during the process. The second value of s_act_shift_flag (e.g. 1) determines whether the color shift occurs while ACT is applied. It can be shown that a step of shifting components is applied. The variable actShif tFlag can be set to the value of sps_act_shift_flag. The pseudo code for implementing the YCgCo to GBR inverse conversion in the decoder is It can be created using actShiftFlga as follows:
[0648] [Table 8]
[0649] Example 11: ACT implementation method for multiple color conversions using conversion type guidance In one embodiment, at least one color transformation may be used in performing ACT; and , which color transformation type is used can be derived based on other information in the bitstream. .
[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 Guidance Method 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 method described in Examples 1 and 2 uses the derived Qp value as the ACT QP offset. and the modified QP value for transform coefficient scaling does not go out of range. Therefore, the necessary clipping techniques are applied.
[0656] In this embodiment, Qp' Y , Qp' CbCr , Qp' Cb , Qp' Cr QP induction process that induces This explains how to include the ACT QP offset in the ACT QP offset. To avoid this, the QP guidance process already includes a clipping step. ,Including the ACT QP offset in the QP guidance process reduces the,additional clipping. Overall QP-guided step for the transform coefficient scaling process while avoiding the This simplifies the algorithm and ensures that the final QP is within the valid range. Cut.
[0657] As explained in the previous embodiment, the ACT QP offset can be preset to a constant. It may well be signaled via the bitstream without straying from consistency. The ACT QP offsets for Y, Cb, Cr, and CbCr are described below. ppsActQpOffsetY, ppsActQpOffsetCb, ppsAct QpOffsetCr, ppsActQpOffsetCbCr ppsActQpOffsetY, ppsActQpOffsetCb, ppsAc tQpOffsetCr, ppsActQpOffsetCbCr are between -M and N. M and N may be constants or variables having a value, where M and N are lossy coded in one embodiment. In the lossless coding case, they may be set to 0. Further, at least one ACT QP offset may be greater than or equal to another ACT QP For example, ppsActQpOffsetCbCr can be derived from the Depending on the int CbCr mode, ppsActQpOffsetCb or ppsActQ It can be set to the same value as pOffsetCr.
[0658] The decoding process for QP guidance using the ACT QP offset is as follows: First, for the quantization parameter derivation process, the following parameters are determined for this process: parameters can be utilized.
[0659] The top-left luma sample of the current coding block relative to the top-left luma sample of the current picture The relative coordinates of the luma (xCb, yCb),
[0660] a variable cbWidth that represents the width of the current coding block in luma samples,
[0661] - cbHeight variable that represents the height of the current coding block in luma samples
[0662] -Use single tree (SINGLE_TREE) to split the current coding tree node. ) or whether a dual tree was used; if a dual tree was used, Chrominance component dual tree (DAUL_TREE_LUMA) or chrominance component dual tree (DAUL_TREE_LUMA) Variable treeType indicating whether it is an Alt-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 induced.
[0664] Then, the variable Qp Y can be derived by the following formula:
[0665] [Formula 115] Qp Y =((qP Y _ PRED +CuQpDeltaVal+64+2*QpBdOffse t)%(64+QpBdOffset))-QpBdOffset
[0666] Luma quantization parameter Qp' Y can be derived by the following formula:
[0667] [Formula 116] actQpOffsetY=cu_act_enabled_flag[xCb][y Cb]?ppsActQpOffsetY:0 Qp′ Y =Qp Y +QpBdOffset+actQpOffsetY Qp′ Y =Clip3(0,63+QpBdOffset,Qp′ Y )
[0668] The value of the variable ChromaArrayType, which indicates the type of chroma array, is the first value (for example 0) and treeType is SINGLE_TREE or DUAL_TREE_C If it is HROMA, the following processing may be performed.
[0669] -If the value of treeType is DUAL_TREE_CHROMA, the variable Qp Y The value is the luma sample position (xCb+cbWidth / 2, yCb+cbHeight / 2) The luma quantization parameter Qp of the luma coding unit that covers Y can be set to the same value as .
[0670] - variable qP Cb , qP Cr and qP CbCr can be derived as the following formula.
[0671] [Formula 117] 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 ]
[0672] - Chroma quantization parameter Qp′ for Cb and Cr components Cb and Qp′ Cr and C. b -C r Chroma quantization parameters for joint Cb-Cr coding Qp′ CbCr can be derived as the following formula:
[0673] [Formula 118] actQpOffsetCb=cu_act_enabled_flag[xCb][ yCb]?ppsActQpOffsetCb:0 actQpOffsetCr=cu_act_enabled_flag[xCb][ yCb]?ppsActQpOffsetCr:0 actQpOffsetCbCr=cu_act_enabled_flag[xCb ][yCb]?ppsActQpOffsetCbCr:0 Qp′ Cb =Clip3(-QpBdOffset,63,qP Cb +pps_cb_qp _offset+slice_cb_qp_offset+CuQpOffset Cb +a ctQpOffsetCb)+QpBdOffset Qp′ Cr =Clip3(-QpBdOffset,63,qP Cr +pps_cr_qp _offset+slice_cr_qp_offset+CuQpOffset Cr +a ctQpOffsetCr)+QpBdOffset Qp′ CbCr =Clip3(-QpBdOffset,63,qP CbCr +pps_joi nt_cbcr_qp_offset+ slice_joint_cbcr_qp_offset+CuQpOffset CbCr +actQpOffsetCbCr)+QpBdOffset
[0674] Next, an inverse quantization process is performed on the transform coefficients, for which the following information is provided: It can be used as an input.
[0675] The top-left sample of the current luma transform block relative to the top-left luma sample of the current picture The luma coordinates (xTbY, yTbY) represent the relative coordinates of - the variable nTbW, which represents the width of the transformation block; - variable nTbH, which represents the height of the transformation block; a variable predMode representing the prediction mode of the coding unit, - Variable cIdx that represents the color component of the current block
[0676] The output of the inverse quantization process for this transform coefficient is an array d of scaled transform coefficients. Here, the size of the array d can be (nTbW) × (nTbH). The individual elements can be identified as d[x][y].
[0677] In carrying out this process, the quantization parameter qP can be derived as follows: When the value of x is 0, qP can be derived as follows:
[0678] [Formula 119] qP=Qp′ Y
[0679] Otherwise, if TuCResMode[xTbY][yTbY] has the value 2 , which can be derived as the following formula.
[0680] [Formula 120] qP=Qp′ CbCr
[0681] Otherwise, if the value of cIdx is 1, qP can be derived as follows:
[0682] [Formula 121] qP=Qp′ Cb
[0683] Otherwise, if the value of cIdx is 2, qP can be derived as follows:
[0684] [Formula 122] qP=Qp′ Cr
[0685] The quantization parameter qP can be updated as follows: The lag and bdShift can be derived as follows. transform_skip_flag[xTbY][yTbY][cIdx] value If is 0, the following formula can be derived.
[0686] [Formula 123] rectNonTsFlag=(((Log2(nTbW)+Log2(nTbH)) &1)==1)?1:0
[0687] bdShift=BitDepth+rectNonTsFlag+((Log2(n TbW)+Log2(nTbH)) / 2)-5+pic_dep_quant_enab led_flag
[0688] Instead, transform_skip_flag[xTbY][yTbY][ If the value of [cIdx] is 1 (for example, a transformation is skipped for the current transformation block), In this case, the formula can be derived as follows:
[0689] [Formula 124] qP = Max(QpPrimeTsMin,qP) rectNonTsFlag=0 bdShift=10
[0690] Encoding and Decoding Methods
[0691] Hereinafter, with reference to Figs. 52 and 53, the image coding apparatus and the image decoding apparatus will be described. This section describes an image encoding method and a decoding method that are used in the image encoding and decoding process.
[0692] First, the operation of the decoding device will be described. The image decoding device according to the embodiment has a memory. and a processor, and the decoding device can perform decoding by the operation of the processor. For example, as shown in FIG. 52, the decoding device may The current block is based on whether a color space transformation is applied to it. The quantization parameter of the color space can be determined (S5210). Here, the step of determining the quantization parameter may be The quantum is set so that the meter value has a value below a predetermined upper limit and has a value above a predetermined lower limit. This can be achieved by clipping the quantization parameters. The predetermined lower limit of the quantization parameter may be 0. And the predetermined upper limit of the quantization parameter may be This can be determined based on a syntax element that represents the bit depth of the sample.
[0693] The step of determining a quantization parameter includes determining a quantization parameter based on a color component of the current block. determining a quantization parameter offset based on the color components of the current block; determining a quantization parameter offset; and resetting the quantization parameter using the quantization parameter offset. and a step of setting.
[0694] The step of resetting the quantization parameter using the quantization parameter offset includes: This can be done by adding a quantization parameter offset to the quantization parameter. A color space transformation is applied to the residual samples of the current block. If the color component of the current block is a luma component, the value of the quantization parameter offset is - It can be determined that it is 5.
[0695] Then, the color space transformation is applied to the residual samples of the current block. If the color component of the image is the chroma Cb component, the value of the quantization parameter offset can be determined as 1. The color space conversion is applied to the residual samples of the current block, and the If the color component is a chroma Cr component, the value of the quantization parameter offset can be determined to be 3. .
[0696] The decoder then determines the transform coefficients of the current block based on the quantization parameter. Then, the decoding device can use the transform coefficients to convert the current block into the The residual sample can then be determined (S5230). It is possible to re-set the residual sample value depending on whether a spatial transformation is applied or not. Yes, you can (S5240).
[0697] Here, the step of resetting the value of the residual sample is This can be done based on half the chroma residual sample value and the chroma residual sample value. Chroma residual sample value is obtained by performing a shift operation on the residual sample value. Also, the luma component residual sample value is multiplied by half the chroma Cb component residual sample value. The luma component residual sample value can be reset by adding half the luma component sample value. Also, the luma component residual sample value can be set to the chroma Cb component residual sample value. Chroma C is obtained by subtracting half the value of the residual sample value of the chroma Cr component from the half value of the residual sample value of the chroma C The b component residual sample value can be reset.
[0698] Next, the operation of the encoding device will be described. and a processor, and the encoding device performs decoding of the decoding device by the operation of the processor. For example, as shown in FIG. 53, The device may select a color space based on whether a color space transformation is applied. The dual samples can be re-set (S5310). Here, the color space conversion is The ACT may be as described above.
[0699] Further, the step of resetting the value of the residual sample includes resetting the value of the luma component residual sample. This can be done based on half the sample value and the chroma residual sample value. For example, the chroma residual sample value can be shifted to obtain the chroma residual. The half value of the sample value is obtained. Also, the resetting operation in the above-mentioned decoding device is performed in reverse. As a result, the encoding device obtains the luma component residual sample value, the chroma Cb component residual sample value, The residual sample value and the chroma Cr component residual sample value can be reset.
[0700] The encoder then uses the reset residual samples to determine the transform coefficients. Then, the encoding device determines whether or not a color space conversion is applied (S5320). Here, the quantization parameter can be determined based on the quantization parameter (S5330). The step of determining the quantization parameter has a value equal to or less than a predetermined upper limit, By clipping the quantization parameter so that it has a value equal to or greater than a predetermined lower limit, Here, the predetermined lower limit value of the quantization parameter may be 0. The upper limit of the quantization parameter is based on the syntax element that represents the bit depth of the sample. The decision can be made based on the above.
[0701] The step of determining a quantization parameter includes determining a quantization parameter based on a color component of the current block. determining a quantization parameter offset based on the color components of the current block; determining a quantization parameter offset; and resetting the quantization parameter using the quantization parameter offset. and a step of setting.
[0702] The step of resetting the quantization parameter using the quantization parameter offset includes: This can be done by adding a quantization parameter offset to the quantization parameter. The color space transformation is applied to the residual samples of the current block, and the color components of the current block are If it is a luma component, the value of the quantization parameter offset can be determined to be -5.
[0703] Then, the color space transformation is applied to the residual samples of the current block. If the color component of the image is the chroma Cb component, the value of the quantization parameter offset can be determined as 1. The color space conversion is applied to the residual samples of the current block, and the If the color component is a chroma Cr component, the value of the quantization parameter offset can be determined to be 3. .
[0704] The encoding device can then encode the transform coefficients based on the quantization parameter. (S5340).
[0705] Application examples
[0706] Although the exemplary method of the present disclosure is presented as a series of acts for clarity of explanation, This is not intended to restrict the order in which steps are performed, but rather to Each step may be performed simultaneously or in a different order. In order to achieve the above, the steps shown may include other steps or some steps may be omitted. or excluding some steps and including additional steps. It is also possible.
[0707] In the present disclosure, an image encoding device or an image decoding device that performs a predetermined operation (step) You can perform an operation (step) to check the execution conditions and status of the operation (step). For example, if it is stated that a certain action is performed when a certain condition is satisfied, The image encoding device or image decoding device performs an operation of checking whether the predetermined condition is satisfied. After that, the predetermined operation can be performed.
[0708] The various embodiments of the present disclosure do not list all possible combinations, and the present disclosure The present invention is intended to illustrate exemplary embodiments of the present invention, and the matters described in the various examples may be used independently. may be applied, or a combination of two or more may be applied.
[0709] Additionally, various embodiments of the present disclosure may be implemented using hardware, firmware, or other This can be achieved by hardware, software, or a combination of both. In the case of realization, one or more ASICs (Application Specific Integrated Circuits) c Integrated Circuits), DSPs (Digital Sign al Processors), DSPDs (Digital Signal Processors), DSPDs (Digital Signal Processors) essing Devices), PLDs (Programmable Logic Devices), FPGAs (Field Programmable Gate A rrays), general processor, controller , a microcontroller, a microprocessor, etc.
[0710] In addition, the image decoding device and the image encoding device to which the embodiments of the present disclosure are applied are capable of decoding multimedia data. Media broadcasting transmitter / receiver, mobile communication terminal, home cinema video equipment, digital cinema video Real-time communication devices such as video communication devices, surveillance cameras, video conversation devices, and mobile communication devices. Providing video streaming devices, storage media, camcorders, and video on demand (VoD) services Equipment, OTT video (Over the top video) equipment, Internet services Streaming service providing device, three-dimensional (3D) video device, image telephone video device, and It can be included in medical video equipment and the like, for processing video or data signals. For example, it can be used for OTT video (Over the top video) devices. Examples include game consoles, Blu-ray players, Internet-connected TVs, home theaters, and more. Attar systems, smartphones, tablet PCs, DVRs (Digital Video Recorders) o Recorder), etc.
[0711] FIG. 54 is a diagram illustrating a content streaming system to which the embodiments of the present disclosure can be applied. It is.
[0712] As shown in FIG. 54, a content streaming system to which the embodiment of the present disclosure is applied is The system is largely made up of an encoding server, a streaming server, a web server, and a media server. It may include storage, user devices and multimedia input devices.
[0713] The encoding server receives multimedia inputs from smartphones, cameras, camcorders, etc. Compressing the content input from the device into digital data to generate a bitstream; It serves to transmit the content to the streaming server. Multimedia input devices such as monitors, cameras, and camcorders generate bitstreams directly. In this case, the encoding server can be omitted.
[0714] The bitstream may be generated by a video encoding method and / or a video encoding method to which the embodiments of the present disclosure are applied. The bitstream can be generated by a coding device, and the streaming server transmits the bitstream. During the transmission or reception process, the bitstream can be temporarily stored.
[0715] The streaming server transmits multimedia content based on a user's request via a Web server. The web server transmits the media data to the user device, and the web server determines what services are available to the user. The user can then inform the web server of the desired When a service is requested, the Web server transmits this to the streaming server, The streaming server is capable of transmitting multimedia data to users. In this case, the content streaming system may include a separate control server, In this case, the control server controls commands between the devices in the content streaming system. It can play a role in controlling commands / responses.
[0716] The streaming server receives content from a media storage and / or encoding server. For example, when receiving content from the encoding server, In this case, the content can be received in real time. To provide a streaming service, the streaming server transmits the bitstream to It can be stored for a certain period of time.
[0717] Examples of the user device include a mobile phone and a smart phone. , laptop computers, digital broadcasting terminals, PDAs ( personal digital assistants), PMP(portable) e multimedia player), navigation, slate PC (slat e PC), tablet PC, ultrabook ok), wearable device, e.g. smart Watch (smartwatch), smart glass, HM D(head mounted display), digital TV, desktop computer Possible applications include computers, digital signage, etc.
[0718] Each server in the content streaming system is operated as a distributed server. In this case, data received from each server can be processed in a distributed manner.
[0719] The scope of the present disclosure is not to be construed as limiting the scope of the present invention, but rather as limiting the scope of the present invention, in which the operations of the methods of the various embodiments are performed on a device or computer. software or machine-executable commands (e.g., operating system, application, firmware, program, etc.) and the software or commands stored on the device or computer. Executable non-transitory computer-readable medium Includes a 32-bit / 32-bit readable medium. [Industrial Applicability]
[0720] The embodiments according to the present disclosure can be used to encode / decode images.
Claims
1. An image decoding method performed by an image decoding device, comprising: deriving a quantization parameter for the current block based on whether a color space conversion for a residual sample of the current block is applied; deriving transform coefficients of the current block based on the quantization parameter; deriving the residual samples of the current block based on the transform coefficients; and modifying values of the residual samples based on the color space transformation applied; The quantization parameter is derived by a clipping operation based on a value of a transformation skip flag of the current block; the clipping operation includes adjusting the value of the quantization parameter to be in a range from a predetermined lower limit to a predetermined upper limit; 11. A method of decoding an image, wherein the predetermined upper limit value is derived based on a sum of a quantization parameter range offset and a predetermined constant value.
2. The image decoding method according to claim 1 , wherein the predetermined constant value is 63.
3. The image decoding method of claim 1 , wherein the quantization parameter is derived based on an initial quantization parameter derived based on color components of the current block.
4. The image decoding method of claim 1 , wherein the quantization parameter is derived based on a quantization parameter offset derived based on color components of the current block.
5. The image decoding method of claim 4 , wherein a size of the quantization parameter offset is derived as 5 based on the color components of the current block being luma components and the color space conversion being applied.
6. The image decoding method of claim 4 , wherein a size of the quantization parameter offset is derived as 3 based on the color components of the current block being chroma Cr components and the color space conversion being applied.
7. based on a size of the first value of the quantization parameter offset and a size of the second value of the quantization parameter offset, the subtraction result is 2; Based on the color space transformation applied, The first value is derived based on the quantization parameter offset of the color component of the current block being a chroma Cr component; The image decoding method of claim 4 , wherein the second value is derived based on the quantization parameter offset of the color component of the current block being a chroma Cb component.
8. The image decoding method of claim 1 , wherein the predetermined lower bound is derived based on the transform skip flag of the current block.
9. 2. The image decoding method of claim 1, wherein the predetermined lower limit value is derived as the allowed minimum quantization parameter for a transform skip mode based on the transform skip flag indicating not to apply a transform for the current block.
10. 2. The image decoding method of claim 1, wherein the predetermined lower limit value is derived as 0 based on the transform skip flag indicating that the application of the transform for the current block is determined by another syntax element.
11. The image decoding method of claim 1 , wherein the value of the quantization parameter range offset is derived based on a syntax element for a bit depth (bit dedpth) of the current block.
12. An image coding method performed by an image coding device, comprising: determining whether color space conversion for a residual sample of the current block is applied; deriving values of the residual samples of the current block based on the color space transformation applied; deriving transform coefficients of the current block based on the residual samples of the current block; determining a quantization parameter for the current block based on the color space transformation applied; and encoding the transform coefficients based on the quantization parameter; The quantization parameter is derived by a clipping operation based on a value of a transformation skip flag of the current block; the clipping operation includes adjusting the value of the quantization parameter to be in a range from a predetermined lower limit to a predetermined upper limit; A method of image coding, wherein the predetermined upper limit value is derived based on a sum of a quantization parameter range offset and a predetermined constant value.
13. The image encoding method according to claim 12 , wherein the predetermined constant value is 63.
14. A method for transmitting a bitstream generated by an image coding method, comprising the steps of: The image encoding method includes: determining whether color space conversion for a residual sample of the current block is applied; deriving values of the residual samples of the current block based on the color space transformation applied; deriving transform coefficients of the current block based on the residual samples of the current block; determining a quantization parameter for the current block based on the color space transformation applied; and encoding the transform coefficients based on the quantization parameter; The quantization parameter is derived by a clipping operation based on a value of a transformation skip flag of the current block; the clipping operation includes adjusting the value of the quantization parameter to be in a range from a predetermined lower limit to a predetermined upper limit; A method of transmission, wherein the predetermined upper limit value is derived based on a sum of a quantization parameter range offset and a predetermined constant value.
Citation Information
Patent Citations
QP derivation and offset for adaptive color transform in video coding
US20160100168A1