Image encoding / decoding method, apparatus, and bitstream transmission method using color space conversion
The image encoding/decoding method with selective color space conversion addresses the challenge of high-resolution image data transmission and storage by enhancing encoding/decoding efficiency and reducing bitstream size.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2026-01-14
- Publication Date
- 2026-04-10
AI Technical Summary
The increasing demand for high-resolution, high-quality images leads to a significant increase in the amount of information to be transmitted and stored, necessitating highly efficient image compression technologies to manage the associated costs.
An image encoding/decoding method that employs selective color space conversion to improve encoding/decoding efficiency, including steps to determine quantization parameters and apply color space conversion based on predetermined limits, with clipping if necessary, and involves a processor to manage these processes.
The method achieves improved encoding/decoding efficiency, enabling effective transmission, storage, and playback of high-resolution images while reducing the bitstream size.
Smart Images

Figure 2026063101000001_ABST
Abstract
Description
[Technical Field]
[0001] This disclosure relates to an image encoding / decoding method and apparatus, and more specifically, to a method using color space conversion. Image encoding / decoding method, apparatus, and the image generated by the image encoding method / apparatus of the present disclosure This relates to a method for transmitting a bitstream. [Background technology]
[0002] Recently, high-resolution, high-quality images, such as HD (High Definition) images, have become popular. And the demand for UHD (Ultra High Definition) images is diverse across various fields. This is increasing. The higher the resolution and quality of the image data, the more it increases compared to conventional image data. The amount of information or bits transmitted increases relatively. The increase will result 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. [Overview of the project] [Problems that the invention aims to solve]
[0004] This disclosure provides an image coding / decoding method and apparatus with improved coding / decoding efficiency. The purpose is to achieve this.
[0005] Furthermore, this disclosure aims to improve encoding / decoding efficiency by performing selective color space conversion. The objective is to provide an image encoding / decoding method and apparatus.
[0006] Furthermore, this disclosure also applies to the bitstream generated by the image encoding method or apparatus according to this disclosure. The objective is to provide a method for transmitting Ream.
[0007] Furthermore, this disclosure also applies to the bitstream generated by the image encoding method or apparatus according to this disclosure. The objective is to provide a recording medium that stores the ream.
[0008] Furthermore, this disclosure is received by the image decoding device provided for this disclosure and decoded into an image. The objective is to provide a recording medium that stores the bitstream used for restoration.
[0009] The technical issues that this disclosure seeks to address are not limited to the technical issues described above, but also include the issues mentioned above. Any other technical challenges not described herein will be addressed by those with ordinary knowledge in the art to which this disclosure pertains. Those who understand will be able to comprehend it clearly. [Means for solving the problem]
[0010] An image decoding method performed by an image decoding apparatus according to one aspect of this disclosure is currently block Whether or not a color space conversion is applied to the residual sample of the value. The steps of determining the quantization parameters of the current block based on the and the quantization parameters The steps of determining the conversion coefficient of the current block based on the lameter and the conversion coefficient The steps include determining the current block's residual sample using the color space and changing the color space. A step of resetting the value of the residual sample based on whether or not the exchange is applied. , may include. Here, the step of determining the quantization parameter is the quantum The values of the parameters are to be less than or equal to a predetermined upper limit and greater than or equal to a predetermined lower limit. This can be done by performing clipping on the aforementioned quantization parameters.
[0011] Furthermore, an image decoding device according to one aspect of this disclosure includes a memory and at least one processor. An image decoding device including a processor, wherein at least one processor is currently blocking Whether or not a color space conversion is applied to residual sampling. Based on this, the quantization parameters of the current block are determined, and based on the quantization parameters Then the conversion coefficient of the current block is determined, and the current block's register is determined using the conversion coefficient. The dual sample is determined, and the color space conversion is applied based on whether the color space conversion is applied. The dual sample values can be reset. Here, the processor performs the quantization The parameter values are set to be less than or equal to a predetermined upper limit and greater than or equal to a predetermined lower limit. Clipping can be applied to the quantization parameters.
[0012] Furthermore, the image encoding method performed by an image encoding apparatus according to one aspect of this disclosure is a color space A step to reset the residual sample based on whether or not a conversion between them was applied, The steps of determining the conversion coefficient using the reset residual sample and the color The steps of determining quantization parameters based on whether or not a spatial transformation is applied, and The process may include the step of encoding the conversion coefficients based on quantization parameters. Here, the step of determining the quantization parameter is to determine the value of the quantization parameter. The quantization parameters are set to have a value below a predetermined upper limit and a value above a predetermined lower limit. This can be done by performing clipping.
[0013] Furthermore, a transmission method according to one aspect of the present disclosure is an image encoding device or image encoding method of the present disclosure. The bitstream generated by this can be transmitted.
[0014] Furthermore, a computer-readable recording medium according to one aspect of this disclosure may be an image encoding method or It can store the bitstream generated by the image encoding device.
[0015] The features described above, which can be briefly summarized, are illustrative examples of the detailed description of this disclosure described below. This is merely a description and does not limit the scope of this disclosure. [Effects of the Invention]
[0016] According to this disclosure, an image encoding / decoding method and apparatus with improved encoding / decoding efficiency is provided. It can be provided.
[0017] Furthermore, according to this disclosure, selective color space conversion improves encoding / decoding efficiency. An image encoding / decoding method and apparatus capable of achieving the above can be provided.
[0018] Furthermore, according to this disclosure, bits generated by the image encoding method or apparatus of this disclosure A method for transmitting a stream can be provided.
[0019] Furthermore, according to this disclosure, bits generated by the image encoding method or apparatus of this disclosure A recording medium containing the stream can be provided.
[0020] Furthermore, according to this disclosure, the image received and decoded by the image decoding device provided for this disclosure A recording medium containing the bitstream used for image restoration can be provided. .
[0021] The effects obtained from this disclosure are not limited to those described above, and any other effects not mentioned above are also included. From the following description, it can be clearly understood by a person with ordinary skill in the art to which this disclosure pertains. It will. [Brief explanation of the drawing]
[0022] [Figure 1] This figure schematically illustrates a video coding system to which the embodiments described herein can be applied. [Figure 2] This figure schematically shows an image encoding device to which the embodiments of this disclosure can be applied. [Figure 3] This figure schematically shows an image decoding apparatus to which the embodiments of this disclosure can be applied. [Figure 4] This figure shows the image division structure according to one embodiment. [Figure 5] This figure shows one example of a block division type using a multi-type tree structure. [Figure 6] This figure illustrates the signaling mechanism for block partitioning information in a quadtree with nested multi-type trees as described in this disclosure. [Figure 7] This figure shows one embodiment in which a CTU is divided into multiple CUs. [Figure 8] This block diagram shows a CABAC representation of one example for encoding a single syntax element. [Figure 9-12] This figure illustrates entropy coding and decoding according to one embodiment. [Figure 13-14] This figure shows an example of a picture decoding and encoding procedure according to one embodiment. [Figure 15] This figure shows the hierarchical structure of an image coded according to one embodiment. [Figure 16] This figure shows a peripheral reference sample according to one embodiment. [Figure 17-18] This figure illustrates intra-prediction using one embodiment. [Figure 19] This figure shows one example of a decoding process using ACT. [Figure 20] This figure shows an example of a sequence parameter set syntax table in which syntax elements related to ACT are signaled. [Figure 21-27] This diagram shows a sequence of examples of syntax tables for coding units in which syntax elements related to ACT are signaled. [Figure 28] This figure shows the coding tree syntax according to one embodiment. [Figure 29] This figure illustrates a method for encoding residual samples in BDPCM by one embodiment. [Figure 30] This shows a modified quantized resistive dual block generated by performing BDPCM according to one embodiment. [Figure 31] This flowchart shows the procedure for encoding the current block using BDPCM in an image encoding device according to one embodiment. [Figure 32] This flowchart shows the procedure for restoring the current block by applying BDPCM in an image decoding device according to one embodiment. [Figure 33-35] This diagram schematically shows the syntax for signaling information related to BDPCM. [Figure 36-51] This figure shows a syntax table for signaling ACT syntax elements according to the individual examples provided in this disclosure. [Figure 52] This figure illustrates an image decoding method according to one embodiment. [Figure 53] This figure illustrates an image encoding method according to one embodiment. [Figure 54] This figure illustrates a content streaming system to which the embodiments of this disclosure can be applied. [Modes for carrying out the invention]
[0023] The embodiments of this disclosure are described below with reference to the attached drawings, in the art to which this disclosure belongs. The instructions are described in detail so that they can be easily implemented by a person with ordinary skill. However, this disclosure is not intended to be implemented by a person with ordinary skill. It can be implemented in various different forms and is not limited to the embodiments described herein.
[0024] In describing the embodiments of this disclosure, specific descriptions of known configurations or functions are omitted. If it is determined that there is a risk of obscuring the gist of the disclosure, a detailed explanation will be provided. The details are omitted. Furthermore, in the drawings, parts unrelated to the explanation of this disclosure are omitted. Similar parts were given the same reference numerals.
[0025] In this disclosure, one component is “linked,” “joined,” or “connected” to another component. When this is the case, it means that there is not only a direct connection between them, but also another component between them. It can also include existing indirect connections. Furthermore, it can also include cases where one component connects to another component. When it says "includes" or "has," this means that, unless otherwise stated to the contrary, another constituent element This means that instead of eliminating elements, it's possible to include other components.
[0026] In this disclosure, terms such as "First," "Second," etc., refer to one component as being equivalent to another component. Used solely for the purpose of distinguishing between elements, and unless otherwise specified, does not indicate the order or importance of the elements. This does not limit the scope of the invention. Therefore, within the scope of this disclosure, the first component of one embodiment may be other In the embodiment, it may be called the second component, and similarly, the second component of one embodiment may be called the other In this embodiment, it may be called the first component.
[0027] In this disclosure, components that are distinct from each other are used to clearly explain their respective characteristics. This does not necessarily mean that the constituent elements are separate. Multiple components may be integrated to form a single hardware or software unit. Even if a single component is distributed and consists of multiple hardware or software units Good. Therefore, without further mention, such integrated or distributed embodiments are also included in this document. It is included in the scope of the indication.
[0028] In this disclosure, the components described in the various embodiments are not necessarily essential components. This does not mean that some components are optional. Therefore, in one embodiment, Embodiments composed of a subset of the constituent elements described herein are also included in the scope of this disclosure. Examples that include additional components beyond those described in the examples are also included within the scope of this disclosure. ru.
[0029] This disclosure relates to the encoding and decoding of images, and the terms used in this disclosure are Unless otherwise defined in this disclosure, the terms have the ordinary meaning in the technical field to which this disclosure pertains. It is possible.
[0030] In this disclosure, "video" refers to a series of images over time. It can mean a set of (ge). "Picture" generally means special A unit that represents one image from a specified time period, such as a slice or tile. A tile is an encoding unit that constitutes part of a picture in encoding. A kucha can be composed of one or more slices / tiles. The above CTU (coding tree unit) can be included. One picture It can consist of one or more slices / tiles. One picture can consist of one or more tile glues. It can be composed of tile groups. One tile group can contain one or more tiles. The character 'k' can indicate a rectangular area of a CTU row within a tile in a picture. One tile is A tile can contain one or more bricks. A brick is a CTU row within a tile. A rectangular area can be shown. A single tile can be divided into multiple bricks. Each brick can contain one or more CTU rows belonging to the tile. Tiles that are not divided into a number of bricks can also be treated as bricks.
[0031] In this disclosure, “pixel” or “pel” means a single pic It can mean the smallest unit that makes up a chat (or image). It also corresponds to a pixel. The term "sample" can be used to describe this. A sample is generally a small, small object. It can indicate the value of a cell or pixel, and the luma component is pixel / pixel. It is also possible to show only the values, specifically the pixel / pixel values of the chroma component. It is possible.
[0032] In this disclosure, "unit" can refer to a basic unit of image processing. The unit includes at least one of the following: a specific area of the picture and information related to that area. It can contain one. One unit consists of one luma block and two chroma (e.g.) For example, it can include a Cb, Cr block. The unit may, depending on the case, be a "sample". It is often confused with terms such as "luarray," "block," or "area." It can be used. In general, an M×N block is a sample consisting of M columns and N rows. (or sample array) or transformation coefficient It may include a set (or array).
[0033] In this disclosure, "current block" means "current coding block" or "current coding block". "Encoding unit", "Block to be encoded", "Block to be decoded", or "Block to be processed" It can mean any one of the following: "lock". If a prediction is made, "currently "Lock" can mean "currently predicted block" or "block to be predicted". When a transformation (inverse transformation) / quantization (inverse quantization) is performed, the "current block" becomes the "current transformation block". This can mean "lock" or "block to be converted". Filtering is performed. In this case, "currently blocked" can mean "blocks subject to filtering."
[0034] Furthermore, in this disclosure, "current block" does not explicitly refer to a chroma block. As long as it is, it can mean "the current block of the luma block". "Chromablock" is explicitly referred to as "chromablock" or "current chromablock". It can be expressed with an explicit mention of "romablock."
[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". Also, "A " / B / C" and "A, B, C" mean "at least one of A, B and / or C". It is possible.
[0036] In this disclosure, “or” may be interpreted as “and / or.” For example, "A or B" can mean: 1) only "A", 2) only "B", or 3) "A and It can mean "and B". Alternatively, in this disclosure, "or" means "additionally or substitute". It means "in additionally or alternatively". It is possible.
[0037] Overview of the video coding system
[0038] Figure 1 shows the video coding system according to this disclosure.
[0039] A video coding system according to one embodiment includes a source device 10 and a receiving device It may include 20. Source device 10 is encoded video and Image information or data in file or streaming format It can be transmitted to the receiving device 20 via a storage medium or network.
[0040] According to one embodiment, the source device 10 includes a video source generation unit 11, an encoding device 12 and A transmission unit 13 may be included. In one embodiment, the receiving device 20 includes a receiving unit 21 and a decoding unit. The encoding device 12 may include a video encoding device 22 and a rendering unit 23. It can be called an image encoding device, and the decoding device 22 is a video / image decoding device. It can be called a device. The transmission unit 13 can be included in the encoding device 12. The signal unit 21 can be included in the decoding device 22. The rendering unit 23 is a display It may also include a ray section, and the display section may be a separate device or external component. It can also be composed of such elements.
[0041] The video source generation unit 11 performs video / image capture, synthesis, or generation processes, etc. The video source generation unit 11 can acquire video / images. It may include a photo capture device and / or a video / image generation device. A capture device is, for example, one or more cameras, previously captured video / images. This can include video / image archives containing images, etc. Video / image generation devices For example, this may include computers, tablets and smartphones, etc. (electronic It can generate videos / images (virtually). For example, via a computer, etc. The video / image can be generated, and in this case, the video / image capture process is related This can be replaced with the process by which sequential data is generated.
[0042] The encoding device 12 can encode the input video / image. The encoding device 12, For compression and encoding efficiency, a series of steps such as prediction, transformation, and quantization can be performed. The encoding device 12 encodes the encoded data (encoded video / image information) into bits. It can output in bitstream format.
[0043] The transmission unit 13 outputs encoded video / image information in bitstream format. The data is transmitted via digital storage media or a network in file or streaming format. This can be transmitted to the receiving unit 21 of the receiving device 20. The digital storage medium is US B, SD, CD, DVD, Blu-ray (registered trademark: same applies hereafter), HDD, SSD, etc. This can include various storage media. The transmission unit 13 receives a predetermined file format - It can include elements for generating media files via a mat, broadcast / It may include elements for transmission over a communication network. Receiver 21 The system extracts / receives the bitstream from the storage medium or network and decodes it. This can be transmitted to location 22.
[0044] The decoding device 22 performs operations such as inverse quantization, inverse transform, and prediction corresponding to the operation of the encoding device 12. The video / image can be decoded by following a series of steps.
[0045] The rendering unit 23 can render the decoded video / image. The rendered video / image can be displayed via the display unit.
[0046] Overview of Image Encoding Devices
[0047] Figure 2 is a schematic diagram showing an image encoding device to which the embodiments of this disclosure can be applied.
[0048] As shown in Figure 2, the image encoding device 100 includes an image splitting unit 110 and a subtraction unit 11 5. Transformation unit 120, Quantization unit 130, Inverse quantization unit 140, Inverse transformation unit 150, Addition unit 155 , filtering unit 160, memory 170, inter prediction unit 180, intra prediction unit 18 It may include 5 and an entropy coding unit 190. Interpretation unit 180 and In The tiger prediction unit 185 can be collectively called the "prediction unit". Transformation unit 120, quantum The quantization unit 130, the inverse quantization unit 140, and the inverse transformation unit 150 are residual ) can be included in the processing unit. The residual processing unit further includes the subtraction unit 115. It's also possible.
[0049] All or at least some of the multiple components constituting the image encoding device 100 are as follows in the embodiment. Therefore, it can be implemented with a single hardware component (for example, an encoder or a processor). It can be done. Also, memory 170 is DPB (decoded picture It can include a buffer and can be implemented using digital storage media.
[0050] The image splitting unit 110 processes the input image (or picture) input to the image encoding device 100. Dividing a frame into one or more processing units This can be done. For example, the processing unit is a coding unit (coding A coding unit can be called a coding tree. - Unit (coding tree unit, CTU) or maximum coding unit Largest coding unit (LCU) is used for QT / BT / TT (Quad Recursively by the structure (-tree / binary-tree / ternary-tree) It can be obtained by (recursively) splitting it into parts. For example, one One coding knit is based on a quadtree structure, a binary tree structure, and / or a ternary tree structure. It can be divided into multiple coding units at deeper depths. For the division of coding units, a quadtree structure is applied first, followed by a binary tree structure and / or A ternary tree structure can be applied later. The final coding unit that is not further divided Based on the knit, the coding procedure described in this disclosure can be performed. Maximum coding The coding unit can be used as the final coding unit, and the maximum coding The coding unit obtained by dividing the unit is the final coding unit. It can also be used as a tool. Here, the coding procedure refers to the prediction and change described later. This may include procedures such as replacement and / or restoration. Another example is the coding procedure. The processing unit is either a prediction unit (PU) or a conversion unit. It can be a Transform Unit (TU). And the conversion unit is separated or parted from the final coding unit, respectively. It can be positioned. The prediction unit is the unit of sample prediction. The conversion unit can then determine the units from which the conversion coefficient is derived, and / or the units from which the conversion coefficient is derived. It can be a unit that induces a residual signal.
[0051] The prediction unit (inter-prediction unit 180 or intra-prediction unit 185) processes the target block (current A prediction is made for the current block, and the prediction includes a prediction sample for the current block. It can generate predicted blocks. The prediction unit is Currently, intra-prediction is applied on a block or CU basis, or inter-prediction is applied. It can determine whether it can be done. The prediction unit currently has various information regarding the prediction of the block. This can be generated and transmitted to the entropy coding unit 190. Information regarding the prediction is The entropy encoding unit 190 encodes the output in bitstream format. Cut.
[0052] The intra prediction unit 185 predicts the current block by referring to the sample in the current picture. The referenced sample is in intra-prediction mode and / or intra-prediction mode. According to the measurement technique, it is also possible to be located in the vicinity (neighbor) of the aforementioned block. Alternatively, they can be located at a distance. The intra-predictive mode has multiple non-directional modes and multiple The number can include directional modes. Non-directional modes include, for example, DC mode and Pl It may include an ANA mode. The directional mode depends on the degree of precision of the predicted direction. For example, it could include 33 or 65 direction prediction modes. However, this is merely an example, and depending on the settings, there may be more or less directional prediction models than or equal to this. A code can be used. The intra prediction unit 185 uses the prediction mode applied to the surrounding block. Furthermore, it is also possible to determine the prediction mode currently applied to the block.
[0053] The interpretation unit 180 identifies a reference block on the reference picture that is identified by a motion vector. Based on the reference sample array (Block), the predicted block for the current block is induced. This can be achieved. At this time, the amount of motion information transmitted in interprediction mode can be reduced. Therefore, based on the correlation of movement information between surrounding blocks and the current block, the movement information is blocked. The motion information can be predicted at the subblock or sample level. It may include a reference picture index. The motion information is an interactive prediction method. Directional information (L0 prediction, L1 prediction, Bi prediction, etc.) can be included. Interpretation In this case, the surrounding blocks are the spatial surrounding blocks that currently exist within the picture. (neighboring block) and the time-peripheral block present in the reference picture. (temporal neighboring block) may be included. A reference picture containing a reference block and a reference picture containing the time-period block are the same It may be one, and they may be different from each other. The time-periphery block is a collocate reference block. (collocated reference block), collocated CU(col It can be called by names such as CU). The reference picture containing the aforementioned time-period block is This is called a collocated picture (colPic). For example, the interpretation unit 180 can determine motion information based on the surrounding blocks. Constitute a candidate list and the motion vector and / or reference picture index of the current block To derive the result, it is possible to generate information that indicates which candidate should be used. Interpretation can be performed based on various prediction modes, for example, skip mode. In the case of the merge mode, the interpretation unit 180 currently uses the motion information of the surrounding blocks. It can be used as block movement information. In skip mode, and merge mode. Unlike other systems, residual signals may not be transmitted. Motion information prediction (motion In vector prediction (MVP) mode, the movement of surrounding blocks is... Let's use the ctor as a motion vector predictor. It is used to obtain motion vector difference and By encoding an indicator for the motion vector predictor Therefore, the motion vector of the block can be signaled. The difference in motion vectors is This can be interpreted as the difference between the current block's motion vector and the motion vector predictor.
[0054] The prediction unit generates a prediction signal based on various prediction methods and / or prediction techniques described later. This is possible. For example, the prediction unit can perform intraprediction or intraprediction for the current block prediction. In addition to being able to apply ter prediction, intra prediction and inter prediction can be applied simultaneously. It is possible to apply intra-prediction and inter-prediction simultaneously for block prediction. The prediction method used is CIIP (combined inter and intra p This can be called a rediction. The prediction unit also predicts the current block. Therefore, an intra-block copy (IBC) is performed. It can also be done this way. Intrablock copy is, for example, SCC (screen content For coding content images / videos such as games (e.g., t coding) It can be used. IBC is located within the current picture at a predetermined distance from the current block. This is a method for predicting the current block using already restored reference blocks. When used, the current position of the reference block in the picture corresponds to the vector of the predetermined distance. It can be encoded as a block vector. IBC is basically currently While predictions are made within the Kucha, the current process involves deriving a reference block within the Picture. This can be done in the same way as interpretation. That is, IBC is described in this disclosure. At least one of the interpretation techniques can be used.
[0055] The predicted signal generated by the prediction unit is used to generate the reconstructed signal, or This can be used to generate a residual signal. The subtraction unit 115 subtracts the input image From the image signal (original block, original sample array), the prediction signal (prediction) output from the prediction unit is obtained. The measured block (predicted sample array) is subtracted to obtain the residual signal (residu It can generate the raw signal, residual block, and residual sample array. The generated residual signal can be transmitted to the conversion unit 120.
[0056] The conversion unit 120 applies a conversion technique to the residual signal to obtain a conversion coefficient (transform It is possible to generate m coefficients. For example, the transformation technique is DCT. (Discrete Cosine Transform), DST(Discrete Sine Transform), KLT(Karhunen-Loeve Tran sform), GBT (Graph-Based Transform), or CNT ( Among the conditionally non-linear transforms, It can include at least one. Here, GBT displays the relationship information between pixels in a graph. When expressing this, it means the transformation obtained from this graph. CNT is previously restored All previously reconstructed pixels This refers to the transformation obtained by generating a prediction signal using pixels. The conversion process can also be applied to pixel blocks of the same size that are square. It can also be applied to blocks of variable size, not just those with a fixed shape.
[0057] The quantization unit 130 quantizes the conversion coefficients and transmits them to the entropy coding unit 190. This can be done. The entropy coding unit 190 converts the quantized signal (quantized conversion coefficients) The information (related to) can be encoded and output in bitstream format. The information regarding the converted coefficients can be called residual information. Quantization unit 13 0 is a block-type quantization based on the coefficient scan order. The converted coefficients can be rearranged in one-dimensional vector form, and the one-dimensional vector form Based on the quantized transformation coefficients, information regarding the quantized transformation coefficients is generated. It can also be done this way.
[0058] The entropy coding unit 190 is, for example, an exponential Golom. lomb), CAVLC(context-adaptive variable le ngth coding), CABAC(context-adaptive bina It can perform various encoding methods such as arithmetic coding. The entropy coding unit 190, in addition to the quantized conversion coefficients, also performs video / image restoration. Required information (for example, the values of syntax elements) They can be encoded together or separately. Encoded information (for example, encoded video The data / image information is in bitstream format and NAL (network abstraction). The video / Image information includes Adaptive Parameter Set (APS), Picture Parameter Set (PPS), Sequence parameter sets (SPS) or video parameter sets (VPS), etc. It can also include information about various parameter sets. The information is general constraint information. n) may further include: signaling information, transmitted information as referred to in this disclosure. and / or syntax elements are encoded via the encoding procedure described above and the bits It can be included in the trim.
[0059] The bitstream can be transmitted over a network or digitally. It can be stored on a storage medium. Here, the network is a broadcasting network and / or a communications network. This can include digital storage media such as USB, SD, CD, DVD, and Blu-ray. It can include various storage media such as AY, HDD, SSD, etc. Entropy code A transmission unit (not shown) that transmits the signal output from the processing unit 190 and / or a storage unit that stores the signal. (Not shown) can be provided as an internal / external element of the image encoding device 100, or The transmission unit can also be provided as a component of the entropy coding unit 190.
[0060] The quantized conversion coefficients output from the quantization unit 130 generate a residual signal. It can be used for the purpose of the inverse quantization unit 140 and the quantized conversion coefficients. By applying inverse quantization and inverse transformation via the inverse transformation unit 150, the residual signal It is possible to restore (registry dual block or registry dual sample).
[0061] The summing unit 155 sends the restored residual signal to the interpretation unit 180 or intraprediction unit. By adding this to the prediction signal output from the measurement unit 185, the reconstruction is performed. It is possible to generate signals (reconstructed picture, reconstructed block, reconstructed sample array). The residual for the block to be processed is as if skip mode were applied. If none exists, the predicted block can be used as the restoration block. Addition Unit 1 55 can be called the restoration unit or restoration block generation unit. The generated restoration signal is It can now be used for intra-prediction of the next block to be processed within a picture. As described later, it is filtered and used for predicting the next picture. It is also possible.
[0062] The filtering unit 160 applies filtering to the restored signal to determine subjective / objective image quality. This can improve the performance. For example, the filtering unit 160 filters the restored picture in various ways. Apply a filtering method to generate a modified restored picture. This allows the modified restored picture to be stored in memory 170, specifically in memory 170. It can be stored in DPB. The various filtering methods mentioned above include, for example, deblocking. Filtering, sample adaptive offset ffset), adaptive loop filter It can include, for example, a bilateral filter. The filtering section 160 is as described later in the explanation of each filtering method. Various information related to taring can be generated and transmitted to the entropy encoding unit 190. It can be done. Filtering information is encoded by the entropy coding unit 190 and bit It can be output in stream format.
[0063] The corrected restored picture transmitted to memory 170 is referenced by the interpretation unit 180. It can be used as a picture. The image encoding device 100 interacts with it - When prediction is applied, the prediction mismatch between the image encoding device 100 and the image decoding device This can be avoided, and encoding efficiency can also be improved.
[0064] The DPB in memory 170 is used as a reference picture in the interpretation unit 180. Therefore, the corrected restored picture can be saved. Memory 170 is currently the picture Motion information of the block from which motion information within was derived (or encoded) and / or already restored The motion information of the blocks within the picture can be saved. The saved motion information This is used as motion information for spatially surrounding blocks or motion information for temporally surrounding blocks. This can be transmitted to the interpretation unit 180. The memory 170 currently contains the picture The restored block can be saved as a restored sample and transmitted to the intra-prediction unit 185. It is possible.
[0065] Overview of the image decoding device
[0066] Figure 3 is a schematic diagram showing an image decoding apparatus to which the embodiments of this disclosure can be applied.
[0067] As shown in Figure 3, the image decoding device 200 includes an entropy decoding unit 210, Inverse quantization unit 220, inverse transformation unit 230, addition unit 235, filtering unit 240, memory 2 50, can be configured to include an inter-prediction unit 260 and an intra-prediction unit 265. The measurement unit 260 and the intra-prediction unit 265 together can be called the "prediction unit". The quantization unit 220 and the inverse conversion unit 230 can be included in the resistive processing unit.
[0068] All or at least a part of the plurality of components constituting the image decoding device 200 may be implemented by one hardware component (e.g., a decoder or a processor) according to an embodiment. Also, the memory 170 may include a DPB and can be implemented by a digital storage medium.
[0069] The image decoding device 200 that has received a bitstream including video / image information can execute a process corresponding to the process performed by the image encoding device 100 in FIG. 1 to restore an image. For example, the image decoding device 200 can perform decoding using the processing unit applied in the image encoding device. Therefore, the decoding processing unit can be, for example, a coding unit. The coding unit can be obtained by dividing a coding tree unit or a maximum coding unit.
[0070] <000It is possible. Also, the video / image information can further include general restriction information (general cons traint information). The image decoding device can further use the information regarding the parameter set and / or the general restriction information in order to decode the image. The signaling information, received information and / or syntax element referred to in the present disclosure can be obtained from the above-mentioned encoded bitstream by being decoded through the decoding procedure. For example, the entropy decoding unit 210 can decode the information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC or CABAC, and output the values of the syntax elements necessary for image restoration, and the quantized values of the transform coefficients regarding the residual al. More specifically, the CAB AC entropy decoding method receives the bin corresponding to each syntax element from the bitstream, and uses the information of the syntax element to be decoded, the surrounding blocks and the decoding information of the block to be decoded, or the information of the symbol / bin decoded in the previous step to determine the context model, and predicts the occurrence probability of the bin based on the determined context model and performs arithmetic decoding of the bin to generate the symbol corresponding to the value of each syntax element. At this time, the CABAC entropy decoding method can update the context model using the information of the decoded symbol / bin for the context model of the next symbol / bin after the determination of the context model. Among the information decoded by the entropy decoding unit 210, the information regarding prediction is 0 and the intra prediction unit 265) are provided, and the entropy decoding unit 210 is used to process the entropy Decoded residual values, i.e., quantized conversion coefficients and related parameter information The information can be input to the inverse quantization unit 220. Also, the entropy decoding unit 210 Of the information decoded, the information related to filtering is sent to the filtering unit 240. It can be provided. On the other hand, the receiving unit that receives the signal output from the image encoding device ( (Not shown) may be further provided as internal / external elements of the image decoding device 200. Alternatively, the receiving unit may be provided as a component of the entropy decoding unit 210.
[0071] On the other hand, the image decoding device described herein is called a video / image / picture decoding device. The image decoding device is an information decoder (video / image / picture information decoder). Includes a decoder and / or a sample decoder (video / image / picture sample decoder). It is also possible. The information decoder may include an entropy decoding unit 210, The sample decoder consists of an inverse quantization unit 220, an inverse transform unit 230, an adder unit 235, and a filter. Of the following: ng unit 240, memory 250, inter prediction unit 260 and intra prediction unit 265 It must include at least one.
[0072] The inverse quantization unit 220 inversely quantizes the quantized conversion coefficients and outputs the conversion coefficients. This is possible. The inverse quantization unit 220 rearranges the quantized transformation coefficients in a two-dimensional block format. This is possible. In this case, the realignment is performed in the order of the coefficient scan performed by the image encoding device. This can be done based on the order. The inverse quantization unit 220 calculates the quantization parameters (for example, Using the quantization step size information, inverse quantization is performed on the quantized transform coefficients, and the transform coefficient can be obtained.
[0073] In the inverse transform unit 230, the transform coefficient is inversely transformed to obtain a residual signal (residual block , residual sample array).
[0074] The prediction unit can perform prediction on the current block and generate a predicted block including the predicted samples for the current block . The prediction unit can determine whether intra prediction or inter prediction is applied to the current block based on the information about the prediction output from the entropy decoding unit 210 , and can determine a specific intra / inter prediction mode (prediction technique) . It is possible to do so.
[0075] [[ID= Therefore, based on the correlation of movement information between surrounding blocks and the current block, the movement information is blocked. The motion information can be predicted at the subblock or sample level. It may include a reference picture index. The motion information is an interactive prediction method. Directional information (L0 prediction, L1 prediction, Bi prediction, etc.) can be included. Interpretation In this case, the surrounding blocks are the spatial surrounding blocks that currently exist within the picture (spatia (neighboring block) and time-related blocks present in the referenced picture It can include (temporal neighboring blocks). For example Then, the inter-prediction unit 260 constructs a motion information candidate list based on the surrounding blocks, and Based on the selected candidate information, the motion vector and / or reference picture of the current block An index can be derived. Interpretation based on various prediction modes (techniques) Measurement can be performed, and the information regarding the prediction is interoperable with the current block. It may include information indicating the mode (technique) of prediction.
[0078] The summing unit 235 adds the acquired residual signal to the prediction unit (interpretation unit 260 and / Or the prediction signal output from the intra prediction unit 265 (predicted block, prediction) By adding it to the sample array, the reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample) is produced. It can generate a sample array. It is processed as if skip mode were applied. If there is no residual for the target block, the predicted block will be used as the restore block. It can be used in this way. The explanation of the addition unit 155 is the same as that of the addition unit 235. It can be applied in various ways. The addition unit 235 is called the restoration unit or restoration block generation unit. This is possible. The generated restoration signal is used for the next block to be processed in the current picture. It can be used for tiger prediction, and after filtering as described below, the next pic It can also be used for predicting the interoperability of chats.
[0079] The filtering unit 240 applies filtering to the restored signal to determine subjective / objective image quality. This can improve the performance. For example, the filtering unit 240 filters the restored picture in various ways. Apply a filtering method to generate a modified restored picture. It is possible to store the modified restored picture in memory 250, specifically in memory 250. It can be stored in DPB. The various filtering methods mentioned above include, for example, deblocking. Filtering, sample adaptive offset ffset), adaptive loop filter This can include features such as a bilateral filter.
[0080] The (modified) restored picture stored in the DPB of memory 250 is stored in the interpretation unit 2 It can be used as a reference picture at 60. Memory 250 is currently in the picture Motion information of the block from which motion information was derived (or decoded) and / or already restored The movement information of blocks within the picture can be saved. The saved movement information , in order to utilize this as spatial motion information of surrounding blocks or temporal motion information of surrounding blocks, This can be transmitted to the interpretation unit 260. The memory 250 is currently restoring the picture. The restored block sample can be saved and transmitted to the intra prediction unit 265. It is possible.
[0081] In this specification, the filtering unit 160 and the interpretation unit of the image coding device 100 are described. The embodiments described in 180 and the intra-prediction unit 185 respectively are image decoding device 200 The same applies to the filtering unit 240, the inter-prediction unit 260, and the intra-prediction unit 265. It can be applied to or in a corresponding manner.
[0082] Overview of image segmentation
[0083] The video / image coding method described herein is performed based on the following image segmentation structure. This is possible. Specifically, it involves prediction, residual processing (inverse transformation, inverse quantum transformation), and more, as described later. The steps such as (processing, etc.), syntax element coating, and filtering are used for the aforementioned image segmentation. This is done based on the CTU, CU (and / or TU, PU) derived from the structure. This is possible. Images can be divided into blocks, and the block division procedure is as described above. This can be done in the image splitting unit 110 of the encoding device. The splitting-related information is entropy The encoding unit 190 encodes the data, which can then be transmitted to the decoding device in bitstream format. The entropy decoding unit 210 of the device obtains the partitioning related from the bitstream. Based on the information, the block division structure of the picture is derived, and the image is decoded based on this. A series of steps for (e.g., prediction, residual processing, block / picture restoration, etc.) It can perform operations such as loop filtering.
[0084] The picture is a coding tree unit (C It can be divided into sequences of TUs. Figure 4 shows the picture being divided into CTUs. For example, a CTU can correspond to a Coating Tree Block (CTB). In other words, CTU is a coating tree block of the chroma sample and the corresponding chroma sample. It can include two coating tree blocks. For example, three sample arrays For pictures containing I, CTU uses N×N blocks of chroma samples and chroma samples. It can contain two corresponding blocks.
[0085] Overview of CTU division
[0086] As mentioned above, the coding unit is a coding tree unit (CTU) or The maximum coding unit (LCU) is QT / BT / TT (Quad-tree / bi The recursive partitioning is performed using a nary-tree / ternary-tree structure. It can be obtained more easily. For example, CTU can first be divided into a quadtree structure. Furthermore, the leaf nodes of the quadtree structure are further subdivided by the multi-type tree structure. It is possible.
[0087] A quadtree partition means dividing the current CU (or CTU) into four equal parts. This division means that the current CU will be divided into four CUs having the same width and height. This is possible. Currently, if CU is not further divided into a quadtree structure, then CU is currently a quadtree structure. It corresponds to a leaf node. A CU that corresponds to a leaf node in a quadtree structure can be further divided. It is not used and can be used as the final coding unit as described above. Alternatively, a quadtree structure CUs corresponding to fnodes can be further subdivided by a multi-type tree structure. Cut.
[0088] Figure 5 shows the block division types using a multi-type tree structure. Partitioning using an ipttree structure involves two partitions using a binary tree structure and two partitions using a ternary tree structure. It can include a division.
[0089] The two partitions using a binary tree structure are called vertical binary partitions. splitting (SPLIT_BT_VER) and horizontal binary splitting (horizo Includes intal binary splitting (SPLIT_BT_HOR) This is possible. Vertical binary splitting (SPLIT_BT_VER) currently splits the CU vertically into two parts. This means a division that divides equally. As shown in Figure 4, by vertical binary partitioning, currently Two CUs are generated that have the same height as the current CU and half the width of the current CU. This is possible. Horizontal binary splitting (SPLIT_BT_HOR) currently splits the CU horizontally into two parts. This means a division that divides into equal parts. As shown in Figure 5, by horizontal binary partitioning, currently Two CUs are created, each with half the height of the current CU and the same width as the current CU. It is possible.
[0090] The two partitions using a ternary structure are a vertical ternary partition. y splitting, SPLIT_TT_VER) and horizontal ternary splitting (horiz Includes (ontal ternary splitting, SPLIT_TT_HOR) It is possible. Vertical terminating splitting (SPLIT_TT_VER) currently oriented the CU vertically. Divide it in a ratio of 1:2:1. As shown in Figure 5, by vertical ternary partitioning Currently, there are two CUs that have the same height as the current CU and a width that is 1 / 4 of the current CU's width, and A CU can be generated that has the same height as the current CU and half the width of the current CU. The horizontal terminating split SPLIT_TT_HOR currently splits the CU horizontally in a 1:2:1 ratio. Divide by proportion. As shown in Figure 4, horizontal ternary division currently divides the high CU Two CUs that are 1 / 4 the height of the current CU and the same width as the current CU, and half the height of the current CU A single CU can be generated that has a height equal to the current CU width and a width equal to the current CU width.
[0091] Figure 6 shows a quadtree with a multitype tree according to this disclosure. Signaling of block partitioning information in a nested multi-type tree structure This is a diagram illustrating the ringing mechanism.
[0092] Here, CTU is treated as the root node of the quadtree, and CTU is part of the quadtree structure. It is initially divided into sections. Currently, CU (CTU or quadtree node (QT_node)) Information (for example, qt_split_flag) that indicates whether or not to perform a quadtree split. It can be signaled. For example, if qt_split_flag is the first value (for example) If it is "1"), then the CU can now be split into a quadtree. Also, qt_sp If lit_flag is a secondary value (for example, "0"), then the CU is currently split into a quadtree. Next, it becomes a leaf node (QT_leaf_node) of a quadtree. The structure can then be further divided into a multi-type tree structure, i.e., a quadtree. A leaf node can become a node in a multitype tree (MTT_node). In a multi-type tree structure, the current node is used to indicate whether it will be further divided. 1 flag (a first flag, e.g., mtt_split_cu_flag) This can be signaled. If the node is further divided (for example, If the first flag is 1, then the splitting direction To indicate this, a second flag (for example, mtt_sp) is used. The lit_cu_verticla_flag) can be signaled. For example If the second flag is 1, the division direction is vertical, and the second flag is 0. In this case, the splitting direction can be horizontal. Then, the splitting type is binary splitting. To indicate whether it is a type or a ternary partition type, a third flag (a thi The rd flag, for example, mtt_split_cu_binary_flag, is a signature flag. It can be sorted. For example, if the third flag is 1, the split type is B If it is an Inari split type and the third flag is 0, the split type is a Ternari split type. It can be a type. Multi-type obtained by binary partitioning or ternary partitioning. The nodes of the tree can be further partitioned into a multi-type tree structure. Yes, it is possible. However, the nodes of a multi-type tree are partitioned into a quadtree structure. This is not possible. If the first flag is 0, the corresponding node in the multitype tree is It is not further subdivided, and remains a leaf node of the multitype tree (MTT_leaf_node) ) becomes. CUs that correspond to leaf nodes in a multitype tree are the final coordinators mentioned above. It can be used as a mounting unit.
[0093] The aforementioned mtt_split_cu_vertical_flag and mtt_spl Based on it_cu_binary_flag, the multi-type tree splitting mode of the CU. (multi-type tree splitting mode, MttSplit The Mode can be derived as shown in Table 1. In the following explanation, multi-tree The splitting mode can be abbreviated as multi-tree splitting type or splitting type.
[0094] [Table 1]
[0095] Figure 7 shows that after applying a quadtree, a multitype tree is applied, resulting in multiple CTUs. An example of division is shown in Figure 7. In Figure 7, the thick block edge (bold block e Edge 710 (dge) indicates a quadtree partition, while the remaining edge 720 indicates a multi-type tree partition. CU can correspond to coding block CB. In one embodiment, CU This consists of a coding block for the luma sample and a chroma sample corresponding to the luma sample. It can include two coding blocks, and a chroma component (sample) CB or TB size refers to the color format of the picture / image (chroma format, e.g., 4 TB). Luma component (sample) C according to the component ratio (e.g., 4:4, 4:2:2, 4:2:0) It can be derived based on the B or TB size. The color format is 4:4:4. In this case, the chroma component CB / TB size is set to be the same as the luma component CB / TB size. It can be done. If the color format is 4:2:2, the chroma components CB / TB The width can be set to half the width of the lunar component CB / TB, and the width of the chromatic component CB / TB The height can be set to the height of the luma component CB / TB. Color format is 4: If the ratio is 2:0, the width of the chroma component CB / TB is set to half the width of the luma component 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 CTU is 128 based on the Luma sample unit, C The U size ranges from 128x128, the same size as the CTU, to 4x4. This is possible. In one embodiment, a 4:2:0 color format (or chroma film) is used. If it is a mat, the Chroma CB size will have dimensions ranging from 64x64 to 2x2. It is possible.
[0097] On the other hand, in one embodiment, the CU size and the TU size can be the same. Multiple TUs can exist within the CU region. TU size generally refers to the lumen size. It is possible to indicate the size of a sample in TB (Transform Block).
[0098] The aforementioned TU size is a preset value, which is the maximum allowable TB size (maxTbSize). ) can be derived based on the following: For example, the CU size is the maxTbSiz If it is greater than e, then from the CU, a plurality of TU(TB) having the maxTbSize The following is derived, and the conversion / inverse conversion can be performed in units of TU(TB). For example, The maximum allowable luma TB size is 64 x 64, and the maximum allowable chroma TB size is 32 x 32. This is possible if the width or height of the CB divided by the tree structure is the maximum conversion width. Or, if greater than the height, the CB will automatically (or implicitly) adjust horizontally and vertically. It can be divided into smaller files until the TB size limit is met.
[0099] Furthermore, for example, if intra-prediction is applied, the intra-prediction mode / type is C The derivation is performed in units of U (or CB), and the peripheral reference sample derivation and prediction sample generation procedure is performed in units of T. This can be done in units of U (or TB). In this case, within a single CU (or CB) region. There may be one or more TUs (or TBs), and in this case, the multiple TUs ( (or TB) can share the same intra-prediction mode / type.
[0100] On the other hand, for a quadtree coding tree scheme with a multitype tree, the following The parameters are signaled from the encoding device to the decoding device as SPS syntax elements. This can be done. For example, the CT parameter, which indicates the size of the root node of a quadtree. Usize is a parameter in MinQT that indicates the minimum acceptable size of a leaf node in a quadtree. Size is a parameter that indicates the maximum allowed size of the root node of a binary tree, known as MaxBTS. MaxTTSi is a parameter that indicates the maximum allowable size of the root node of a ternary tree. ze, the maximum allowable hierarchical depth (m) of a multitype tree split from a leaf node of a quadtree. The parameter that indicates the aximum allowed hierarchy depth A parameter called MaxMttDepth, which indicates the minimum allowable leaf node size of a binary tree. With a certain MinBtSize and a parameter that indicates the minimum allowable leaf node size of a ternary tree, At least one of the MinTtSizes can be signaled.
[0101] In one embodiment using the 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. This can be done. In this case, MinQTSize is set to 16x16, and MaxBt Size is set to 128×128, MaxTtSzie is set to 64×64, M inBtSize and MinTtSize are set to 4x4, and MaxMttDepth It can be set to 4. Quadruple tree partitioning is applied to the leaf nodes of the quadruple tree. It is possible to generate this. The leaf nodes of a quadtree can be called leaf QT nodes. The leaf nodes of a quadtree are 16x16 in size (for example, the MinQTSize). ) can have a size of 128x128 (for example, the CTU size). If the leaf QT node is 128x128, it will be further divided into a binary tree / ternary tree. It is possible that this is not the case. This is because MaxBtsize and MaxTt will not be divided in this case. This is because it exceeds the szie (for example, 64x64). In other cases, leaf QT no The code can be further divided into a multi-type tree. Therefore, the leaf QT code The root node is the root node for a multi-type tree, and the leaf nodes are also leaf nodes. A QT node can have a multi-type tree depth (mttDepth) value of 0. If the multi-type tree depth reaches MaxMttdepth (e.g., 4) In that case, further division may not be considered. The width of the dot is the same as MinBtSize, and is the same as or smaller than 2xMinTtSize. In that case, further additional horizontal division may not be considered. The height of the tree node is the same as MinBtSize and the same as 2xMinTtSize. If it is smaller than that, further additional vertical divisions may not be considered. If partitioning is not considered, the encoding device will omit signaling of partitioning information. This is possible. In such cases, the decoding device can guide the divided information to a predetermined value. ru.
[0102] On the other hand, one CTU is a coding block for Luma samples (hereinafter referred to as "Luma block"). ) and two coding blocks of the corresponding chroma sample (hereinafter, It can include a "chroma block" (as mentioned above). The same can now be applied to the chromablock and chromablock of the current CU. They can also be applied separately. Specifically, within a single CTU The luma block and chroma block can be divided into the same block tree structure. In this case, the tree structure can be represented as a single tree (SINGLE_TREE). Alternatively, the chroma blocks and chroma blocks within a single CTU are structured as separate block trees. It can be divided into structures, and in this case the tree structure is a dual tree (DUAL_TR It can be expressed as EE). In other words, if the CTU is divided into a dual tree, then Lumab The block tree structure for the lock and the block tree structure for the chroma block are separate. It can exist in this case. In this case, the block tree structure for the Luma block is Du It can be called Dual Tree Luma, and Chromablock The block tree structure for the chromosome is a dual tree chromosome (DUAL_TREE_CHR It can be called OMA) for P and B slice / tile groups. Luma blocks and chroma blocks within the CTU have the same coding tree structure. It can be restricted to I slices / tile groups. The blocks and chroma blocks can have separate block tree structures from each other. When a block tree structure is applied, the CTB (Coding Tree Block) is used. k) is divided into CUs based on a specific coding tree structure, and the chroma CTB is other It can be divided into chroma CUs based on the coding tree structure. That is, CUs within an I-slice / tile group to which an individual block tree structure is applied are luma components It consists of a coding block of or a coding block of two chroma components, P or The CU in the B slice / tile group consists of three color components (a luma component and two chroma components). This can mean that it can be composed of blocks of ).
[0103] The above describes a quadtree coding tree structure with a multitype tree. As stated above, the structures in which CU is divided are not limited to these. For example, BT structure and TT structure This refers to a Multiple Partitioning Tree (MP). T) It can be interpreted as a concept included in the structure, and CU is by the QT structure and MPT structure. It can be interpreted that the CU is divided by the QT structure and the MPT structure. In one example, information regarding whether the leaf nodes of the QT structure are divided into several blocks. Syntax elements containing information (e.g., MPT_split_type) and QT structure - Syntax containing information about whether the node is divided in a vertical or horizontal direction. The 'ks' element (for example, MPT_split_mode) is signaled by The partition structure can then be determined.
[0104] In another example, the CU is divided in a way different from the QT, BT, or TT structures. This is possible. In other words, the QT structure allows the CU at lower depths to be 1 / of the CU at higher depths. It is divided into 4 sizes, or the BT structure allows the CU of the lower depth to be divided into the CU of the upper depth It is divided into 1 / 2 sizes, or the TT structure causes the lower depth CU to be divided into the upper depth Unlike the CU which is divided into quarter or half sizes, the CU of lower depths is, in the case Depending on the upper depth CU, 1 / 5, 1 / 3, 3 / 8, 3 / 5, 2 / 3 or 5 / 8 It can be divided into Iz, and the way in which CU is divided is not limited to this.
[0105] Thus, the quadtree coding block structure with the aforementioned multi-type tree is non It can always provide a flexible block division structure. On the other hand, it supports multi-type trees. Depending on the type of division, different division patterns may potentially be identical. The result of the coding block structure can be derived. The encoding device and decoding device are as follows: By limiting the occurrence of redundant partitioning patterns, the partitioning information This can reduce the amount of data.
[0106] Furthermore, in video / image encoding and decoding according to this specification, the image processing unit is hierarchical. It can have a specific structure. A single picture can be one or more tiles, bricks, or slices. It can be divided into, and / or tile groups. A slice contains one or more bricks. It is possible. A single brick can contain one or more CTU rows within a tile. This is possible. A slice can contain an integer number of bricks in a picture. A loop can contain one or more tiles. A single tile can contain one or more CTUs. The CTU can be divided into one or more CUs. The tiles are pic A rectangular area within a chat consisting of a specific tile row and a specific tile column made up of multiple CTUs. It is possible. A tile group is an integer number of tiles obtained by scanning the raster within the picture. It can include files. The slice header is the corresponding slice (blocks within the slice) It can carry information / parameters applicable to the encoding or decoding device. If a core processor is present, the tiles, slices, bricks and / or tile glue The encoding / decoding procedures for the P can be processed in parallel.
[0107] In this disclosure, the terms or concepts of slice or tile group may be used interchangeably. A tile group header can be called a slice header. Here, The terms for "slice" include intra(I)slice, predictive(P)slice, and b One of the slice types, including i-predictive(B) slice. It can have. For blocks within a slice, interpretation for prediction. It is not used, and only intra-prediction can be used. Of course, even in this case, It is also possible to code and signal original sample values without measurement. P-slice For blocks within a block, intra-prediction or inter-prediction can be used, and inter-prediction can be used. When used, only uni prediction is available. On the other hand, in blocks within a B slice In contrast, intra-prediction or inter-prediction can be used, and when inter-prediction is used... It can be used for predictions up to the maximum bi (bi) ratio.
[0108] The encoding device is configured according to the characteristics of the video image (e.g., resolution) or the coding Considering efficiency or parallel processing, tiles / tile groups, bricks, slices, maximum and The minimum coding unit size can be determined. And information regarding this can be obtained. The bitstream can contain information that can induce this.
[0109] The decoding device currently handles picture tiles / tile groups, bricks, slices, and tiles. To obtain information such as whether the internal CTU has been divided into multiple coding units. This is possible. Encoding and decoding devices can signal such information only under specific conditions. By doing so, encoding efficiency can also be improved.
[0110] The aforementioned slice header (slice header syntax) is suitable for all slices. It can include usable information / parameters. APS (APS syntax) or PP S (PPS syntax) is information / parameters that can be applied in common to one or more pictures. It can include. SPS (SPS syntax) is common to one or more sequences. It can include applicable information / parameters. VPS (VPS syntax) is many It can include information / parameters that are applicable to multiple layers. The `intax` (or similar) can include information / parameters that are applicable to video in general. DPS is information related to the joining of CVS (coded video sequence). / Parameters can be included.
[0111] Furthermore, for example, the division and composition of the aforementioned tiles / tile groups / bricks / slices. The information regarding is constructed in the encoding stage via the aforementioned higher-level syntax. It can be transmitted to the decoding device in stream format.
[0112] Quantization / Dequantization
[0113] As described above, the quantization unit of the encoding device applies quantization to the conversion coefficients, and the result is quantized. The conversion coefficients can be derived, and the inverse quantization unit of the encoding device or the inverse quantization unit of the decoding device The transformation coefficients can be derived by applying inverse quantization to the quantized transformation coefficients.
[0114] In the encoding and decoding of moving / still images, the quantization rate can be changed, and the change The compression ratio can be adjusted using the quantization ratio. From an implementation standpoint, complexity must be considered. Instead of directly using the quantization rate, use the quantization parameter (QP, quantization You can use parameters. For example, the number of integer values from 0 to 63. Sub-quantization parameters can be used, and each quantization parameter value corresponds to the actual quantization rate. This is possible. Furthermore, the quantization parameter QP for the luma component (luma sample) can be adjusted. Y and , quantization parameter QP for chromatic component (chromatic sample) C Set to be different It can be done.
[0115] The quantization process takes a transformation coefficient C as input and divides it by the quantization rate (Qstep), and based on this... Subsequently, the quantized transformation coefficient C' can be obtained. In this case, considering the computational complexity Then, multiply the quantization rate by the scale to convert it to integer form, and perform a shift operation only on the values corresponding to the scale value. This can be done. Based on the product of the quantization rate and the scale value, the quantization scale (quant The quantization scale can be derived according to QP. The formula can be derived. Applying the quantization scale to the conversion coefficient C, and based on this, It is also possible to derive the quantized transformation coefficient C'.
[0116] The inverse quantization process is the reverse process of the quantization process, where the quantized transformation coefficient C' is equal to the quantization rate Q. By multiplying by the step, we can obtain the restored transformation coefficient C'' based on this. In this case, the level scale is derived according to the quantization parameter. The resulting quantized transformation coefficient C' is then subjected to the level scale, and based on this, Then, the restored transformation coefficient C' can be derived. The restored transformation coefficient C'' is the transformation And / or due to losses in the quantization process, there may be some difference from the initial transformation coefficient C. Therefore, it is possible to perform inverse quantization in the encoding device as well as the decoding device. can.
[0117] On the other hand, adaptive frequency-weighted quantization (ADAP) adjusts the quantization intensity according to the frequency. tive frequency weighting quantization) technology This can be applied. The adaptive frequency-weighted quantization technique uses different quantization intensities for each frequency. This is a method of application. The adaptive frequency-weighted quantization is a predefined quantity Applying different quantization intensities for each frequency using a subdivision scaling matrix. This is possible. In other words, the quantization / inverse quantization process described above is the quantization scaling matrix This can be done based on the size of the block and / or the aforementioned. To generate the current block's residual signal, a prediction is applied to the current block. The quantization scale differs depending on whether the mode is interpredictive or intrapredictive. A ring matrix can be used. The quantization scaling matrix is a quantization matrix The quantization scaling matrix can be called a scaling matrix. The 'ks' can be predefined. Also, for frequency adaptive scaling, the above The encoding device generates frequency-specific quantization scale information for the quantization scaling matrix. / It can be encoded and signaled to a decoding device. The information can be called quantization scaling information. The information includes scaling list data (scaling_list_data). This can be done. Based on the scaling list data, the (modified) quantized scale A ring matrix can be derived. Also, the frequency-specific quantization scale information This is a presence / absence flag (present fl) that indicates whether the scaling list data exists or not. ag) information may be included. Or, the scaling list data may be higher level (e.g. For example, if signaling occurs at an SPS level, then at a lower level (e.g., PPS or t) The scaling list data is modified in the ile group header, etc. Further information indicating whether or not it is true may be included.
[0118] Conversion / Inverse Conversion
[0119] As mentioned above, the encoding device predicts via intra / inter / IBC prediction, etc. Based on the predicted blocks (predicted samples), residual blocks (residual samples) ) can be derived, and the derived residual sample can be converted and quantized. Quantized transformation coefficients can be derived. Information about the quantized transformation coefficients ( The residual information is encoded in the residual coding syntax. The output can then be output in bitstream format. The decoding device then... Information (residual information) for the quantized conversion coefficients is obtained from the system and decoded. The quantized conversion coefficients can then be derived. The decoding device then processes the quantized conversion coefficients. Residual samples can be derived via inverse quantization / inverse transform based on the numbers. As described above, at least one of the quantization / inverse quantization and / or transformation / inverse transformation is It is optional. If the conversion / inverse conversion is omitted, the conversion coefficient is a coefficient or a residue. It can also be called the Al coefficient, or for consistency of expression, it is still called the conversion coefficient. It is also possible to omit the aforementioned conversion / inverse conversion. The conversion skip flag (for example, tr Signaling can be performed based on the `ansform_skip_flag`. The first value of ransform_skip_flag (for example, 0) indicates whether conversion is omitted or not. It can be shown that it is determined by the syntax element. transform_s The second value of kip_flag (for example, 1) indicates that the conversion should be omitted (for example, skipped). It is possible.
[0120] The above conversion / inverse conversion can be performed based on a conversion kernel. For example, conversion / MTS (multiple transform selector) for performing the inverse transform n) A scheme can be applied. In this case, a set of multiple translation kernels A portion of it is selected and can be applied to the current block. The transformation kernel uses the transformation matrix and transformations. It can be called by various terms, such as conversion type. For example, a conversion kernel set is , vertical direction conversion kernel (vertical conversion kernel) and horizontal direction conversion kernel (horizontal conversion kernel) It is possible to show combinations of (Nell).
[0121] The above conversion / inverse conversion can be performed in units of CU or TU. That is, the conversion The inverse transform is applied to residual samples within CU or residual samples within TU. Applicable. The CU size and TU size can be the same, or there can be multiple TUs within the CU area. It may exist. On the other hand, CU size generally refers to the CB size of the luma component (sample). It is possible. TU size generally refers to the TB size of the luma component (sample). Yes, it is possible. The chroma component (sample) CB or TB size is the color format (chroma Depending on the component ratio according to the format (e.g., 4:4:4, 4:2:2, 4:2:0, etc.) The T can be derived based on the CB or TB size of the luma component (sample). The U size can be derived based on maxTbSize. For example, the CU If the size is greater than the maxTbSize, the CU is converted to the maxTbSize Multiple TU(TB) values are derived, and conversion / inverse conversion is performed in units of the TU(TB) values. This is possible. The aforementioned maxTbSize can be applied to various intra-prediction types such as ISPs. This can be considered in various decisions. The information regarding maxTbSize may be determined in advance. Alternatively, the signal may be generated and encoded by an encoding device and then signaled to the encoding device.
[0122] Entropy coding
[0123] As previously explained with reference to Figure 2, some or all of the video / image information is entered The entropy coding unit 190 can perform entropy coding, and the video described with reference to Figure 3 can be analyzed. / Some or all of the image information is entropy-decoded by the entropy decoding unit 310 Yes, it is possible. In this case, the video / image information is a syntax element (syntax ele It can be encoded / decoded in units of ment. In this specification, information is encoded / decoded This includes being encoded / decoded by the methods described in this paragraph. .
[0124] Figure 8 shows a CABAC block diagram for encoding a single syntax element. The ABAC encoding process first involves the input signal being a syntax element rather than a binary value. In addition, the input signal can be converted to a binary value via binarization. It is possible. If the input signal is already in binary, it can be bypassed without going through binarization. Therefore, each binary digit, either 0 or 1, that makes up a binary value can be called a bin. For example, if the binary string after binarization (binstring) is 110, then 1, 1, Each of the zeros can be called a bin. The bin for a single syntax element The 'n' can indicate the value of the syntax element in question.
[0125] The binarized bins are either regular coding engine or bypass (b It can be input into the ypass coding engine. The bin is assigned a context model that reflects the probability value. Based on the assigned context model, the bin can be encoded. In the standard coding engine, after coding for each bin, The corresponding probability model can be updated. The bins coded in this way can be converted It can be called a context-coded bin. Yes, it is possible. The bypass coding engine is a procedure for estimating probabilities for the input bins. This eliminates the need to update the probabilistic model applied to the bin after coding. In the case of a bypass coding engine, instead of assigning a context, a uniform one is used. By coding the input bins by applying a probability distribution (e.g., 50:50), This allows you to improve coding speed. The bins that are coded in this way This can be called a bypass bin. The context model is It is assigned and updated for each bin that is text-coded (canonical coding). The context model can be directed based on ctxidx or ctxInc. This is possible. ctxidx can be derived based on ctxInc. Specifically, For example, the context model for each of the canonically coded bins The context index (ctxidx) is, rement(ctxInc) and context index offset(ctx It can be derived as the sum of IdxOffset. Here, ctxInc is , can be derived differently for each bin. The ctxIdxOffset is, It can be expressed as the lowest value of ctxIdx. The minimum value of ctxIdx is the initial value (initValue) of ctxIdx. It can be called. The aforementioned ctxIdxOffset generally requires other syntax A value used to distinguish between a raw element and a context model, and one syntax The context model for the S element is categorized / derived based on ctxinc. can.
[0126] Should the encoding be performed via a regular coding engine using the entropy coding procedure, or by Determine whether to perform encoding via the path coding engine and switch the coding path. It can be edited. Entropy decoding follows a similar process to entropy coding. It can be done in reverse order.
[0127] The entropy coding described above is performed, for example, as shown in Figures 9 and 10. This can be done. Referring to Figures 9 and 10, the encoding device (entropy encoding unit) can process images. / Entropy coding procedures can be performed on the image / video information. Deo information includes partitioning-related information and prediction-related information (e.g., inter / intra Prediction classification information, intra prediction mode information, inter prediction mode information, etc., residual This may include information, in-loop filtering related information, or related information. It can include various syntax elements. The aforementioned entropy coding is syntax This can be done on a per-component basis. Steps S910 to S920 in Figure 9 are as described above. This can be done by the entropy coding unit 190 of the coding device shown in Figure 2.
[0128] The encoding device can perform binarization on the target syntax element (S910). Here, the binarization is Truncated Rice binarization. process, Fixed-length binarization process It can be based on various binarization methods such as s, and the binarization method for the target syntax element The method can be defined in advance. The binarization procedure is performed within the entropy coding unit 190 This can be done by the binarization unit 191.
[0129] The encoding device can perform entropy encoding on the target syntax element. (S920). The encoding device is CABAC (context-adaptive a (rithmetic coding) or CAVLC (context-adaptiv Entropy coding such as the e variable (length coding). Based on the technique, the canonical coding base is applied to the binstring of the target syntax element. It is possible to perform context-based or bypass coding-based encoding. The output can be included in the bitstream. Entropy coding procedure This is performed by the entropy coding processing unit 192 within the entropy coding unit 190. It is possible. As mentioned above, the bitstream is stored on a (digital) storage medium or a network. It can be transmitted to the decoding device via the network.
[0130] Referring to Figures 11 and 12, the decoding device (entropy decoding unit) is encoded Image / video information can be decoded. The image / video information is partitioned Information related to analysis, information related to prediction (e.g., internet / intra prediction classification information, intra prediction) Measurement mode information, interpretation mode information, etc., residual information, in-loop filter It can include ring-related information, or various syntactic elements related to it. It may include. The entropy coding is performed on a syntax element basis. This is possible. S1110~S1120 is the entropy recovery of the decoding device in Figure 3 described above. This can be done by the numbering unit 210.
[0131] The decoding device can perform binarization on the target syntax element (S1110 ). Here, the binarization is Truncated Rice binarization. process, Fixed-length binarization process It can be based on various binarization methods such as ss, and binarization of the target syntax element. The method can be defined in advance. The decoding device, via the binarization procedure, processes the target system Available binstrings (candidate binstrings) for the available values of the ntax element It can be derived. The binarization procedure is performed by the binarization unit 2 in the entropy decoding unit 210. This can be done by 11.
[0132] The decoding device can perform entropy decoding on the target syntax element. (S1120). The decoding device takes the input bits in the bitstream and selects the target single The binst value is derived by sequentially decoding and parsing each bin for the tax element. The ring can be compared to the available bin rings for the given syntax element. If the derived binstring is the same as one of the available binstrings If present, the value corresponding to that binstring is derived as the value of that syntax element. It is possible to do so. If not, the next bit in the bitstream can be further processed. After sizing, the above procedure can be repeated. Through this process, bits Within the stream, start bits or end bits for specific information (specific syntax elements) Even without using bits, the information can be signaled using variable-length bits. This allows for even fewer bits to be allocated to lower values, and all This can improve general coding efficiency.
[0133] The decoding device is based on entropy coding techniques such as CABAC or CAVLC. And then, for each bin in the bin string from the bitstream, context-based or This allows bypass-based decoding. The entropy decoding procedure is entropy This can be performed by the entropy decoding processing unit 212 within the entropy decoding unit 210. The bitstream contains various information for image / video decoding as described above. It may include. As mentioned above, the bitstream is a (digital) storage medium or This can be transmitted to the decoding device via the network.
[0134] In this specification, in order to demonstrate the signaling of information from the encoding device to the decoding device, Tables containing syntax elements (syntax tables) can be used. The order of the syntax elements in the table containing the syntax elements used is, This shows the parsing order of syntax elements from Ream. The encoding device can perform the decoding of the syntax elements in the parsing order. The syntax table can be constructed and encoded so that it can be parsed, and decoded. The processing device parses the syntax elements of the syntax table from the bitstream. The values of the syntax elements can be obtained by parsing and decoding according to the sequencing order. ru.
[0135] General image / video coding procedure
[0136] In image / video coding, the pictures that make up an image / video are a series of decoding It can be encoded / decoded according to the decoding order. The picture order corresponding to the output order of the decoded pictures. The (picture order) may be set to be different from the decoding order. Yes, it is possible. Based on this, when performing interpretation, we perform not only forward prediction but also backward prediction. It is possible.
[0137] Figure 13 shows an example of a schematic picture decoding procedure to which the embodiments described herein can be applied. In step 3, S1310 is performed in the entropy decoding unit 210 of the decoding device described above in Figure 3. This can be done, and S1320 performs the intra prediction unit 265 and the inter prediction unit 260 This can be done in the prediction unit, and S1330 is performed in the inverse quantization unit 220 and the inverse transformation unit 230 This can be done in the residual processing unit, which includes S1340, and is performed in the adder 235. This can be done, and S1350 can be performed in the filtering unit 240. S13 10 may include the information decoding procedure described herein, and S1320 is the information decoding procedure described herein. This may include the inter / intra prediction procedure described in the document, and S1330 is specified in this document. This may include the residual processing procedure described in S1340, which is described herein. The block / picture recovery procedure may include the S1350 described herein. It may include an in-loop filtering procedure.
[0138] Referring to Figure 13, the picture decoding procedure is as described in the explanation for Figure 3. In general terms, the procedure for obtaining image / video information from a bitstream (by decoding) (S1 310) Picture recovery procedure (S1320~S1340), and the recovered pictures The process may include an in-loop filtering procedure (S1350) to recover the picture. The original procedure is the inter / intra prediction (S1320) and residency described herein. The result is obtained through a process of inverse quantization (S1330, inverse quantization and inverse transformation of the quantized transformation coefficients). This can be done based on the predicted sample and residual sample. The in-loop filtering procedure is applied to the restored pictures generated by the picture restoration procedure. Through this, a modified restored picture can be generated, and the modified The corrected restored picture can be output as a decrypted picture, and also, When the picture is decoded after it has been stored in the decoded picture buffer or memory 250 of the decoded device It can be used as a reference picture in the interpretation procedure. In some cases, The in-loop filtering procedure is optional, in which case the restored picture is decoded. It can be output as a decoded picture, and the decoded picture buffer of the decoder A or B is saved in memory 250 and then referenced in the interpretation procedure when decoding the picture. It can be used as a chat. The in-loop filtering procedure (S1350) As mentioned above, the deblocking filtering procedure, SAO (sample ad (adaptive offset) procedure, ALF (adaptive loop filter) r) Procedure, and / or bilateral filter Procedures and other details may be included, and some or all of them may be omitted. Also, the deblocking Filtering procedure, SAO (sample adaptive offset) procedure The sequence, ALF (adaptive loop filter) procedure, and bilateral function One or part of the bi-lateral filter procedure is applied sequentially. It is possible to apply them sequentially, or all of them can be applied sequentially. For example, to restore a picture. In contrast, the SAO procedure is performed after the deblocking filtering procedure has been applied. Yes, it is possible. Alternatively, for example, a deblocking filtering procedure can be applied to the restored picture. After use, the ALF procedure can be performed. This is the same for the encoding device. It can be carried out.
[0139] Figure 14 shows an example of a schematic picture encoding procedure to which the embodiments described herein can be applied. In step 4, S1410 is the intra prediction unit 185 or the intra of the encoding device described above in Figure 2. This can be done in a prediction unit including a ter prediction unit 180, and S1420 is performed by a conversion unit 120 and / or it can be done in a residual processing unit including a quantization unit 130, S1430, This can be done in the entropy coding unit 190, and S1410 is described herein. The inter / intra prediction procedure may include, as described herein, S1420 The procedure may include a residual processing step, and S1430 is an information code as described herein. It can include a conversion procedure.
[0140] Referring to Figure 14, the picture encoding procedure is as described in the explanation for Figure 2. This involves a general overview of information for picture restoration (e.g., predictive information, residual information, part number). In addition to the procedure for encoding (such as positioning information) and outputting it in bitstream format, The procedure for generating a restored picture for the current picture, and the procedure for adding loop files to the restored picture. The encoding device may include an optional procedure for applying retaring. From the quantized conversion coefficients via the quantization unit 140 and the inverse conversion unit 150, (corrected) Residual samples can be derived, and the output of S1410 is the predicted sample and the previous A restored picture can be generated based on the (corrected) residual sample. The restored picture generated in this way is the same as the restored picture generated by the decryption device described above. They may be the same. Through the in-loop filtering procedure for the restored picture, A corrected restored picture can be generated, which is the decrypted picture buffer or memo. It can be stored in Ri170, and thereafter the picture can be encoded, just as in the case of a decoder. It can sometimes be used as a reference picture in the interpretation procedure. As mentioned above, In some cases, some or all of the in-loop filtering procedure can be omitted. When the above in-loop filtering procedure is performed, (in-loop) filtering related The information (parameters) is encoded by the entropy encoding unit 190 into a bitstream format. The output can be generated, and the decoding device encodes based on the filtering-related information. The in-loop filtering procedure can be performed in the same manner as the device.
[0141] Through such in-loop filtering procedures, blocking artifacts (a Image / video artifacts such as artifacts and ringing artifacts. It can reduce noise that occurs during coding, and improve subjective / objective visual quality. This can improve accuracy. Furthermore, in-loop filtering is implemented in both the encoding and decoding devices. By performing the taring procedure, the encoding and decoding devices derive the same prediction result. This can increase the reliability of picture coding and transmission for picture coding. This can reduce the amount of data that needs to be processed.
[0142] As mentioned above, the picture restoration procedure is performed not only in the decoding device but also in the encoding device. It can be done. Based on intra-prediction / inter-prediction, each block can be restored. A block can be generated, and a restored picture containing the restored block can be generated. Currently, the picture / slice / tile group is I picture / slice / tile group If so, the blocks currently included in the picture / slice / tile group are in It can be reconstructed based solely on tiger prediction. On the other hand, currently picture / slice / tie If the group is P or B picture / slice / tile group, then the current picture Blocks included in a slice / tile group are subject to intra-prediction or inter-prediction. It can be restored based on this. In this case, the current picture / slice / tile group Interpretation is applied to some of the blocks within, and to the remaining blocks Intra prediction can also be applied. The color components of the picture are the luma component and the chroma component. This may include minutes, and unless expressly limited herein, the methods and The examples can be applied to the luma and chroma components.
[0143] Examples of coding hierarchy and structure
[0144] Videos / images coded according to this specification are, for example, coded in the following coding stages It can be processed according to its layers and structure.
[0145] Figure 15 shows the hierarchical structure for coded images. The resulting image is processed using VCL (video coding language), which handles the image decoding process and the VCL itself. Ayer (video coding layer), a lower-level system that transmits and stores encoded information. And the NAL, which exists between the VCL and the lower-level system and is responsible for network adaptation functions. (Network Abstraction Layer) It can be divided.
[0146] VCL generates VCL data that includes compressed image data (slice data). Or, Picture Parameter Set: PPS), Sequence Parameter Set (Sequence Parameter Se t:SPS), Video Parameter Set (V A parameter set containing information such as PS, or SEI, which is additionally required for image decoding. (Supplemental Enhancement Information) message Sage can be generated.
[0147] In NAL, RBSP (Raw Byte Sequence P) generated by VCL Add header information (NAL unit header) to the load and the NAL unit It can be generated. At this time, RBSP is the slice data generated by VCL, This refers to meter sets, SEI messages, etc. The NAL unit header contains the corresponding NA Includes NAL unit type information identified by RBSP data contained in the L unit. It is possible.
[0148] As illustrated, the NAL unit is VC generated by RBSP in VCL They can be classified into L NAL units and Non-VCL NAL units. The L NAL unit contains information (slice data) about the image. It can mean that the Non-VCL NAL unit is used to decode images. The NAL unit containing the necessary information (parameter set or SEI message) It can be tasted.
[0149] The VCL NAL unit and Non-VCL NAL unit mentioned above are part of the lower-level system. It can be transmitted over a network with header information attached according to the data standard. For example, the NAL unit uses the H.266 / VVC file format, RTP (R eal-time Transport Protocol), TS (Transport Protocol) The data is transformed into a predetermined standard data format such as tStream and transmitted over various networks. It can be transmitted.
[0150] As described above, the NAL unit is the RBSP data structure included in the NAL unit. The NAL unit type can be determined according to the structure, Information for such NAL unit types is stored in the NAL unit header and the signature It can be named.
[0151] For example, depending on whether the NAL unit contains information about the image (slice data) They are broadly classified into VCL NAL unit type and Non-VCL NAL unit type. It can be done. The VCL NAL unit type includes the VCL NAL unit. Pictures can be classified according to their nature and type, such as Non-VCL NAL. Knit types can be classified according to the type of parameter set, etc.
[0152] Below are the types of parameter sets included in Non-VCL NAL unit types, etc. Therefore, here is a list of examples of the identified NAL unit types.
[0153] -APS(Adaptation Parameter Set) NAL unit :Type for NAL units including APS
[0154] -DPS(Decoding Parameter Set) NAL unit:D Type for NAL units including PS
[0155] -VPS (Video Parameter Set) NAL unit: Includes VPS Types of NAL units
[0156] -SPS(Sequence Parameter Set) NAL unit:S Type for NAL units including PS
[0157] -PPS (Picture Parameter Set) NAL Unit: PPS Types for NAL units including
[0158] The above-mentioned NAL unit type provides syntax information for the NAL unit type. The syntax information is stored in the NAL unit header and signaled. This is possible. For example, the syntax information is nal_unit_type. This can be done, and the NAL unit type can be identified by the value of nal_unit_type.
[0159] The aforementioned slice header (slice header syntax) is suitable for all slices. It may include usable information / parameters. The APS (APS syntax) or PPS (PPS syntax) is a format that can be applied to one or more slices or pictures in common. It may contain information / parameters. The aforementioned SPS (SPS syntax) may be one or more. The sequence can include information / parameters that are commonly applicable to the VPS(V PS syntax includes information / parameters that can be commonly applied to multiple layers. Yes, it is possible. The aforementioned DPS (DPS syntax) is information / packaging that can be applied to video in general. It may include a lattice. The DPS is CVS (coded video seq This includes information / parameters regarding the concatenation of (usence). This is possible. In this specification, high-level syntax (High level sy (ntax, HLS) refers to the aforementioned APS syntax, PPS syntax, SPS syntax VPS syntax, DPS syntax, and slice header syntax It can include at least one of the following.
[0160] In this specification, data encoded from an encoding device to a decoding device in bitstream format is used. The signaled image / video information includes partitioning-related information within the picture, Includes information such as inter-interface prediction information, residual information, and in-loop filtering information. In addition, the information contained in the slice header, the information contained in the APS, the Includes information contained in PPS, SPS, and / or VPS. It is possible.
[0161] Overview of Intra Prediction
[0162] The following provides a more detailed explanation of the intra-prediction performed by the encoding and decoding devices described above. The intra prediction is based on the references within the picture to which the current block belongs (hereinafter referred to as the current picture). It is possible to show a prediction that generates a predicted sample for the current block based on the sample. ru.
[0163] Refer to Figure 16 for explanation. Currently, if intra-prediction is applied to block 1601, Currently, the peripheral reference samples used for intra-prediction in block 1601 can be derived. The reference sample surrounding the current block is the left side of the current block, which is of size nW × nH. (left) Sample 1611 adjacent to the boundary and to the lower left (bottom-left) A total of 2 × nH samples, including adjacent sample 1612, currently on the upper side of the block (to p) Sample 1621 adjacent to the boundary and the sample adjacent to the upper right (top-right) A total of 2 × nW samples, including pull 1622, as well as the top left side of the current block (top- It may include one sample 1631 adjacent to the light. Or, the current blue The surrounding reference samples for locks include upper surrounding samples in multiple columns and left surrounding samples in multiple rows. It can also include.
[0164] Furthermore, the peripheral reference sample of the current block is the rightmost sample of the current block, which is nW × nH in size. A total of nH samples 1641 adjacent to the right boundary, currently on the lower side of the block ( (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 in the current block have not yet been decrypted. or it may not be available. In this case, the decryption device, the unavailable sample By substituting the available samples, the prediction can be improved. You can configure the surrounding reference samples to use. Or, interpolate the available samples. By using interpolation, the surrounding reference samples used for prediction are constructed. It is possible.
[0166] If a neighboring reference sample is derived, (i) the neighbor of the current block ng) The average or interpolation of the reference samples. (ii) Predicted samples can be derived based on (irpolation), and currently References among the surrounding reference samples of the buck that exist in a specific (predictive) direction for the predicted sample The predicted sample can also be guided based on the illuminated sample. (i) is non-directional Sexual mode or non-angle mode, (ii) in the case of directional mode Alternatively, it can be called angular mode. Also, the peripheral reference sample Based on the prediction samples of the current block, the intra prediction of the current block is made. The second peripheral sample and the first peripheral sample are located in the opposite direction to the prediction direction of the mode. The predicted samples can also be generated through interpolation. In the above case, linear interpolation Linear interpolation intra prediction It can also be called a ction (LIP). Furthermore, it can be called a linear model. Using l), chroma prediction samples can also be generated based on luma samples. In this case, it can be called LM mode. Also, filtered peripheral references Based on the sample, a temporary prediction sample of the current block is derived, and the existing peripheral reference sample Sample, i.e., the intra-predicted sample among the unfiltered peripheral reference samples. The at least one reference sample derived according to the measurement mode and the temporary prediction sample The weighted sum is used to derive the predicted sample for the current block. It is also possible to do so. In the above case, PDPC (Position dependent in It can be called a tra prediction. Also, currently, many of the surrounding blocks From the multiple reference sample lines, select the reference sample line with the highest prediction accuracy, and then... Using a reference sample located in the prediction direction along the line, the predicted sample is derived. At that time, the method of instructing (signaling) the decoding device to use the reference sample line is used. Interpretive coding can be performed. In the above case, multi-referenc e-line (MRL) intraprediction or MRL-based intraprediction This can be called a prediction. Also, the current block is divided into vertical or horizontal subpartitions. The intra prediction is performed based on the same intra prediction mode, divided into sub-parties. Peripheral reference samples can be derived and used on a unit basis. That is, in this case, The intra prediction mode for the current block is applied identically to the subpartition. By deriving and using peripheral reference samples in units of the aforementioned subpartitions, in some cases Therefore, intra prediction performance can be improved. Such a prediction method is intra s This is referred to as ub-partitions (ISP) or ISP-based intra-prediction. This is possible. Such intra prediction methods are available in intra prediction modes (for example, DC mode, It is sometimes referred to as an intra-predictive type, distinct from planar mode and directional mode. Yes, it is possible. The aforementioned intra prediction type is an intra prediction technique or an additional intra prediction mode, etc. It can be called by various terms. For example, the intra prediction type (or additional intra Trap prediction mode, etc., is at least one of the above-mentioned LIP, PDPC, MRL, and ISP. It can also include one more. The aforementioned LIP, PDPC, MRL, ISP and other specific inputs General intranet prediction methods, excluding the RA prediction type, are called normal intranet prediction types. This is possible. Normal intra prediction types are suitable for the specific intra prediction types mentioned above. This can refer to cases where it is not used, and the prediction is made based on the intra-prediction mode described above. This can be done. On the other hand, if necessary, post-processing filters can be applied to the derived predicted samples. Ring matches can also be held.
[0167] Specifically, the intra prediction procedure includes an intra prediction mode / type determination step, and peripheral references. Illumination sample derivation step, intra-prediction mode / type-based prediction sample derivation step This may include post-processing of the derived predicted samples as needed. A post-filtering step can also be performed.
[0168] On the other hand, in addition to the intra prediction type mentioned above, there is also ALWIP (affine linea (r weighted intra-intraceptive prediction) can be used. The aforementioned ALWIP is LWIP (linear weighted intraprevention). (diction) or MIP (matrix weighted intrapred (This is called an iction or matrix-based intracellular prediction.) It can also be discovered. If the aforementioned MIP is applied to the current block, i) averaging ( ii) matrix vector using peripheral reference samples in which the averaging procedure was performed Matrix-vector-multiplication ) Perform the following steps, and iii) perform horizontal / vertical interpolation as needed. By performing the steps further, it is possible to derive the predicted sample for the current block. The intra-prediction mode used for the aforementioned MIP is the LIP, PDPC mentioned above. Intra prediction model used in MRL, ISP intra prediction, or normal intra prediction It can be configured differently from the code. The intra prediction mode for the MIP is MIP This can be called the Intra prediction mode, MIP prediction mode, or MIP mode. , in accordance with the intra-prediction mode for the MIP, the matrix vector multiplier The matrix and offset used in the application can be set to be different. Here, the matrix can be called the (MIP) weight matrix, and the O The offset is either an (MIP) offset vector or an (MIP) bias vector. It can be called [this]. The specific MIP method will be described later.
[0169] The block reconstruction procedure based on intra prediction and the intra prediction unit within the coding device are, in general terms, For example, the following may be included: S1710 is the intra prediction unit 18 of the encoding device This can be done by 5, and S1720 is performed by the subtraction unit 115 and conversion unit 12 of the encoding device. It includes at least one of the following: 0, quantization unit 130, inverse quantization unit 140, and inverse transformation unit 150. This can be done by a residual processing unit. Specifically, S1720 is code This can be done by the subtraction unit 115 of the processing device. In S1730, the prediction information is Derived by the tiger prediction unit 185 and encoded by the entropy coding unit 190 It is possible. In S1730, the residual information is derived by the residual processing unit. The residual can be encoded by the entropy encoding unit 190. The information is information relating to the said residual sample. The said residual information is the This may include information about the quantized transformation coefficients for residual samples. As described above, the residual sample is converted via the conversion unit 120 of the encoding device. The coefficients are derived, and the conversion coefficients are quantized via the quantization unit 130 as conversion coefficients. It can be derived. The information regarding the quantized transformation coefficients is obtained by the residual code. It can be encoded by the entropy encoding unit 190 via a coding procedure.
[0170] The encoding device can perform intra-prediction for the current block (S1710). The encoding device derives the intra-prediction mode / type for the current block, and the current block The surrounding reference samples of the buck can be derived, and the intra prediction mode / type and previous Based on the surrounding reference samples, predictive samples are generated within the current block. Here, Determination of intra-prediction mode / type, derivation of peripheral reference samples, and generation of predictive samples. The steps may be performed simultaneously, and one step may be performed before the others. For example, although not shown in the diagram, the intra prediction unit 185 of the coding device performs intra prediction It may include a measurement mode / type determination unit, a reference sample derivation unit, and a prediction sample derivation unit. In the intra prediction mode / type determination unit, the intra prediction mode / type for the current block The type is determined, and the reference sample derivation unit derives the peripheral reference sample of the current block, The measurement sample derivation unit can derive the predicted sample for the current block. When the prediction sample filtering procedure described above is performed, the intra prediction unit 185 makes predictions It may also include a sample filter section. The encoding device has multiple intra-predictive modules. Among the modes / types, determine the mode / type that applies to the current block. The encoding device can compare the RD cost for the intra-prediction mode / type. This allows us to determine the optimal intra-prediction mode / type for the current block. ru.
[0171] On the other hand, the coding device can also perform a prediction sample filtering procedure. Pull filtering can be called post-filtering. The aforementioned prediction sample The filtering procedure filters out some or all of the predicted samples. This can be done. In some cases, the aforementioned predictive sample filtering procedure can be omitted. It is Noh.
[0172] The encoding device uses the (filtered) predicted samples to determine the current block. The corresponding residual sample can be generated (S1720). The encoding device is currently The predicted sample in the original sample in the block is compared based on the phase, and the register Dual samples can be derived.
[0173] The encoding device provides information regarding the intra prediction (prediction information) and the residual Image information including 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 bitstream format. The output bitstream can be recovered via a storage medium or network. It can be transmitted to the numbering device.
[0174] The aforementioned residual information includes the residual coding syntax described later. The encoding device converts / quantizes the residual sample and quantizes it. The conversion coefficient can be derived. The residual information is the quantized conversion coefficient. It can include information regarding...
[0175] On the other hand, as mentioned above, the encoding device recovers the picture (recovered sample and recovered block). It is possible to generate (including) the quantized transformation. For this purpose, the encoding device is the quantized transformation unit The process of inverse quantization / inverse transformation of the numbers to derive (corrected) residual samples. This can be done. After transforming / quantizing the residual sample in this way, it can then be inversely quantized / inversely transformed again. The reason for the exchange is that the residual sample derived by the decoding device is identical to the one described above. This is to derive the residual sample. The encoding device uses the predicted sample and (modified Includes a restored sample for the current block based on the (prepared) residual sample. A restoration block can be generated. Based on the restoration block, the current picture can be restored A corresponding restored picture can be generated. An in-loop filter can be applied to the restored picture. As mentioned above, ring procedures and other techniques can be further applied.
[0176] The video / image decoding procedure based on intra-prediction and the intra-prediction unit within the decoding device are: A schematic example may include the following: The decoding device is performed by the encoding device. It can perform actions that correspond to actions.
[0177] Steps S1810 to S1830 are performed by the intra-prediction unit 265 of the decoding device. The predictive information in S1810 and the residual information in S1840 are then used by the decryption device. The inverse quantum of the decoding device can be obtained from the bitstream by the tropy decoding unit 210. The resistive processing unit, which includes at least one of the conversion unit 220 and the inverse conversion unit 230, Based on the recorded residual information, we derive the residual sample for the current block. This is possible. Specifically, the inverse quantization unit 220 of the residual processing unit performs the residual Based on the quantized transformation coefficients derived from the information, inverse quantization is performed to transform The coefficient is derived, and the inverse conversion unit 230 of the residual processing unit performs the inverse conversion of the conversion coefficient. By performing the exchange, a residual sample for the current block can be derived. 1850 can be performed by the addition unit 235 or the restoration unit of the decoding device.
[0178] Specifically, the decoding device uses the received prediction information (intra prediction mode / type information) to process the data. Based on this, the intra prediction mode / type for the current block can be derived. S1810). The decoding device can derive the peripheral reference samples of the current block. (S1820). The decoding device has the intra prediction mode / type and the peripheral reference Based on the sample, a predicted sample can be generated within the current block (S18 30). In this case, the decoding device can perform the predictive sample filtering procedure. Predictive sample filtering can be called post-filtering. The measurement sample filtering procedure determines that some or all of the prediction samples are filtered. It can be filtered. In some cases, the predictive sample filtering procedure can be omitted. It is possible to abbreviate it.
[0179] The decoding device, based on the received residual information, determines the residual for the current block. Dual samples can be generated. The decoding device uses the predicted sample and the registered Based on the dual sample, a restoration sample is generated for the current block, and the restoration A reconstructed block containing the sample can be derived (S1840). The reconstructed block Based on this, a restored picture can be generated for the current picture. As mentioned above, further procedures such as in-loop filtering can be applied to pictures. That is the case.
[0180] Here, the intra prediction unit 265 of the decoding device, even though not shown in the figure, It may include a prediction mode / type determination unit, a reference sample derivation unit, and a prediction sample derivation unit. The intra prediction mode / type determination unit uses the data obtained by the entropy decoding unit 210. Intra prediction mode for the current block based on intra prediction mode / type information The type is determined, and the reference sample derivation unit derives the peripheral reference samples of the current block. The prediction sample derivation unit can derive the prediction sample for the current block. On the other hand, if the above-described prediction sample filtering procedure is performed, the intra prediction unit 265 It may also further include a predictive sample filter.
[0181] The aforementioned intra-prediction mode information is, for example, MPM (most probable mode). de) applies to the current block, or does the remaining mode (remai Flag information indicating whether ning mode is applied (for example, intra_lum It may include a_mpm_flag) and the 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 that points to one of them (for example, intra_luma_mpm_idx) It may further include: The intra-prediction mode candidate (MPM candidate) is an MPM candidate It can consist of a block or an MPM list. Also, the MPM is the current block If not applicable to the intra prediction mode information, the intra prediction mode candidate ( Limein refers to one of the remaining intra-predictive modes excluding the MPM candidate. Further information about the mode (for example, intra_luma_mpm_remainder) It may include. The decoding device uses the current block based on the intra prediction mode information. The intra prediction mode of the buck can be determined. For the MIP mentioned above, a separate M A PM list can be configured.
[0182] Furthermore, the intra-prediction type information can be implemented in various forms. As an example, The intra prediction type information indicates one of the intra prediction types. It may include intra prediction type index information. Another example is the intra prediction Measurement type information is determined by whether the MRL is applied to the current block and if it is applied. This is reference sample line information that indicates which reference sample line is used (for example, (intra_luma_ref_idx), the ISP applies to the current block. ISP flag information indicating whether (for example, intra_subpartitions_mod e_flag), if the aforementioned ISP applies, the subpartition indicates the partition type. ISP type information (for example, intra_subpartitions_split _flag), flag information indicating whether PDCP is applied, or flag indicating whether LIP is applied. It may include at least one of the G information. Also, the intra prediction type information This may include an MIP flag indicating whether or not MIP applies to the current block. ru.
[0183] The intra-prediction mode information and / or the intra-prediction type information described herein It can be encoded / decoded via the coding method described. For example, the in Truncated(r Entropy coding based on (e.g., CAB) binary code (ice) 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 conversion (conv) to remove unnecessary overlaps between elements. This is a technology used in the HEVC Screen Content Enhancement version. I have done that before. VVC can also be applied to this.
[0186] HEVC SCC extension In step n), the predicted resistive is adaptively converted from the existing color space to the YCgCo color space. ACT has been used for this purpose. One ACT fraction for each conversion unit. By signaling, one of the two color spaces is selectively selected. It is possible to do so.
[0187] For example, the first value of the flag (e.g., 1) indicates that the resistive of the conversion unit is in the original color space. This indicates that it is encoded in . The second value of the flag (e.g., 1) is the conversion unit This can be shown that the residual is encoded in the YCgCo color space.
[0188] Figure 19 shows an example of the decoding process using ACT. And, motion-compensated prediction This can be used to address inter-prediction in this disclosure.
[0189] As shown in Figure 19, the restored picture (or restored block, restored sample sequence, restored sample sequence) The pull signal (restored signal) is generated based on the predicted output value and the residual output value. This is possible. Here, the residual output value can be the inverse transformed output value. Here, the inverse transformed The conversion can be an inverse normal transformation. Here, the inverse normal transformation is an MTS-based inverse transformation or an inverse LFNS. T(low frequency non-seperable transform) It is possible.
[0190] Here, we have the predicted output value, predicted block, predicted sample sequence, predicted sample, or predicted signal. It can be, and the residual output value is a residual block, residual sample It can be a sequence, residual dual sample, or residual dual signal.
[0191] For example, on the side of the encoding device, the ACT process is induced based on the predicted sample. This can be done on residual samples. And the output value of the ACT process This can be provided as input to the regular transformation process. Here, the regular transformation process This could be an MTS-based conversion or LFNST.
[0192] Information (parameters) regarding (reverse)ACT is generated and encoded by the encoding device. It can be transmitted to the decoder in bitstream format. ru.
[0193] The decryption device acquires (reverse) ACT-related information (parameters), parses it, and decrypts it. It is possible to perform reverse ACT based on information (parameters) related to (reverse) ACT. It is possible.
[0194] Based on the reverse ACT, (modified) residual sample (or residual block) (k) can be induced. For example, by applying inverse quantization to the quantized (transform) coefficients. By doing so, the (transformation) coefficient can be derived. Then, the inverse transformation to the (transformation) coefficient can be performed. By doing this, a residual sample can be induced. By applying reverse ACT to the original sample, the (modified) original sample is obtained. It can be obtained. (Inverse) For more information (parameters) regarding ACT, see below. To state.
[0195] In one embodiment, the core conversion function used in HEVC is a core conversion for color space conversion. It can be used as a function (transformation kernel). For example, forward and reverse transformations as shown in the following formulas. A matrix for directional 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 is the color component, B is the blue color component, and R is the red color component. Therefore, C0', C1', and C2' can correspond to Y, Cg, and Co. Here, Y is Luminance, Cg (green color difference), and Co (orange color difference) are the luminance, Cg (green color difference), and Co (orange color difference) components.
[0199] Furthermore, in order to compensate for the dynamic range changes of the resistive before and after color conversion, Only QP adjustments of (-5, -5, -3) can be applied to the dual. Details of QP adjustments. This will be explained later.
[0200] On the other hand, in the encoding and decoding process according to one embodiment, if ACT can be applied, then the following Restrictions may apply.
[0201] -In the case of dual-tree coding / decoding, ACT is deactivated. For example, ACT is This is only applicable to single-tree encoding / decoding.
[0202] -ACT can be deactivated when ISP encoding and decryption are applied.
[0203] -ACT can deactivate chroma blocks to which BDP has been applied. ACT can only be activated on Lumablocks to which CM has been applied.
[0204] -If ACT can be applied, CCLM can be deactivated.
[0205] Figure 20 shows the sequence parameters to which syntax elements related to ACT are signaled. This figure shows an example of a Tasset syntax table.
[0206] Figures 21-27 show the coding units to which syntax elements related to ACT are signaled. This is a diagram showing a sequential example of a syntax table.
[0207] As shown in Figure 20, the ACT activation metric indicates whether or not ACT is activated during the decoding process. The sps_act_enabled_flag(2010) can be used as a lag indicator.
[0208] The first value of sps_act_enabled_flag (e.g., 0) indicates that ACT is being used. The flag cu_act_enabled_fl indicates whether ACT is applied at the encoding level. This indicates that ag(2110, 2710) is not provided as syntax for the coding unit. It is possible.
[0209] The second value of sps_act_enabled_flag (e.g., 1) indicates that ACT is enabled. The cu_act_enabled_flag is provided as a syntax for the coding unit. It is possible to demonstrate what is possible.
[0210] If sps_act_enabled_flag is not obtained in the bitstream, The value of sps_act_enabled_flag should be guided to the first value (e.g., 0). It is possible.
[0211] Furthermore, as shown in Figure 21, the current encoding unit's resistive is coded in the YCgCo color space. As an ACT flag indicating whether it has been enabled, cu_act_enabled_flag(21 10, 2710) can be used.
[0212] The first value of cu_act_enabled_flag (e.g., 0) is the current encoding unit This indicates that the residual was encoded in the original color space. The second value of _enabled_flag (e.g., 1) indicates that the current encoding unit's resistivity is This indicates that it was 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). Here, the original color space is RGB. It can be a color space.
[0214] QP derivation method for conversion units using ACT QP offset
[0215] In one embodiment, the quantization parameters in the scaling process for the conversion coefficients The induction process and Qp update process can be carried out as follows. For example, quantum The parameterization induction process can be carried out using the following parameters.
[0216] - The upper left luma sample of the current encoded block for the upper left luma sample of the current picture The relative coordinates of the object are shown in the Ruma coordinates (xCb, yCb).
[0217] -Currently, the variable cbWidth represents the width of the encoded block in luma samples.
[0218] - The variable cbHeight represents the height of the currently encoded block in luma samples.
[0219] -Currently, to split the encoding tree node, a single tree (SINGLE_TREE ) or indicates whether a dual tree was used, and if a dual tree was used, Is it a dual tree (DAUL_TREE_LUMA) component or a dual chroma component? The variable `treeType` indicates whether it is a DAUL_TREE_CHROMA tree.
[0220] In this process, the luma quantization parameter Qp'Y and the chromatic quantization parameter Q p'Cb, Qp'Cr, and Qp'CbCr can be induced.
[0221] The variable Luma position (xQg, yQg) corresponds to the current quantity of the top-left sample of the current picture. The position of the upper left Luma sample of the offspring group can be shown. Here, horizontal (hori The horizontal position xQg and the vertical position yQg are given by variable C, respectively. The values of uQgTopLeftX and the variable CuQgTopLeftY must be set to be the same. This is possible. CuQgTopLeftX and CuQgTopLeftY are as shown in Figure 28. In coding tree syntax, a predetermined value It can be defined as follows.
[0222] Here, the current quantization group can be the rectangular area within the coding tree block and share the same qP Y _ PRED value. Its width and height can be the same as the width and height of the coding tree node to which the upper left luma sample position is assigned to CuQgTopLeftX and CuQgTopLeftY respectively respectively.
[0223] When treeType is SINGLE_TREE or DUAL_TREE_LUMA the luma quantization parameter prediction value qP Y _ PRED can be derived as follows.
[0224] 1. The variable qP Y _ PRED is derived as follows.
[0225] (Condition 1) If any one of the following conditions is true, the value of qP Y _ PRED can be set to the same value as SliceQ p Y (where SliceQp Y represents the initial value of the quantization parameter Qp for all slices within the picture Y and can be obtained from the bitstream ). Otherwise, the value of qP Y _ PRED can be set to the value of the luma quantization parameter Qp of the last luma coding unit of the previous quantization<000-(Condition 1-2) The current quantization group is the first quantization group in the tile. If
[0228] -(Conditions 1-3) Currently the quantization group is the first quantization group in the CTB row of the tile This is a loop, and when a certain synchronization occurs (for example, 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 is qP Y _ PRED It can be set to the value of qP. Otherwise, Y _ A The value of is the luma sample position ( Luma quantization of coding units including Luma coding blocks covering xQg-1, yQg) Lameta Qp Y It can be set to the value of [this value].
[0231] -(Condition 2-1) For the block identified by the sample position (xCb, yCb), The block identified at sample location (xQg-1, yQg) is not an available adjacent block. case,
[0232] -(Condition 2-2) Luma coding that covers the Luma sample position (xQg-1, yQg) The CTB containing the lock is the current luma-encoded blueprint at luma sample position (xCb, yCb). If it is not identical to the CTB including 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) >>CtbLog2SizeY is different
[0234] -(Condition 2-2-2)(yQg)>>CtbLog2SizeY value is (yCb)>> CtbLog2SizeY is different
[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 is qP Y _ PRED It can be set to the value of qP. Otherwise, Y _ B The value of is the luma sample position ( Luma quantization of coding units including Luma coding blocks covering xQg, yQg-1) Lameta Qp Y It can be set to the value of [this value].
[0237] -(Condition 3-1) For the block identified by the sample position (xCb, yCb), The block identified at sample location (xQg, yQg-1) is not an available adjacent block. case,
[0238] -(Condition 3-2) Luma coding that covers the Luma sample position (xQg, yQg-1) The CTB containing the lock is the current luma-encoded blueprint at luma sample position (xCb, yCb). If it is not identical to the CTB including the lock, for example, if all of the following conditions are true,
[0239] -(Condition 3-2-1) (xQg)>>CtbLog2SizeY value is (xCb)>> CtbLog2SizeY is different
[0240] -(Condition 3-2-2)(yQg-1)>>CtbLog2SizeY value is (yCb) >>CtbLog2SizeY is different
[0241] 4. Predicted value of the Luma quantization parameter qP Y _ PRED This can be led to as follows:
[0242] If all of the following conditions are true, then qP Y _ PRED This is the Luma sample position (xQg, yQg Luma quantization parameter Qp of the coding unit including the Luma coding block covering -1) Y It can be set to this.
[0243] -(Condition 3-1) For the block identified by the sample position (xCb, yCb), The block identified by the sample location (xQg, yQg-1) is an available adjacent block. case
[0244] - If the current quantization group is the first quantization group in the CTB row within the tile
[0245] On the other hand, if none of the above conditions are true, qP Y _ PRED This can be derived as shown in the following formula.
[0246] [Formula 3] qP Y _ PRED =(qP Y _ A +qP Y _ B +1)>>1
[0247] Variable Qp Y This can be derived according to the following formula.
[0248] [Equation 4] Qp Y =((qP Y _ PRED +CuQpDeltaVal+64+2*QpBdOffse t)%(64+QpBdOffset))-QpBdOffset
[0249] Here, CuQpDeltaVal is the Luma quantization parameter for the coding unit and This represents the difference between the predicted value and the actual value. This value can be obtained from the bitstream. QpBdOffs et represents the luma and chromatic quantization parameter range offset. QpBdOffset This can be set to a predetermined constant or obtained from a bitstream. For example QpBdOffset is a syntax that indicates the bit depth of a luma or chroma sample. It can be calculated by multiplying the element value by a predetermined constant. Luma quantization parameter Qp' Y teeth This can be derived according to the following formula.
[0250] [Formula 5] Qp' Y =Qp Y +QpBdOffset
[0251] The value of the variable ChromaArrayType, which represents the type of chroma array, is the first value (for example) 0) is not the case, but rather treeType is SINGLE_TREE or DUAL_TREE_C If it is HROMA, the following processes can be performed.
[0252] -If the value of treeType is DUAL_TREE_CHROMA, then the variable Qp Y The values are the luma sample positions (xCb + cbWidth / 2, yCb + cbHeight / 2) Luma quantization parameter Qp of the Luma coding unit covering Y It will be set to the same value. It is possible.
[0253] -variable qP Cb , qP Cr and qP CbCr This can be derived as shown in 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] Chromatography quantization parameter Qp' for Cb and Cr components Cb and Qp' Cr and Cb-Cr Chroma quantization parameters for joint Cb-Cr coding Qp' CbCr This can be derived as shown in the following formula.
[0256] [Equation 7] Qp' Cb =Clip3(-QpBdOffset,63,qP Cb +pps_cb_qp _offset+slice_cb_qp_offset+CuQpOffset Cb )+ QpBdOffset Qp' Cr =Clip3(-QpBdOffset,63,qP Cr +pps_cr_qp _offset+slice_cr_qp_offset+CuQpOffset Cr )+ QpBdOffset Qp' CbCr =Clip3(-QpBdOffset,63,qP CbCr +pps_joi nt_cbcr_qp_offset+slice_joint_cbcr_qp_of fset+CuQpOffset CbCr )+QpBdOffset
[0257] In the above formula, pps_cb_qp_offset, pps_cr_qp_off set is Qp' Cb and Qp' Cr This is an offset used to induce the picture. It can be obtained from the bitstream for the parameter set. slice _cb_qp_offset and slice_cr_qp_offset are Qp' Cb and Qp' Cr This is the offset used to induce the bit relative to the slice header. It can be obtained from the stream. CuQpOffset Cb and CuQpOff set Cr Qp' Cb and Qp' Cr This is the offset used to induce the transformation. It can be obtained from the bitstream for each unit.
[0258] Furthermore, for example, the inverse quantization process for the transformation coefficients is performed using the following parameters. It is possible to do so.
[0259] - The top-left sample of the current Luma transform block relative to the top-left Luma sample of the current picture. Luman coordinates (xTbY, yTbY) representing relative coordinates
[0260] - Variable nTbW representing the width of the conversion block
[0261] - Variable nTbH representing the height of the conversion block
[0262] - Variable cIdx representing the color component of the current block
[0263] The output of this process can be an array d of scaled conversion coefficients. Here, the size of the array d can be (nTbW) × (nTbH). The individual elements constituting this can be identified by d[x] [y].
[0264] For this, the quantization parameter qP can be derived as follows. When the value of cIdx is 0 , qP can be derived as in the following mathematical formula.
[0265] [Equation 8] qP = Qp′ Y
[0266] Otherwise, when the value of TuCResMode[xTbY][yTbY] is 2 , it can be derived as in the following mathematical formula.
[0267] [Equation 9] qP = Qp′ CbCr
[0268] Otherwise, when the value of cIdx is 1, qP can be derived as in the following mathematical formula.
[0269] [Equation 10] qP = Qp′ Cb
[0270] Otherwise, when the value of cIdx is 2, qP can be derived as in the following mathematical formula.
[0271] [Equation 11] qP = Qp′ Cr
[0272] Subsequently, the quantization parameter qP can be updated as follows. And the variable rectNo nTsFlag and bdShift can be induced as follows: For example, transform If the value of rm_skip_flag[xTbY][yTbY][cIdx] is 0 ( For example, if no transformation is currently skipped for the transformation block, the following formula will be used: It can be guided.
[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, if the transformation is currently skipped for the transformation block) (In this case) it can be derived as shown in the following formula.
[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] Here, QpPrimeTsMin is permissible when conversion skip mode is applied. It can represent the minimum quantization parameter value. This is determined by a predetermined constant, Alternatively, this can be derived from the syntax elements of the bitstream related to this.
[0277] Here, the suffixes Y, Cb, and Cr represent the G, B, and R color components in the RGB color model. It can represent, or it can represent, the Y, Cg, and Co color components in the YCgCo color model.
[0278] BDPCM(Block Difference Pulse Code Module Overview of ation
[0279] An image encoding device and an image decoding device according to one embodiment perform differential encoding of residual signals. This can be done. For example, an image encoding device can perform the current block residual signal By subtracting the predicted signal, the residual signal can be encoded, and image decoding can be performed. The device adds the predicted signal to the current block's residual signal, thereby reducing the residual signal. The A-signal can be decoded. The image encoding device and image decoding device according to one embodiment By applying BDPCM, as described later, differential encoding of residual signals is performed. It is possible.
[0280] The BDPCM disclosed herein is a quantized residual domain. This can be done in the redisual domain. The domain is a quantized residual signal (or quantized residual coefficients) It can include, and when BDPCM is applied, the transformation for quantized residual signals. The exchange can be skipped. For example, when applying BDPCM, the residual signal The transformation can be skipped for the number and quantization can be applied. Alternatively, quantization can be performed. The residual domain can contain quantized transformation coefficients.
[0281] In one embodiment where BDPCM is applied, the image coding device operates in intra-predictive mode. Induce the predicted current block resistive block and quantum resistive block resistive block This can induce a residual block. The image encoding device currently blocks When differential coding mode is performed on the residual signal, the residual block In contrast, differential encoding can induce a modified residual block. Yes, it is possible. And the image coding device is a difference code that indicates the difference coding mode of the residual signal. Encode the encoding mode information and the modified residual block into a bitstream It is possible to generate M.
[0282] More specifically, if BDPCM is applied to the current block, the predicted value of the current block Predicted blocks containing the selected samples (predicted blocks) are generated by intraprediction. It can be done. At this time, the intra prediction mode for performing intra prediction is bit Signaling can also be performed via the stream, in the prediction direction of the BDPCM described later. It can also be guided based on this. In this case, the intra prediction mode is the vertical prediction method It can be determined to either the direction mode or the horizontal prediction direction mode. If the prediction direction of BDPCM is horizontal, the intra prediction mode is horizontal prediction direction The mode is determined, and the current block prediction block is generated by horizontal intraprediction. It can be done. Alternatively, if the prediction direction of BDPCM is vertical, intra The prediction mode is determined to be the vertical prediction direction mode, and the prediction block for the current block is the vertical direction. It can be generated by intra-prediction. When horizontal intra-prediction is applied In addition, the value of the pixel adjacent to the left of the current block is included in the row of the current block. The predicted sample value of the sample can be determined. Vertical intra If prediction is applied, the value of the pixel adjacent to the top of the current block will be the value of the current block. The predicted sample value of the sample included in the column can be determined. If BDPCM is applied to the current block, it generates a predicted block for the current block. The method can be carried out similarly in the image encoding device and the image decoding device.
[0283] If BDPCM is applied to the current block, the image encoding device will start from the previous block. By subtracting the predicted block, the current block contains a register dual sample. Dual blocks can be generated. The image encoding device can generate the residual dual blocks After quantizing the sample, the quantized residual sample and the predicted value of the quantized residual sample are... Encode the difference (or delta) between the predictor and the given value. The image decoding device can use the difference values and predictors recovered from the bitstream. Based on this, by obtaining a quantized residual dual sample of the current block, the current block A quantized residual block can be generated. Then, the image decoding device can By dequantizing the quantized resistive block and then adding it to the prediction 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. 29 can be generated by subtracting the predicted block from the current block by an image encoding device. In FIG. 29, the quantized residual block can be generated by quantizing the residual block by an image encoding device. 29 of the quantized residual bloc k) can be generated by quantizing the residual block by an image encoding device. In FIG. 29, r i,j represents the value of the residual sample at the (i, j) coordinates in the current block. When the size of the current block is M×N, the i value can be 0 or more and M−1 or less. Also, the j value can be 0 or more and N−1 or less. For example, the residual can represent the difference between the original block and the predicted block. i,j For example, r , j) can be derived by subtracting the value of the predicted sample from the value of the original sample at the (i For example, r i,j is the horizontal intra prediction of copying the value of the left adjacent pixel along a line across the predicted block using the unfiltered sample from the upper or left boundary sample, or the predicted residual after performing vertical intra prediction of copying the upper adjacent line to individual lines of the predicted block. In FIG. 29, Q(r In FIG. 29, Q(r
[0285] In FIG. 29, Q(r i,j ) represents the value of the quantized residual sample at the (i, j) coordinates in the current block. For example, Q(r i,j ) can represent the quantized value of r i,j . can be.
[0286] The BDPCM prediction was made for the quantized residual sample in Figure 29 and corrected. quantized resin dual sample M×N size modified quantized resistor dual block containing al samples)r' (modified quantized residual block) R' is produced It can be done.
[0287] When the prediction direction of BDPCM is horizontal, correct the (i,j) coordinates within the current block. The quantized residual dual sample values (r' i,j ) can be calculated using the following formula.
[0288]
number
[0289] As shown in equation 14 above, when the prediction direction of the BDPCM is horizontal, the (0,j) coordinate r' 0,j The value is the quantized resistance dual sample value Q(r 0,j ) will be assigned as is. . Other (i,j) coordinates r' i,j The value is a quantized residual sample of the (i,j) coordinates. The value of Q(r) i,j ) and the quantized residual dual sample value Q(r i-1,j It is derived as the difference value from ). In other words, the quantized residual sample of the (i,j) coordinates. The value Q(r i,j Instead of encoding the (i-1,j) coordinates, quantized residuals The value of the pull Q(r i-1,j The difference value calculated using ) as the predicted value is corrected quantized Dual sample value (r' i,j After inducing as r' i,jEncode the value.
[0290] When the prediction direction of BDPCM is vertical, the (i,j) coordinates within the current block are corrected. The quantized residual dual sample values (r' i,j ) can be calculated using the following formula.
[0291]
number
[0292] As shown in equation 15 above, when the prediction direction of the BDPCM is vertical, the (i,0) coordinate r' i,0 The value is the quantized resistance dual sample value Q(r i,0 ) will be assigned as is. . Other (i,j) coordinates r' i,j The value is a quantized residual sample of the (i,j) coordinates. The value of Q(r) i,j ) and the quantized residual dual sample value Q(r i,j-1 It is derived as the difference value from ). In other words, the quantized residual sample of the (i,j) coordinates. The value Q(r i,j Instead of encoding the (i,j-1) coordinates, quantized residuals in the (i,j-1) coordinates. The value of the pull Q(r i,j-1 The difference value calculated using ) as the predicted value is corrected quantized Dual sample value (r' i,j After inducing as r' i,j Encode the value.
[0293] As mentioned above, using adjacent quantized residual dual sample values as predicted values, currently The process of correcting quantized residual dual-sample values can be called BDPCM prediction.
[0294] Finally, the image coding device includes a modified quantization residual sample. The quantized residual block can be encoded and transmitted to the image decoding device. At that time, as mentioned above, the conversion to the modified quantized residual block is not performed. stomach.
[0295] Figure 30 shows the modified quantized residual blueprint generated by performing the BDPCM of this disclosure. It indicates a lock.
[0296] In Figure 30, Horizontal BDPCM is defined as BDPCM with a horizontal prediction direction. When the direction is such that the modified quantized resistor is generated according to equation 14, This indicates the vertical direction of the BDPCM prediction. In this case, the modified quantized residual block generated according to equation 15 is This indicates.
[0297] Figure 31 shows the process of encoding the current block using BDPCM in an image encoding device. This is a flowchart showing the sequence.
[0298] First, when the current block, which is the block to be encoded, is input (S3110), the current block A prediction can be made on the lock to generate a prediction block (S3120). The prediction block of the S3120 is an intra-prediction block, and the intra-prediction mode is As described above, this can be determined based on the prediction block generated in step S3120. Currently, it is possible to generate a registered dual block of a block (S3130). For example, The image encoding device uses the current block (value of the original sample) to predict the block (predicted value of the sample). By subtracting the sample value, the residual block (the value of the residual sample) is obtained. ) can be generated. For example, by executing step S3130, the register in Figure 29 can be generated. A dual block can be generated. The residency generated in step S3130 Quantization is performed on the Alblock (S3140), and a quantized Residualblock is generated. Therefore, BDPCM prediction can be performed on quantized residual blocks (S 3150). The quantized resistor dual block generated as a result of executing step S3140 The quantization resistor in Figure 29 is a BDPCM pre-configuration block in step S3150. Based on the measurement results, a modified quantized residual block, as shown in Figure 30, is generated according to the predicted direction. This is possible. The BDPCM prediction in step S3150 is explained with reference to Figures 29 and 30. Since I have already revealed it, I will omit the specific explanation. After that, the image encoding device uses a modified quantization The dual block can be encoded (S3160) to generate a bitstream. In this case, the conversion to the modified quantized residual dual block is skipped. It is possible.
[0299] The BDPCM operation in the image encoding device described with reference to Figures 29 to 31 is as follows: This can be done in reverse using an image decoding device.
[0300] Figure 32 shows the procedure for restoring the current block by applying BDPCM in an image decoding device. This is a flowchart.
[0301] The image decoding device extracts the information necessary to restore the current block from the bitstream (image information). ) can be obtained (S3210). The information currently needed to restore the block is currently Information regarding lock predictions (prediction information), information regarding current block resistances (re This may include information such as dual information. The image decoding device currently contains information about the block. Based on the information, a prediction can be made for the current block and a predicted block can be generated. S3220). Currently, the prediction for the block is an intra-prediction, and a detailed explanation is shown in Figure 31. This is similar to what was explained by referring to [reference]. In Figure 32, the predicted block for the current block is The step of generating the block (S3220) generates the current block's residual block. It was shown to be performed prior to steps S3230 to S3250. However, Not limited to this, after the current block's registered dual block is generated, the current block Predictive blocks can also be generated. Alternatively, the current block's residual block can be generated. The predicted block for the current block can also be generated at the same time.
[0302] The image decoding device extracts the current block's residual information from the bitstream. By doing so, it is possible to generate a current block's registered dual block (S3 230). The residual block generated in step S3230 is shown in Figure 30. It could be a modified quantized residual block.
[0303] The image decoding device uses BDPC for the modified quantization resistive dual block shown in Figure 30. By performing M prediction (S3240), the quantized residual block shown in Figure 29 can be generated. The BDPCM prediction in step S3240 is shown in Figure 30 with the modified quantization resistance. This is a procedure for generating the quantized residual block shown in Figure 29 from the block, so the image code This can correspond to the reverse process of step S3150 performed in the imaging apparatus. For example, image recovery The encoding device obtains differential encoding mode information (e.g., bdpc) from the bitstream. The difference encoding of the residual coefficients is performed when BDPCM is applied to m_flag. If the differential encoding mode to be performed is indicated, then differential encoding will be performed on the residual block. This allows for the induction of a corrected residual block. The image decoding device Using the residual coefficient to be modified and the predicted residual coefficient, within the residual block Modify at least one of the target residual coefficients among the residual coefficients. This is possible. The predicted residual coefficient is obtained from the bitstream. The direction is determined based on the predicted direction indicated by the direction information (e.g., bdpcm_dir_flag). It can be done. The differential encoding direction information is either the vertical or the horizontal. The direction can be indicated. The image decoding device uses the modified residual coefficient and the predicted rate. The sum of the disual coefficient and the value obtained is assigned to the position of the modified disual coefficient. This can be done. Here, the prediction resistance coefficient is the target of the correction in order of the prediction direction. It can be a coefficient immediately adjacent to the residual coefficient.
[0304] The following describes the BDPCM prediction in step S3240 performed by the image decoding device. I will explain in detail. The decoding device performs the calculations that the encoding device performed earlier in reverse. , quantized resistor dual sample Q(r i,j ) can be calculated. For example, BDPC When the predicted direction of M is horizontal, the image decoding device uses equation 16 to correct the It is possible to generate quantized resistive blocks from quantized resistive blocks.
[0305]
number
[0306] As defined in Equation 16, the quantized residual sample value of the (i,j) coordinate Q(r i,j ) is the modified quantization range from the (0,j) coordinate to the (i,j) coordinate. It can be calculated by summing the values of the sample.
[0307] Alternatively, instead of equation 16, use equation 17 to determine the quantization range of the (i,j) coordinates. Sample value Q(r i,j ) can be calculated.
[0308]
number
[0309] The above equation 17 is the inverse process corresponding to equation 14. According to the above equation 17, (0,j ) Quantized residual dual sample value Q(r 0,j ) is the corrected coordinate of (0,j) Quantized Residual Sample Valuer 0,j It is induced as follows: Other (i,j) coordinates Q(r i,j ) is the value of the modified quantized residual dual sample r' at (i,j) coordinates. i,j and The quantized residual dual sample value Q(r) at (i-1,j) coordinates. i-1,j ) is derived as a sum with This is done. In other words, the quantized residual dual sample value Q(r) of the (i-1,j) coordinate. i-1,j ) Using the predicted value as the difference value r' i,j By summing them up, quantized resistor dual sample The value Q(r i,j ) can be induced.
[0310] When the prediction direction of BDPCM is vertical, the image decoding device uses equation 18, Generating a quantized residual block from a modified quantized residual block. It is possible.
[0311]
number
[0312] As defined in Equation 18, the quantized residual sample value of the (i,j) coordinate Q(r i,j ) is the modified quantization extent from coordinate (i,0) to coordinate (i,j) It can be calculated by summing the values of the sample.
[0313] Alternatively, instead of equation 18, use equation 19 to determine the quantization extent of the (i,j) coordinates. Sample value Q(r i,j ) can be calculated.
[0314]
number
[0315] The above equation 19 is the inverse process corresponding to equation 15. According to the above equation 19, (i,0 ) Quantized residual dual sample value Q(r i,0 ) is the corrected coordinate of (i,0) Quantized Residual Sample Valuer i,0 It is induced as follows: Other (i,j) coordinates Q(r i,j ) is the value of the modified quantized residual dual sample r' at (i,j) coordinates. i,j , And the quantized residual dual sample value Q(r) at (i,j-1) coordinates. i,j-1 ) as a sum It is derived that the quantized residual dual sample value Q(r) of the (i,j-1) coordinate is obtained. i,j- 1) Use the predicted value and the difference value r' i,j By summing them up, quantized residual sun Pull value Q(r i,j ) can be induced.
[0316] Step S3240 is performed using the method described above, and the quantized resistor is configured. Once the quantized residual block is generated, the image decoding device generates the quantized residual By performing inverse quantization on the Alblock (S3250), the current block's legacy Dual blocks can be generated. When BDPCM is applied, as mentioned above. Currently, the transformation for the block is skipped, so for the inverse quantization resistive block... The inverse transformation can be skipped.
[0317] Subsequently, the image decoding device uses the prediction block generated in step S3220 and step The current block is restored based on the residual block generated by the S3250. This can be done (S3260). For example, the image decoding device can predict the block (predicted sun By adding the pull value and the residual block (the value of the residual sample), Then, the current block (value of the restored sample) can be restored. For example, intrablock The predicted value of the quantized sample Q is inversely quantized. -1 (Q(r i,j )) will be added This allows for the generation of reconstructed sample values. BDPCM is currently applied to the block. The differential encoding mode information indicating whether or not to perform the encoding is signaled via the bitstream. It can be done. Also, if BDPCM is currently applied to the block, the BDPCM pre- Differential encoded direction information indicating the direction of measurement is signaled via a bitstream. This is possible. Currently, if BDPCM is not applied to the block, the differential encoding direction information Signaling may not be performed.
[0318] Figures 33 to 35 show the syntax for signaling information related to BDPCM. This is a schematic diagram.
[0319] Figure 33 shows sequence parameters according to one embodiment for signaling BDPCM information. This diagram shows the syntax of the taset. In one embodiment, the temporal ID (Tempor At least one access unit (access uni) has 0 as alId. All SPS RBS included in t, AU) or provided via external means. P can be set to be available before it is referenced during the decryption process. And SP An SPS NAL unit containing an S RBSP refers to a PPS NAL unit. It is configured to have the same nuh_layer_id as the nuh_layer_id of the other nuh_layer_id. This is possible. In CVS, a specific sps_seq_parameter_set_ All SPS NAL units with an ID value are configured to have the same content. It is possible. The seq_parameter_set_rbsp() syntax in Figure 33 is: The sps_transform_skip_enable_flag mentioned above, and the following will be discussed later. The sps_bdpcm_enabled_flag has been disclosed.
[0320] The syntax element sps_bdpcm_enabled_flag is an intracode The `intra_bdpcm_flag` is provided for the `fing` unit using CU syntax. It can indicate whether or not it is enabled. For example, sps_bdpcm_enabled_fla The first value of g (e.g., 0) is for intra_bdp for the intracoding unit. This can indicate that cm_flag is not provided in CU syntax. sps_b The second value of dpcm_enabled_flag (for example, 1) is the intracoding unit For knits, the intra_bdpcm_flag can be provided using CU syntax. This can be shown. On the other hand, sps_bdpcm_enabled_flag is provided If not enabled, the value of sps_bdpcm_enabled_flag will be the first value (e.g., 0). It can be set to this.
[0321] Figure 34 shows the syntax for signaling whether or not restrictions apply to BDPCM. This figure shows one embodiment. In one embodiment, predetermined limitations in the encoding / decoding process The condition is expressed using the general_constraint_info() syntax. It can be gnared. Using the syntax in Figure 34, the above sps_bd Syntax indicating whether the value of pcm_enabled_flag should be set to 0. The element no_bdpcm_constraint_flag is signaled. Yes, it is possible. For example, the first value of no_bdpcm_constraint_flag (for example) 0) can indicate that such restrictions do not apply. no_bdpcm_c If the value of onstraint_flag is the second value (e.g., 1), sps_bdpc The value of m_enabled_flag can be forced to a primary value (e.g., 0).
[0322] Figure 35 shows the code that signals information about BDPCM to the encoding unit. This figure shows one example of the ng unit() syntax. As shown in Figure 35, co Using the ding_unit() syntax, the syntax element intra_bdpc The signaling of m_flag and intra_bdpcm_dir_flag is Yes, it is possible. The syntax element intra_bdpcm_flag is located at (x0, y0). This can indicate whether BDPCM is applied to the currently assigned Luma coding block.
[0323] For example, the first value of intra_bdpcm_flag (e.g., 0) is currently Luma-encoded This can indicate that BDPCM is not applied to the block. intra_bdpcm The second value of _flag (e.g., 1) indicates that BDPCM is currently applied to the Luma coding block. This can indicate that intra_bdpcm_flag is applied. By indicating that the conversion is skipped, the intramural prediction mode is later It can be indicated whether or not this is done by the intra_bdpcm_dir_flag described 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 This can be set as the value of dpcm_flag.
[0325] The syntax element intra_bdpcm_dir_flag is the prediction method for BDPCM. It can indicate direction. 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 perpendicular. It can indicate a direction.
[0326] On the other hand, the value of the variable BdpcmDir[x][y] is x=x0..x0+cbWidth For -1 and y=y0..y0+cbHeight-1, intra_bdpcm_ This can be set as the value of dir_flag.
[0327] Intra prediction for chromablock
[0328] If an intra prediction is performed on the current block, the current block's luma component block (luma Predictions are made for blocks, and for chroma component locks (chroma blocks). It can be done, and in this case, the intra prediction mode for chromablock is chromablock This can be configured separately from the intra-prediction mode for the target.
[0329] For example, the intra-prediction mode for chroma blocks is the intra-chroma prediction mode information. The instructions can be given based on the report, and the intrachroma prediction mode information is intra Signaling in the form of the _chroma_pred_mode syntax element. This is possible. For example, the intrachroma prediction mode information is Planar mode, D C mode, vertical mode, horizontal mode, D M (Derived Mode), CCLM (Cross-component lin It can refer to any one of the ear model modes. Here, Pla The nar mode is the 0th intra prediction mode, the DC mode is the 1st intra prediction mode, and the previous The vertical mode is the 26th intra-prediction mode, and the horizontal mode is the 10th intra-prediction mode. These can be shown respectively. DM can also be called direct mode. CCLM can also be called LM (linear model). CCLM is It can contain one of L_CCLM, T_CCLM, or LT_CCLM. .
[0330] On the other hand, DM and CCLM use information from the luma block to predict the chroma block, which is a dependency. This is an intra-prediction mode. 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 chroma component. It can show a mode that can be used. In addition, the CCLM predicts the chroma block. After subsampling the reconstructed sample of the luma block during the process of generating the lock, The CCLM parameters α and β were applied to the subsampled samples to derive the results. This indicates an intra-prediction mode that uses a sample as a prediction sample for the chroma block. It is possible.
[0331] Overview of CCLM (Cross-component linear model) mode Essential
[0332] As mentioned earlier, CCLM mode can be applied to chroma blocks. CCLM mode is , the correlation between the luma block and the chroma block corresponding to the luma block (corre This is an intra-prediction mode using lation, and it uses peripheral samples of the luma block and This is done by deriving a linear model based on the surrounding samples of Lomablock. Based on the linear model and the reconstructed sample of the chroma block, the chroma block Predicted samples can be derived.
[0333] Specifically, if CCLM mode is currently applied to the chromablock, Surrounding samples used for intra prediction of the block and currently used for intra prediction of the block Parameters for the linear model can be derived based on the peripheral samples used. For example, a linear model for CCLM can be expressed based on the following formula.
[0334]
number
[0335] Here, pred c (i,j) is the (i,j) of the current chroma block in the current CU. A sample of coordinate prediction can be shown. L '(i,j) is the current within the CU A sample of the reconstructed (i,j) coordinates of the current block can be shown. For example, the re c L '(i,j) is the downsampling of the current Lumablock (down-sanm The reconstructed sample (pled) can be shown. The linear model coefficients α and β are given by signaling It can be generated by stimulating the surrounding samples, but it can also be induced from surrounding samples.
[0336] Residual co-coding (joint CbCr)
[0337] In the encoding / decoding process according to one embodiment, the chroma regidual is encoded / decoded together. This can be called joint CbC coding. It can also be called r (Joint CbCr). Application of the joint coding mode of CbCr ( (Activation) The co-encoded mode signaling function is signaled at the conversion unit level. The lag is tu_joint_cbcr_residual_flag, which signals It can be coded. And the selected coding mode is induced by chroma CBF. It can be guided. Flag tu_joint_cbcr_residual_fla g exists when at least one chroma CBF value for the conversion unit is 1. This is possible. The normal chroma regi dual coding mode is signaled to the regular chroma regi dual coding mode. Chroma QP offset value and Chroma QP offset value for CbCr co-coding mode Chroma QP offset values to indicate differences are transmitted via PPS or slice headers. It can be narrated. Such QP offset values are co-chromarized. It can be used to derive chroma QP values for blocks using an encoding mode.
[0338] In the corresponding co-chroma coding modes, mode 2 in the table below is activated for the conversion unit. If it is converted, the chroma QP offset will be applied during the quantization and decoding of the conversion unit. The target is luma-derived chromatograph QP (applied luma-derived chromatograph QP). It can be added to ma (QP).
[0339] For other modes such as modes 1 and 3 in the table below, ChromaQP is normal C This can be induced in a manner that is obtained for b or Cr blocks. The process of restoring Chromares Dual (resCb and resCr) from a block is as follows: This can be selected by the table. When this mode is activated, one single collaborative chromatographic regime The dual block (resJointC[x][y] in the table below) is signaled. Residual blocks for Cb, resCb and Cr resCr is listed in tu_cbf_cb, tu_cbf_cr, and the slice header. The result can be guided by considering information such as the assigned sign value, CSign.
[0340] In an encoding device, the co-chroma component can be derived as follows, depending on the co-coding mode. Therefore, resJointC{1,2} can be generated in the following order: mode is 2. Case (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] Instead, 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] Instead, if 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 table above shows the restoration of Chromares Dual. CSign is specified in the slice header. The sign value is +1 or -1. resJointC[][] is the transmitted residency This indicates Al. The mode in the table above refers to TuCResMode, which will be described later. The three co-chroma coding modes in P and B can only be supported for I slices. For slices, only mode 2 can be supported. Therefore, for P and B slices, The syntax element tu_joint_cbcr_residual_flag has two The values of the chroma cbf (e.g., tu_cbf_cb and tu_cbf_cr) are both 1. It can only be provided if that is the case. On the other hand, tu_cbf_luma and tu_cbf_cb Transformation depth can be eliminated in context modeling.
[0348] Example 1: QP update method using ACT Qp_offset
[0349] As mentioned above, QP updates can be made to apply ACT. The update of QP has various problems. For example, when using the method described above, It is not possible to set different ACT Qp offsets for each color component. Furthermore, induction The calculated qP value can also have a negative value. Therefore, in the following examples, the color component value Applying clipping to the Qp value derived 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, if the value of cIdx is 0, the qP and ACT Qp offset are given by the following formula: It can be guided in that direction.
[0352] [Formula 24] qP=Qp'Y ActQpOffset=5
[0353] Otherwise, if the value of TuCResMode[xTbY][yTbY] is 2 The qP and ACT Qp offset can be derived as shown in the following formula.
[0354] [Formula 25] qP=Qp' CbCr ActQpOffset=5
[0355] Otherwise, if the value of cIdx is 1, the qP and ACT Qp offsets are below It can be derived like a mathematical formula.
[0356] [Formula 26] qP=Qp' Cb ActQpOffset=3
[0357] The quantization parameter qP can be updated as follows:
[0358] The value of transform_skip_flag[xTbY][yTbY][cIdx] If is 0, qP can be derived as shown in the following formula.
[0359] [Formula 27] qP=Max(0,qP-(cu_act_enabled_flag[xTbY][ yTbY]ActQpOffset:0))
[0360] Instead, transform_skip_flag[xTbY][yTbY][ If the value of cIdx is 1, qP can be derived as shown in the following formula.
[0361] [Formula 28] qP=Max(0,Max(QpPrimeTsMin,qP)-(cu_act_e enabled_flag[xTbY][yTbY]?ActQpOffset:0))
[0362] In other embodiments, transform_skip_flag[xTbY][yTb If the value of [Y][cIdx] is 1, then qP will be QpPri instead of 0 as shown in the formula below. Clipping can be performed using the value of meTsMin.
[0363] [Formula 29] qP=Max(QpPrimeTsMin,qP-(cu_act_enabled_ flag[xTbY][yTbY]?ActQpOffset:0)
[0364] On the other hand, in another embodiment, the quantization parameter qP can be derived as follows.
[0365] First, if the value of cIdx is 0, the qP and ACT Qp offset are given by the following formula: It can be guided to sea urchin.
[0366] [Formula 30] qP=Qp' Y ActQpOffset=5
[0367] Otherwise, if the value of TuCResMode[xTbY][yTbY] is 2 The qP and ACT Qp offset can be derived as shown in the following formula.
[0368] [Formula 31] qP=Qp' CbCr ActQpOffset=5
[0369] Otherwise, if the value of cIdx is 1, the qP and ACT Qp offsets are below It can be derived like a mathematical formula.
[0370] [Formula 32] qP=Qp' Cb ActQpOffset=5
[0371] Otherwise, if the value of cIdx is 2, then the qP and ACT Qp offsets are below It can be derived like a mathematical formula.
[0372] [Formula 33] qP=Qp' Cr ActQpOffset=3
[0373] The quantization parameter qP can be updated as follows:
[0374] The value of transform_skip_flag[xTbY][yTbY][cIdx] If is 0, qP can be derived as shown in the following formula.
[0375] [Formula 34] qP=Max(0,qP-(cu_act_enabled_flag[xTbY][ yTbY]ActQpOffset:0))
[0376] Instead, transform_skip_flag[xTbY][yTbY][ If the value of cIdx is 1, qP can be derived as shown in the following formula.
[0377] [Formula 35] qP=Max(0,Max(QpPrimeTsMin,qP)-(cu_act_e enabled_flag[xTbY][yTbY]?ActQpOffset:0))
[0378] In other embodiments, transform_skip_flag[xTbY][yTb If the value of [Y][cIdx] is 1, then qP is QpP instead of 0, as shown in the formula below. Clipping can be performed using the value of rimeTsMin.
[0379] [Formula 36] qP=Max(QpPrimeTsMin,qP-(cu_act_enabled_ flag[xTbY][yTbY]?ActQpOffset:0))
[0380] On the other hand, in another embodiment, the quantization parameter qP can be derived as follows.
[0381] First, if the value of cIdx is 0, the qP and ACT Qp offset are given by the following formula: It can be guided to sea urchin.
[0382] [Formula 37] qP=Qp′ Y ActQpOffset=-5
[0383] Otherwise, if the value of TuCResMode[xTbY][yTbY] is 2 The qP and ACT Qp offset can be derived as shown in the following formula.
[0384] [Formula 38] qP=Qp′ CbCr ActQpOffset=-5
[0385] Otherwise, if the value of cIdx is 1, the qP and ACT Qp offsets are below It can be derived like a mathematical formula.
[0386] [Formula 39] qP=Qp′ Cb ActQpOffset=-5
[0387] Otherwise, if the value of cIdx is 2, then the qP and ACT Qp offsets are below It can be derived like a mathematical formula.
[0388] [Formula 40] qP=Qp′ Cr ActQpOffset=-3
[0389] The quantization parameter qP can be updated as follows:
[0390] The value of transform_skip_flag[xTbY][yTbY][cIdx] If is 0, qP can be derived as shown in the following formula.
[0391] [Formula 41] qP=Max(0,qP+(cu_act_enabled_flag[xTbY][ yTbY]?ActQpOffset:0))
[0392] Instead, transform_skip_flag[xTbY][yTbY][ If the value of cIdx is 1, qP can be derived as shown in the following formula.
[0393] [Formula 42] qP=Max(0,Max(QpPrimeTsMin,qP)+(cu_act_e enabled_flag[xTbY][yTbY]?ActQpOffset:0))
[0394] On the other hand, in other embodiments, transform_skip_flag[xTbY][ If the value of [yTbY][cIdx] is 1, then qP will be 0 instead of 1, as shown in the formula below. Clipping can be performed using the value of QpPrimeTsMin.
[0395] [Formula 43] qP=Max(QpPrimeTsMin,qP+(cu_act_enabled_ flag[xTbY][yTbY]?ActQpOffset:0))
[0396] In the explanation above, Y, Cb, and Cr can represent three color components. For example, In the ACT conversion, Y can correspond to C0. Cb corresponds to C1 or Cg. It is possible. And Cr can correspond to C2 or Co.
[0397] Furthermore, the ACTQpOffset values of -5, -5, and -3 for the three color components mentioned above are, This may be replaced with the value of or another variable.
[0398] Example 2: Signaling of QP offset adjustment for ACT
[0399] In the aforementioned example, the ACT QP offset adjustment was performed on the Y, Cg, and Co components. It is fixed at -5, -5 and -3. In this embodiment, the ACT QP adjustment offset To provide even more flexibility, signal the ACT QP offset. The method will be explained. The ACT QP offset is used as a parameter in PPS. It can be ringed.
[0400] In one embodiment, qp_offset is determined according to the syntax table in Figure 36. It can be gnalled. The syntactic elements for this are as follows:
[0401] Syntax element pps_act_qp_offsets_present_flag This indicates whether or not a syntax element related to the ACT QP offset exists within the PPS. It is possible to do this. For example, pps_act_qp_offsets_present_f lag is a syntax element described later, pps_act_y_qp_offset, pps _act_cb_qp_offset and pps_act_cr_qp_offset are It can indicate whether or not it will be signaled as a PPS.
[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 This can indicate that signaling will not occur 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 PPS syntax tables It can be shown that it is signaled via [this method].
[0404] pps_act_qp_offsets_present_flag is bitstory If not provided by M, pps_act_qp_offsets_present_f The lag can be induced to a first value (e.g., 0). For example, ACT can be applied. A flag indicating that (for example, sps_act_enabled which is signaled in SPS) If _flag) has a first value (e.g., 0) indicating that ACT does not apply, then p ps_act_qp_offsets_present_flag is the first value (e.g., 0). They can be forced to have it.
[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 the second value (e.g., 1) indicates that ACT is currently applied to the coding unit. The offset is applied to the quantization parameter value qP for each of the Luma, Cb, and Cr components. It can be used to determine the offset. pps_act_y_qp_offset_plus 5. pps_act_cb_qp_offset_plus5 and pps_act_cr If the value of _qp_offset_plus3 does not exist in the bitstream, each value will be 0. It can be set to this.
[0406] According to the aforementioned syntax element, the value of the variable PpsActQpOffsetY is pps_ It can be determined that act_y_qp_offset_plus5-5. Variable Pp The value of sActQpOffsetCb is pps_act_cb_qp_offset_p It can be determined that lus5-5. And the variable PpsActQpOffsetC The value of r is determined to be pps_act_cb_qp_offset_plus3-3. It is possible.
[0407] Here, ACT is an orthonormal transformation. Since it is not , the constant offset values to be subtracted above can be 5, 5, and 3. In the example, for bitstream consistency, PpsActQpOffsetY, The values of PpsActQpOffsetCb and PpsActQpOffsetCr are - It can have values from 12 to 12. And, according to the examples, Qp offset The values can be replaced with other constant values other than 5, 5, and 3.
[0408] In another embodiment, QP can be adjusted using a more flexible ACT_QP offset. In the following embodiment, the ACT QP offset is signaled via the bitstream. Let's explain an example of this. This allows the ACT QP offset to have a wider offset range. It can be held. Therefore, the QP updated using the ACT QP offset is available. Because the possibility of falling outside the range of capabilities is even higher, the upper and lower limits for the updated QP are... Clipping is required (more detailed examples are disclosed in Examples 6 and 7 below). It is being done.
[0409] Variables PpsActQpOffsetY and PpsActQ indicate the ACT QP offset. pOffsetCb, PpsActQpOffsetCr, and PpsActQpOff setCbCr signals the ACT QP offset via the bitstream. This can be a value induced using the bitstream, or a pre-set constant. For sexual purposes, PpsActQpOffsetY, PpsActQpOffsetCb, P psActQpOffsetCr and PpsActQpOffsetCbCr are -1 It can have values ranging from 2 to +12.
[0410] If the QP offset value is signaled without using a fixed value, and that If the value has a range from -12 to 12, it is induced to avoid negative QP values. In addition to clipping the lower limit of the QP value, the upper limit of the induced QP value is also clipped. It may also be necessary to add toppings.
[0411] To prevent qP from having negative values, the minimum value of qP is forced to be 0. Yes, it is possible. Alternatively, the minimum value of qP is determined by the signaled syntax element. It can be set to a value that can be set. For example, when conversion skip mode is applied, the minimum value of qP can be set To signal, show the value of qP that applies when the conversion skip mode is applied. The syntax element QpPrimeTsMin can be used. The maximum value of qP is the benefit of qP. Determined by the maximum available value (e.g., 63) or the syntax element being signaled. It can be limited to the maximum available qP value.
[0412] In the embodiment described above, the quantization parameter qP can be derived as follows. First If the value of cIdx is 0, the qP and ACT Qp offset are given by the following formula: It can be guided.
[0413] [Formula 44] qP=Qp′ Y ActQpOffset=PpsActQpOffsetY
[0414] Otherwise, if the value of TuCResMode[xTbY][yTbY] is 2 The qP and ACT Qp offset can be derived as shown in the following formula.
[0415] [Formula 45] qP=Qp′ CbCr ActQpOffset=PpsActQpOffsetCbCr
[0416] Otherwise, if the value of cIdx is 1, the qP and ACT Qp offsets are below It can be derived like a mathematical formula.
[0417] [Formula 46] qP=Qp′ Cb ActQpOffset=PpsActQpOffsetCb
[0418] Otherwise, if the value of cIdx is 2, then the qP and ACT Qp offsets are below It can be derived like a mathematical formula.
[0419] [Formula 47] qP=Qp′ Cr ActQpOffset=PpsActQpOffsetCr
[0420] In one embodiment, the quantization parameter qP can be updated as follows. The value of transform_skip_flag[xTbY][yTbY][cIdx] If is 0, qP can be derived as shown in the following formula.
[0421] [Formula 48] qP=Clip3(0,63,qP-(cu_act_enabled_flag[x TbY][yTbY]?ActQpOffset:0))
[0422] Instead, transform_skip_flag[xTbY][yTbY][ If the value of cIdx is 1, qP can be derived as shown in the following formula.
[0423] [Formula 49] qP=Clip3(0,63,Max(QpPrimeTsMin,qP)-(cu_ act_enabled_flag[xTbY][yTbY]?ActQpOffset :0)
[0424] In other embodiments, transform_skip_flag[xTbY][yTb When the value of [Y][cIdx] is 1, the minimum value of qP is, as shown in the formula below, instead of 0. Clipping can be performed using the value of QpPrimeTsMin.
[0425] [Formula 50] The quantization parameter qP can be updated as follows:
[0426] The value of transform_skip_flag[xTbY][yTbY][cIdx] If is 0, qP can be derived as shown in the following formula.
[0427] qP=Clip3(0,63,qP-(cu_act_enabled_flag[x TbY][yTbY]?ActQpOffset:0))
[0428] Instead, transform_skip_flag[xTbY][yTbY][ If the value of cIdx is 1, qP can be derived as shown in the following formula.
[0429] qP=Clip3(QpPrimeTsMin,63,qP-cu_act_enab led_flag[xTbY][yTbY]?ActQpOffset:0)
[0430] In another embodiment, the quantization parameter qP can be updated as follows:
[0431] The value of transform_skip_flag[xTbY][yTbY][cIdx] If is 0, qP can be derived as shown in the following formula.
[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][ If the value of cIdx is 1, qP can be derived as shown in the following formula.
[0434] [Formula 52] qP=Clip3(0,63+QpBdOffset,Max(QpPrimeTsM in,qP)+(cu_act_enabled_flag[xTbY][yTbY]? ActQpOffset:0)
[0435] In other embodiments, transform_skip_flag[xTbY][yTb When the value of [Y][cIdx] is 1, the minimum value of qP is, as shown in the formula below, instead of 0. Clipping can be performed using the value of QpPrimeTsMin.
[0436] [Formula 53] The quantization parameter qP can be updated as follows: The value of transform_skip_flag[xTbY][yTbY][cIdx] If is 0, qP can be derived as shown in the following formula. qP=Clip3(0,63+QpBdOffset,qP+(cu_act_ena bled_flag[xTbY][yTbY]?ActQpOffset:0))
[0437] Instead, transform_skip_flag[xTbY][yTbY][ If the value of cIdx is 1, qP can be derived as shown in the following formula.
[0438] qP=Clip3(QpPrimeTsMin,63+QpBdOffset,qP+ cu_act_enabled_flag[xTbY][yTbY]?ActQpOff set:0)
[0439] Example 3: A solution that allows ACT when chroma BDPCM is performed.
[0440] In one embodiment, when BDPCM is applied to the luma component block, ACT is , which can be applied to encode / decode the block. However, BDPCM is chroma When applied to a subblock, ACT is used to encode / decode that block. It can be restricted so that it does not apply.
[0441] On the other hand, even when BDPCM is applied to a chroma component block, By applying ACT, encoding performance can be improved. Figure 37 shows chroma Syntax for applying ACT when applying BDPCM to component blocks One example of the configuration is shown in Figure 37. Currently, ACT is applied to the encoding unit. Depending on the value of cu_act_enabled_flag, which indicates whether or not, the chroma component By removing the condition for obtaining the BDPCM syntax element, the chroma component block Regardless of whether ACT is applied to it, retrieve the BDPCM syntax element for it. This allows for BDCPM coding.
[0442] Example 4: A method for applying ACT even when encoding / decoding with CCLM
[0443] Both CCLM and ACT aim to eliminate unnecessary duplication between components. There is some overlap in application between LM and ACT, but even after applying all of these, The minute-by-minute overlaps are not completely eliminated. Therefore, applying CCLM and ACT together... This allows for further removal of overlap between components.
[0444] The following examples describe an example in which CCLM and ACT are applied together. Decryption The device can apply CCLM first and then ACT when performing decryption. When applying ACT to both BDPCM and CCLM for the chroma component, this is called signaling The syntax table for ringing can be modified as shown in Figure 38. This allows the figure to be modified as shown in Figure 38. As shown in the 38 syntax tables, intra_bdpcm_chroma and Among the restrictions for signaling syntax elements related to cclm, ACT is appropriate. if(!c The `u_act_enabled_flag)` can be removed from the syntax table.
[0445] Example 5: Application method of flexible ACT Qp including joint CbCr
[0446] When ACT mode is applied, predictive resistivity is calculated from one color space (for example, G It can be converted to the BR or YCbCr)YCgCo color space. And the conversion unit is residual. It can be encoded in the YCgCo color space. The ACT core conversion is used for color space conversion. As one example of a conversion kernel, the following conversion kernel described above can be used.
[0447]
number
[0448]
number
[0449] As shown in the formula above, C0', C1' and C2' (where C0'=Y The transformation (C1'=Cg, C2'=Co) is 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 individual components is C0' and C It has a value of approximately 0.6 for 1' and a value of approximately 0.7 for C2'. Here, L2 The norm is the value obtained by taking the square root of the sum of the squares of all the coefficients. For example, C 0' can be calculated as 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 it has a value of approximately 0.6. I can do the math.
[0450] If normalized transformations are not applied, the dynamic range of individual components becomes irregular. This results in a decrease in encoding performance in typical video compression systems.
[0451] To compensate for the dynamic range of the residual signal, the dynamic range change for the individual conversion components is QP adjustment can be performed by transmitting a QP offset value to compensate for this. Such embodiments are not only general QP adjustment control methods for ACT conversion, but also Jo This can also be applied to intracytoplasmic CbCr.
[0452] Because individual color components are encoded together rather than independently, the first step is to encode them together. The method described in Example 3 for joint CbCr is the dynamic range between individual color components. Bring about change.
[0453] In one embodiment of the encoding and decoding method, the ACT QP offset adjustment is set to -5. This can be fixed, and this can be applied similarly to Y, Cg, and Co.
[0454] In one embodiment, flexible Qp control is provided for individual components and joint CbCr. Therefore, different ACT Q for Y, Cb, Cr and / or joint CbCr The use of a p-offset is acceptable. The ACT Qp-offset value is the component index. It is either a joint CbCr and / or joint CbCr mode and / or joint CbCr mode. It can be decided based on that.
[0455] To express the ACT Qp offset, use ppsActQpOffsetY, pps ActQpOffsetCb and ppsActQpOffsetCr can be used. And, a joint having a CBF in which both the Cb and Cr components have non-zero values. For the ACT QP offset of CbCr mode 2, use ppsActQpOffsetC bCr can be used. These values (e.g., ppsActQpOffsetY, ppsA ctQpOffsetCb, ppsActQpOffsetCr, ppsActQpOf fsetCbCr) is either predetermined to a specific value or transmitted via a bitstream. It can be signaled. ACT QP OFFESS in Joint CbCr mode The value may be set to another method or other value.
[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 and -4. -3 can be used, and the value of tu_cbf_cb is not 0 in joint CbCr mode. -3 can be used.
[0458] In another embodiment, the ACT QP offset of joint CbCr mode 2 is It can have a self-offset value for this. In the case of other joint CbCr modes In addition, the ACT QP offset can use the offset of the component in question. For example, The quantization parameter qP can be determined as follows. First, if the value of cIdx is 0, The qP and ACT Qp offset can be derived as shown in the following formula.
[0459] [Formula 56] qP=Qp′ Y ActQpOffset=ppsActQpOffsetY
[0460] Otherwise, if the value of TuCResMode[xTbY][yTbY] is 2 The qP and ACT Qp offset can be derived as shown in the following formula.
[0461] [Formula 57] qP=Qp′ CbCr ActQpOffset=ppsActQpOffsetCbCr
[0462] Otherwise, if the value of cIdx is 1, the qP and ACT Qp offset are as follows: It can be derived like a mathematical formula.
[0463] [Formula 58] qP=Qp′ Cb ActQpOffset=ppsActQpOffsetCb
[0464] Otherwise, if the value of cIdx is 2, the qP and ACT Qp offset are as follows: It can be derived like a mathematical formula.
[0465] [Formula 59] qP=Qp′ Cr ActQpOffset=ppsActQpOffsetCr
[0466] In one embodiment, the quantization parameter qP can be updated as follows.
[0467] The value of transform_skip_flag[xTbY][yTbY][cIdx] If is 0, qP can be derived as shown in the following formula.
[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][ If the value of cIdx is 1, qP can be derived as shown in the following formula.
[0470] [Formula 61] qP=Clip3(QpPrimeTsMin,63+QpBdOffset,qP+ cu_act_enabled_flag[xTbY][yTbY]?ActQpOff set:0)
[0471] In another embodiment, for the joint CbCr mode where tu_cbf_cb!=0 (For example, if it falls under modes 1 and 2), use ppsActQpOffsetCb Then the offset for joint CbCr can be determined. Alternatively, tu_c For joint CbCr modes where bf_cb==0 (for example, in the case of mode 3) (Total), use ppsActQpOffsetCr to set the offset for joint CbCr The method can be determined. For example, the above-mentioned embodiment can be modified and applied as follows. ru.
[0472] The quantization parameter qP can be updated as follows: First, if the value of cIdx is 0. The qP and ACT Qp offset can be derived as shown in the following formula.
[0473] [Formula 62] qP=Qp′ Y ActQpOffset=ppsActQpOffsetY
[0474] Otherwise, if the value of TuCResMode[xTbY][yTbY] is 2 qP can be derived as shown in the following formula.
[0475] [Formula 63] qP=Qp′ CbCr
[0476] Otherwise, if the value of cIdx is 1, the qP and ACT Qp offsets are below It can be derived like a mathematical formula.
[0477] [Formula 64] qP=Qp′ Cb ActQpOffset=ppsActQpOffsetCb
[0478] Otherwise, if the value of cIdx is 2, then the qP and ACT Qp offsets are below It can be derived like a mathematical formula.
[0479] [Formula 65] qP=Qp′ Cr ActQpOffset=ppsActQpOffsetCr
[0480] For joint CbCr mode, the ACT Qp offset is when the cIdx value is 0. If not, and if the value of TuCResMode[xTbY][yTbY] is not 0, the following pseudo The decision can be made 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: transform If the value of m_skip_flag[xTbY][yTbY][cIdx] is 0, q P can be derived as shown in 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][ If the value of cIdx is 1, qP can be derived as shown in the following formula.
[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 is Y If so, use ppsActQpOffsetY, and if the component index is Cb In some cases, use ppsActQpOffsetCb, where the component index is Cr In some cases, qP can be induced using ppsActQpOffsetCr. For example, The quantization parameter qP can be derived as follows:
[0487] First, if the value of cIdx is 0, the qP and ACT Qp offset are given by the following formula: It can be guided to sea urchin.
[0488] [Formula 69] qP=Qp′ Y ActQpOffset=ppsActQpOffsetY
[0489] Otherwise, if the value of TuCResMode[xTbY][yTbY] is 2 The qP and ACT Qp offset can be derived as shown in the following formula.
[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 below It can be derived like a mathematical formula.
[0492] [Formula 71] qP=Qp′ Cb ActQpOffset=ppsActQpOffsetCb
[0493] Otherwise, if the value of cIdx is 2, then the qP and ACT Qp offsets are below It can be derived like a mathematical formula.
[0494] [Formula 72] qP=Qp′ Cr ActQpOffset=ppsActQpOffsetCr
[0495] The quantization parameter qP can be updated as follows:
[0496] The value of transform_skip_flag[xTbY][yTbY][cIdx] If is 0, qP can be derived as shown in the following formula.
[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][ If the value of cIdx is 1, then qP can be derived as shown in the following formula.
[0499] [Formula 74] qP=Clip3(QpPrimeTsMin,63+QpBdOffset,qP+ cu_act_enabled_flag[xTbY][yTbY]?ActQpOff set:
[0500] Example 6: A method for signaling an ACT Qp offset including joint CbCr.
[0501] To provide greater flexibility, the ACT QP offset is transmitted via the bitstream. Let's explain an example of how it's signaled. ACT QP offsets are SPS, PPS, and PIX. Signaling via a header set to a char header, slice header, or other type It can be done. The ACT Qp offset of the joint CbCr is a separate signal. It may be ringed, and it may be derived from the ACT QP offset for Y, Cb, and Cr. good.
[0502] Without loss of generality, PP Figure 39 shows an example of a syntax table that signals the ACT Qp offset in S. As shown in the example in Figure 39, one ACT Q for joint CbCr. The p-offset can be signaled. This is shown in the syntax table in Figure 39. This section explains the syntax elements that have been introduced.
[0503] Syntax element pps_act_qp_offsets_present_flag This indicates whether or not a syntax element related to the ACT QP offset exists within the PPS. It is possible to do this. For example, pps_act_qp_offsets_present_f lag is a syntax element described later, pps_act_y_qp_offset_plu sX1, pps_act_cb_qp_offset_plusX2, pps_act_ cr_qp_offset_plusX3 and pps_act_cbcr_qp_of This can indicate whether or not fset_plusX4 is signaled as a PPS.
[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 shown that X4 is not signaled via the PPS syntax table. ru.
[0505] The second value of pps_act_qp_offsets_present_flag (for example) 1) is 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 signaling occurs via the PS syntax table.
[0506] pps_act_qp_offsets_present_flag is bitstory If not provided by M, pps_act_qp_offsets_present_f The lag can be induced to a first value (e.g., 0). For example, ACT can be applied. A flag indicating this (for example, sps_act_enable which is signaled in SPS) If 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) They can be forced to have.
[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 has a syntax element cu_act_enabled_flag whose value is currently signed If the second value (e.g., 1) indicates that ACT applies to the unit of composition, then Luma, C The quantization parameter value qP for each of the b, Cr component and joint CbCr component is This can be used to determine the applicable offset. pps_act_y_qp_off set_plusX1, pps_act_cb_qp_offset_plusX2, p ps_act_cr_qp_offset_plusX3, and pps_act_cbc If the value of r_qp_offset_plusX4 does not exist in the bitstream, each value It can be set to 0.
[0508] Depending on the syntax elements mentioned above, the variable PpsActQpOffset will be set as shown in the following formula. 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 turnsX3-X3 PpsActQpOffsetCbCr=pps_act_cbcr_qp_offs et_plusX4-X4
[0510] Here, X1, X2, X3, and X4 can represent predetermined constant values. This is because They may have the same value or different values, and 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 having a value between -12 and 12. Cut.
[0512] Depending on the determination of the aforementioned variables, the quantization parameter qP can be determined as follows. First, If the value of cIdx is 0, the qP and ACT Qp offset are derived as shown in the following formula. can.
[0513] [Formula 76] qP=Qp′ Y ActQpOffset=PpsActQpOffsetY
[0514] Otherwise, if the value of TuCResMode[xTbY][yTbY] is 2 The qP and ACT Qp offset can be derived as shown in the following formula.
[0515] [Formula 77] qP=Qp′ CbCr ActQpOffset=PpsActQpOffsetCbCr
[0516] Otherwise, if the value of cIdx is 1, the qP and ACT Qp offsets are below It can be derived like a mathematical formula.
[0517] [Formula 78] qP=Qp′ Cb ActQpOffset=PpsActQpOffsetCb
[0518] Otherwise, if the value of cIdx is 2, then the qP and ACT Qp offsets are below It can be derived like a mathematical formula. [Formula 79] qP=Qp′ Cr ActQpOffset=PpsActQpOffsetCr
[0519] In another embodiment of signaling the ACT Qp offset, modeA and m Multiple ACTs for each other's different joint CbCr modes, identified as odeB QP offset can be signaled.
[0520] Joint CbCr mode A is like modes 1 and 2 in Table 2 above, where 0 is less than 0. It is possible to show a joint CbCr mode with tu_cbf_cb having an external value. And, in joint CbCr mode B, the value is 0, as in mode 3 in Table 2 mentioned above. This allows us to show the joint CbCr mode that has tu_cbf_cb. The modified syntax table is shown in Figure 40. This section explains the syntax elements listed in the table.
[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 currently has a value for the syntax element cu_act_enabled_flag. If the second value (e.g., 1) indicates that ACT is applied to the coding unit, then Luma Quantization parameter value q for each of the Cb, Cr, and joint CbCr components This can be used to determine the offset applied to P. pps_act_y_qp_o ffset_plusX1, pps_act_cb_qp_offset_plusX2 , pps_act_cr_qp_offset_plusX3, pps_act_cbc r_qp_offset_modeA_plusX4 and pps_act_cbcr_q If the value p_offset_plusX5 does not exist in the bitstream, each value will be set to 0. It can be configured.
[0522] Depending on the syntax elements mentioned above, the variable PpsActQpOffset will be set as shown in the following formula. 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 turnsX3-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. These values may be the same or different, and only some of them may have the same value. In the implementation, for bitstream consistency, PpsActQpOffsetY, P psActQpOffsetCb, PpsActQpOffsetCr, PpsActQ pOffsetCbCrModeA and PpsActQpOffsetCbCrMode The value of B can be restricted to a range from -12 to 12.
[0525] Depending on the determination of the aforementioned variables, the quantization parameter qP can be determined as follows. First, If the value of cIdx is 0, the qP and ACT Qp offset are derived as shown in the following formula. can.
[0526] [Formula 81] qP=Qp′ Y ActQpOffset=PpsActQpOffsetY
[0527] Otherwise, if the value of TuCResMode[xTbY][yTbY] is 2 qP can be derived as shown in the following formula.
[0528] [Formula 82] qP=Qp′ CbCr
[0529] Otherwise, if the value of cIdx is 1, the qP and ACT Qp offset are as follows: It can be derived like a mathematical formula.
[0530] [Formula 83] qP=Qp′ Cb ActQpOffset=PpsActQpOffsetCb
[0531] Otherwise, if the value of cIdx is 2, the qP and ACT Qp offset are as follows: It can be derived like a mathematical formula.
[0532] [Formula 84] qP=Qp′ Cr ActQpOffset=PpsActQpOffsetCr
[0533] Furthermore, 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 shown in the following formula.
[0534] [Formula 85] ActQpOffset=(tu_cbf_cb[xTbY][yTbY])?Pps ActQpOffsetCbCrModeA:PpsActQpOffsetCbCrM odeB
[0535] On the other hand, in other embodiments, ActQpOffset is TuCResMode[xT If the value of [bY][yTbY] is 2, the following formula may be used to derive the result.
[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 of signaling the ACT Qp offset, Y, Cb, and Cr Only the ACT QP offset for signaling is shown in the syntax table in Figure 41. It can be offset. The ACT QP offset for joint CbCr is Pp sActQpOffsetY, PpsActQpOffsetCb and / or PpsAc This can be induced from tQpOffsetCr.
[0538] In one embodiment, the ACT Qp offset for CbCr is PpsActQpO The value of ffsetCb can be set. In other embodiments, for CbCr The ACT Qp offset is a joint CbCr mode where the value of tu_cbf_cb is not 0. In the case of , it can be set to the same value as PpsActQpOffsetCb, and tu_cbf_ In the case of joint CbCr mode where the value of cb is 0, PpsActQpOffse 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. This figure shows another embodiment. Depending on the determination of the syntax elements in Figure 41, the quantization parameters 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 shown in the following formula.
[0540] [Formula 87] qP=Qp′ Y ActQpOffset=PpsActQpOffsetY
[0541] Otherwise, if the value of TuCResMode[xTbY][yTbY] is 2 The qP and ACT Qp offset can be derived as shown in the following formula.
[0542] [Formula 88] qP=Qp′ CbCr ActQpOffset=(cIdx==1)?PpsActQpOffsetCb: PpsActQpOffsetCr
[0543] On the other hand, in other embodiments, 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 below It can be derived like a mathematical formula.
[0546] [Formula 90] qP=Qp′ Cb ActQpOffset=PpsActQpOffsetCb
[0547] Otherwise, if the value of cIdx is 2, then the qP and ACT Qp offsets are below It can be derived like a mathematical formula.
[0548] [Formula 91] qP=Qp′ Cr ActQpOffset=PpsActQpOffsetCr
[0549] Example 7: Signaling of ACT Qp offset in a multi-level system
[0550] In one embodiment, the ACT QP offset is signaled at multiple levels. This can be done. As in the previous example 6, ACT QP offset at a single level such as PPS In addition to signaling the ACT QP offset, the ACT QP offset also works at lower levels. (For example, suitable for slice headers, picture headers, or Qp controls) Other types of headers can be signaled.
[0551] Two embodiments are described below. Figures 42 and 43 show the slice header and picture header. This shows an example of how the ACT QP offset is signaled via a slider. Therefore, ACT QP offsets can be signaled at multiple levels.
[0552] The syntax elements shown in Figures 42 and 43 are described below. pps_slice_act_qp_offsets_present_fla g is a syntax element, slice_act_y_qp_offset, sli, which will be described later. 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 or not something exists.
[0553] For example, pps_slice_act_qp_offsets_present_fl The first value of ag (e.g., 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 is possible to indicate that you will not do it.
[0554] For example, pps_slice_act_qp_offsets_present_fl The second value of ag (e.g., 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 luma, Cb, Cr component, and jo This shows the offset of the quantization parameter value qP for each of the intCbCr components. It is possible to do this. 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 can range from -12 to 12. It can be restricted as follows: slice_act_y_qp_offset, slice_act _cb_qp_offset, slice_act_cr_qp_offset, and s The value of lice_act_cbcr_qp_offset does not exist in the bitstream. In this case, each value can be set to 0. PpsActQpOffsetY+slice_act_ y_qp_offset, PpsActQpOffsetCb+slice_act_c b_qp_offset, PpsActQpOffsetCr+slice_act_c r_qp_offset and PpsActQpOffsetCbCr+slice_ac The value of t_cbcr_qp_offset is also restricted to a value between -12 and 12. Cut.
[0556] Signaling ACT QP offset for joint CbCr at PPS level. Various modification examples can be applied. For example, one QP off for joint CbCr. Signaling sets or multiple joints CbCr with different modes from each other Signal the ACT Qp offset, or AC for joint CbCr. Without signaling the T Qp offset, ACTQpOffs for Y, Cb, and Cr A method of inducing this using the modes of et and / or joint CbCr is to slice This can be applied when signaling via a lid.
[0557] Two modified examples are shown in Figures 44 and 45. Figure 44 shows the inside of the slice header. An example of signaling the ACT Qp offset in a slice is shown. Figure 45 shows the slice Another embodiment of signaling the ACT Qp offset in the header is shown in Figure 45. In this case, only the ACT Qp offset for Y, Cb, and Cr is signaled. This is possible, and the ACT QP offset of the slice level relative to the joint CbCr is s slice_act_y_qp_offset, slice_act_cb_qp_off This can be derived from set and / or slice_act_cr_qp_offset. This can be determined based on the mode type of joint CbCr. In one embodiment, C The slice level ACT Qp offset for bCr is slice_act_cb_ It can be set to the same value as qp_offset. In other examples, a value other than 0. In the case of joint CbCr mode, where tu_cbf_cb has a value, joint Cb The ACT Qp offset for the slice level for Cr is slice_act_cb_ It can be set to the same value as qp_offset. And tu_cb has a value of 0. In the case of joint CbCr mode with f_cb, slide for joint CbCr The slice's ACT Qp offset is slice_act_cr_qp_offset It can be set to the same value.
[0558] On the other hand, in other embodiments, the syntax element is a slice header or picture header. - This can be signaled. To achieve this, encode / reconstruct as follows The numbering system can be changed.
[0559] -ACT Qp offset exists in the picture header, or in the slice header. - Flag indicating whether it exists: pps_picture_slice_act_qp_o The ffsets_present_flag can be signaled using PPS.
[0560] -ACT is applicable, and pps_picture_slice_act_qp_o If the value of ffsets_present_flag is the second value (e.g., 1), ACT The flag `pic_act_q` indicates whether a Qp offset exists in the picture header. Signal p_offsets_present_flag in the picture header. This is possible. Here, pic_act_qp_offsets_present_fl The second value of ag (e.g., 1) represents all slides of the picture corresponding to the picture header. The ACT Qp offset for the chair should be provided in the picture header. It is possible.
[0561] - The first value of pic_act_qp_offsets_present_flag (for example) (b) is ACT for all slices of the picture corresponding to the picture header. This can indicate 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 (for example, 0) In addition, the ACT Qp offset for slicing can be provided in the slice header.
[0562] Figure 46 shows pps_pic_slice_act_qp_offsets_prese This figure shows the syntax table of the PPS to which nt_flag is signaled. ttax element pps_pic_slice_act_qp_offsets_pres ent_flag is the ACT Qp offset that goes to the picture header and / or slice header. It can indicate whether or not it is provided by the editor. For example, pps_pic_slice_ The first value of act_qp_offsets_present_flag (for example, 0) is A This indicates that the CT Qp offset is not provided in the picture header and slice header. It is possible. 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. Alternatively, you can indicate that it can be provided in a slice header. pps_pic_sli ce_act_qp_offsets_present_flag is in bitstream If not provided, pps_pic_slice_act_qp_offsets_pr The value of esent_flag can be determined to be a first value (for example, 0).
[0563] Figure 47 shows the sintering of the picture header for signaling the ACT Qp offset. This is a diagram showing the qp table. Syntax element pic_act_qp_offset s_present_flag is provided in the picture header with the ACT Qp offset. It can indicate whether or not it can be done. pic_act_qp_offsets_presen The first value of t_flag (e.g., 0) is that the ACT Qp offset is provided in the picture header. It can be indicated that it is not provided directly but can be provided in the slice header. pic_act_q The second value of p_offsets_present_flag (for example, 1) is ACT Qp This indicates that the offset is provided in the picture header. pic_act_ The value of qp_offsets_present_flag is not provided as a bitstream. If not, the value can be determined to be 0.
[0564] Figure 48 shows the sintering of the slice header for signaling the ACT Qp offset. This is a diagram of the syntax table. In the syntax table of Figure 48, the syntax elements slice_act_y_qp_offset, slice_act_cb_qp_ offset, slice_act_cr_qp_offset, and slice_ac t_cbcr_qp_offset is a quantization parameter for the Luma, Cb, and Cr components. The offset relative to the value qP can be shown. 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 It can have values from -12 to 12. Furthermore, PpsActQpOffset Y+slice_act_y_qp_offset, PpsActQpOffsetCb +slice_act_cb_qp_offset and PpsActQpOffset Cr+slice_act_cr_qp_offset is a value in the range of -12 to 12. It can be restricted to have an enclosure.
[0565] On the other hand, slice_act_y_qp_offset, slice_act_cb_q p_offset, slice_act_cr_qp_offset, and slice_ If the value of 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), then slice_act_y_qp_offset, s lice_act_cb_qp_offset, and slice_act_cr_qp_ The offset value can be determined to be 0. Instead, pps_pic_slice_ac 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, It can be determined to be the same value as pps_act_cr_qp_offset.
[0566] On the other hand, the ACT Qp offset exists in both the slice header and the picture header. In this case, the final offset value used to induce the qP value is signalin in PPS. The offset value being applied and the signaling in the slice header or picture header The value can be determined by adding the offset value and the result.
[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 given by the following formulas. It can be guided to that.
[0568] [Formula 92] qP=Qp′ Y ActQpOffset=PPsQpOffsetY+slice_act_y_qp _offset
[0569] Otherwise, if the value of TuCResMode[xTbY][yTbY] is 2 The qP and ACT Qp offset can be derived as shown in the following formula.
[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 offset are as follows: It can be derived like a mathematical 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 offset are as follows: It can be derived like a mathematical formula.
[0574] [Formula 95] qP=Qp′ Cr ActQpOffset=PpsActQpOffsetCr+slice_act_ Cr_qp_offset
[0575] In another embodiment, a number of ACT Qp offsets relative to joint CbCr are If signaling is performed, the ActQpOffset for joint CbCr is as follows: It can be decided in this way.
[0576] First, if the value of cIdx is 0, the qP and ACT Qp offset are given by the following formula. It can be guided to that.
[0577] [Formula 96] qP=Qp′ Y ActQpOffset=PPsQpOffsetY+slice_act_y_qp _offset
[0578] Otherwise, if the value of TuCResMode[xTbY][yTbY] is 2 qP can be derived as shown in the following formula.
[0579] [Formula 97] qP=Qp′ CbCr
[0580] Otherwise, if the value of cIdx is 1, the qP and ACT Qp offset are as follows: It can be derived like a mathematical 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 offset are as follows: It can be derived like a mathematical formula.
[0583] [Formula 99] qP=Qp′ Cr ActQpOffset=PpsActQpOffsetCr+slice_act_ Cr_qp_offset
[0584] Furthermore, 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 shown in the following formula.
[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 determined, the qP and ActQpOffset for the Y, Cb, and / or Cr components are determined. Therefore, the ActQpOffset for joint CbCr is as follows: Y, Cb and / or it can be determined using the ACT Qp offset of the Cr component. For example, the implementation described above. In the example, the values of TuCResMode[xTbY][yTbY] related to formula 97 are If the value is 2, the calculation step for qP can be modified and performed as follows:
[0587] "Otherwise, if the value of TuCResMode[xTbY][yTbY] is 2 In summary, the qP and ACT Qp offset can be derived as shown in the following formula.
[0588] [Formula 101] qP=Qp′ CbCr ActQpOffset=(cIdx==1])?(PPsQpOffsetCb+s lice_act_Cb_qp_offset):(PPsQpOffsetCr+sl ice_act_Cr_qp_offset)
[0589] On the other hand, in other embodiments, the value of ActQpOffset can be determined as shown in the following formula. ru.
[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, we will describe a method that uses a list of ACT Qp offsets. Therefore, the following processes may be performed.
[0593] a) A large number of ACs in the form of a list within a parameter set (e.g., SPS or PPS) A set of T Qp offsets can be signaled. Each set in the list is Y , including ACT Qp offsets for Cb, Cr, and joint CbCr components. This is possible. For simplicity, the list of ACT Qp offsets is the chroma Qp offset. The list is signaled with the same parameter set as the parameter set. It is possible to do so.
[0594] b) The number of sets of ACT Qp offsets in the list is signaled by PPS. This can be the same as the number of sets of chroma Qp offsets.
[0595] c) ACT Qp off used to induce qP for each coding unit As a set, an index for the chroma Qp offset for the coding unit (for example) ACT belonging to the list that has cu_chroma_qp_offset_idx) Qp offset can be used.
[0596] d) As alternative embodiments of b) and c) above, the following may be carried out.
[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. It can be different from a number.
[0598] -If ACT is applicable, the ACT Qp offset used for the coding unit is An index indicating an index can be signaled.
[0599] Signal a list of ACT Qp offsets that do not deviate from the above concept. 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 set to cu_act_e If the value of nabled_flag is 1, then Luma, Cb and Cr components and joint Cb Used to determine the offset to be applied to the quantization parameter value qP for Cr It 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 no value exists for _offset, each value can be guided to 0.
[0601] The value of cu_act_enabled_flag is the second value (for example, 1), and cu_c When the value of hroma_qp_offset_flag is the second value (for example, 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] contains Luma, Cb and Cr components and joint Cb Determine the offset applied to the quantization parameter value qP for each Cr component. It can be used for: act_y_qp_offset_list[i], act_cb_ qp_offset_list[i], act_cr_qp_offset_list[ If the values of i] and act_cbcr_qp_offset_list[i] do not exist In total, each value can be guided to 0.
[0602] In this embodiment, the quantization parameter qP can be determined as follows. First, cIdx If the value of is 0, then qP and the ACT Qp offset can be derived as shown in the following formula.
[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 the value of TuCResMode[xTbY][yTbY] is 2 The qP and ACT Qp offset can be derived as shown in the following formula.
[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 below It can be derived like a mathematical formula.
[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 offset are as follows: It can be derived like a mathematical 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 solution applicable to both lossless and lossy coding
[0608] The transformations between matrix-based color spaces for the forward and reverse transformations mentioned above are as follows: It can be summarized.
[0609] [Table 3]
[0610] The above conversion results in the loss of some values during the processing of Co and Cg, so to return to the original state... It is impossible to restore it. For example, converting sample values in the RGB color space to the YCgCo color space If you then convert back to the RGB color space, the original sample values will not be fully restored. Therefore, the conversion shown in Table 3 above cannot be used for lossless coding. Even when applicable, the color space conversion process is designed to prevent loss of sample values after color space conversion. The algorithm needs to be improved. Examples 9 and 10 demonstrate not only lossless coding, but also loss This paper discloses a color space conversion algorithm that is also applicable to encoding.
[0611] In the following example, the original state can be restored, which is applicable not only to lossy coding but also to lossless coding. This document describes a method for performing ACT using reversible color space conversion. Thus, a reconstructible color space conversion 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. Color space according to one embodiment The conversion can be performed as shown in the following formula. For example, from the GBR color space to the YCgCo color space Forward transformation can be performed using the following formula.
[0612] [Formula 107] Co=RB; t = B + (Co >> 1); Cg = Gt; Y = t + (Cg >> 1);
[0613] Furthermore, the reverse conversion from the YCgCo color space to the 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 conversion between the YCgCo color space and the RGB color space using the above formula is reversible to the original state. Yes, that is, the color space conversion using the above formula supports complete restoration, for example, forward conversion. Even if a reverse conversion is performed after the conversion, the sample values remain the same. This allows the above formula to The color space conversion by can be called a reconstructible YCgCo-R color conversion. Here, R is It could be an abbreviation for reversible, meaning that it can be restored to its original state. The CgCo-R conversion increases the bit depth of Cg and Co by 1 compared to the existing conversion. This can be provided by the above. If such conditions are met, other forms of reversible transformations can also be provided. It can be used like a conversion tool.
[0616] The transformation shown in the above formula has a different norm value than the transformation described above. The ACT Qp offset for Y, Cg, and Co undergoes dynamic range changes due to color space conversion. It can be adjusted to compensate.
[0617] When the aforementioned conversion is applied, the ACT Qp offset according to one embodiment is Y, C It was explained that g and Co can have values of (-5, -5, -5). However, if the reversible transformation in this embodiment is applied, then according to one embodiment For the ACT Qp offset, values other than (-5, -5, -5) can be specified. For example, In one embodiment, the ACT Qp offset is (-5, 1) for Y, Cg, and Co. The value in 3) can be used.
[0618] In other embodiments, the ACT QP offset is bit as in the above-described embodiment 6 or 7. It can be signaled via Tostream.
[0619] For example, the aforementioned YCgCo-R conversion is equal to the ACT QP offset (-5, 1, 3). When used together, as shown in the diagram below, the lossy coding environment (e.g., QP 22, 27, 3) For 2 and 37), it was observed that there was no coding loss. Furthermore, when ACT was applied... In this case, an additional 5% of the coding performance can be obtained when achieving lossless coding. This was observed.
[0620] [Table 4]
[0621] A VVC specification that includes an integrated ACT matrix can be written as shown in the table below.
[0622] [Table 5]
[0623] For example, a residual dual sample sequence of size (nTbW) × (nTbH) rY , r Cb Reach bir Cr It 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 execution plan for performing multiple color conversions based on explicit signaling
[0626] In this embodiment, at least one color conversion can be performed by ACT. Which color conversion Whether or not this occurs can be determined by a flag signaled via the bitstream. Such flags are used in many files such as SPS, PPS, picture headers, and slices. Signaling can be done at the level or by identifiable components (granularies).
[0627] In one embodiment, a predetermined flag signals which ACT applies. It can be done. For example, if the value of the flag is 1, then the ACT based on the reproducible color conversion is Applicable. If the value of the flag is 0, ACT based on irreversible color conversion is not applicable. Cut.
[0628] In other embodiments, a predetermined flag for ACT indicates which color conversion is used. It can be signaled for this purpose. Figure 50 shows an example of syntax that is signaled by SPS. It is described in [the document]. The syntax elements in Figure 50 are explained below. Syntax element sp s_act_reversible_conversion does not restore to the original state. It is possible to 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 prevent ACT from being restored to its original state. It can be shown that the formula can be used. sps_act_reversible_conv The second value of ersion (e.g., 1) is the conversion formula that ACT uses to restore the original state. It can be shown that...
[0629] Therefore, the variable lossyCoding, which indicates whether or not lossy coding is performed, is as follows: It can be set up like a mathematical formula.
[0630] [Formula 110] lossyCoding=(!sps_act_reversible_conver sion)
[0631] Using the lossyCoding flag, the decryption device converts YCgCo to G during the decoding process. The pseudocode for performing the reverse conversion 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] As shown in the table above, the residual update process using color space conversion is compared to this process. The following parameters can be used as input: - Variable nTbW representing the width of the block - Variable nTbH representing the height of the block -element r Y (nTbW) for a Lumaresi dual sample composed of [x][y] ) × (nTbH) size array r Y , -element r Cb (nTb) for Chromaregi dual samples, composed of [x][y] Array r of size W × (nTbH) Cb , -element r Cr (nTb) for Chromaregi dual samples, composed of [x][y] Array r of size W × (nTbH) Cr ,
[0636] The output for this process is as follows:
[0637] - Updated (nTbW) × (nTbH) size for Lumareziz dual samples array r Y , - Chromares update the (nTbW) × (nTbH) size for dual samples. Array r Cb , - Chromares update the (nTbW) × (nTbH) size for dual samples. Array r Cr ,
[0638] By executing this process, a residual sample of size (nTbW) × (nTbH) is generated. Ru array r Y , r Cb and r Cr It can be updated as follows:
[0639] First, the value of sps_act_reversible_conversion is the second value ( For example, in case 1), a residual sample array of size (nTbW) × (nTbH) r Y , r Cb and r Cr This can be updated using the following formula.
[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 (for example, sps_act_reversible_conversi If the value of on is the first value (for example, 0), then the (nTbW) × (nTbH) size register Dual sample sequence r Y , r Cb and r Cr This can be updated using the following formula.
[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 inverse YCgCo transformation and the inverse YCgCo-R transformation have some similarities. In a transformation that can be restored to its original state, Cg and Co are Cg'=Cg<<1 and Co'=Co< If it can be replaced by <1, this can operate with loss inverse conversion. See the formula below. The following 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 the alternative embodiment, instead of maintaining the two color conversions, the original state is restored. Only reversible transformations can be used. In lossy coding examples, Cg and Co components It is scaled by 1 / 2 in the operation of the encoding device and by 2 in the operation of the decoding device. This can be handled by a single integrated system, even when supporting both loss and no-loss cases. This allows the use of the transformed conversion. Furthermore, even when lossy coding is performed, It also has the added advantage that the bit depths may not change.
[0646] [Table 7]
[0647] In one embodiment, a flag (for example, actSh) indicates which ACT conversion is used. The iftFlag can be used according to the syntax in Figure 51. In the table, the syntax element sps_act_shift_flag is used when ACT It can indicate 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) means that ACT is applied. It can be shown that the step of shifting the color components is not applied during this process. The second value of s_act_shift_flag (e.g., 1) indicates the color while ACT is applied. This indicates that a step involving shifting components is applied. (variable actShif) tFlag can be set to the value of sps_act_shift_flag. Pseudocode for achieving the reverse conversion from YCgCo to GBR in a decoding device It can be created using actShiftFlga as follows:
[0648] [Table 8]
[0649] Example 11: ACT execution plan for performing multiple color conversions using conversion type induction In one embodiment, at least one color conversion may be used when performing ACT. The type of color conversion used can be guided based on other information in the bitstream. .
[0650] In one embodiment, ACT conversion is possible, and A conversion is possible, but A conversion is not possible. Two ACT conversion types are available, including CT conversion. The ACT conversion type is a conversion type... It can be induced by the type. For example, by the variable tuIsTransformSkip If the conversion type is a conversion skip, the ACT conversion can be restored to its original state. It can be used. Otherwise (for example, if the conversion type is not conversion skip), the original An ACT conversion that cannot be restored to its original state may be used. Two types of pseudocode can be used. .
[0651] [Table 9]
[0652] [Table 10]
[0653] In other embodiments, the ACT conversion type can be determined based on the Qp value. If the value is below a certain threshold (e.g., QpPrimeTsMin), it can be restored to its original state. An ACT conversion may be used. Otherwise (for example, if the Qp value exceeds a predetermined threshold) In combination, an irreversible ACT conversion may be used.
[0654] Example 12: QP induction scheme using ACT QP offset
[0655] This embodiment relates to the aforementioned Examples 1 and 2. In the aforementioned Examples 1 and 2, the induction Guided Qp' Y , Qp' CbCr , Qp' Cb , Qp' Cr It was explained that it includes QP. The methods described in Examples 1 and 2 offset the induced Qp value with ACT QP offset. The correction is made using this method, and the corrected QP value for the conversion coefficient scaling does not fall outside the valid range. Apply the necessary clipping techniques.
[0656] This embodiment is Qp' Y , Qp' CbCr , Qp' Cb , Qp' Cr QP induction process that induces This explains a method for including the ACT QP offset. The induced QP value is outside the effective range. To prevent it from coming off, the QP induction process already includes a predetermined clipping step. Including the ACT QP offset in the QP induction process will result in additional clipping. While avoiding steps, the overall QP induction step for the transformation coefficient scaling process While simplifying the process, it is possible to ensure that the final QP does not fall outside the effective range. Cut.
[0657] As explained in previous examples, the ACT QP offset may be pre-specified as a constant. Often, signaling can be done via a bitstream, without losing consistency. The ACT QP offsets for Y, Cb, Cr, and CbCr are described below. ppsActQpOffsetY, ppsActQpOffsetCb, ppsAct It can be written as QpOffsetCr, ppsActQpOffsetCbCr. ppsActQpOffsetY, ppsActQpOffsetCb, ppsAc tQpOffsetCr and ppsActQpOffsetCbCr are from -M to N It may be a constant or variable having a value. Here, M and N are lossy coded in one embodiment. In the case of lossless coding, each can be set to 12, and in the lossless coding case, each can be set to 0. It may also be done. Furthermore, at least one ACT QP offset may be other ACT QP It can be derived from the offset value. For example, ppsActQpOffsetCbCr is Based on the IntCbCr mode, ppsActQpOffsetCb or ppsActQ It can be set to the same value as pOffsetCr.
[0658] The decoding process for QP induction using the ACT QP offset is as follows: This can be done. First, in the case of a quantization parameter induction process, the following steps are required for this process. Lameter can be used.
[0659] - The upper left luma sample of the current encoded block for the upper left luma sample of the current picture The relative coordinates of the object are shown in the Ruma coordinates (xCb, yCb).
[0660] -Currently, the variable cbWidth represents the width of the encoded block in luma samples.
[0661] - The variable cbHeight represents the height of the currently encoded block in luma samples.
[0662] -Currently, to split the encoding tree node, a single tree (SINGLE_TREE ) or indicates whether a dual tree was used, and if a dual tree was used, Is it a dual tree (DAUL_TREE_LUMA) or a chroma component dual tree? The variable `treeType` indicates whether it is an Altree (DAUL_TREE_CHROMA).
[0663] In this quantization parameter induction process, the Luma quantization parameter Qp' Y and Chroma Quantization parameter Qp'Cb , Qp' Cr and Qp' CbCr This can be induced.
[0664] Then, the variable Qp Y This 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 This 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 represents the type of chroma array, is the first value (for example) 0) is not the case, but rather treeType is SINGLE_TREE or DUAL_TREE_C If it is HROMA, the following processes may occur.
[0669] -If the value of treeType is DUAL_TREE_CHROMA, then the variable Qp Y The values are the luma sample positions (xCb + cbWidth / 2, yCb + cbHeight / 2) Luma quantization parameter Qp of the Luma coding unit covering Y It can be set to the same value. .
[0670] -variable qP Cb , qP Cr and qP CbCr This can be derived as shown in 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] - Chromatography quantization parameter Qp′ for Cb and Cr components Cb and Qp' Cr and C b -C Chroma quantization parameters for joint Cb-Cr coding TaQp' CbCr This can be derived as shown in 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 transformation coefficients, and for this process, the following information is obtained It was used as input.
[0675] - The top-left sample of the current Luma transform block relative to the top-left Luma sample of the current picture. Luman coordinates (xTbY, yTbY) representing the relative coordinates, - Variable nTbW representing the width of the transformation block, - Variable nTbH representing the height of the transformation block, - Variable predMode representing the prediction mode of the coding unit, - Variable cIdx representing the color component of the current block
[0676] The output of the inverse quantization process for these transformation coefficients is an array d of scaled transformation coefficients. This is possible. Here, the size of array d can be (nTbW) × (nTbH). Construct this Each individual element can be identified as d[x][y].
[0677] In the execution of this process, the quantization parameter qP can be derived as follows: cId When the value of x is 0, qP can be derived as shown in the following formula.
[0678] [Formula 119] qP=Qp′ Y
[0679] Otherwise, if the value of TuCResMode[xTbY][yTbY] is 2 This can be derived as shown in the following formula.
[0680] [Formula 120] qP=Qp′ CbCr
[0681] Otherwise, if the value of cIdx is 1, qP can be derived as shown in the following formula.
[0682] [Formula 121] qP=Qp′ Cb
[0683] Otherwise, if the value of cIdx is 2, qP can be derived as shown in the following formula.
[0684] [Formula 122] qP=Qp′ Cr
[0685] The quantization parameter qP can be updated as follows. And the variable rectNonTsF lag and bdShift can be induced as follows: The value of transform_skip_flag[xTbY][yTbY][cIdx] If it is 0, it can be derived as shown in the following formula.
[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, if the transformation is currently skipped for the transformation block) (In this case) it can be derived as shown in the following formula.
[0689] [Formula 124] qP = Max(QpPrimeTsMin, qP) rectNonTsFlag=0 bdShift=10
[0690] Encoding and Decoding Methods
[0691] The following steps are performed by the image encoding device and the image decoding device, with reference to Figures 52 and 53. This document describes the image encoding and decoding methods.
[0692] First, the operation of the decoding device will be explained. The image decoding device according to one embodiment is memory The decoding device includes a processor, and the decoding can perform decoding through the operation of the processor. For example, as shown in Figure 52, the decoding device currently samples the residual sample of the block. The current block is based on whether or not a color space conversion is applied. The quantization parameters can be determined (S5210). Here, the color space transformation is before The ACT described above may be the quantization parameter. Here, the step of determining the quantization parameter is the quantization parameter The meter value has a value below a predetermined upper limit and a value above a predetermined lower limit, This can be done by clipping the quantization parameters. Here, the quantization parameters A predetermined lower limit of the meter can be 0. And a predetermined upper limit of the quantization parameter is This can be determined based on the syntax element representing the sample's bit depth.
[0693] The step of determining the quantization parameters is to determine the quantization parameters based on the color components of the current block. The steps involve determining the meter and offsetting the quantization parameter based on the color components of the current block. The steps involve determining the set and then recalculating the quantization parameters using the quantization parameter offset. This may include setting steps.
[0694] The step of resetting the quantization parameters using a quantization parameter offset is a quantum This can be done by adding a quantization parameter offset to the quantization parameter. Here, A color space conversion is applied to the residual sample in the block. Therefore, if the current color component of the block is the luma component, the value of the quantization parameter offset is - We can determine it to be 5.
[0695] And now, a color space conversion is applied to the current block's residual sample, and now the block If the color component of the color is the chroma Cb component, the value of the quantization parameter offset is determined to be 1. It is possible. Currently, a color space conversion is applied to the current block's residual dual sample, and the current block If the color component is the chroma (Cr) component, the value of the quantization parameter offset can be determined to be 3. .
[0696] Next, the decoding device determines the transformation coefficients of the current block based on the quantization parameters. This is possible (S5220). Subsequently, the decoding device uses the conversion coefficient to convert the current block The residual sample can be determined (S5230). Next, the decoding device determines the color The residual sample values can be reset based on whether or not a spatial transformation is applied. Yes (S5240).
[0697] Here, the step of resetting the residual sample value is the residual sample of the luma component. This can be done based on the half-value of the sample value and the chroma registral dual sample value. For example, chroma By performing a shift operation on the chroma regi dual sample values, Half the value is obtained. Also, the chroma component residual sample value is obtained from the chroma Cb component residual. By adding half of the sample value, the luma component residual sample value is reset. It can be done. Also, the chroma component residual sample value and the chroma Cb component residual sample value By subtracting the half value of the chroma Cr component resistance dual sample value from the half 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. The image encoding device according to one embodiment is memory The encoding device includes a processor, and the encoding device, by the operation of the processor, recovers the decoding device Encoding can be performed using a method that corresponds to the encoding. For example, as shown in Figure 53, encoding The device determines whether or not a color space conversion is applied to the registration. Dual samples can be reset (S5310). Here, the color space conversion is the previous It could be the ACT described above.
[0699] Furthermore, the step of resetting the residual sample values is a step that resets the residual sample values of the luma component. This can be done based on the half-value of the sample value and the chromoresidual sample value. By performing a shift operation on the Chromares Dual sample values, Half of the sample value is obtained. Furthermore, the reset operation in the decoding device described above is reversed. As a result, the encoding device generates the chroma component residual sample value and the chroma Cb component residual The sample values for the aluminum and chroma Cr component resins can be reset.
[0700] Next, the encoding device determines the conversion coefficients using the reset residual samples. This can be done (S5320). Subsequently, the encoding device determines whether or not a color space conversion is applied. The quantization parameters can be determined based on this (S5330). Here, the quantization parameters The step of determining the meter is to ensure that the value of the quantization parameter is less than or equal to a predetermined upper limit. By clipping the quantization parameters so that they have a value greater than or equal to a predetermined lower limit, This can be done. Here, a predetermined lower limit of the quantization parameter may be 0. And the quantity The predetermined upper limit of the childization parameter is based on the syntax element representing the bit depth of the sample. We can then make a decision.
[0701] The step of determining the quantization parameters is to determine the quantization parameters based on the color components of the current block. The steps involve determining the meter and offsetting the quantization parameter based on the color components of the current block. The steps involve determining the set and then recalculating the quantization parameters using the quantization parameter offset. This may include setting steps.
[0702] The step of resetting the quantization parameters using a quantization parameter offset is a quantum This can be done by adding a quantization parameter offset to the quantization parameter. Here, A color space conversion is applied to the current block's residual sample, and the current block's color components are If it is a luma component, the value of the quantization parameter offset can be determined to be -5.
[0703] And now, a color space conversion is applied to the current block's residual sample, and now the block If the color component of the color is the chroma Cb component, the value of the quantization parameter offset is determined to be 1. It is possible. Currently, a color space conversion is applied to the current block's residual dual sample, and the current block If the color component is the chroma (Cr) component, the value of the quantization parameter offset can be determined to be 3. .
[0704] Next, the encoding device can encode the transformation coefficients based on the quantization parameters. (S5340).
[0705] Application Examples
[0706] The exemplary methods in this disclosure are presented in a series of actions for clarity of explanation, This is not intended to restrict the order in which the steps are performed, but rather, if necessary, Each step may be performed simultaneously or in a different order. To illustrate this, the example steps may include additional steps or exclude some steps. This includes the remaining steps, or includes additional steps with some steps excluded. It's also possible.
[0707] In this disclosure, an image encoding device or image decoding device that performs a predetermined operation (step) This allows for the execution of an action (step) to check the conditions and status of that action (step). For example, if it is stated that a predetermined action will be performed when certain conditions are met, then the image code The encoding device or image decoding device performs an operation to confirm whether the predetermined conditions are met. After that, the predetermined operation can be performed.
[0708] The various embodiments described herein do not constitute a list of all possible combinations. This is intended to explain typical embodiments, and the matters described in the various embodiments are described independently. It may be applied individually, or in combination of two or more.
[0709] Furthermore, various embodiments of this disclosure include hardware and firmware. This can be achieved by software, or a combination thereof. If implemented, one or more ASICs (Application Specific 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 (Batteries), general-purpose processor, controller This can be achieved using microcontrollers, microprocessors, etc.
[0710] Furthermore, the image decoding apparatus and image encoding apparatus to which the embodiments of this disclosure are applied are multimedia Broadcasting transmission and reception equipment, mobile communication terminals, home cinema video equipment, digital cinema video equipment Real-time communication devices such as video conferencing equipment, surveillance cameras, video conferencing equipment, and mobile devices. Video streaming devices, storage media, camcorders, and subscription video (VoD) service providers. Device, OTT video (Over the top video) device, Internet Trimming service provision device, 3D video device, image phone video device, and It can be included in medical video equipment, etc., for processing video signals or data signals. It can be used for, for example, OTT video (Over the top video) devices and For example, game consoles, Blu-ray players, internet-connected TVs, home computers Atar System, Smartphone, Tablet PC, DVR (Digital Video) It can include things like a recorder.
[0711] Figure 54 illustrates a content streaming system to which embodiments of this disclosure can be applied. That is the case.
[0712] As shown in Figure 54, a content streaming application of the embodiments of this disclosure. The system is broadly comprised of encoding servers, streaming servers, web servers, and media servers. It may include a storage unit, user equipment, and multimedia input devices.
[0713] The encoding server receives multimedia inputs such as smartphones, cameras, and camcorders. The content input from the device is compressed into digital data to generate a bitstream. It plays the role of transmitting this to the aforementioned streaming server. Another example is a smartphone Multimedia input devices such as cameras and video cameras directly generate bitstreams. In that case, the encoding server can be omitted.
[0714] The bitstream is an image encoding method and / or image to which an embodiment of the present disclosure is applied. The bitstream can be generated by an encoding device, and the streaming server transmits the bitstream. The bitstream can be temporarily stored during the transmission or reception process.
[0715] The aforementioned streaming server, via the web server, performs multimedia based on user requests. The data is transmitted to the user's device, and the Web server determines what services are available to the user. It can act as an intermediary to inform the user of what they want from the Web server. When a service is requested, the web server transmits this to the streaming server, This streaming server can transmit multimedia data to users. In this case, the content streaming system may include a separate control server. In this case, the control server manages the communication between each device in the content streaming system. It can play a role in controlling commands / responses.
[0716] The aforementioned streaming server receives content from the media storage and / or encoding server. It can receive content. For example, when receiving content from the encoding server. The aforementioned content can be received in real time. In this case, smooth streaming In order to provide the streaming service, the streaming server will process the bitstream It can be stored for a certain period of time.
[0717] Examples of the user device mentioned above include mobile phones and smartphones. , laptop computer, digital broadcasting terminal, PDA ( personal digital assistants), PMP(portable) e multimedia player), navigation, slate PC (slat ePC, tablet PC, ultrabook OK), wearable devices, for example, smart Smartwatch, smart glasses, HM D (head-mounted display), digital TV, desktop computer This could include computers, digital signage, etc.
[0718] Each server within the aforementioned content streaming system is operated as a distributed server. This is possible, and in this case, the data received from each server can be processed in a distributed manner.
[0719] The scope of this disclosure is limited to cases where the operation according to the methods of various embodiments is performed on a device or computer. Software or machine-executable commands (e.g., operating system) that enable this (Systems, applications, firmware, programs, etc.) , and such software or commands are stored on the device or computer Executable non-transitory computer-readable media Includes (reader-readable medium). [Industrial applicability]
[0720] The embodiments described herein can be used for encoding / decoding images.
Claims
1. An image decoding method performed by an image decoding device, Currently, color space conversion is suitable for the residual sample of blocks. A step of determining the quantization parameters of the current block based on whether or not it is used, The steps include determining the transformation coefficient of the current block based on the quantization parameter, The steps include determining the current block's residual sample using the conversion coefficient, and 、 The residual sample values are reset based on whether or not the aforementioned color space conversion is applied. The step of determining, The step of determining the quantization parameter involves the value of the quantization parameter being set to a predetermined upper limit. The quantization parameter is clicked to have a value less than or equal to a predetermined lower limit and a value greater than or equal to a predetermined lower limit. An image decoding method performed by pinging.
2. The image decoding method according to claim 1, wherein the predetermined lower limit of the quantization parameter is 0.
3. The predetermined upper limit of the quantization parameter is the syntax representing the bit depth of the sample. The image decoding method according to claim 1, determined based on the elements.
4. The step of determining the quantization parameters is: The steps include determining quantization parameters based on the color components of the current block, The step of determining the quantization parameter offset based on the color components of the current block. and, The step of resetting the quantization parameters using the quantization parameter offset. The image decoding method according to claim 1, comprising the above.
5. The step of resetting the quantization parameters using the quantization parameter offset. This is done by adding the quantization parameter offset to the quantization parameter. The image decoding method according to claim 4.
6. A color space conversion is applied to the current block's residual sample, and the current block If the color component of the color is the color component of the color, the value of the quantization parameter offset is determined to be -5. The image decoding method according to claim 5.
7. A color space conversion is applied to the current block's residual sample, and the current block If the color component of the color is the chroma Cb component, the value of the quantization parameter offset is determined to be 1. The image decoding method according to claim 5.
8. A color space conversion is applied to the current block's residual sample, and the current block If the color component of the color is the chroma Cr component, the value of the quantization parameter offset is determined to be 3. The image decoding method according to claim 5.
9. The step of resetting the value of the residual sample is performed by the luma component residual sample The image according to claim 1 is obtained based on the half value of the chroma regi dual sample value and the chroma regi dual sample value. Decryption method.
10. Half of the Chromaregi dual sample value is the same as the Chromaregi dual sample value. The image decoding method according to claim 9, obtained by performing a bitwise operation.
11. The chroma component residual sample value plus half of the chroma Cb component residual sample value. Claim 9, by adding the luma component residual sample value, the luma component residual sample value is reset. The image decoding method described.
12. The chroma component residual sample value plus half of the chroma Cb component residual sample value. By subtracting half of the chroma Cr component residual sample value, the chroma Cb The image decoding method according to claim 9, wherein the component residual sample values are reset.
13. An image decoding device, memory and, It comprises at least one processor, The at least one processor is Currently, color space conversion is suitable for the residual sample of blocks. The quantization parameters of the current block are determined based on whether or not it is used. Based on the quantization parameters, the transformation coefficients of the current block are determined. The residual sample of the current block is determined using the conversion coefficient, The residual sample values are reset based on whether or not the aforementioned color space conversion is applied. Determined, The processor has a value such that the quantization parameter is less than or equal to a predetermined upper limit, This is done by clipping the quantization parameter so that it has a value greater than or equal to the lower limit. Uh, an image decoding device.
14. An image encoding method performed by an image encoding device, Residual based on whether or not a color space conversion was applied. Steps to reset the sample, The steps include determining the conversion coefficient using the reset residual sample, The step of determining the quantization parameters based on whether or not the aforementioned color space conversion is applied. and, The step of encoding the conversion coefficients based on the quantization parameters, The step of determining the quantization parameter involves the value of the quantization parameter being set to a predetermined upper limit. The quantization parameter is clicked to have a value less than or equal to a predetermined lower limit and a value greater than or equal to a predetermined lower limit. An image encoding method performed by pinging.
15. A method for transmitting a bitstream generated by the image coding method described in claim 14. Law.