Image decoding / encoding apparatus and apparatus for transmitting data
By deducing residual samples based on ACT-related information during the video/image encoding process and constructing an effective cropping range, the problem of low video/image encoding efficiency in the prior art is solved, and efficient ACT application and visual quality improvement are achieved.
Patent Information
- Application Number
- CN202411952912.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2020-04-05
- Filing Date
- 2021-01-25
- Publication Date
- 2025-04-11
AI Technical Summary
The prior art is difficult to effectively improve video/image encoding efficiency, especially in the encoding process of high resolution and high-quality images/videos, and it is difficult to efficiently apply adaptive color transformation (ACT) technology.
By applying ACT to the current block based on ACT-related information, the residual sample is derived, and the crop range of the residual is effectively constructed during the encoding process to improve coding efficiency and visual quality.
Improves overall image/video compression efficiency, enhances encoding efficiency, and improves subjective/objective visual quality, reducing the loss of residual signal.
Smart Images

Figure CN119815054A_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application with the original application number 202180022201.X (international application number: PCT / KR2021 / 000979, application date: January 25, 2021, invention name: Image or video coding based on ACT residual). Technical Field
[0002] The present technology relates to video or image coding, for example, to an image or video coding technology based on adaptive color transform (ACT) residual. Background Art
[0003] Recently, there is an increasing demand for high-resolution, high-quality images / videos such as 4K or 8K ultra-high definition (UHD) images / videos in various fields. As the image / video resolution or quality becomes higher, relatively more information or bits are transmitted compared to conventional image / video data. Therefore, if the image / video data is transmitted via a medium such as an existing wired / wireless broadband line or is stored in a conventional storage medium, the cost of transmission and storage is easily increased.
[0004] In addition, there is growing interest and demand for virtual reality (VR) and artificial reality (AR) content and immersive media such as holograms; and there is also growing broadcasting of images / videos that exhibit image / video characteristics different from actual images / videos (e.g., game images / videos).
[0005] Therefore, highly efficient image / video compression technology is required to effectively compress and transmit, store, or play high-resolution, high-quality images / videos showing various characteristics as described above.
[0006] In addition, there have been discussions on adaptive color transform (ACT) technology to support multi-color space conversion in order to improve compression efficiency and improve subjective / objective visual quality. Various methods for efficiently applying such technology and methods for signaling related information are needed. Summary of the invention
[0007] Technical issues
[0008] This document is to provide a method and apparatus for improving video / image coding efficiency.
[0009] This document also provides methods and apparatus for efficiently applying ACT in the encoding process.
[0010] This document also provides methods and apparatus for efficiently constructing clipping ranges for residuals used in applying ACT.
[0011] Technical Solution
[0012] According to an embodiment of the present document, a residual sample may be derived by applying an adaptive color transform (ACT) to a current block based on ACT related information. The ACT related information may include information on whether ACT is applied to the current block. For example, based on ACT related information on applying ACT to the current block, the residual sample may be cropped based on a cropping range, and a modified residual sample may be derived by applying ACT to the cropped residual sample. The cropping range may be determined based on the bit depth.
[0013] According to an embodiment of the present document, the clipping range may have a value between a maximum value and a minimum value derived based on a value obtained by increasing the bit depth by 1. Alternatively, the clipping range may have a value between a maximum value and a minimum value derived based on a smaller value of a value obtained by increasing the bit depth by 1 and 16. Alternatively, the clipping range may be determined based on a fixed bit depth. Alternatively, the clipping range may be set differently for the luma component and the chroma component.
[0014] According to an embodiment of the present document, a video / image decoding method performed by a decoding device is provided. The video / image decoding method may include the method disclosed in the embodiment of the present document.
[0015] According to an embodiment of the present document, a decoding device for performing video / image decoding is provided. The decoding device can perform the method disclosed in the embodiment of the present document.
[0016] According to an embodiment of the present document, a video / image encoding method performed by an encoding device is provided. The video / image encoding method may include the method disclosed in the embodiment of the present document.
[0017] According to an embodiment of the present document, a coding device for performing video / image coding is provided. The coding device can execute the method disclosed in the embodiment of the present document.
[0018] According to an embodiment of the present document, a computer-readable digital storage medium is provided that stores encoded video / image information generated according to a video / image encoding method disclosed in at least one of the embodiments of the present document.
[0019] According to an embodiment of the present document, there is provided a computer-readable digital storage medium storing encoded information or encoded video / image information that enables a decoding device to perform a video / image decoding method disclosed in at least one of the embodiments of the present document.
[0020] Technical Effects
[0021] This document can have various effects. For example, according to the implementation of this document, the overall image / video compression efficiency can be improved. In addition, according to the implementation of this document, the coding efficiency can be improved and the subjective / objective visual quality can be improved by efficiently applying ACT in the coding process. In addition, according to the implementation of this document, by effectively constructing the clipping range of the residual used in the process of applying ACT, the change in the dynamic range of the residual signal before and after the color conversion can be compensated and the loss of the residual signal can be minimized.
[0022] The effects that can be obtained by the specific embodiments of the present disclosure are not limited to the effects listed above. For example, there may be various technical effects that a person of ordinary skill in the relevant field can understand or derive from the present disclosure. Therefore, the specific effects of the present disclosure are not limited to the effects clearly described in the present disclosure, and may include various effects that can be understood or derived from the technical features of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0023] Figure 1 An example of a video / image encoding system suitable for embodiments of the present disclosure is schematically shown.
[0024] Figure 2 is a diagram schematically illustrating a configuration of a video / image encoding device to which an embodiment of the present disclosure is applicable.
[0025] Figure 3 : is a diagram schematically illustrating a configuration of a video / image decoding device to which an embodiment of the present disclosure is applicable.
[0026] Figure 4 An example of an illustrative video / image encoding process to which one or more embodiments of the present document may be applied is shown.
[0027] Figure 5 An example of an illustrative video / image decoding process to which one or more embodiments of the present document may be applied is shown.
[0028] Figure 6 is a diagram for explaining an example of a video / image decoding process using ACT to which one or more embodiments of this document can be applied.
[0029] Figure 7 and Figure 8 An example of a video / image encoding method and related components according to an embodiment of this document is schematically illustrated.
[0030] Fig. 9 and Fig.10 An example of a video / image decoding method and related components according to an embodiment of this document is schematically illustrated.
[0031] Fig.11 An example of a content streaming system to which the embodiments disclosed in this document are applicable is illustrated. DETAILED DESCRIPTION
[0032] This document can be modified in various forms and can have various embodiments, and specific embodiments will be described in detail and illustrated in the drawings. However, this is not intended to limit this document to specific embodiments. The general terms in the following description are only used to describe specific embodiments and are not intended to limit the present disclosure. Singular expressions include plural expressions as long as they are clearly interpreted differently. Terms such as "including" and "having" are intended to indicate the presence of features, quantities, steps, operations, elements, components, or combinations thereof used in the following description, so it should be understood that the possibility of the presence or addition of one or more different features, quantities, steps, operations, elements, components, or combinations thereof is not excluded.
[0033] In addition, the various configurations of the drawings described in this document are independent illustrations for the purpose of illustrating the functions of the features that are different from each other, and do not mean that the various configurations are implemented by different hardware or different software. For example, two or more configurations in the configuration can be combined to form one configuration, and one configuration can also be divided into multiple configurations. Without departing from the main purpose of this document, embodiments in which the configurations are combined and / or separated are included in the scope of the claims.
[0034] In the present disclosure, the term "A or B" may mean "only A", "only B", or "both A and B". In other words, in the present disclosure, the term "A or B" may be interpreted as indicating "A and / or B". For example, in the present disclosure, the term "A, B, or C" may mean "only A", "only B", "only C", or "any combination of A, B, C".
[0035] A slash “ / ” or a comma used in the present disclosure may mean “and / or”. For example, “A / B” may mean “A and / or B”. Thus, “A / B” may mean “only A”, “only B”, or “both A and B”. For example, “A, B, C” may mean “A, B, or C”.
[0036] In the present disclosure, "at least one of A and B" may mean "only A", "only B", or "both A and B". In addition, in the present disclosure, the expression "at least one of A or B" or "at least one of A and / or B" may be interpreted as being the same as "at least one of A and B".
[0037] In addition, in the present disclosure, "at least one of A, B, and C" may mean "only A", "only B", "only C", or "any combination of A, B, and C". In addition, "at least one of A, B, or C" or "at least one of A, B and / or C" may mean "at least one of A, B, and C".
[0038] In addition, the brackets used in the present disclosure may mean "for example". Specifically, in the case of expressing "prediction (intra-frame prediction)", it can be indicated that "intra-frame prediction" is proposed as an example of "prediction". In other words, the term "prediction" in the present disclosure is not limited to "intra-frame prediction", and it can be indicated that "intra-frame prediction" is proposed as an example of "prediction". In addition, even in the case of expressing "prediction (i.e., intra-frame prediction)", it can be indicated that "intra-frame prediction" is proposed as an example of "prediction".
[0039] The present disclosure relates to video / image coding. For example, the methods / implementations disclosed in the present disclosure may be applied to methods disclosed in general video coding (VVC). In addition, the methods / implementations disclosed in the present disclosure may be applied to methods disclosed in the basic video coding (EVC) standard, the AOMedia Video 1 (AV1) standard, the second generation audio video coding standard (AVS2), or the next generation video / image coding standard (e.g., H.267 or H.268, etc.).
[0040] The present disclosure proposes various embodiments of video / image encoding, and unless otherwise mentioned, these embodiments may be performed in combination with each other.
[0041] In the present disclosure, video may mean a collection of a series of images according to the passage of time. A picture generally means a unit representing an image in a specific time period, and a slice / tile is a unit that constitutes a part of a picture when encoded. A slice / tile may include one or more coding tree units (CTUs). A picture may be composed of one or more slices / tiles. A tile is a rectangular area of a CTU within a specific tile column and a specific tile row in a picture. A tile column is a rectangular area of a CTU whose height is equal to the height of the picture and whose width is specified by a syntax element in a picture parameter set. A tile row is a rectangular area of a CTU whose height is specified by a syntax element in a picture parameter set and whose width is equal to the width of the picture. Tile scanning is a specific order sorting of CTUs of the following partitioned pictures: CTUs are sorted continuously in tiles by CTU raster scanning, and tiles in pictures are sorted continuously by raster scanning of tiles of pictures. A slice includes an integer number of continuous complete CTU rows or an integer number of complete tiles within a tile of a picture that can be exclusively contained in a single NAL unit.
[0042] In addition, a picture can be divided into two or more sub-pictures. A sub-picture can be a rectangular area of one or more slices within a picture.
[0043] A pixel or a picture element (pel) may refer to the smallest unit constituting a picture (or image). In addition, a "sample" may be used as a term corresponding to a pixel. A sample may generally represent a pixel or a pixel value, and may represent only a pixel / pixel value of a luminance component or only a pixel / pixel value of a chrominance component.
[0044] A unit may represent a basic unit of image processing. A unit may include at least one of a specific area of a picture and information related to the area. A unit may include a luminance block and two chrominance (e.g., cb, cr) blocks. In some cases, a unit may be used interchangeably with terms such as a block or an area. In general, an M×N block may include M columns and N rows of samples (or sample arrays) or a set (or array) of transform coefficients. Alternatively, a sample may mean a pixel value in a spatial domain, and when such a pixel value is transformed to a frequency domain, it may mean a transform coefficient in a frequency domain.
[0045] In addition, in the present disclosure, at least one of quantization / dequantization and / or transform / inverse transform may be omitted. When quantization / dequantization is omitted, the quantized transform coefficient may be referred to as a transform coefficient. When transform / inverse transform is omitted, the transform coefficient may be referred to as a coefficient or a residual coefficient, or may still be referred to as a transform coefficient for consistency of expression.
[0046] In the present disclosure, the quantized transform coefficient and the transform coefficient may be referred to as the transform coefficient and the scaled transform coefficient, respectively. In this case, the residual information may include information about the transform coefficient, and the information about the transform coefficient may be signaled by the residual coding syntax. The transform coefficient may be derived based on the residual information (or the information about the transform coefficient), and the scaled transform coefficient may be derived by inverse transforming (scaling) the transform coefficient. The residual sample may be derived based on the inverse transform (transform) of the scaled transform coefficient. This may also be applied / expressed in other parts of the present disclosure.
[0047] In the present disclosure, technical features respectively described in one drawing may be implemented separately or may be implemented simultaneously.
[0048] Hereinafter, preferred embodiments of the present disclosure are described in more detail with reference to the accompanying drawings. Hereinafter, in the accompanying drawings, the same reference numerals are used for the same elements, and redundant descriptions of the same elements may be omitted.
[0049] Figure 1 An example of a video / image encoding system to which the embodiments of this document can be applied is illustrated.
[0050] Reference Figure 1 The video / image coding system may include a source device and a receiving device. The source device may transmit the coded video / image information or data in the form of a file or stream to the receiving device via a digital storage medium or a network.
[0051] The source device may include a video source, an encoding device, and a transmitter. The receiving device may include a receiver, a decoding device, and a renderer. The encoding device may be referred to as a video / image encoding device, and the decoding device may be referred to as a video / image decoding device. The transmitter may be included in the encoding device. The receiver may be included in the decoding device. The renderer may include a display, and the display may be configured as a separate device or an external component.
[0052] The video source may acquire the video / image by a process of capturing, synthesizing or generating the video / image. The video source may include a video / image capturing device, and / or a video / image generating device. For example, the video / image capturing device may include one or more cameras, a video / image archive including previously captured videos / images, etc. For example, the video / image generating device may include a computer, a tablet computer, and a smart phone, and may (electronically) generate the video / image. For example, a virtual video / image may be generated by a computer, etc. In this case, the video / image capturing process may be replaced by a process of generating the relevant data.
[0053] The encoding device can encode the input video / image. For compression and encoding efficiency, the encoding device can perform a series of processes such as prediction, transformation and quantization. The encoded data (encoded video / image information) can be output in the form of a bit stream.
[0054] The transmitter may transmit the encoded image / image information or data output in the form of a bit stream to a receiver of a receiving device in the form of a file or stream via a digital storage medium or a network. The digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitter may include an element for generating a media file in a predetermined file format, and may include an element for transmission via a broadcast / communication network. The receiver may receive / extract a bit stream and transmit the received bit stream to a decoding device.
[0055] The decoding device may decode a video / image by performing a series of processes corresponding to the operations of the encoding device, such as inverse quantization, inverse transformation, and prediction.
[0056] The renderer may render the decoded video / image. The rendered video / image may be displayed through a display.
[0057] Figure 2Schematically illustrates a configuration of a video / image encoding device to which an embodiment of the present disclosure is applicable. Hereinafter, the encoding device may include an image encoding device and / or a video encoding device.
[0058] Reference Figure 2 , the encoding device 200 includes an image segmenter 210, a predictor 220, a residual processor 230 and an entropy encoder 240, an adder 250, a filter 260 and a memory 270. The predictor 220 may include an inter-frame predictor 221 and an intra-frame predictor 222. The residual processor 230 may include a transformer 232, a quantizer 233, an inverse quantizer 234 and an inverse transformer 235. The residual processor 230 may also include a subtractor 231. The adder 250 may be referred to as a reconstructor or a reconstructed block generator. According to an embodiment, the image segmenter 210, the predictor 220, the residual processor 230, the entropy encoder 240, the adder 250 and the filter 260 may be configured by at least one hardware component (e.g., an encoder chipset or processor). In addition, the memory 270 may include a decoded picture buffer (DPB), or may be configured by a digital storage medium. The hardware component may also include the memory 270 as an internal / external component.
[0059] The image divider 210 may divide the input image (or picture or frame) input to the encoding device 200 into one or more processors. For example, the processor may be referred to as a coding unit (CU). In this case, the coding unit may be recursively divided from a coding tree unit (CTU) or a maximum coding unit (LCU) according to a quadtree binary tree ternary tree (QTBTTT) structure. For example, one coding unit may be divided into a plurality of coding units with a deeper depth based on a quadtree structure, a binary tree structure, and / or a ternary structure. In this case, for example, a quadtree structure may be applied first, and a binary tree structure and / or a ternary structure may be applied later. Alternatively, a binary tree structure may be applied first. The encoding process according to the present disclosure may be performed based on a final coding unit that is no longer divided. In this case, the maximum coding unit may be used as the final coding unit based on coding efficiency, etc. according to image characteristics, or if necessary, the coding unit may be recursively divided into coding units with a deeper depth and a coding unit with an optimal size may be used as the final coding unit. Here, the encoding process may include a process of prediction, transformation, and reconstruction (to be described later). As another example, the processor may further include a prediction unit (PU) or a transform unit (TU). In this case, the prediction unit and the transform unit may be split or divided from the above-mentioned final coding unit. The prediction unit may be a unit for sample prediction, and the transform unit may be a unit for deriving a transform coefficient and / or a unit for deriving a residual signal from the transform coefficient.
[0060] In some cases, a unit may be used interchangeably with terms such as a block or region. In general, an M×N block may represent a set of samples or transform coefficients consisting of M columns and N rows. A sample may generally represent a pixel or a pixel value, and may represent only a pixel / pixel value of a luminance component or only a pixel / pixel value of a chrominance component. A sample may be used as a term corresponding to one picture (or image) of a pixel or a pixel element.
[0061] The encoding device 200 may subtract a prediction signal (prediction block, prediction sample array) output from the inter predictor 221 or the intra predictor 222 from an input image signal (original block, original sample array) to generate a residual signal (residual block, residual sample array), and the generated residual signal is sent to the transformer 232. In this case, as shown, a unit that subtracts a prediction signal (prediction block, prediction sample array) from an input image signal (original block, original sample array) in the encoding device 200 may be referred to as a subtractor 231. The predictor may perform prediction on a block to be processed (hereinafter, referred to as a current block) and generate a prediction block including prediction samples of the current block. The predictor may determine whether intra prediction or inter prediction is applied based on the current block or CU. As described later in the description of each prediction mode, the predictor may generate various types of information related to prediction (e.g., prediction mode information) and send the generated information to the entropy encoder 240. Information about the prediction may be encoded in the entropy encoder 240 and output in the form of a bitstream.
[0062] The intra-frame predictor 222 may predict the current block with reference to samples in the current picture. Depending on the prediction mode, the referenced samples may be located near the current block or may be spaced apart. In intra-frame prediction, the prediction mode may include multiple non-directional modes and multiple directional modes. For example, the non-directional mode may include a DC mode and a plane mode. For example, depending on the level of detail of the prediction direction, the directional mode may include 33 directional prediction modes or 65 directional prediction modes. However, this is only an example, and more or fewer directional prediction modes may be used depending on the settings. The intra-frame predictor 222 may use the prediction mode applied to the neighboring blocks to determine the prediction mode applied to the current block.
[0063] The inter-frame predictor 221 may derive a prediction block of the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. Here, in order to reduce the amount of motion information sent in the inter-frame prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may also include inter-frame prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter-frame prediction, the neighboring blocks may include spatial neighboring blocks present in the current picture and temporal neighboring blocks present in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different. The temporal neighboring block may be referred to as a collocated reference block, a collocated CU (colCU), etc., and the reference picture including the temporal neighboring block may be referred to as a collocated picture (colPic). For example, the inter-frame predictor 221 may configure a motion information candidate list based on the neighboring blocks and generate information indicating which candidate is used to derive the motion vector and / or reference picture index of the current block. Inter-frame prediction may be performed based on various prediction modes. For example, in the case of skip mode and merge mode, the inter-frame predictor 221 may use the motion information of the neighboring block as the motion information of the current block. In the skip mode, unlike the merge mode, the residual signal may not be transmitted. In the case of the motion vector prediction (MVP) mode, the motion vector of the neighboring block may be used as a motion vector predictor, and the motion vector of the current block may be indicated by signaling the motion vector difference.
[0064] The predictor 220 may generate a prediction signal based on various prediction methods described below. For example, the predictor may not only apply intra prediction or inter prediction to predict a block, but also apply both intra prediction and inter prediction at the same time. This may be referred to as combined inter and intra prediction (CIIP). In addition, the predictor may predict a block based on an intra block copy (IBC) prediction mode or a palette mode. The IBC prediction mode or the palette mode may be used for content image / video encoding of games, etc., such as screen content coding (SCC). IBC basically performs prediction in the current picture, but may be performed similarly to inter prediction so that a reference block is derived in the current picture. That is, IBC may use at least one inter prediction technique described herein. The palette mode may be considered as an example of intra coding or intra prediction. When the palette mode is applied, the sample values within the picture may be signaled based on information about the palette table and the palette index.
[0065] The prediction signal generated by the predictor (including the inter-frame predictor 221 and / or the intra-frame predictor 222) can be used to generate a reconstruction signal or to generate a residual signal. The transformer 232 can generate a transform coefficient by applying a transform technique to the residual signal. For example, the transform technique may include at least one of a discrete cosine transform (DCT), a discrete sine transform (DST), a Karhunen–Loève transform (KLT), a graph-based transform (GBT), or a conditional nonlinear transform (CNT). Here, when the relationship information between pixels is represented by a graph, GBT means a transform obtained from a graph. CNT refers to a transform generated based on a prediction signal generated using all previously reconstructed pixels. In addition, the transform process can be applied to square pixel blocks of the same size or to blocks of variable sizes other than square.
[0066] The quantizer 233 may quantize the transform coefficients and send them to the entropy encoder 240, and the entropy encoder 240 may encode the quantized signal (information about the quantized transform coefficients) and output a bitstream. The information about the quantized transform coefficients may be referred to as residual information. The quantizer 233 may rearrange the block type quantized transform coefficients into a one-dimensional vector form based on the coefficient scanning order, and generate information about the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form. Information about the transform coefficients may be generated. The entropy encoder 240 may perform various encoding methods such as exponential Golomb coding, context adaptive variable length coding (CAVLC), context adaptive binary arithmetic coding (CABAC), etc. The entropy encoder 240 may encode information required for video / image reconstruction other than the quantized transform coefficients (e.g., values of syntax elements, etc.) together or separately. The encoded information (e.g., encoded video / image information) may be transmitted or stored in units of NAL (Network Abstraction Layer) in the form of a bitstream. The video / image information may also include information about various parameter sets, such as an adaptive parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may also include general constraint information. In this article, information and / or syntax elements sent / signaled to a decoding device from an encoding device may be included in the video / image information. The video / image information may be encoded by the above-mentioned encoding process and included in a bitstream. The bitstream may be sent via a network or may be stored in a digital storage medium. The network may include a broadcast network and / or a communication network, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmitter (not shown) that sends a signal output from the entropy encoder 240 and / or a storage unit (not shown) that stores the signal may be included as an internal / external element of the encoding device 200, and alternatively, the transmitter may be included in the entropy encoder 240.
[0067] The quantized transform coefficients output from the quantizer 233 can be used to generate a prediction signal. For example, a residual signal (residual block or residual sample) can be reconstructed by applying inverse quantization and inverse transformation to the quantized transform coefficients via the inverse quantizer 234 and the inverse transformer 235. The adder 250 adds the reconstructed residual signal to the prediction signal output from the inter-frame predictor 221 or the intra-frame predictor 222 to generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array). If there is no residual in the block to be processed (for example, in the case of applying skip mode), the prediction block can be used as a reconstructed block. The adder 250 may be referred to as a reconstructor or a reconstructed block generator. As described below, the generated reconstructed signal can be used for intra-frame prediction of the next block to be processed in the current picture and can be used for inter-frame prediction of the next picture by filtering.
[0068] Furthermore, luma mapping with chroma scaling (LMCS) may be applied during picture encoding and / or reconstruction.
[0069] The filter 260 can improve the subjective / objective image quality by applying filtering to the reconstructed signal. For example, the filter 260 can generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture and store the modified reconstructed picture in the memory 270 (specifically, the DPB of the memory 270). For example, various filtering methods may include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc. The filter 260 can generate various types of information related to filtering and send the generated information to the entropy encoder 240, as described later in the description of each filtering method. The information related to filtering can be encoded by the entropy encoder 240 and output in the form of a bitstream.
[0070] The modified reconstructed picture transmitted to the memory 270 may be used as a reference picture in the inter predictor 221. When inter prediction is applied by the encoding apparatus, prediction mismatch between the encoding apparatus 200 and the decoding apparatus may be avoided and encoding efficiency may be improved.
[0071] The DPB of the memory 270 may store a modified reconstructed picture used as a reference picture in the inter-frame predictor 221. The memory 270 may store motion information of a block for deriving (or encoding) motion information in the current picture and / or motion information of a reconstructed block in the picture. The stored motion information may be sent to the inter-frame predictor 221 and used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory 270 may store reconstructed samples of a reconstructed block in the current picture and may transmit the reconstructed samples to the intra-frame predictor 222.
[0072] Figure 3Schematically illustrates a configuration of a video / image decoding device to which an embodiment of the present disclosure is applicable. Hereinafter, a decoding device may include an image decoding device and / or a video decoding device.
[0073] Reference Figure 3 , the decoding device 300 may include an entropy decoder 310, a residual processor 320, a predictor 330, an adder 340, a filter 350, and a memory 360. The predictor 330 may include an inter-frame predictor 332 and an intra-frame predictor 331. The residual processor 320 may include an inverse quantizer 321 and an inverse transformer 322. According to an embodiment, the entropy decoder 310, the residual processor 320, the predictor 330, the adder 340, and the filter 350 may be configured by a hardware component (e.g., a decoder chipset or a processor). In addition, the memory 360 may include a decoded picture buffer (DPB) or may be configured by a digital storage medium. The hardware component may also include a memory 360 as an internal / external component.
[0074] When a bit stream including video / image information is input, the decoding device 300 can reconstruct the bit stream corresponding to the bit stream in the video / image format. Figure 2 The image corresponding to the processing of the video / image information in the encoding device. For example, the decoding device 300 may derive the unit / block based on the block segmentation related information obtained from the bit stream. The decoding device 300 may use a processor applied in the encoding device to perform decoding. Therefore, for example, the decoding processor may be a coding unit, and the coding unit may be divided from a coding tree unit or a maximum coding unit according to a quadtree structure, a binary tree structure and / or a ternary tree structure. One or more transform units may be derived from the coding unit. The reconstructed image signal decoded and output by the decoding device 300 may be reproduced by a reproduction device.
[0075] The decoding device 300 may receive Figure 2The received signal may be decoded by the entropy decoder 310. For example, the entropy decoder 310 may parse the bitstream to derive information (e.g., video / image information) required for image reconstruction (or picture reconstruction). The video / image information may also include information about various parameter sets, such as an adaptive parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may also include general constraint information. The decoding device may also decode the picture based on the information about the parameter set and / or the general constraint information. The information and / or syntax elements signaled / received described later herein may be decoded and obtained from the bitstream by a decoding process. For example, the entropy decoder 310 may decode the information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output the syntax elements required for image reconstruction and the quantized values of the transform coefficients of the residual. More specifically, the CABAC entropy decoding method may receive bins corresponding to each syntax element in the bitstream, determine a context model using information of a decoding target syntax element, decoding information of a decoding target block, or information of a symbol / bin decoded in a previous stage, and perform arithmetic decoding on the bin by predicting the probability of occurrence of the bin according to the determined context model, and generate symbols corresponding to the values of each syntax element. In this case, the CABAC entropy decoding method may update the context model by using the information of the decoded symbol / bin for the context model of the next symbol / bin after determining the context model. Information related to prediction among the information decoded by the entropy decoder 310 may be provided to the predictor (inter-frame predictor 332 and intra-frame predictor 331), and the residual value (i.e., quantized transform coefficients and related parameter information) for which entropy decoding is performed in the entropy decoder 310 may be input to the residual processor 320. The residual processor 320 may derive a residual signal (residual block, residual sample, residual sample array). In addition, information about filtering among the information decoded by the entropy decoder 310 may be provided to the filter 350. In addition, a receiver (not shown) for receiving a signal output from the encoding device may also be configured as an internal / external element of the decoding device 300, or the receiver may be a component of the entropy decoder 310. In addition, the decoding device according to this document may be referred to as a video / image / picture decoding device, and the decoding device may be classified into an information decoder (video / image / picture information decoder) and a sample decoder (video / image / picture sample decoder). The information decoder may include the entropy decoder 310, and the sample decoder may include at least one of the inverse quantizer 321, the inverse transformer 322, the adder 340, the filter 350, the memory 360, the inter-frame predictor 332, and the intra-frame predictor 331.
[0076] The inverse quantizer 321 may inversely quantize the quantized transform coefficient and output the transform coefficient. The inverse quantizer 321 may rearrange the quantized transform coefficient in a two-dimensional block form. In this case, the rearrangement may be performed based on a coefficient scanning order performed in the encoding device. The inverse quantizer 321 may perform inverse quantization on the quantized transform coefficient using a quantization parameter (e.g., quantization step size information) and obtain the transform coefficient.
[0077] The inverse transformer 322 inversely transforms the transform coefficients to obtain a residual signal (residual block, residual sample array).
[0078] The predictor 330 may perform prediction on the current block and generate a prediction block including prediction samples of the current block. The predictor may determine whether to apply intra prediction or inter prediction to the current block based on information on prediction output from the entropy decoder 310 and may determine a specific intra / inter prediction mode.
[0079] The predictor may generate a prediction signal based on various prediction methods described below. For example, the predictor may not only apply intra prediction or inter prediction to predict a block, but may also apply intra prediction and inter prediction at the same time. This may be referred to as combined inter and intra prediction (CIIP). In addition, the predictor may predict a block based on an intra block copy (IBC) prediction mode or a palette mode. The IBC prediction mode or the palette mode may be used for content image / video encoding of games, etc., such as screen content coding (SCC). IBC basically performs prediction in the current picture, but may be performed similarly to inter prediction so that a reference block is derived in the current picture. That is, IBC may use at least one inter prediction technique described herein. The palette mode may be considered as an example of intra coding or intra prediction. When the palette mode is applied, the sample values within the picture may be signaled based on information about the palette table and the palette index. The intra predictor 331 may predict the current block with reference to the samples in the current picture. Depending on the prediction mode, the referenced samples may be located near the current block or may be spaced apart. In intra prediction, the prediction mode may include a plurality of non-directional modes and a plurality of directional modes. The intra predictor 331 may determine a prediction mode applied to a current block using prediction modes applied to neighboring blocks.
[0080] The intra-frame predictor 331 may predict the current block with reference to samples in the current picture. Depending on the prediction mode, the referenced samples may be located near the current block or may be spaced apart. In intra-frame prediction, the prediction mode may include a plurality of non-directional modes and a plurality of directional modes. The intra-frame predictor 331 may use the prediction mode applied to the neighboring blocks to determine the prediction mode applied to the current block.
[0081] The inter-frame predictor 332 may derive a prediction block of the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. In this case, in order to reduce the amount of motion information sent in the inter-frame prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may also include inter-frame prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter-frame prediction, the neighboring blocks may include spatial neighboring blocks present in the current picture and temporal neighboring blocks present in the reference picture. For example, the inter-frame predictor 332 may configure a motion information candidate list based on neighboring blocks and derive a motion vector and / or a reference picture index of the current block based on the received candidate selection information. Inter-frame prediction may be performed based on various prediction modes, and information about the prediction may include information indicating the inter-frame prediction mode of the current block.
[0082] The adder 340 can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the obtained residual signal to the prediction signal (prediction block, prediction sample array) output from the predictor (including the inter-frame predictor 332 and / or the intra-frame predictor 331). If there is no residual in the block to be processed, for example, when the skip mode is applied, the prediction block can be used as the reconstructed block.
[0083] The adder 340 may be referred to as a reconstructor or a reconstructed block generator. The generated reconstructed signal may be used for intra prediction of the next block to be processed in the current picture, may be output through filtering as described below, or may be used for inter prediction of the next picture.
[0084] In addition, luma mapping with chroma scaling (LMCS) may be applied in the picture decoding process.
[0085] The filter 350 can improve the subjective / objective image quality by applying filtering to the reconstructed signal. For example, the filter 350 can generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture and store the modified reconstructed picture in the memory 360 (specifically, the DPB of the memory 360). For example, the various filtering methods may include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.
[0086] The (modified) reconstructed picture stored in the DPB of the memory 360 may be used as a reference picture in the inter-frame predictor 332. The memory 360 may store the motion information of the block from which the motion information in the current picture is derived (or decoded) and / or the motion information of the reconstructed block in the picture. The stored motion information may be sent to the inter-frame predictor 332 to be used as the motion information of the spatial neighboring block or the motion information of the temporal neighboring block. The memory 360 may store the reconstructed samples of the reconstructed block in the current picture and transmit the reconstructed samples to the intra-frame predictor 331.
[0087] In the present disclosure, the embodiments described in the filter 260, the inter-frame predictor 221, and the intra-frame predictor 222 of the encoding device 200 may be the same as or respectively applied to the filter 350, the inter-frame predictor 332, and the intra-frame predictor 331 of the decoding device 300. This may also be applied to the inter-frame predictor 332 and the intra-frame predictor 331.
[0088] In addition, as described above, when performing video encoding, prediction is performed to enhance compression efficiency. A prediction block including prediction samples of a current block (ie, a target coding block) may be generated by prediction. In this case, the prediction block includes prediction samples in a spatial domain (or a pixel domain). The prediction block is derived identically in the encoding device and the decoding device. The encoding device may enhance image coding efficiency by notifying the decoding device with a signal of information (residual information) about the residual between the original block (rather than the original sample value of the original block itself) and the prediction block. The decoding device may derive a residual block including residual samples based on the residual information, may generate a reconstructed block including reconstructed samples by adding the residual block to the prediction block, and may generate a reconstructed picture including the reconstructed block.
[0089] The residual information may be generated by a transform process and a quantization process. For example, the encoding device may derive a residual block between the original block and the prediction block, may derive a transform coefficient by performing a transform process on a residual sample (residual sample array) included in the residual block, may derive a quantized transform coefficient by performing a quantization process on the transform coefficient, and may signal the relevant residual information (through a bitstream) to the decoding device. In this case, the residual information may include information such as value information, position information, a transform scheme, a transform core, and a quantization parameter of the quantized transform coefficient. The decoding device may perform an inverse quantization / inverse transform process based on the residual information and may derive a residual sample (or residual block). The decoding device may generate a reconstructed picture based on the prediction block and the residual block. In addition, the encoding device may derive a residual block by inverse quantizing / inverse transforming the quantized transform coefficient for reference to inter-frame prediction of subsequent pictures, and may generate a reconstructed picture.
[0090] Generally, in video / image encoding, the quantization rate can be changed, and the compression rate can be adjusted using the changed quantization rate. From an implementation point of view, a quantization parameter (QP) can be used instead of a quantization rate in consideration of complexity. For example, a quantization parameter of an integer value from 0 to 63 can be used, and each quantization parameter value can correspond to an actual quantization rate. For example, the quantization parameter QP of the luminance component (luminance sample) can be set differently. Y and the quantization parameter QP of the chroma component (chroma samples) C .
[0091] The quantization process can take the transform coefficients C as input and divide them by the quantization rate Q step , and based on this, the quantized transform coefficient C' is obtained. In this case, considering the computational complexity, the quantization rate may be multiplied by a certain scale to form an integer, and the shift operation may be performed by a value corresponding to the scale value. The quantization scale may be derived based on the product of the quantization rate and the scale value. That is, the quantization scale may be derived according to the QP. For example, the quantized transform coefficient C' may be derived by applying the quantization scale to the transform coefficient C.
[0092] The inverse quantization process is the inverse of the quantization process and can be performed by multiplying the quantized transform coefficient C' by the quantization rate Q step To obtain the reconstructed transform coefficient C". In this case, the horizontal scale can be derived from the quantization parameter, and the reconstructed transform coefficient C". can be derived by applying the horizontal scale to the quantized transform coefficient C'. Due to losses in the transform and / or quantization process, the reconstructed transform coefficient C" may be slightly different from the original transform coefficient C. Therefore, in the encoding device, inverse quantization is performed in the same manner as in the decoding device.
[0093] Figure 4 An example of an illustrative video / image encoding process applicable to an exemplary embodiment of this document is illustrated. Figure 4 In the S400, the above reference Figure 2 The predictor 220 of the encoding device described in the present invention may be performed by the predictor 220, S410 may be performed by the residual processor 230 thereof, and S420 may be performed by the entropy encoder 240 thereof. S400 may include the inter / intra prediction process described in this document, S410 may include the residual processing process described in this document, and S420 may include the information encoding process described in this document.
[0094] Reference Figure 4 The video / image encoding process may illustratively include a process of generating a reconstructed picture for a current picture, a process of applying loop filtering to the reconstructed picture (optional), and encoding information for reconstructing the picture (e.g., prediction information, residual information, or segmentation information) as shown in the reference Figure 2 The process of outputting the encoding information in the form of a bitstream is described. The encoding device can derive (modified) residual samples from the quantized transform coefficients through the inverse quantizer 234 and the inverse transformer 235, and generate a reconstructed picture based on the predicted samples and the (modified) residual samples as the output in S400. The reconstructed picture generated in this way can be the same as the reconstructed picture mentioned above generated by the decoding device. The modified reconstructed picture can be generated by a loop filtering process for the reconstructed picture, and can be stored in the decoded picture buffer or memory 270, and as in the case of the decoding device, it is used as a reference picture in the inter-frame prediction process when the picture is encoded later. As described above, in some cases, some or all of the loop filtering process can be omitted. If a loop filtering process is performed, the (loop) filtering related information (parameters) can be encoded by the entropy encoder 240 and output in the form of a bitstream, and the decoding device can perform the loop filtering process based on the filtering related information in the same method as the encoding device.
[0095] Through the loop filtering process, noise such as block artifacts and ringing artifacts generated when encoding images / videos can be reduced, and the subjective / objective visual quality can be enhanced. In addition, by performing the loop filtering process in both the encoding device and the decoding device, the encoding device and the decoding device can derive the same prediction result, increase the reliability of picture encoding, and reduce the amount of data to be sent for encoding the picture.
[0096] As described above, the picture reconstruction process can be performed in the encoding device and in the decoding device. A reconstructed block can be generated based on intra prediction / inter prediction in units of each block, and a reconstructed picture including the reconstructed block can be generated. If the current picture / slice / tile group is an I picture / slice / tile group, the blocks included in the current picture / slice / tile group can be reconstructed based only on intra prediction. In addition, if the current picture / slice / tile group is a P or B picture / slice / tile group, the blocks included in the current picture / slice / tile group can be reconstructed based on intra prediction or inter prediction. In this case, inter prediction can be applied to some blocks in the current picture / slice / tile group, and intra prediction can also be applied to other blocks. The color components of the picture may include a luminance component and a chrominance component, and unless explicitly limited in this document, the method and exemplary embodiments proposed in this document may be applied to the luminance component and the chrominance component.
[0097] Figure 5 An example of an exemplary video / image decoding process to which one or more embodiments of the present document may be applied is shown. Figure 5 In the above, S500 can be Figure 3S500 may include the information decoding process described in this document; S510 may include the inter / intra prediction process described in this document; S520 may include the residual processing process described in this document; S530 may include the block / picture reconstruction process described in this document; and S540 may include the loop filtering process described in this document.
[0098] Reference Figure 5 , such as in the case of Figure 3 As presented in the description of , the picture decoding process may schematically include an image / video information acquisition process S500 from a bitstream (by decoding), a picture reconstruction process S510 to S530, and a loop filtering process S540 for reconstructing the picture. The picture reconstruction process may be performed based on the residual samples and prediction samples obtained by the inter-frame / intra-frame prediction S510 and the residual processing S520 (dequantization, inverse transformation for quantized transform coefficients) process described in this document. By performing a loop filtering process on the reconstructed picture generated by the picture reconstruction process, a modified reconstructed picture may be generated, which may be output as a decoded picture, or may be stored in the memory 360 of the decoding device or in the decoded picture buffer and used as a reference picture in the inter-frame prediction process of subsequent picture decoding.
[0099] Depending on the situation, the loop filtering process can be skipped, and in this case, the reconstructed picture can be output as a decoded picture, or it can be stored in the memory 360 of the decoding device or the decoded picture buffer and used as a reference picture in the inter-frame prediction process of subsequent picture decoding. The loop filtering process S540 may include a deblocking filtering process, a sampling adaptive offset (SAO) process, an adaptive loop filter (ALF) process, and / or a bilateral filter process as described above, and all or some of them may be skipped. In addition, one or some of the deblocking filtering process, the sampling adaptive offset (SAO) process, the adaptive loop filter (ALF) process, and the bilateral filter process may be applied sequentially, or all of them may be applied sequentially. For example, after applying the deblocking filtering process to the reconstructed picture, the SAO process may be performed on it. Alternatively, for example, after applying the deblocking filtering process to the reconstructed picture, the ALF process may be performed on it. This may also be performed in the encoding device.
[0100] In addition, Adaptive Color Transform (ACT) is a technology that uses loop color space conversion to remove redundancy between color components in HEVC screen content extension. ACT is also used for 444 content of VVC standard.
[0101] In the HEVC Screen Content Coding (SCC) extension, ACT is used to adaptively transform the prediction residual from one color space to the YCgCo space. The two-color space is adaptively selected by signaling an ACT flag for each transform unit (TU). When the flag is equal to 1, this indicates that the residual of the TU is encoded in the YCgCo space. Otherwise (i.e., when the flag is equal to 0), this indicates that the residual of the TU is encoded in the original color space.
[0102] ACT has been adopted in the VVC standard for 444 content (4:4:4 chroma format content), and a decoding process using ACT may be performed, such as Figure 6 as shown in .
[0103] Figure 6 is a diagram for explaining an example of a video / image decoding process using ACT to which one or more embodiments of this document can be applied.
[0104] Here, motion compensated prediction may be referred to as inter-frame prediction in this document. Figure 6 As shown in , a reconstructed picture (or a reconstructed block, a reconstructed sample array, a reconstructed sample, a reconstructed signal) can be generated based on the prediction output and the residual output (residual output of the inverse transform (inverse normal transform) (e.g., a transform based on inverse MTS and / or inverse LFNST, etc.) or inverse ACT). The prediction output may include a prediction block, a prediction sample array, one prediction sample or multiple prediction samples or a prediction signal. The residual output may include a residual block, a residual sample array, one residual sample or multiple residual signals or a residual signal. For example, at the encoding side, the ACT process may be performed on the residual sample derived based on the prediction sample, and the output of the ACT process may be an input of a normal transform (e.g., a transform based on MTS and / or LFNST). (Inverse) ACT related information (parameters) may be generated / encoded by an encoding device and may be sent to a decoding device via a bitstream. The decoding device may obtain / parse / decode information (parameters) related to (inverse) ACT and may perform inverse ACT based on the information (parameters) related to (inverse) ACT. Based on the inverse ACT, a (modified) residual sample (or residual block) may be derived. Specifically, (transform) coefficients may be derived by dequantizing quantized (transform) coefficients; residual samples may be derived by performing an inverse transform; and an inverse ACT may also be performed to obtain (modified) residual samples.
[0105] The core transform (transform kernel) for color space conversion may remain the same as that for HEVC. Specifically, the forward and reverse YCgCo color transform matrices may be applied as follows.
[0106] [Formula 1]
[0107]
[0108] Among them, C0, C1 and C2 may correspond to G, B and R, and C0', C1' and C2' may correspond to Y, Cg and Co.
[0109] In addition, in order to compensate for the dynamic range change of the residual signal before and after the color transformation, a QP adjustment of (-5, -5, -3) can be applied to the transformed residual. The details of the QP adjustment will be described later.
[0110] In the case of ACT adopted in VVC, there are some restrictions on when ACT can be applied and its interaction with other tools.
[0111] - For dual trees, ACT becomes disabled. That is, only for a single tree, ACT becomes enabled.
[0112] - For intra sub-partition prediction (ISP), ACT becomes disabled.
[0113] - For Block Differential Pulse Code Modulation (BDPCM) chroma, ACT becomes disabled, and for BDPCM luma only, ACT becomes enabled.
[0114] -When ACT becomes enabled, the Inter-Component Linear Model Prediction (CCLM) becomes disabled.
[0115] Whether to apply the above-mentioned ACT in the encoding / decoding process of the image / video can be determined based on the ACT-related information (i.e., ACT-related syntax elements) signaled by the syntax shown in the following Tables 1 and 2. That is, whether to apply the ACT is determined based on the ACT-related information included in the image information, and when the ACT is applied according to the determination, the ACT can be applied to the residual sample so that the modified residual sample can be derived.
[0116] For example, Table 1 and Table 2 below show examples of syntax structures in which ACT-related information (ie, ACT-related syntax elements) are signaled.
[0117] [Table 1]
[0118]
[0119] [Table 2]
[0120]
[0121] Table 3 below shows the semantics of the syntax elements included in the syntax tables of Tables 1 and 2 above.
[0122] [Table 3]
[0123]
[0124] Referring to Tables 1 to 3, information indicating whether ACT is enabled may be signaled / parsed through a sequence parameter set (SPS). For example, the information indicating whether ACT is enabled may be a sps_act_enabled_flag syntax element. When the value of sps_act_enabled_flag is 1, this may indicate that ACT is enabled, and in this case, there may be information in the coding unit syntax indicating whether ACT is applied to the residual of the current block (i.e., the current coding unit). Alternatively, when the value of sps_act_enabled_flag is 0, this may indicate that ACT is not enabled, and in this case, there may be no information in the coding unit syntax indicating whether ACT is applied to the residual of the current block (i.e., the current coding unit).
[0125] Based on information indicating whether ACT signaled by SPS is available (e.g., sps_act_enabled_flag), information indicating whether ACT is applied to the residual of the current block (i.e., the current coding unit) through the coding unit syntax may be signaled / parsed. For example, the information indicating whether ACT is applied to the residual of the current block (i.e., the current coding unit) may be a cu_act_enabled_flag syntax element. When the value of cu_act_enabled_flag is 1, this may indicate that ACT is applied to the residual of the current block (i.e., this indicates encoding in the YCgCo color space), and when the value of cu_act_enabled_flag is 0, this may indicate that ACT is not applied to the residual of the current block (i.e., this indicates encoding in the original color space). Here, applying ACT may mean using color space conversion.
[0126] In one embodiment, when the value of the information indicating whether the ACT signaled / parsed by the SPS is available (e.g., sps_act_enabled_flag) is 1, in the coding unit syntax, the information indicating whether the ACT is applied to the residual of the current block (i.e., the current coding unit) (e.g., cu_act_enabled_flag) may be signaled / parsed. Alternatively, when the value of the information indicating whether the ACT signaled / parsed by the SPS is available (e.g., sps_act_enabled_flag) is 0, in the coding unit syntax, the information indicating whether the ACT is applied to the residual of the current block (i.e., the current coding unit) (e.g., cu_act_enabled_flag) may not be signaled / parsed.
[0127] In addition, based on the case where the value of information indicating whether ACT is applied to the residual of the current block (ie, the current coding unit) signaled / parsed through the coding unit syntax is 1, ACT (ie, color space conversion) can be applied to the residual of the current block.
[0128] In addition, as described above, the ACT color conversion in VVC can use the same equation as in the above equation 1. This conversion is called YCgCo conversion. The matrix multiplication as in equation 1 can be expressed as in equation 2 below.
[0129] [Formula 2]
[0130]
[0131] The transform is not completely reversible (not a perfect reconstruction due to the precision loss of Co and Cg processing). Therefore, it cannot be used in applications that require lossless coding. A straightforward way to enable lossless coding is to turn off ACT. The disadvantage is that lossless coding applications cannot benefit from ACT. The embodiments of this document to be described later provide methods for enabling ACT in both lossy coding applications and lossless coding applications.
[0132] Hereinafter, in this document, a method is proposed to alleviate the above-mentioned ACT problem and improve the coding efficiency in applying ACT-based encoding / decoding processes.
[0133] In the current VVC, ACT QP adjustment may be applied, and in this case, there may be two problems. First, each color component may have a different ACT Qp offset, which is not accurately reflected in the QP derivation process. Second, the derived QP may have a negative value. Accordingly, an embodiment of the present document proposes a method for deriving a QP that reflects the ACT Qp offset of each color component and preventing the derived QP from having a negative value. In the present document, the quantization parameter of the luma component may be expressed as Qp' y ; The quantization parameter of the chrominance Cb component can be expressed as Qp' Cb ; The quantization parameter of the chrominance Cr component can be expressed as Qp' Cr ; and the quantization parameter of the joint Cb-Cr coding can be expressed as Qp' CbCr .
[0134] As an implementation, the QP derived based on the ACT QP offset for each color component may be clipped as shown in Table 1 below.
[0135] [Table 4]
[0136]
[0137]
[0138] Referring to Table 4, an ACT QP offset (e.g., ActQpOffset) for each color component may be derived. For example, the ACT QP offset (e.g., ActQpOffset) for the luma component may be -5; the ACT QP offset (e.g., ActQpOffset) for joint Cb-Cr coding may be -5; the ACT QP offset (e.g., ActQpOffset) for the chroma Cb component may be -5; and the ACT QP offset (e.g., ActQpOffset) for the chroma Cr component may be -3. In this case, the quantization parameter (e.g., qP) may be modified based on the value of the ACT QP offset (e.g., ActQpOffset) for each color component. For example, based on the quantization parameter (e.g., Qp') derived for each color component, y , Qp' Cb , Qp' Cr , Qp' CbCr ) and an ACT QP offset (e.g., ActQpOffset) of each color component, the quantization parameter (e.g., qP) may be modified. Here, based on the value of the information (e.g., cu_act_enabled_flag) indicating whether to use color space conversion to apply the residual of the current block, the ACT QP offset (e.g., ActQpOffset) may be reflected in the quantization parameter (e.g., Qp' y , Qp' Cb , Qp' Cr , Qp' CbCr ). In this regard, in order to prevent the quantization parameter (e.g., qP) from having a negative value, the quantization parameter (e.g., qP) may be clipped. For example, as shown in Table 4 above, the quantization parameter (e.g., qP) may be determined as a larger value between a quantization parameter derived based on the value of the ACT QP offset (e.g., ActQpOffset) of each color component and a value of 0.
[0139] As another example, the QP may be clipped as shown in Table 5 below. Table 5 shows an example of clipping the QP based on the minimum quantization parameter value in the transform skip mode (e.g., QpPrimeTsMin) when the value of the information on whether to skip the transform / inverse transform (e.g., transform_skip_flag) in Table 4 is 1 instead of 0. Here, when the value of the information on whether to skip the transform / inverse transform (e.g., transform_skip_flag) is 1, it may indicate that the transform / inverse transform is skipped, which may be referred to as a transform skip mode. When the value of the information on whether to skip the transform / inverse transform (e.g., transform_skip_flag) is 0, it may indicate that the transform / inverse transform is applied. The minimum quantization parameter value in the transform skip mode (e.g., QpPrimeTsMin) may be a value derived based on the min_qp_prime_ts_minus4 syntax element, and the min_qp_prime_ts_minus4 syntax element may indicate the minimum quantization parameter allowed by the transform skip mode signaled in the SPS.
[0140] [Table 5]
[0141]
[0142] Here, in the ACT transform, Y and Cb may represent three color components; Y may correspond to C0; Cb may correspond to C1 or Cg; and Cr may correspond to C2 or Co.
[0143] The above-mentioned embodiments may be applied to the specification of VVC as shown in the following Table 6. Table 6 shows an example of applying the above-mentioned embodiments to the scaling process and the residual correction process in the specification.
[0144] [Table 6]
[0145]
[0146]
[0147]
[0148] In Table 4, the ACTQpOffset values of the three color components are derived as -5, -5, and -3, and in Table 6, the ACTQpOffset values of the three color components are derived as 5, 5, and 3, however, this is just an example and may be replaced with other values or variables.
[0149] In addition, in the current VVC case, the adjustment of the ACT QP offset is fixed to -5 for Y, Cg, Co components and YCbCr. In one embodiment of the present document, considering that the ACT QP offset can be signaled through the bitstream and can have a wider offset range, a method is proposed that can clip the QP within the minimum and maximum ranges to prevent the modified QP based on the ACT QP offset from exceeding the range.
[0150] In an embodiment, the ACT QP offset may be a value derived based on signaled information or a predefined number. For example, as shown in Table 4 below, the ACT QP offset may be represented by variables PpsActQpOffsetY, PpsActQpOffsetCb, PpsActQpOffsetCr, and PpsActQpOffsetCbCr. The variables may be predefined numbers or values derived from the signaled ACT QP offset. The signaling of the ACT QP offset will be described later. For example, the values of PpsActQpOffsetY, PpsActQpOffsetCbCr, PpsActQpOffsetCb, and PpsActQpOffsetCr must be within the range of -12 to +12, which may be a requirement for bitstream consistency.
[0151] For example, when the value of the QP offset is signaled instead of a fixed value and the range of the value of the QP offset is between -12 and 12, in order to avoid negative QP, it is necessary to clip not only the minimum value of the derived QP but also the maximum value of the derived QP. The minimum value of qP can be changed to 0 to avoid negative values, or it can be changed to the minimum allowable qP limited by the signaled syntax element (e.g., the minimum quantization parameter value in transform skip mode; QpPrimeTsMin). The maximum value of qP can be the maximum possible qP value (e.g., 63) or the maximum allowable qP limited by the signaled syntax element.
[0152] Table 7 below shows an example of an algorithm to which the above-described embodiments may be applied.
[0153] [Table 7]
[0154]
[0155]
[0156] In another example, QP may be clipped within the minimum and maximum ranges as shown in Table 8 below. Table 8 shows an example of clipping the minimum qP based on QpPrimeTsMin instead of 0 when the value of the information on whether to skip transform / inverse transform (eg, transform_skip_flag) in Table 7 above is 1.
[0157] [Table 8]
[0158]
[0159] In addition, the combination of BDPCM and ACT of the luma component is allowed in the current VVC. However, BDPCM and ACT of the chroma component are not allowed (disabled). Therefore, in one embodiment of this document, it is proposed to allow the combination of BDPCM and ACT of the chroma component.
[0160] When looking at BDPCM first, during the encoding / decoding process, either Block Differential Pulse Code Modulation (BDPCM) or Block-based Delta Pulse Code Modulation (BDPCM) techniques can be used. BDPCM can also be called Quantized Residual Block-based Delta Pulse Code Modulation (RDPCM).
[0161] When a block is predicted by applying BDPCM, the reconstructed samples can be used to predict the rows or columns of the block line by line. In this regard, the reference samples used can be unfiltered samples. The BDPCM direction can indicate whether the vertical or horizontal direction prediction is used. That is, when BDPCM is applied, the vertical direction or the horizontal direction can be selected as the BDPCM direction, and the prediction can be performed in the BDPCM direction. The prediction error can be quantized in the spatial domain, and the sample can be reconstructed by adding the inverse quantized prediction error to the prediction (ie, the prediction sample). The prediction error can mean the residual. As an alternative to this BDPCM, a quantized residual domain BDPCM can be proposed, and the prediction direction or signaling can be the same as the BDPCM applied to the spatial domain. That is, the quantized coefficients themselves can be accumulated like incremental pulse code modulation (DPCM) by quantizing the residual domain BDPCM, and then the residual can be reconstructed by inverse quantization. Accordingly, the quantized residual domain BDPCM can be used in the sense of applying DPCM in the residual coding stage. The quantized residual domain used below is a residual derived based on prediction quantized without transformation, and refers to the domain of quantized residual samples. For example, the quantized residual domain may include quantized residuals (or quantized residual coefficients) to which transform skipping is applied, i.e., transform is skipped for residual samples but quantization is applied. Alternatively, for example, the quantized residual domain may include quantized transform coefficients.
[0162] As described above, BDPCM can be applied to a quantized residual domain, and the quantized residual domain may include a quantized residual (or a quantized residual coefficient), in which case a transform skip may be applied to the residual. That is, when BDPCM is applied, the transform may be skipped for the residual sample, and quantization may be applied thereto. Alternatively, the quantized residual domain may include a quantized transform coefficient. A flag indicating whether BDPCM is applicable may be signaled at the sequence level (SPS), and the flag may be signaled only when it is signaled that a transform skip mode is possible in the SPS. The flag may be referred to as a BDPCM enable flag or an SPS BDPCM enable flag.
[0163] When BDPCM is applied, intra prediction can be performed on the entire block by sample replication according to a prediction direction similar to the intra prediction direction (e.g., vertical prediction or horizontal prediction). The residual as the difference between the original block and the predicted block can be quantized by skipping the transform, and the delta value, i.e., the difference between the quantized residual and the predictor in the horizontal or vertical direction (i.e., the quantized residual in the horizontal or vertical direction) can be encoded.
[0164] Where BDPCM is applicable, when the CU size is less than or equal to the MaxTsSize (maximum transform skip block size) of the luma sample and the CU is encoded using intra prediction, flag information may be sent at the CU level. The flag information may be referred to as a BDPCM flag. Here, MaxTsSize may mean the maximum block size for which the transform skip mode is allowed. The flag information may indicate whether conventional intra coding or BDPCM is applied. When BDPCM is applied, a BDPCM prediction direction flag may be sent indicating whether the prediction direction is horizontal or vertical. The BDPCM prediction direction flag may be referred to as a BDPCM direction flag. Thereafter, the block may be predicted by a conventional horizontal or vertical intra prediction process using unfiltered reference samples. In addition, the residual may be quantized, and the difference between each quantized residual and its predictor (e.g., the residual of an adjacent position that has been quantized in the horizontal or vertical direction according to the BDPCM prediction direction) may be encoded.
[0165] When applying the above-mentioned BDPCM together with ACT, this document proposes a method that can be applied not only to the luminance component but also to the chrominance component. In an embodiment, the following Table 9 shows a part of the coding unit syntax and shows an example of the syntax structure of BDPCM and ACT that allow chrominance components.
[0166] [Table 9]
[0167]
[0168] Referring to Table 9 above, by indicating whether to use color space conversion to apply the residual of the current block (e.g., cu_act_enabled_flag), the syntax structure of the coding unit can be changed so that it is uncertain whether to apply the BDPCM of the chroma component. For example, only when the value of cu_act_enabled_flag is not 1, the condition for applying the BDPCM of the chroma component can be removed (e.g., !cu_act_enabled_flag). In this case, both ACT and BDPCM can be applied to the chroma component of the current block. The information about whether to apply the BDPCM of the chroma component can be an intra_bdpcm_chroma_flag syntax element. For example, when the value of intra_bdpcm_chroma_flag is 1, it can be indicated that BDPCM is applied to the chroma component of the current block, and when the value of intra_bdpcm_chroma_flag is 0, it can be indicated that BDPCM is not applied to the chroma component of the current block.
[0169] In addition, both ACT and CCLM can be used to remove redundancy between components. These two tools are sometimes superimposed on each other, but after applying either tool, redundancy between components is not removed. Therefore, it may be useful to allow these two tools to be applied together. The embodiment of this document proposes a method for allowing the combination of ACT and CCLM. In this case, CCLM can be applied first, and ACT can be applied later on the decoder side.
[0170] In an embodiment, the following Table 10 represents a part of the coding unit syntax and represents an example of a syntax structure that allows a combination of ACT and CCLM.
[0171] [Table 10]
[0172]
[0173] Referring to Table 10 above, by indicating whether to use color space conversion to apply the residual of the current block (e.g., cu_act_enabled_flag), the syntax structure of the coding unit may be changed so that it is uncertain whether CCLM is applied. For example, only when the value of cu_act_enabled_flag is not 1, the condition for applying CCLM (e.g., !cu_act_enabled_flag) may be removed. In this case, both ACT and CCLM may be applied to the current block. The information on whether CCLM is applied may be a ccm_mode_flag syntax element. For example, when the value of ccm_mode_flag is 1, it may be indicated that CCLM is applied to the current block, and when the value of ccm_mode_flag is 0, it may be indicated that CCLM is not applied to the current block.
[0174] The syntax structure may be changed to allow BDPCM and CCLM for chroma components as well as ACT. For example, as shown in Tables 9 and 10 above, this may be achieved by removing the constraint "!cu_act_enabled_flag" for signaling of the intra_bdpcm_chroma_flag and ccm_mode_flag syntax elements.
[0175] In addition, in ACT mode, the prediction residual is converted from one color space (GBR or YCbCr) to the YCgCo space, and the residual of the TU is encoded in the YCgCo space. The ACT core conversion (conversion kernel) for color space conversion is represented by the following formula 3, where C0, C1, and C2 can correspond to G, B, and R, and C0', C1', and C2' can correspond to Y, Cg, and Co.
[0176] [Formula 3]
[0177]
[0178] As shown in Equation 3 above, the transformations of C0', C1', and C2' (here, C0'=Y, C1'=Cg, C2'=Co) are not normalized (i.e., L2norm is not equal to 1). For example, the L2norm for the transformation of each component is approximately equal to 0.6 for C0' and C1' and approximately equal to 0.7 for C2'. L2norm can be obtained by the square root of the sum of each squared coefficient. For example, C0'=2 / 4*C0+1 / 4*C1+1 / 4*C2. Therefore, the norm of C0' is equal to the square root of {(2 / 4)*(2 / 4)+(1 / 4)*(1 / 4)+(1 / 4)*(1 / 4)}=the square root of (6 / 16=0.375). =0.375). The square root of 0.375 is approximately 0.6.
[0179] If the transform is not normalized, the dynamic range of each component becomes irregular, which may cause the encoding performance of the conventional video compression system to degrade. In order to compensate for the change in the dynamic range of the residual signal, a QP adjustment method can be used by sending a QP offset value for compensating for the change in the dynamic range of each transform component. Therefore, one embodiment of this document focuses on a general QP adjustment control method for joint CbCr and ACT transform. In the joint CbCr method, a change in dynamic range may occur between the color components because each color component is jointly encoded rather than independently encoded.
[0180] When viewed from the joint CbCr coding method, a joint coding method for chroma residuals in VVC is supported, which may be referred to as a joint chroma coding mode or a joint CbCr mode. The use (enabling) of the joint chroma coding mode may be indicated by the TU level flag tu_joint_cbcr_residual_flag, and the selected mode may be implicitly indicated by the chroma CBF. The tu_joint_cbcr_residual_flag flag may be present when one or both of the chroma CBFs of the TU is 1. In the PPS and slice header, a chroma Qp offset value may be signaled for the joint chroma residual coding mode to distinguish it from the general chroma QP offset value signaled for the normal chroma residual coding mode. The chroma QP offset value may be used to derive the chroma QP value of a block encoded using the joint chroma residual coding mode. When the corresponding joint chroma coding mode is enabled in a TU (mode 2 of Table 11), the chroma QP offset can be added to the luma-derived chroma QP applied during quantization and decoding of the corresponding TU. For other modes (modes 1 and 3 in Table 11), the chroma QP can be derived in the same way as for a regular Cb or Cr block. The reconstruction process of the chroma residual (resCb and resCr) in the transmitted transform block is shown in Table 11. When this mode is enabled, a single joint chroma residual block (resJointC[x][y] in Table 11) is signaled, and the residual block of Cb (resCb) and the residual block of Cr (resCr) can be derived taking into account information such as tu_cbf_cb, tu_cbf_cr, and CSign as symbol values specified in the slice header.
[0181] Table 11 below shows an example of reconstructing the chroma residual according to the joint CbCr mode. Here, the CSign value is the sign value (+1 or -1) specified in the slice header, and resJointC[][] is the transmitted residual.
[0182] [Table 11]
[0183]
[0184] At the encoder side, the joint chroma components may be derived as shown in the following Table 12. According to the mode disclosed in Table 11, resJointC{1,2} may be generated by the encoder as in the algorithm in the following Table 12.
[0185] [Table 12]
[0186]
[0187] The above three joint chroma coding modes are only supported in I slices, and only mode 2 is supported in P and B slices. Therefore, in P and B slices, the syntax element tu_joint_cbcr_residual_flag may be present only when both chroma cbfs are 1. The transform depth may be removed from the context modeling of tu_cbf_luma and tu_cbf_cb.
[0188] The ACT QP offset adjustment in current VVC is fixed to -5 and is the same for Y, Cg, Co components and joint CbCr. Implementations of this document allow different ACT QP offset values for Y, Cb, Cr and / or joint CbCr to provide flexibility in joint CbCr and per-component QP control. The ACT QP offset value can vary depending on whether it is joint CbCr and / or component index and / or joint CbCr mode.
[0189] In one embodiment, the ACT QP offsets for Y, Cb, and Cr may be indicated using the variables ppsActQpOffsetY, ppsActQpOffsetCb, and ppsActQpOffsetCr derived based on the information about the ACT QP offset as described above, and the variable ppsActQpOffsetCbCr may be used for the ACT QP offset for joint CbCr mode 2 (i.e., there is a non-zero cbf in both the cb and cr components). The values of the variables may be defined or signaled from the bitstream. There may be several variations of the ACTQP offset for the joint CbCr mode.
[0190] In an example, the ACT QP offset of joint CbCr mode 2 may have its own offset value. For other joint CbCr modes, the ACT QP offset of the corresponding component may be used. In this case, the algorithm may be implemented as shown in Table 13 below.
[0191] [Table 13]
[0192]
[0193]
[0194] In another example, for the joint CbCr mode of tu_cbf_cb!=0 (ie, mode 1 and 2), ppsActQpOffsetCb may be used, and for the joint CbCr mode of tu_cbf_cb == 0 (ie, mode 3), ppsActQpOffsetCr may be used. In this case, the algorithm may be implemented as shown in Table 14 below.
[0195] [Table 14]
[0196]
[0197]
[0198] In another example, regardless of the CbCr joint mode, if the component index is Y, ppsActQpOffsetY may be used; if the component index is Cb, ppsActQpOffsetCb may be used; and if the component index is Cr, ppsActQpOffsetCr may be used. In this case, the algorithm may be implemented as shown in Table 15 below.
[0199] [Table 15]
[0200]
[0201] In addition, in an embodiment of the present disclosure, it can be signaled via the bitstream to allow for more flexibility in the ACT QP offset. To this end, information about the ACT QP offset can be placed in an appropriate header and signaled. For example, it can be signaled via SPS, PPS, picture header, slice header, and / or other header sets. The ACT QP offset for joint CbCr can be signaled separately or derived from the ACT QP offsets for Y, Cb, and Cr.
[0202] As an example, the ACT QP offset may be signaled in the PPS without a general loss, and may be signaled as in the syntax table below in Table 16. In the example of Table 16, for joint CbCr, one ACT QP offset may be signaled.
[0203] The following Table 16 is an example of syntax table signaling information related to ACT QP offset in PPS, and the following Table 17 represents the semantics of syntax elements included in the syntax table of Table 16.
[0204] [Table 16]
[0205]
[0206] [Table 17]
[0207]
[0208] Referring to Tables 16 and 17 above, the pps_act_qp_offsets_present_flag syntax element may be parsed / signaled in the PPS. Here, pps_act_qp_offsets_present_flag may be information indicating whether information related to the ACT QP offset is present in the PPS. For example, when the value of pps_act_qp_offsets_present_flag is 1, it may indicate that information related to the ACT QP offset is present in the PPS, and when the value of pps_act_qp_offsets_present_flag is 0, it may indicate that information related to the ACT QP offset is not present in the PPS.
[0209] For example, when the value of pps_act_qp_offsets_present_flag is 1, information related to ACT QP offset may be parsed / signaled in PPS. Here, information related to ACT QP offset may include pps_act_y_qp_offset_plusX1, pps_act_cb_qp_offset_plusX2, pps_act_cr_qp_offset_plusX3, and pps_act_cbcr_qp_offset_plusX4 syntax elements.
[0210] The offset of the quantization parameter value qP applied to the luma, Cb, Cr components and joint CbCr may be determined using pps_act_y_qp_offset_plusX1, pps_act_cb_qp_offset_plusX2, pps_act_cr_qp_offset_plusX3, pps_act_cbcr_qp_offset_plusX4. As shown in Table 17, the ACT QP offset (e.g., PpsActQpOffsetY, PpsActQpOffsetCb, PpsActQpOffsetCr, PpsActQpOffsetCbCr) values may be derived based on information related to the ACT QP offset signaled in the PPS (e.g., pps_act_y_qp_offset_plusX1, pps_act_cb_qp_offset_plusX2, pps_act_cr_qp_offset_plusX3, pps_act_cbcr_qp_offset_plusX4). Based on the ACT QP offset values derived as described above, the quantization parameter values qP for luma, Cb, Cr components, and joint CbCr may be derived as in the algorithm of Table 18 below.
[0211] [Table 18]
[0212]
[0213] Alternatively, as another example, when the ACT QP offset is signaled, multiple ACT QP offsets may be signaled for other modes of joint CbCr referred to as Mode A and Mode B. Joint CbCr Mode A is Mode 1 and Mode 2 in Table 11 above, and may indicate a joint CbCr mode where tu_cbf_cb is not 0. Joint CbCr Mode B is Mode 3 in Table 11 above, and may indicate a joint CbCr mode where tu_cbf_cb is 0.
[0214] The following Table 19 is an example of a syntax table for signaling information related to multiple ACT QP offsets according to the joint CbCr mode in PPS, and the following Table 20 represents the semantics of syntax elements included in the syntax table of Table 19.
[0215] [Table 19]
[0216]
[0217] [Table 20]
[0218]
[0219] Referring to Tables 19 and 20 above, the pps_act_qp_offsets_present_flag syntax element may be parsed / signaled in the PPS. Here, pps_act_qp_offsets_present_flag may be information indicating whether information related to the ACT QP offset is present in the PPS. For example, when the value of pps_act_qp_offsets_present_flag is 1, it may indicate that information related to the ACT QP offset is present in the PPS, and when the value of pps_act_qp_offsets_present_flag is 0, it may indicate that information related to the ACT QP offset is not present in the PPS.
[0220] For example, when the value of pps_act_qp_offsets_present_flag is 1, information related to ACT QP offset may be parsed / signaled in PPS. Here, information related to ACT QP offset may include pps_act_y_qp_offset_plusX1, pps_act_cb_qp_offset_plusX2, pps_act_cr_qp_offset_plusX3, pps_act_cbcr_qp_offset_modeA_plusX4, and pps_act_cbcr_qp_offset_modeB_plusX5 syntax elements. The offset applied to the quantization parameter value qP for luma, Cb, Cr components, and joint CbCr may be determined using pps_act_y_qp_offset_plusX1, pps_act_cb_qp_offset_plusX2, pps_act_cr_qp_offset_plusX3, pps_act_cbcr_qp_offset_modeA_plusX4, and pps_act_cbcr_qp_offset_modeB_plusX5. As shown in Table 20, ACTQP offsets (e.g., PpsActQpOffsetY, PpsActQpOffsetCb, PpsActQpOffsetCr, PpsActQpOffsetCbCrModeA, PpsActQpOffsetCbCrModeB) values may be derived based on information related to the ACT QP offset signaled in the PPS (e.g., pps_act_y_qp_offset_plusX1, pps_act_cb_qp_offset_plusX2, pps_act_cr_qp_offset_plusX3, pps_act_cbcr_qp_offset_modeA_plusX4, pps_act_cbcr_qp_offset_modeB_plusX5). Based on the ACT QP offset values derived as described above, quantization parameter values qP for luma, Cb, Cr components, and joint CbCr may be derived as in the algorithm of Table 21 below.
[0221] [Table 21]
[0222]
[0223] Alternatively, as another example, when the ACT QP offset is signaled, only the ACT QP offsets for Y, Cb, and Cr may be signaled. In this case, the ACT QP offset for joint CbCr may be derived based on PpsActQpOffsetY, PpsActQpOffsetCb, and / or PpsActQpOffsetCr. For example, the ACT QP offset for joint CbCr may be set equal to PpsActQpOffsetCb. Alternatively, for example, when the joint CbCr mode is tu_cbf_cb!=0 (i.e., mode 1 and 2), the ACT QP offset for joint CbCr may be set to PpsActQpOffsetCb, and when the joint CbCr mode is tu_cbf_cb==0 (i.e., mode 0), the ACT QP offset for joint CbCr may be set to PpsActQpOffsetCr.
[0224] Table 22 below represents an example of a syntax table for signaling only information related to ACT QP offsets for Y, Cb, and Cr in PPS.
[0225] [Table 22]
[0226]
[0227] Referring to Table 22 above, the pps_act_qp_offsets_present_flag syntax element may be parsed / signaled in the PPS. Here, pps_act_qp_offsets_present_flag may be information indicating whether information related to the ACTQP offset is present in the PPS. For example, when the value of pps_act_qp_offsets_present_flag is 1, it may indicate that information related to the ACT QP offset is present in the PPS, and when the value of pps_act_qp_offsets_present_flag is 0, it may indicate that information related to the ACT QP offset is not present in the PPS.
[0228] For example, when the value of pps_act_qp_offsets_present_flag is 1, information related to the ACT QP offset may be parsed / signaled in the PPS. Here, information related to the ACT QP offset may include pps_act_y_qp_offset_plusX1, pps_act_cb_qp_offset_plusX2, and pps_act_cr_qp_offset_plusX3 syntax elements. pps_act_y_qp_offset_plusX1, pps_act_cb_qp_offset_plusX2, and pps_act_cr_qp_offset_plusX3 may be used to determine the offset applied to the quantization parameter value qP for luma, Cb, Cr components, and joint CbCr. As shown in Table 22, the ACT QP offset (e.g., PpsActQpOffsetY, PpsActQpOffsetCb, PpsActQpOffsetCr) values may be derived based on information related to the ACT QP offset signaled in the PPS (e.g., pps_act_y_qp_offset_plusX1, pps_act_cb_qp_offset_plusX2, pps_act_cr_qp_offset_plusX3). Based on the ACT QP offset values derived as described above, the quantization parameter values qP for luma, Cb, Cr components, and joint CbCr may be derived as in the algorithm of Table 23 below.
[0229] [Table 23]
[0230]
[0231]
[0232] In addition, embodiments of this document propose to signal ACT QP offset at multiple levels. As described above, ACT QP offset can be signaled at a level such as PPS, and ACT QP offset can be signaled at a lower level such as slice header, picture header or other suitable header to allow finer QP control.
[0233] In one embodiment, the ACT QP offset related information may be signaled through multiple levels (ie, PPS and slice header), and may be signaled as in the syntax tables of the following Tables 24 and 25. In the present embodiment, the slice header is proposed as an example of a lower level, however, this is only an example, and the ACT QP offset related information may be signaled through a picture header (PH) or another header in a similar manner.
[0234] [Table 24]
[0235]
[0236] [Table 25]
[0237]
[0238] The following Table 26 shows the semantics of the syntax elements included in the syntax tables of Tables 24 and 25.
[0239] [Table 26]
[0240]
[0241]
[0242] Referring to Tables 24 to 26, the pps_act_qp_offsets_present_flag syntax element may be parsed / signaled at a higher level (e.g., PPS). Here, pps_act_qp_offsets_present_flag may be information indicating whether information related to the ACT QP offset is present in a lower level (e.g., a slice header). For example, when a value of pps_act_qp_offsets_present_flag is 1, it may indicate that information related to the ACT QP offset is present in a lower level (e.g., a slice header), and when a value of pps_act_qp_offsets_present_flag is 0, it may indicate that information related to the ACT QP offset is not present in a lower level (e.g., a slice header).
[0243] Based on the pps_act_qp_offsets_present_flag signaled at a higher level (e.g., PPS), information related to ACT QP offsets can be parsed / signaled at a lower level (e.g., slice header). Here, information related to ACT QP offsets can include slice_act_y_qp_offset, slice_act_cb_qp_offset, slice_act_cr_qp_offset, and slice_act_cbcr_qp_offset syntax elements.
[0244] In addition, when the ACT QP offset related information is signaled through multiple stages, the method of deriving the ACT QP offset for joint CbCr based on the ACT QP offset (ACTQpOffset) for Y, Cb, Cr and / or joint CbCr mode can be applied without 1) signaling one ACT QP offset for joint CbCr or 2) signaling multiple ACT QP offsets for other modes of joint CbCr or 3) signaling the ACT QP offset for joint CbCr, as in the above-mentioned embodiments. For example, as shown in Table 24 above, pps_act_qp_offsets_present_flag may be signaled in the PPS, and the ACT QP offset related information may be signaled in the slice header based on pps_act_qp_offsets_present_flag.
[0245] Table 27 below is a syntax table representing an example of signaling multiple ACTQP offsets in a slice header for other modes of joint CbCr described above 2), and Table 28 below is a syntax table representing an example of a method of deriving an ACT QP offset for joint CbCr based on the ACT QP offset (ACTQpOffset) of Y, Cb, Cr and / or joint CbCr mode without 3) signaling the ACT QP offset for joint CbCr as described above.
[0246] [Table 27]
[0247]
[0248] [Table 28]
[0249]
[0250] In Table 28 above, only the ACT QP offsets for Y, Cb, and Cr are signaled, and the ACT QP offset for the slice level of joint CbCr is derived based on slice_act_y_qp_offset, slice_act_cb_qp_offset, and / or slice_act_cr_qp_offset. In addition, it may also vary according to the mode type of joint CbCr. For example, the ACT QP offset (QpOffset) for the slice level of CbCr may be set equal to slice_act_cb_qp_offset. Alternatively, for example, when the joint CbCr mode is tu_cbf_cb! =0 (ie, modes 1 and 2), the slice-level ACT QP offset for joint CbCr may be set to slice_act_cb_qp_offset, whereas when the joint CbCr mode is tu_cbf_cb==0 (ie, mode 0), the slice-level ACT QP offset for joint CbCr may be set to slice_act_cr_qp_offset.
[0251] In addition, in an embodiment, when the ACT QP offset related information is signaled through multiple stages, one of the slice header or the picture header may signal the ACT QP offset related information. This method may be applied as follows.
[0252] - A flag (eg, called pps_picture_slice_act_qp_offsets_present_flag) may be signaled in the PPS and may indicate whether the ACT QP offset may be present in the picture header or the slice header.
[0253] - When ACT is enabled and pps_picture_slice_act_qp_offsets_present_flag is 1, a flag (e.g., called pic_act_qp_offsets_present_flag) may be signaled in the picture header. pic_act_qp_offsets_present_flag may indicate whether the ACT QP offsets are present in the picture header. When the value of pic_act_qp_offsets_present_flag is 1, the ACT QP offsets for all slices of the picture associated with the picture header may be present in the picture header.
[0254] - When ACT is enabled and pps_picture_slice_act_qp_offsets_present_flag is 1 and pic_act_qp_offsets_present_flag is 0, the ACT QP offset of the slice may be present in the slice header.
[0255] The method of signaling ACT QP offset related information in one of a slice header or a picture header together with signaling at a higher level (eg, PPS) as described above may be implemented as in the syntax tables of Tables 29 to 31 below.
[0256] [Table 29]
[0257] pic_parameter_set_rbsp(){ Descriptors pps_pic_slice_act_qp_offsets_present_flag u(1)
[0258] [Table 30]
[0259]
[0260] [Table 31]
[0261]
[0262] The following Table 32 represents the semantics of the syntax elements included in the syntax table of Table 29; the following Table 33 represents the semantics of the syntax elements included in the syntax table of Table 30; and the following Table 34 represents the semantics of the syntax elements included in the syntax table of Table 31.
[0263] [Table 32]
[0264]
[0265] [Table 33]
[0266]
[0267] [Table 34]
[0268]
[0269]
[0270] In addition, in one embodiment, when there is also an ACT QP offset in the slice header or picture header, the final offset used to derive the qP value may be an offset derived by summing the offset signaled in the PPS and the slice header / picture header. In this case, the final offset (ActQpOffset) used to derive the qP value may be derived as in the algorithms of Tables 35 to 37 below.
[0271] [Table 35]
[0272]
[0273] Alternatively, in an example, when multiple ACT QP offsets for the joint CbCr mode are signaled, the ACT QP offset (ActQpOffset) for the joint CbCr may be set as in the algorithm of Table 36 below.
[0274] [Table 36]
[0275]
[0276]
[0277] In addition, in one embodiment, when there is no ACT QP offset for joint CbCr and the ACT QP offset for joint CbCr is derived using the ACT QP offsets of the Y, Cb and / or Cr components, the ACT QP offset (ActQpOffset) for the joint CbCr mode may be set as in the algorithm of Table 37 below.
[0278] [Table 37]
[0279]
[0280] In addition, embodiments of this document propose a method with a list of ACT QP offsets. This method can be applied as follows.
[0281] a) Multiple ACT QP offset sets can be signaled as a list in a parameter set (e.g., SPS or PPS). Each set in the list can include ACT QP offsets for Y, Cb, Cr, and joint CbCr components.
[0282] - For simplicity, the ACTQP offset list may be signaled in the same parameter set as the signaling of the chroma QP offset list.
[0283] b) The number of ACT QP offset sets in the list may be the same as the number of chroma QP offset sets signaled in the PPS.
[0284] c) When deriving the qP for each CU, the ACT QP offset used may be the one indicated by the index to the CU chroma QP offset in the list (ie, cu_chroma_qp_offset_idx).
[0285] d) Alternatively, the following may apply to items b) and c).
[0286] - The number of ACT QP offset sets in the list may be signaled, which may be different from the number of chroma QP offset sets.
[0287] - When ACT is enabled, an index indicating the index of the ACT QP offset for the CU may be signaled.
[0288] As an example, the above-described method of a list with ACT QP offsets may be implemented as in the syntax table of Table 38 below.
[0289] [Table 38]
[0290]
[0291] The following Table 39 shows the semantics of the syntax elements included in the syntax table of Table 38.
[0292] [Table 39]
[0293]
[0294]
[0295] In addition, the following Table 40 represents an example of an algorithm for deriving a final offset (ActQpOffset) for deriving a qP value of each component based on syntax elements related to the ACT QP offset signaled in the above Table 39.
[0296] [Table 40]
[0297]
[0298] In addition, in one embodiment of this document, it is proposed that ACT uses reversible color conversion to support both lossless coding and lossy coding. The reversible color conversion can replace the conventional lossy color conversion in the current VVC. The ACTQP offset can also be adjusted to conform to the color conversion. As an example, the reversible color conversion can be as shown in Table 41 below.
[0299] [Table 41]
[0300]
[0301] The transform is a reversible (full reconstruction support) YCgCo-R color transform, where R represents reversibility. The YCgCo-R transform increases the bit depth of Cg and Co by 1. Other types of reversible transforms may also be used.
[0302] Because the reversible color transform may have a standard different from that of the conventional YCgCo color transform of VVC, the ACT QP offsets of Y, Cg, and Co must be adjusted to compensate for the change in dynamic range due to the color transform. In the current VVC, an ACT QP offset (-5, -5, -5) is used for Y, Cg, and Co. For the reversible transform, ACT QP offset values other than (-5, -5, -5) may be defined. For example, in the YCgCo-R transform, ACT QP offsets (-5, 1, 3) for Y, Cg, and Co may be used. Alternatively, the ACT QP offset may be signaled as in the embodiments described in Tables 16 to 36 above. In particular, when the above-mentioned YCgCo-R transform uses the ACT QP offset (-5, 1, 3) together, it is reported that no coding loss is observed in a lossy coding environment (QP 22, 27, 32, 37) as shown in Table 42 below. In addition, ACT can be used for lossless coding that can achieve 5% or more coding performance.
[0303] [Table 42]
[0304] sequence Y U V RGB,TGM1080p 0.0% 0.2% 0.1% RGB,TGM720p 0.2% -0.1% 0.1% RGB, Animation -0.1% -0.1% 0.0% RGB, mixed content -0.1% 0.0% -0.1% RGB, camera capture content -0.3% 0.2% -0.3% Overall All (RGB) 0.0% 0.0% 0.0%
[0305] Table 43 below represents a portion of the VVC specification including the joint ACT matrix and is modified to implement the above-mentioned embodiment.
[0306] [Table 43]
[0307]
[0308] In addition, embodiments of the present document propose methods that enable the use of one or more color transforms in the ACT. The color transform to be used may vary depending on a flag signaled by the bitstream. The flag may be signaled at multiple levels or granularities including SPS, PPS, picture headers, and slices.
[0309] In an example, a flag may be signaled to indicate which ACT to apply. For example, when the flag is 1, an ACT based on a reversible color transform may be applied. When the flag is 0, an ACT based on an irreversible color transform may be applied.
[0310] In another example, a flag specifying ACT may be signaled to indicate the color transform to be used. In this case, an example of a syntax element signaled by the SPS may be as shown in Table 44 below.
[0311] [Table 44]
[0312] seq_parameter_set_rbsp(){ Descriptors … sps_act_reversible_conversion u(1)
[0313] The following Table 45 shows the semantics of the syntax elements included in the syntax table of Table 44.
[0314] [Table 45]
[0315]
[0316] In addition, based on the lossyCoding flag (e.g., sps_act_reversible_conversion) used to derive the value of the variable lossyCoding in Table 45 above, the decoder can perform inverse conversion from YCgCo to GBR, which can be implemented in pseudo code as shown in Tables 46 and 47 below.
[0317] [Table 46]
[0318]
[0319] [Table 47]
[0320]
[0321]
[0322] In addition, there are some similarities between the YCgCo inverse transform and the YCgCo-R inverse transform. In the reversible transform, when Cg and Co are replaced by Cg'=Cg<<1 and Co'=Co<<1, it becomes the same as the lossy inverse transform. It can be performed as shown in Table 48 below.
[0323] [Table 48]
[0324]
[0325] Therefore, in another embodiment, instead of keeping two color transforms, only a reversible transform may be used. For lossy coding, the Cg, Co components are scaled by 1 / 2 at the encoder side and by 2 at the decoder side. The advantage of this is that there is only one joint transform for the lossy and lossless cases, and the bit depth remains unchanged for lossy coding.
[0326] Table 49 below shows an example of inverse conversion from YCgCo to GBR.
[0327] [Table 49]
[0328]
[0329] For example, a flag (eg, actShiftFlag) for indicating an ACT transform to be used may be used as in the following Table 50. The following Table 50 represents an example of signaling a flag (eg, actShiftFlag) for indicating which ACT transform to use in SPS.
[0330] [Table 50]
[0331]
[0332] The following Table 51 represents the semantics of the syntax elements included in the syntax table of Table 50.
[0333] [Table 51]
[0334]
[0335] In addition, when the actShiftFlag of Table 50 above is used, the decoder can perform inverse transformation from YCgCo to GBR based on the flag actShiftFlag, which can be implemented with pseudo code as in Table 52 below.
[0336] [Table 52]
[0337]
[0338] Furthermore, embodiments of this document propose methods that enable the use of one or more color transforms in an ACT. In this case, the type of color transform to be used can be inferred from other information signaled by the bitstream.
[0339] In an example, two types of ACT transforms including a reversible ACT transform and an irreversible ACT transform may be available. The ACT transform type may be inferred from the transform type. For example, if the transform type is transform skip (indicated by the variable tuIsTransformSkip), a reversible ACT transform may be used. Otherwise, an irreversible ACT transform may be used. These two ACT transform types may be implemented in pseudo code as shown in Tables 53 and 54 below.
[0340] [Table 53]
[0341]
[0342] [Table 54]
[0343]
[0344] In another example, the ACT transform type may vary according to the QP value. If the QP value is less than or equal to a threshold (eg, QpPrimeTsMin), a reversible ACT transform may be used. Otherwise, an irreversible ACT transform may be used.
[0345] Furthermore, in the embodiments described above with reference to Tables 4 to 8, a method of clipping the QP derived based on the ACT QP offset for each color component has been proposed. More specifically, the proposed method assumes that a QP including Qp' has been derived. Y , Qp' CbCr , Qp' Cb and Qp' Cr And, in order to modify the QP derived based on the ACT QP offset (Qp' Y , Qp' CbCr , Qp' Cb and Qp' Cr ), and in order to ensure that the modified QP for transform coefficient scaling does not exceed the range, the necessary clipping process is added.
[0346] In this regard, embodiments of this document propose combining the ACT QP offset with the QP used to derive Qp' Y , Qp' CbCr , Qp' Cb and Qp' Cr Since the QP derivation process already includes a clipping step to prevent the derived QP from being out of range, combining the ACT QP offset into the QP derivation process can ensure that the final QP does not exceed the range, and can avoid additional clipping steps and simplify the entire QP derivation process for the transform coefficient scaling process.
[0347] As described above, the ACT QP offset may be defined as a constant or signaled. For example, the ACT QP offset for each color component Y, Cb, Cr, and CbCr may be represented as ppsActQpOffsetY, ppsActQpOffsetCb, ppsActQpOffsetCr, ppsActQpOffsetCbCr in Table 55 below. In addition, the ACT QP offset for each color component Y, Cb, Cr, and CbCr may be a constant or variable ranging from -M to +N, where M and N may, for example, become 12 for lossy and 0 for lossless. One or more ACT QP offsets may be derived from other ACT QP offset values. For example, ppsActQpOffsetCbCr may be set to ppsActQpOffsetCb and ppsActQpOffsetCr according to the joint CbCr mode.
[0348] In an embodiment, the above QP derivation process based on the ACT QP offset can be implemented as shown in Table 55 below. Table 55 shows an example of the scaling process of transform coefficients and the QP derivation process in the specification of applying the above embodiment to VVC.
[0349] [Table 55]
[0350]
[0351]
[0352]
[0353] In addition, in video coding, the residual kept during the intermediate decoding process is within the dynamic range of 16-bit signed integers. In VVC, the input residual of the inverse ACT transform is clipped according to the internal coding bit depth as shown in Equation 4 below.
[0354] [Equation 4]
[0355] rY[x][y] = Clip3(-(1 << BitDepth), (1 << BitDepth) - 1, rY[x][y])
[0356] rCb[x][y] = Clip3(-(1 << BitDepth), (1 << BitDepth) - 1, rCb[x][y])
[0357] rCr[x][y] = Clip3(-(1 << BitDepth), (1 << BitDepth) - 1, rCr[x][y])
[0358] However, the clipping in Equation 4 may cause problems with the inverse ACT transform. Since the inverse ACT transform increases the bit depth of the Cg and Co components by 1, problems may occur when clipping within the range of (-(1 << BitDepth), (1 << BitDepth) - 1).
[0359] Accordingly, in one embodiment of this document, a clipping range for the ACT residual is proposed to solve the problems that may occur during the clipping process of the ACT residual as described above. Here, the ACT residual may refer to the residual derived by applying a color space conversion to the residual of the current block (i.e., the current coding unit) when ACT is enabled.
[0360] In one embodiment, the clipping range of the ACT residual can be increased to BitDepth + 1. That is, the ACT residual samples can be derived based on the clipping range where the bit depth is increased by 1.
[0361] As an example, Table 56 below shows an example of the process of deriving the residual samples of each color component based on a clipping range with a median depth increased by 1.
[0362] [Table 56]
[0363]
[0364] Referring to Table 56, the residual samples of the applied ACT can be clipped to have values within a specific range, and in this case, the clipping range can be determined based on the bit depth. For example, the clipping range can be determined as the range between the minimum value and the maximum value for clipping, and can be determined based on the value of BitDepth + 1. In the example, the clipping range can be determined based on the value (or variable) ACTClipBitDepth used to specify the clipping range, and ACTClipBitDepth can be determined as the smaller value between (BitDepth + 1) and 16. In this case, the clipping range (i.e., the minimum value and the maximum value) can be determined as (-(1 << ACTClipBitDepth), (1 << ACTClipBitDepth) - 1)). The residual samples (r Y , r Cb , r Cr ) of each color component can be clipped based on the determined clipping range. Additionally, the ACT residual samples can be finally compensated based on the clipped residual samples (r Y , r Cb , r Cr ) of each color component.
[0365] Alternatively, in the example, the process disclosed in Table 56 above can also be represented as in Table 57 below.
[0366] [Table 57]
[0367]
[0368] Referring to Table 57, the ACT residual samples can be clipped based on the clipping range (e.g., actClipRange). That is, in Table 57, the clipping range used to derive the ACT residual samples can be represented by actClipRange derived based on the value of BitDepth + 1. For example, the value (or variable) actClipRange used to specify the clipping range can be derived as 1 << (BitDepth + 1) - 1. In this case, the clipping range (i.e., the minimum value and the maximum value) can be determined as (-actClipRange, actClipRange). The residual samples (r Y , r Cb , rCr ) Apply clipping. Additionally, the residual samples (r Y , r Cb , r Cr ) of each color component can be used to finally compensate for the ACT residual samples.
[0369] Alternatively, as an example, the process of deriving the residual samples of each color component based on the clipping range with the bit depth increased by 1 can be represented as shown in Table 58 below.
[0370] [Table 58]
[0371]
[0372]
[0373] Referring to Table 58, the residual samples of the applied ACT can be clipped to have values within a specific range, and in this case, the clipping range can be determined based on the values obtained by increasing the bit depth by 1. For example, the clipping range can be determined as the range between the minimum and maximum values for clipping and can be determined based on the value of BitDepth + 1. For example, the clipping range can be determined based on the value (or variable) ACTClipBitDepth used to specify the clipping range, and ACTClipBitDepth can be derived as the value of BitDepth + 1. In this case, the clipping range (i.e., the minimum and maximum values) can be determined as (-(1 << ACTClipBitDepth), (1 << ACTClipBitDepth)). Alternatively, according to an embodiment, ACTClipBitDepth can be clipped within a specific range (e.g., 16), or can be a value derived based on min(BitDepth + 1, 16). The residual samples (r Y , r Cb , r Cr ) of each color component can be clipped. Additionally, the residual samples (r Y , r Cb , r Cr ) of the clipping of each color component can be used to finally compensate for the ACT residual samples.
[0374] Alternatively, in the example, the process disclosed in Table 58 above can also be represented as shown in Table 59 below.
[0375] [Table 59]
[0376]
[0377] Referring to Table 59, the ACT residual samples may be clipped based on a clipping range (e.g., actClipRange). That is, in Table 59, the clipping range for deriving the ACT residual samples may be represented by actClipRange derived based on the value of BitDepth+1. For example, the value (or variable) actClipRange for specifying the clipping range may be derived as 1<<(BitDepth+1). In this case, the clipping range (i.e., the minimum and maximum values) may be determined as (-actClipRange, actClipRange-1). The residual samples (r values) of each color component may be determined based on the determined clipping range. Y ,r Cb ,r Cr ) to apply clipping. Alternatively, the clipped residual samples (r Y , r Cb , r Cr ) to finally compensate the ACT residual samples.
[0378] In addition, according to an embodiment, the clipping range of the ACT residual can be fixed to 16 bits. This not only ensures that the ACT residual is within the 16-bit dynamic range, but also ensures the safety of lossless encoding when the internal bit depth is not set correctly.
[0379] As an example, the following Table 60 represents an example of a process of deriving residual samples for each color component based on a fixed clipping range of 16 bits.
[0380] [Table 60]
[0381]
[0382]
[0383] Referring to Table 60, the residual samples to which ACT is applied may be clipped to have values within a specific range, and in this case, the clipping range may be determined based on a fixed bit depth. For example, the fixed bit depth may be set to 16 bits, which may be an internal bit depth used in the encoding system. In this case, the clipping range (i.e., the range between the minimum and maximum values for clipping) may be determined as (-(1<<16), (1<<16)). The residual samples (r ) of each color component may be clipped based on the determined clipping range. Y ,r Cb ,r Cr ) to apply clipping. Alternatively, the clipped residual samples (r Y , r Cb , r Cr ) to finally compensate the ACT residual samples.
[0384] Alternatively, in an example, the process disclosed in the above Table 60 can also be expressed as in the following Table 61.
[0385] [Table 61]
[0386]
[0387] Referring to Table 61, the ACT residual samples may be clipped by the clipping range determined based on the fixed bit depth. For example, the fixed bit depth may be determined to be 16 bits, and in this case, the clipping range (i.e., the range between the minimum and maximum values for clipping) may be determined to be (-65536, 65535). The residual samples (r Y ,r Cb ,r Cr ) to apply clipping. Alternatively, the clipped residual samples (r Y , r Cb , r Cr ) to finally compensate the ACT residual samples.
[0388] In addition, in an embodiment, the clipping range of the ACT residual may be set differently for the luma component and the chroma component, respectively. That is, the clipping ranges applied to the ACT residual samples of the luma component and the ACT residual samples of the chroma component may have different dynamic ranges. For example, in the case of the ACT residual of the chroma component, a clipping range in which the bit depth is increased by 1 may be used, and in the case of the ACT residual of the luma component, a constant clipping range may be used.
[0389] As an example, the following Table 62 represents an example of a process in which the luma component is clipped based on a clipping range in which the bit depth value is not changed, and the chroma component is clipped based on a clipping range in which the bit depth is increased by 1.
[0390] [Table 62]
[0391]
[0392]
[0393] Referring to Table 62, the ACT residual samples may be clipped by applying different clipping ranges to the luma component and the chroma component, respectively. Y ), the clipping range can be derived based on the value of the bit depth (e.g., BitDepth), and the ACT residual of the chroma component (e.g., r Cb 、r Cr) In the case of, the clipping range can be derived based on the value obtained by increasing the bit depth by 1 (e.g., BitDepth + 1). At this time, the ACTClipBitDepthLuma variable can be used to specify the ACT residual of the luminance component (e.g., r Y )'s clipping range, and the ACTClipBitDepthChroma variable can be used to specify the ACT residual of the chrominance component (e.g., r Cb , r Cr )'s clipping range. That is, the clipping range for the luminance component can be determined as (-(1 << ACTClipBitDepthLuma), (1 << ACTClipBitDepthLuma) - 1), and the clipping range for the chrominance component can be determined as (-(1 << ACTClipBitDepthChroma), (1 << ACTClipBitDepthChroma) - 1). Alternatively, according to an embodiment, the clipping range ACTClipBitDepthChroma for the chrominance component can also be clipped within a specific range (e.g., 16), or can also be a value derived based on min(BitDepth + 1, 16). The residual samples (r Y , r Cb , r Cr ) of each color component can be clipped based on the clipping range determined as above. Additionally, the ACT residual samples can be finally compensated based on the clipped residual samples (r Y , r Cb , r Cr ) of each color component.
[0394] Alternatively, in an example, the process disclosed in Table 62 above can also be represented as in Table 63 below.
[0395] [Table 63]
[0396]
[0397] Referring to Table 63, the ACT residual samples can be clipped by applying different clipping ranges to the luminance component and the chrominance component respectively. For example, in the case of the ACT residual of the luminance component (e.g., r Y ), the clipping range can be derived based on the value of the bit depth (e.g., BitDepth), and in the case of the ACT residual of the chrominance component (e.g., r Cb , r Cr), the clipping range may be derived based on a value obtained by increasing the bit depth by 1 (e.g., BitDepth+1). In this case, the clipping range for the luma component may be determined as (-(BitDepth<<1), (BitDepth<<1)-1), and the clipping range for the chroma component may be determined as (-((BitDepth+1)<<1), ((BitDepth+1)<<1)-1). The residual sample (r ) of each color component may be determined based on the clipping range determined as above. Y ,r Cb ,r Cr ) to apply clipping. Alternatively, the clipped residual samples (r Y , r Cb , r Cr ) to finally compensate the ACT residual samples.
[0398] The following figures are prepared to illustrate specific examples of this document. Since the names of specific terms or the names of specific devices (e.g., the names of grammar / grammar elements, etc.) described in the figures are represented as examples, the technical features of this document are not limited to the specific names used in the following figures.
[0399] Figure 7 and Figure 8 An example of a video / image encoding method and associated components according to an embodiment of the present document is schematically shown.
[0400] Figure 7 The method disclosed in can be Figure 2 or Figure 8 The encoding device 200 disclosed in is executed. Here, Figure 8 The encoding device 200 disclosed in Figure 2 A simplified representation of the encoding device 200 disclosed in . Specifically, Figure 7 Steps S700 to S720 in Figure 2 The residual processor 230 disclosed in Figure 7 Step S730 in the above example can be performed by Figure 2 In addition, although not shown, the process of deriving the prediction sample may be performed by the predictor 220 of the encoding device 200; the process of generating the reconstructed sample and the reconstructed picture of the current block based on the residual sample and the prediction sample of the current block may be performed by the adder 250 of the encoding device 200; and the process of encoding the prediction information of the current block may be performed by the entropy encoder 240 of the encoding device 200. In addition, the embodiments including those described above in this document may be performed. Figure 7 Therefore, in Figure 7In the present invention, detailed descriptions of contents corresponding to the repetitions of the above-mentioned embodiments will be omitted or simplified.
[0401] Reference Figure 7 , the encoding device can generate adaptive color transform (ACT) related information of the current block (S700).
[0402] ACT-related information may include information about whether ACT is applied to the current block. For example, the information about whether ACT is applied to the current block may be the above-mentioned cu_act_enabled_flag syntax element, and may be included in the coding unit syntax and signaled. In the example, when the value of cu_act_enabled_flag is 1, this may indicate that ACT is applied to the current block (i.e., the residual of the current block), which indicates encoding in the YCgCo color space. When the value of cu_act_enabled_flag is 0, this may indicate that ACT is not applied to the current block (i.e., the residual of the current block), which indicates encoding in the original color space. Here, ACT refers to a method of deriving residuals using color space conversion, for example, a method of adaptively transforming residuals from one color space to the YCgCo color space as described above may be indicated.
[0403] In addition, the ACT-related information may also include information about whether the ACT is enabled. For example, the information about whether the ACT is enabled may be the above-mentioned sps_act_enabled_flag syntax element, and may be included in a sequence parameter set (SPS) and signaled. In the example, when the value of sps_act_enabled_flag is 1, this may indicate that the ACT is enabled, and in this case, information in the coding unit syntax indicating whether the ACT is applied to the current block (i.e., the residual of the current block) may exist. When the value of sps_act_enabled_flag is 0, this may indicate that the ACT is not enabled, and in this case, information in the coding unit syntax indicating whether the ACT is applied to the current block (i.e., the residual of the current block) may not exist.
[0404] In one embodiment, when the value of the information indicating whether the ACT signaled / parsed by the SPS is enabled (e.g., sps_act_enabled_flag) is 1, the information indicating whether the ACT is applied to the current block (i.e., the residual of the current block) (e.g., cu_act_enabled_flag) may be signaled / parsed through the coding unit syntax. Alternatively, when the value of the information indicating whether the ACT signaled / parsed by the SPS is enabled (e.g., sps_act_enabled_flag) is 0, the information indicating whether the ACT is applied to the current block (i.e., the residual of the current block) (e.g., cu_act_enabled_flag) may not be signaled / parsed through the coding unit syntax.
[0405] That is, the encoding device may determine whether to apply ACT to the current block, and may generate ACT-related information (eg, cu_act_enabled_flag, sps_act_enabled_flag, etc.) according to the determination.
[0406] The encoding apparatus may induce residual samples by applying the ACT to the current block based on the ACT-related information ( S710 ).
[0407] That is, the encoding device may derive residual samples by applying ACT to the current block based on ACT-related information about applying ACT to the current block. For example, when the value of information (e.g., cu_act_enabled_flag) indicating whether ACT is applied to the current block (i.e., the residual of the current block) is 1, the encoding device may derive residual samples by applying ACT to the current block.
[0408] As an embodiment, the encoding device may derive a residual block (residual sample) based on a prediction block (prediction sample) derived by prediction. For example, first, the encoding device may determine a prediction mode of the current block and derive a prediction sample. The encoding device may determine whether to perform inter-frame prediction or intra-frame prediction on the current block, and may determine a specific inter-frame prediction mode or a specific intra-frame prediction mode based on the RD cost. The encoding device may derive a prediction sample of the current block by performing prediction according to the determined prediction mode. In this case, various prediction methods disclosed in this document such as inter-frame prediction or intra-frame prediction may be applied. In addition, the encoding device may generate and encode information related to the prediction applied to the current block (e.g., prediction mode information). In addition, the encoding device may compare the original sample of the current block with the prediction sample and derive a residual sample.
[0409] The encoding device may apply ACT to the residual samples derived as described above based on ACT related information (e.g., cu_act_enabled_flag). In one embodiment, the encoding device may perform clipping on each of the luma residual samples of the luma component of the current block, the Cb chroma residual samples of the Cb chroma component of the current block, and the Cr chroma residual samples of the Cr chroma component of the current block based on the clipping range. The encoding device may derive modified luma residual samples, modified Cb chroma residual samples, and modified Cr chroma residual samples by applying ACT based on the clipped luma residual samples, the clipped Cb chroma residual samples, and the clipped Cr chroma residual samples.
[0410] As described above, ACT adaptively transforms the residual from one color space to the YCgCo color space, for example, by deriving the residual using color space conversion. According to an embodiment, any of the methods of ACT color conversion disclosed in Tables 41 to 54 above may be applied. Here, a detailed description of applying ACT to the residual sample will be omitted.
[0411] In addition, as an embodiment, when deriving residual samples by applying the ACT, the encoding apparatus may determine a cropping range based on a bit depth, and may perform cropping on the residual samples to have a value within the determined cropping range.
[0412] For example, the clipping range may have a value between a minimum value and a maximum value derived based on a value obtained by increasing the bit depth by 1. In this case, the minimum value of the clipping range may be a value derived by -(1<<(BitDepth+1)), and the maximum value of the clipping range may be a value derived by (1<<(BitDepth+1))-1. For example, as disclosed in Tables 56 to 59 above, the residual samples (r Y ,r Cb ,r Cr ) performs clipping. In addition, the residual samples (r Y ,r Cb ,r Cr ) to apply the (modified) residual samples of ACT.
[0413] Alternatively, in an example, the clipping range may have a value between a maximum value and a minimum value derived based on a smaller value of a value obtained by increasing the bit depth by 1 and 16. For example, as disclosed in Tables 56 to 59 above, the residual samples (r Y ,r Cb ,r Cr ) performs clipping. In addition, the residual samples (rY , r Cb , r Cr ) to apply the (modified) residual samples of the ACT.
[0414] Alternatively, in the example, the clipping range can be determined based on a fixed bit depth. For example, the fixed bit depth can be 16 bits. In this case, the clipping range can be between -(1 << 16) and (1 << 16) - 1 or between -65536 and 65535. For example, as disclosed in Tables 60 to 61 above, the residual samples (r Y , r Cb , r Cr ) of each color component can be clipped based on the clipping range. Additionally, the residual samples (r Y , r Cb , r Cr ) that are finally clipped based on each color component can be used to apply the (modified) residual samples of the ACT.
[0415] Alternatively, in the example, the clipping range can include the clipping ranges for the luminance component and the chrominance component, and different clipping ranges can be set for the luminance component and the chrominance component respectively. For example, the clipping range for the luminance component can have a range between -(1 << BitDepth) and (1 << BitDepth) - 1 derived based on the value of the bit depth, and the clipping range for the chrominance component can have a range between -(1 << (BitDepth + 1)) and (1 << (BitDepth + 1)) - 1 derived based on the value obtained by increasing the bit depth by 1. For example, as disclosed in Tables 62 to 63 above, the residual samples (r Y , r Cb , r Cr ) of each color component can be clipped based on the clipping ranges for the luminance component and the chrominance component. Additionally, the residual samples (r Y , r Cb , r Cr ) that are finally clipped based on each color component can be used to apply the (modified) residual samples of the ACT.
[0416] The encoding device can generate residual information about the residual samples (S720).
[0417] The residual information, as the information generated through the transformation and / or quantization process of the residual samples, can be information about the quantized transform coefficients, and for example, can include value information, position information, transformation technique, transformation kernel, quantization parameters, etc. of the quantized transform coefficients.
[0418] In the example, the encoding device may derive the transform coefficients by a transform process on the residual samples, and may derive the quantized transform coefficients by quantizing the derived transform coefficients. In this regard, the encoding device may determine whether to apply the transform to the current block in consideration of coding efficiency. That is, the encoding device may determine whether to apply the transform to the residual samples. For example, when the transform is not applied to the residual samples, the encoding device may derive the residual samples as transform coefficients. Alternatively, when the transform is applied to the residual samples, the encoding device may derive the transform coefficients by performing the transform on the residual samples. Here, the residual samples may refer to the residual samples modified by applying the ACT as described above.
[0419] The encoding device may encode the image information (or video information) (S730).
[0420] Here, the image information may include ACT related information. In addition, the image information may include residual information. In addition, the image information may include information related to prediction for deriving the prediction sample (e.g., prediction mode information). That is, the image information may include various information derived from the encoding process and may be encoded by including such various information.
[0421] In an embodiment, the encoding device may encode image information including ACT-related information and residual information.
[0422] The image information including various information as described above can be encoded and output in the form of a bit stream. The bit stream can be sent to a decoding device via a network or a (digital) storage medium. Here, the network may include a broadcast network, a communication network and / or the like, and the digital storage medium may include various storage media such as a universal serial bus (USB), a secure digital (SD), a compact disc (CD), a digital video disc (DVD), a blue ray, a hard disk drive (HDD), a solid state drive (SSD), etc.
[0423] Fig. 9 and Fig.10 An example of a video / image decoding method and related components according to an embodiment of the present document is schematically shown.
[0424] Fig. 9 The method disclosed in can be Figure 3 or Fig.10 The decoding device 300 disclosed in is executed. Here, Fig.10 The decoding device 300 disclosed in Figure 3 A simplified representation of the decoding device 300 disclosed in . Specifically, Fig. 9 Step S900 may be performed by Figure 3 The entropy decoder 310 disclosed in is executed; Fig. 9 Step S910 in the above example can be performed by Figure 3The residual processor 320 disclosed in is executed; and Fig. 9 Step S920 in the above example can be performed by Figure 3 In addition, although not shown, the process of receiving the prediction information of the current block may be performed by the entropy decoder 310 of the decoding device 300, and the process of deriving the prediction sample of the current block may be performed by the predictor 330 of the decoding device 300. In addition, the embodiments including the above described in this document may be performed. Fig. 9 Therefore, in Fig. 9 In the embodiment, the detailed description of the contents repeated with the above-mentioned embodiments will be omitted or simplified.
[0425] Reference Fig. 9 , the decoding device may receive image information (or video information) from a bit stream (S900).
[0426] For example, the decoding device can parse the bit stream and derive the information required for image reconstruction (or picture reconstruction) (e.g., video / image information). In this case, the image information may include residual information, and the residual information may include value information, position information, transform technology, transform kernel, quantization parameter, etc. of the quantized transform coefficient. In addition, the image information may include prediction related information (e.g., prediction mode information). In addition, the image information may include adaptive color transform (ACT) related information. That is, the image information may include various information required in the decoding process and may be decoded based on a coding method such as exponential Golomb coding, CAVLC, or CABAC.
[0427] In an embodiment, the decoding device may obtain image information including adaptive color transform (ACT) related information from a bitstream.
[0428] ACT-related information may include information about whether ACT is applied to the current block. For example, the information about whether ACT is applied to the current block may be the above-mentioned cu_act_enabled_flag syntax element, and may be included in the coding unit syntax and signaled. In the example, when the value of cu_act_enabled_flag is 1, this may indicate that ACT is applied to the current block (i.e., the residual of the current block), which indicates encoding in the YCgCo color space. When the value of cu_act_enabled_flag is 0, this may indicate that ACT is not applied to the current block (i.e., the residual of the current block), which indicates encoding in the original color space. Here, ACT refers to a method of deriving residuals using color space conversion, for example, a method of adaptively transforming residuals from one color space to the YCgCo color space as described above may be indicated.
[0429] In addition, the ACT-related information may also include information about whether the ACT is enabled. For example, the information about whether the ACT is enabled may be the above-mentioned sps_act_enabled_flag syntax element, and may be included in a sequence parameter set (SPS) and signaled. In the example, when the value of sps_act_enabled_flag is 1, this may indicate that the ACT is enabled, and in this case, information in the coding unit syntax indicating whether the ACT is applied to the current block (i.e., the residual of the current block) may exist. When the value of sps_act_enabled_flag is 0, this may indicate that the ACT is not enabled, and in this case, information in the coding unit syntax indicating whether the ACT is applied to the current block (i.e., the residual of the current block) may not exist.
[0430] In one embodiment, when the value of the information indicating whether the ACT signaled / parsed by the SPS is enabled (e.g., sps_act_enabled_flag) is 1, the information indicating whether the ACT is applied to the current block (i.e., the residual of the current block) (e.g., cu_act_enabled_flag) may be signaled / parsed through the coding unit syntax. Alternatively, when the value of the information indicating whether the ACT signaled / parsed by the SPS is enabled (e.g., sps_act_enabled_flag) is 0, the information indicating whether the ACT is applied to the current block (i.e., the residual of the current block) (e.g., cu_act_enabled_flag) may not be signaled / parsed through the coding unit syntax.
[0431] That is, the decoding device can obtain (parse) ACT related information (eg, cu_act_enabled_flag, sps_act_enabled_flag, etc.) from the bitstream.
[0432] The decoding apparatus may induce residual samples by applying the ACT to the current block based on the ACT-related information ( S910 ).
[0433] That is, the decoding device can derive residual samples by applying ACT to the current block based on ACT-related information about applying ACT to the current block. For example, when the value of the information (e.g., cu_act_enabled_flag) indicating whether ACT is applied to the current block (i.e., the residual of the current block) is 1, the decoding device can derive residual samples by applying ACT to the current block.
[0434] In an embodiment, first, the decoding device may obtain residual information included in the image information. The residual information may include value information, position information, transform technology, transform kernel, quantization parameter, etc. of the quantized transform coefficient as described above. The decoding device may derive the quantized transform coefficient of the current block based on the quantized transform coefficient information included in the residual information. The decoding device may derive the transform coefficient by applying an inverse quantization process to the quantized transform coefficient, and may derive the residual sample of the current block by performing an inverse transform on the transform coefficient. In this case, the decoding device may obtain information indicating whether an inverse transform is applied to the current block (i.e., transform skip flag information), and may derive the residual sample based on the information (i.e., transform skip flag information). For example, when the inverse transform is not applied to the transform coefficient (when the value of the transform skip flag information of the current block is 1), the decoding device may derive the transform coefficient as the residual sample of the current block. Alternatively, when the inverse transform is applied to the transform coefficient (when the value of the transform skip flag information of the current block is 0), the decoding device may derive the residual sample of the current block by inverse transforming the transform coefficient.
[0435] The decoding device may apply ACT to the residual samples derived as described above based on ACT related information (e.g., cu_act_enabled_flag). In one embodiment, the decoding device may perform clipping on each of the luma residual samples of the luma component of the current block, the Cb chroma residual samples of the Cb chroma component of the current block, and the Cr chroma residual samples of the Cr chroma component of the current block based on the clipping range. The decoding device may derive modified luma residual samples, modified Cb chroma residual samples, and modified Cr chroma residual samples by applying ACT based on the clipped luma residual samples, the clipped Cb chroma residual samples, and the clipped Cr chroma residual samples.
[0436] As described above, ACT adaptively transforms the residual from one color space to the YCgCo color space, for example, by deriving the residual using color space conversion. According to an embodiment, any of the methods of ACT color conversion disclosed in Tables 41 to 54 above may be applied. Here, a detailed description of applying ACT to the residual sample will be omitted.
[0437] In addition, as an embodiment, when deriving residual samples by applying the ACT, the decoding device may determine a clipping range based on a bit depth, and may perform clipping on the residual samples to have a value within the determined clipping range.
[0438] For example, the clipping range may have a value between a maximum value and a minimum value derived based on a value obtained by increasing the bit depth by 1. In this case, the minimum value of the clipping range may be a value derived by -(1<<(BitDepth+1)), and the maximum value of the clipping range may be a value derived by (1<<(BitDepth+1))-1. For example, as disclosed in Tables 56 to 59 above, the residual samples (r Y ,r Cb ,r Cr ) performs clipping. In addition, the residual samples (r Y ,r Cb ,r Cr ) to apply the (modified) residual samples of ACT.
[0439] Alternatively, in an example, the clipping range may have a value between a minimum value and a maximum value derived based on a smaller value of a value obtained by increasing the bit depth by 1 and 16. For example, as disclosed in Tables 56 to 59 above, the residual samples (r Y ,r Cb ,r Cr ) performs clipping. In addition, the residual samples (r Y ,r Cb ,r Cr ) to apply the (modified) residual samples of ACT.
[0440] Alternatively, in an example, the clipping range may be determined based on a fixed bit depth. For example, the fixed bit depth may be 16 bits. In this case, the clipping range may be between -(1<<16) and (1<<16)-1 or between -65536 and 65535. For example, as disclosed in Tables 60 to 61 above, the residual samples (r Y ,r Cb ,r Cr ) performs clipping. In addition, the residual samples (r Y ,r Cb ,r Cr ) to apply the (modified) residual samples of ACT.
[0441] Alternatively, in the example, the cropping range may include cropping ranges for the luminance component and the chrominance component, and different cropping ranges may be set for the luminance component and the chrominance component, respectively. For example, the cropping range for the luminance component may have a range between -(1<<BitDepth) and (1<<BitDepth)-1 derived based on the value of the bit depth, and the cropping range for the chrominance component may have a range between -(1<<(BitDepth+1)) and (1<<(BitDepth+1))-1 derived based on the value obtained by increasing the bit depth by 1. For example, as disclosed in Tables 62 to 63 above, the residual samples (r Y ,r Cb ,r Cr ) of each color component may be cropped based on the cropping ranges for the luminance component and the chrominance component. Additionally, the residual samples (r Y ,r Cb ,r Cr ) that are ultimately cropped based on each color component may be derived to apply the (modified) residual samples of the ACT.
[0442] The decoding device may generate reconstructed samples based on the residual samples (S920).
[0443] Here, the residual samples may refer to the residual samples modified by applying the ACT as described above.
[0444] In an embodiment, the decoding device may determine whether to perform inter prediction or intra prediction on a current block based on prediction information (e.g., prediction mode information) included in the image information, and according to the determination, may perform prediction to derive the prediction samples of the current block. And, the decoding device may generate reconstructed samples based on the prediction samples and the residual samples. In this case, according to the prediction mode, the decoding device may directly use the prediction samples as the reconstructed samples, or may generate the reconstructed samples by adding the residual samples to the prediction samples. Additionally, a reconstructed block or a reconstructed picture may be derived based on the reconstructed samples. Thereafter, as described above, when necessary, the decoding device may apply loop filtering processes such as deblocking filtering and / or SAO process to the reconstructed picture in order to improve the subjective / objective image quality.
[0445] In the above exemplary system, the method is described according to a flowchart using a series of steps and blocks. However, the present disclosure is not limited to a specific order of the steps, and some steps may be performed together with different steps and in an order different from or simultaneously with the above steps. Additionally, those skilled in the art should understand that the steps shown in the flowchart are not exclusive, and may further include other steps, or one or more steps of the flowchart may be deleted without affecting the technical scope of the present disclosure.
[0446] The method according to the present disclosure may be implemented in the form of software, and the encoding device and / or decoding device according to the present disclosure may be included in a device that performs image processing, such as a TV, a computer, a smart phone, a set-top box, and a display device.
[0447] When the embodiments of the present disclosure are implemented by software, the aforementioned method can be implemented by a module (process or function) that performs the aforementioned functions. The module can be stored in a memory and executed by a processor. The memory can be installed inside or outside the processor and can be connected to the processor via various known means. The processor may include an application specific integrated circuit (ASIC), other chipsets, logic circuits and / or data processing devices. The memory may include a read-only memory (ROM), a random access memory (RAM), a flash memory, a memory card, a storage medium and / or other storage devices. In other words, the embodiments according to the present disclosure can be implemented and executed on a processor, a microprocessor, a controller or a chip. For example, the functional units illustrated in each figure can be implemented and executed on a computer, a processor, a microprocessor, a controller or a chip. In this case, information about the implementation (e.g., information about instructions) or an algorithm can be stored in a digital storage medium.
[0448] In addition, the decoding device and encoding device to which the present disclosure is applied may be included in the following: a multimedia broadcast transceiver, a mobile communication terminal, a home theater video device, a digital theater video device, a surveillance camera, a video chat device, and a real-time communication device such as a video communication, a mobile streaming device, a storage medium, a camera, a video on demand (VoD) service provider, an over-the-air (OTT) video device, an Internet streaming service provider, a 3D video device, a virtual reality (VR) device, an augmented reality (AR) device, an image phone video device, a vehicle terminal (e.g., a vehicle (including an autonomous vehicle) terminal, an aircraft terminal, or a ship terminal) and a medical video device; and can be used to process image signals or data. For example, an OTT video device may include a game console, a Blu-ray player, an Internet-connected TV, a home theater system, a smart phone, a tablet PC, and a digital video recorder (DVR).
[0449] In addition, the processing method to which the present disclosure is applied may be generated in the form of a program executed by a computer and may be stored in a computer-readable recording medium. Multimedia data having a data structure according to the present disclosure may also be stored in a computer-readable recording medium. Computer-readable recording media include all kinds of storage devices and distributed storage devices in which computer-readable data is stored. Computer-readable recording media may include, for example, a Blu-ray disc (BD), a universal serial bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. Computer-readable recording media also include media embodied in the form of a carrier wave (e.g., transmission via the Internet). In addition, the bit stream generated by the encoding method may be stored in a computer-readable recording medium or transmitted via a wired or wireless communication network.
[0450] In addition, the embodiments of the present disclosure may be embodied as a computer program product based on program codes, and the program codes may be executed on a computer according to the embodiments of the present disclosure. The program codes may be stored on a computer readable carrier.
[0451] Fig.11 An example of a content streaming system to which the embodiments of this document can be applied is shown.
[0452] Reference Fig.11 A content streaming system to which the embodiments of this document are applied may generally include an encoding server, a streaming server, a network server, a media storage, a user device, and a multimedia input device.
[0453] The encoding server is used to compress the content input from the multimedia input device such as a smart phone, a camera, a camcorder, etc. into digital data, generate a bit stream, and transmit it to the streaming server. As another example, in the case where the multimedia input device such as a smart phone, a camera, a camcorder, etc. directly generates a bit stream, the encoding server can be omitted.
[0454] The bitstream may be generated by the encoding method or the bitstream generating method to which the embodiments of this document are applied, and the streaming server may temporarily store the bitstream during the process of transmitting or receiving the bitstream.
[0455] The streaming server transmits multimedia data to the user device based on the user's request through the network server, which acts as a tool to inform the user of what services exist. When the user requests the service the user wants, the network server transfers the request to the streaming server, and the streaming server transmits the multimedia data to the user. In this regard, the content streaming system may include a separate control server, and in this case, the control server is used to control the commands / responses between the various devices in the content streaming system.
[0456] The streaming server may receive content from a media storage device and / or an encoding server. For example, in the case where the content is received from the encoding server, the content may be received in real time. In this case, the streaming server may store the bitstream for a predetermined period of time to smoothly provide a streaming service.
[0457] For example, user devices may include mobile phones, smart phones, laptop computers, digital broadcast terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation, tablet PCs, tablet PCs, ultrabooks, wearable devices (e.g., watch-type terminals (smart watches), glasses-type terminals (smart glasses), head-mounted displays (HMDs)), digital TVs, desktop computers, digital signage, etc.
[0458] Each server in the content streaming system may be operated as a distributed server, and in this case, data received by each server may be processed in a distributed manner.
[0459] The claims described in the present disclosure may be combined in various ways. For example, the technical features of the method claims of the present disclosure may be combined and implemented as a device, and the technical features of the device claims of the present disclosure may be combined and implemented as a method. In addition, the technical features of the method claims of the present disclosure and the technical features of the device claims may be combined and implemented as a device, and the technical features of the method claims of the present disclosure and the technical features of the device claims may be combined and implemented as a method.
Claims
1. A device for decoding an image, the device comprising: Memory; as well as at least one processor, the at least one processor connected to the memory, the at least one processor configured to: Obtaining image information including prediction mode information and adaptive color transform ACT related information from a bit stream; deriving a prediction sample for a current block based on the prediction mode information; deriving residual samples by applying the ACT to the current block based on the ACT related information; and generating a reconstructed sample based on the predicted sample and the residual sample, The ACT related information includes information on whether to apply the ACT to the current block. wherein, based on the ACT related information about applying the ACT to the current block, the residual sample is derived by clipping based on a clipping range, The cropping range is determined based on the bit depth BitDepth. wherein the cropping range has a minimum value and a maximum value derived based on a value obtained by increasing the bit depth by 1, and The maximum value of the clipping range is equal to (1<<(BitDepth+1))-1.
2. A device for encoding an image, the device comprising: Memory; as well as at least one processor, the at least one processor connected to the memory, the at least one processor configured to: Generate prediction samples for the current block; generating prediction mode information based on the prediction samples; Generate adaptive color transformation ACT related information for the current block; deriving residual samples by applying an ACT to the current block based on the ACT related information; generating residual information about the residual samples; and encoding the image information including the prediction mode information, the ACT related information and the residual information, The ACT related information includes information on whether to apply the ACT to the current block. wherein, based on the ACT related information about applying the ACT to the current block, the residual sample is derived by clipping based on a clipping range, The cropping range is determined based on the bit depth BitDepth. wherein the cropping range has a minimum value and a maximum value derived based on a value obtained by increasing the bit depth by 1, and The maximum value of the clipping range is equal to (1<<(BitDepth+1))-1.
3. A device for transmitting data for an image, the device comprising: at least one processor configured to obtain a bitstream for the image, wherein the bitstream is generated based on the following operations: generating a prediction sample for a current block, generating prediction mode information based on the prediction sample, generating adaptive color transform (ACT) related information for the current block, deriving residual samples by applying ACT to the current block based on the ACT related information, generating residual information about the residual samples, and encoding image information including the prediction mode information, the ACT related information, and the residual information; and a transmitter configured to transmit the data including the bit stream, The ACT related information includes information on whether to apply the ACT to the current block. wherein, based on the ACT related information about applying the ACT to the current block, the residual sample is derived by clipping based on a clipping range, The cropping range is determined based on the bit depth BitDepth. wherein the cropping range has a minimum value and a maximum value derived based on a value obtained by increasing the bit depth by 1, and The maximum value of the clipping range is equal to (1<<(BitDepth+1))–1.