WO2021150085A1 - 색상 공간 변환을 사용하는 레지듀얼을 위한 영상 또는 비디오 코딩 - Google Patents
색상 공간 변환을 사용하는 레지듀얼을 위한 영상 또는 비디오 코딩 Download PDFInfo
- Publication number
- WO2021150085A1 WO2021150085A1 PCT/KR2021/000977 KR2021000977W WO2021150085A1 WO 2021150085 A1 WO2021150085 A1 WO 2021150085A1 KR 2021000977 W KR2021000977 W KR 2021000977W WO 2021150085 A1 WO2021150085 A1 WO 2021150085A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- act
- information
- residual
- residual sample
- value
- Prior art date
Links
- 230000009466 transformation Effects 0.000 title description 39
- 230000003044 adaptive effect Effects 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims description 257
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 claims description 71
- 241000023320 Luma <angiosperm> Species 0.000 claims description 68
- 239000000523 sample Substances 0.000 description 144
- 238000013139 quantization Methods 0.000 description 76
- 230000008569 process Effects 0.000 description 60
- 238000001914 filtration Methods 0.000 description 50
- 238000006243 chemical reaction Methods 0.000 description 42
- 238000012545 processing Methods 0.000 description 26
- 230000011664 signaling Effects 0.000 description 20
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 18
- 230000002441 reversible effect Effects 0.000 description 16
- 238000004422 calculation algorithm Methods 0.000 description 13
- 230000008859 change Effects 0.000 description 7
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 238000009795 derivation Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 230000002123 temporal effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000002427 irreversible effect Effects 0.000 description 5
- 238000000638 solvent extraction Methods 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 239000013074 reference sample Substances 0.000 description 4
- 238000000844 transformation Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 3
- 241000209094 Oryza Species 0.000 description 2
- 235000007164 Oryza sativa Nutrition 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000002146 bilateral effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 235000009566 rice Nutrition 0.000 description 2
- 102100027896 Cytochrome b-c1 complex subunit 7 Human genes 0.000 description 1
- 101710147953 Cytochrome b-c1 complex subunit 7 Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000010454 slate Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Definitions
- the present technology relates to video or image coding, for example, to image or video coding techniques for residuals using color space transformations.
- VR Virtual Reality
- AR Artificial Realtiy
- holograms images/videos having different image characteristics from real images such as game images. broadcasting is on the rise.
- a high-efficiency image/video compression technology is required to effectively compress, transmit, store, and reproduce information of high-resolution and high-quality images/videos having various characteristics as described above.
- An object of the present document is to provide a method and apparatus for increasing video/image coding efficiency.
- Another technical task of this document is to provide a method and apparatus for efficiently applying ACT in the coding process.
- Another technical task of this document is to provide a method and apparatus for effectively configuring a clipping range for residuals used in the process of applying ACT.
- ACT adaptive color transform
- 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.
- the clipping range may have a value between a minimum value and a maximum value derived based on a smaller value among a value obtained by increasing the bit depth by 1 and a value of 16.
- the clipping range may be determined based on a fixed bit depth.
- the clipping range may set different clipping ranges for the luma component and the chroma component.
- the ACT-related information may include information on whether the ACT is available and information on whether to apply the ACT to the residual sample. For example, based on the information on whether the ACT included in the SPS is available, information on whether to apply the ACT to the residual sample may be obtained from the coding unit syntax.
- a video/image decoding method performed by a decoding apparatus is provided.
- the video/image decoding method may include the method disclosed in the embodiments of this document.
- a decoding apparatus for performing video/image decoding.
- the decoding apparatus may perform the method disclosed in the embodiments of this document.
- a video/image encoding method performed by an encoding apparatus is provided.
- the video/video encoding method may include the method disclosed in the embodiments of this document.
- an encoding apparatus for performing video/image encoding.
- the encoding apparatus may perform the methods disclosed in the embodiments of this document.
- a computer-readable digital storage medium in which encoded video/image information generated according to the video/image encoding method disclosed in at least one of the embodiments of this document is stored.
- encoded information or encoded video/image information causing the decoding apparatus to perform the video/image decoding method disclosed in at least one of the embodiments of this document is stored;
- a storage medium is provided.
- This document may have various effects. For example, according to an embodiment of the present document, overall image/video compression efficiency may be increased. In addition, according to an embodiment of the present document, it is possible to increase coding efficiency and improve subjective/objective visual quality by efficiently applying ACT in the coding process. In addition, according to an embodiment of the present document, by effectively configuring a clipping range for the residual used in the process of applying the ACT, it is possible to compensate for the change in the dynamic range of the residual signal before and after color conversion and to reduce the loss of the residual signal. can be minimized
- Effects that can be obtained through specific embodiments of the present document are not limited to the effects listed above.
- various technical effects that a person having ordinary skill in the related art can understand or derive from this document may exist.
- the specific effects of this document are not limited to those explicitly described in this document, and may include various effects that can be understood or derived from the technical characteristics of the present document.
- FIG. 1 schematically shows an example of a video/image coding system that can be applied to embodiments of this document.
- FIG. 2 is a diagram schematically illustrating a configuration of a video/image encoding apparatus to which embodiments of the present document may be applied.
- FIG. 3 is a diagram schematically illustrating a configuration of a video/image decoding apparatus to which embodiments of the present document may be applied.
- FIG. 4 shows an example of a schematic video/video encoding procedure to which embodiment(s) of this document are applicable.
- FIG. 5 shows an example of a schematic video/image decoding procedure to which embodiment(s) of this document are applicable.
- FIG. 6 schematically shows an example of an entropy encoding method to which embodiments of this document are applicable
- FIG. 7 schematically shows an entropy encoding unit in an encoding apparatus.
- FIG. 8 schematically shows an example of an entropy decoding method to which embodiments of this document are applicable
- FIG. 9 schematically shows an entropy decoding unit in a decoding apparatus.
- FIG. 11 is a diagram for explaining an example of a video/image decoding procedure using ACT to which embodiment(s) of this document are applicable.
- FIG. 16 shows an example of a content streaming system to which embodiments disclosed in this document can be applied.
- each configuration in the drawings described in this document is shown independently for convenience of description regarding different characteristic functions, and does not mean that each configuration is implemented as separate hardware or separate software.
- two or more components among each component may be combined to form one component, or one component may be divided into a plurality of components.
- Embodiments in which each component is integrated and/or separated are also included in the scope of the present document without departing from the essence of this document.
- FIG. 1 schematically shows an example of a video/image coding system that can be applied to embodiments of this document.
- a video/image coding system may include a first apparatus (source device) and a second apparatus (receive device).
- the source device may transmit encoded video/image information or data in the form of a file or streaming to the receiving device through a digital storage medium or a network.
- the source device may include a video source, an encoding apparatus, and a transmission unit.
- the receiving device may include a receiving unit, a decoding apparatus, and a renderer.
- the encoding apparatus may be referred to as a video/image encoding apparatus, and the decoding apparatus may be referred to as a video/image decoding apparatus.
- the transmitter may be included in the encoding device.
- the receiver may be included in the decoding device.
- the renderer may include a display unit, and the display unit may be configured as a separate device or external component.
- a video source may acquire a video/image through a process of capturing, synthesizing, or generating a video/image.
- a video source may include a video/image capture device and/or a video/image generating device.
- a video/image capture device may include, for example, one or more cameras, a video/image archive containing previously captured video/images, and the like.
- a video/image generating device may include, for example, a computer, tablet, and smart phone, and may (electronically) generate a video/image.
- a virtual video/image may be generated through a computer, etc. In this case, the video/image capturing process may be substituted for the process of generating related data.
- the encoding device may encode the input video/image.
- the encoding apparatus may perform a series of procedures such as prediction, transformation, and quantization for compression and coding efficiency.
- the encoded data (encoded video/image information) may be output in the form of a bitstream.
- the transmitting unit may transmit the encoded video/image information or data output in the form of a bitstream to the receiving unit of the receiving device in the form of a file or streaming through 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, and SSD.
- the transmission unit may include an element for generating a media file through a predetermined file format, and may include an element for transmission through a broadcast/communication network.
- the receiver may receive/extract the bitstream and transmit it to the decoding device.
- the decoding apparatus may decode the video/image by performing a series of procedures such as inverse quantization, inverse transformation, and prediction corresponding to the operation of the encoding apparatus.
- the renderer may render the decoded video/image.
- the rendered video/image may be displayed through the display unit.
- a or B (A or B) may mean “only A”, “only B”, or “both A and B”.
- a or B (A or B)” in this document may be interpreted as “A and/or B (A and/or B)”.
- A, B or C(A, B or C) means “only A”, “only B”, “only C”, or "any and any combination of A, B and C ( any combination of A, B and C)”.
- a slash (/) or a comma (comma) used in this document may mean “and/or”.
- A/B may mean “A and/or B”. Accordingly, “A/B” may mean “only A”, “only B”, or “both A and B”.
- A, B, C may mean “A, B, or C”.
- At least one of A and B may mean “only A”, “only B” or “both A and B”. Also, in this document, the expression “at least one of A or B” or “at least one of A and/or B” means “at least one It can be interpreted the same as “A and B (at least one of A and B)”.
- At least one of A, B and C means “only A”, “only B”, “only C”, or “A, B and C” any combination of A, B and C”. Also, “at least one of A, B or C” or “at least one of A, B and/or C” means can mean “at least one of A, B and C”.
- parentheses used in this document may mean “for example”. Specifically, when “prediction (intra prediction)” is indicated, “intra prediction” may be proposed as an example of “prediction”. In other words, “prediction” in this document is not limited to “intra prediction”, and “intra prediction” may be proposed as an example of “prediction”. Also, even when “prediction (ie, intra prediction)” is indicated, “intra prediction” may be proposed as an example of “prediction”.
- This article is about video/image coding.
- a method/embodiment disclosed in this document may be applied to a method disclosed in a versatile video coding (VVC) standard.
- the method/embodiment disclosed in this document is an essential video coding (EVC) standard, AOMedia Video 1 (AV1) standard, 2nd generation of audio video coding standard (AVS2), or a next-generation video/video coding standard (ex. H.267). or H.268, etc.).
- EVC essential video coding
- AV1 AOMedia Video 1
- AVS2 2nd generation of audio video coding standard
- next-generation video/video coding standard ex. H.267. or H.268, etc.
- a video may mean a set of a series of images according to the passage of time.
- a picture generally refers to a unit representing one image in a specific time period, and a slice/tile is a unit constituting a part of a picture in coding.
- a slice/tile may include one or more coding tree units (CTUs).
- CTUs coding tree units
- One picture may consist of one or more slices/tiles.
- a tile is a specific tile row within a picker and a rectangular area of CTUs within a specific tile row.
- the tile column is a rectangular region of CTUs, the rectangular region has a height equal to the height of the picture, and the width may be specified by syntax elements in a picture parameter set.
- the tile row is a rectangular region of CTUs, the rectangular region has a width specified by syntax elements in a picture parameter set, and the height may be equal to the height of the picture.
- a tile scan may indicate a specific sequential ordering of CTUs partitioning a picture, wherein the CTUs may be sequentially aligned with a CTU raster scan within a tile, and tiles within a picture may be sequentially aligned with a raster scan of the tiles of the picture.
- a slice may contain an integer number of complete tiles or an integer number of consecutive complete CTU rows within a tile of a picture, which may be contained exclusively in a single NAL unit.
- one picture may be divided into two or more subpictures.
- a subpicture may be a rectangular region of one or more slices within a picture.
- a pixel or pel may mean a minimum unit constituting one picture (or image). Also, as a term corresponding to a pixel, a 'sample' may be used.
- the sample may generally represent a pixel or a value of a pixel, may represent only a pixel/pixel value of a luma component, or may represent only a pixel/pixel value of a chroma component.
- the sample may mean a pixel value in the spatial domain, or when the pixel value is transformed into the frequency domain, it may mean a transform coefficient in the frequency domain.
- a unit may represent a basic unit of image processing.
- the unit may include at least one of a specific region of a picture and information related to the region.
- One unit may include one luma block and two chroma (ex. cb, cr) blocks.
- a unit may be used interchangeably with terms such as a block or an area in some cases.
- an MxN block may include samples (or sample arrays) or a set (or arrays) of transform coefficients including M columns and N rows.
- At least one of quantization/inverse quantization and/or transform/inverse transform may be omitted.
- the quantized transform coefficient may be referred to as a transform coefficient.
- transform coefficients may be called coefficients or residual coefficients, or may still be called transform coefficients for the sake of uniformity of expression.
- a quantized transform coefficient and a transform coefficient may be referred to as a transform coefficient and a scaled transform coefficient, respectively.
- the residual information may include information about the transform coefficient(s), and the information about the transform coefficient(s) may be signaled through a residual coding syntax.
- Transform coefficients may be derived based on residual information (or information about transform coefficient(s)), and scaled transform coefficients may be derived through inverse transform (scaling) on the transform coefficients. Residual samples may be derived based on an inverse transform (transform) for the scaled transform coefficients. This may be applied/expressed in other parts of this document as well.
- the encoding device may include an image encoding device and/or a video encoding device.
- the encoding apparatus 200 includes an image partitioner 210, a predictor 220, a residual processor 230, an entropy encoder 240, It may be configured to include an adder 250 , a filter 260 , and a memory 270 .
- the prediction unit 220 may include an inter prediction unit 221 and an intra prediction unit 222 .
- the residual processing unit 230 may include a transformer 232 , a quantizer 233 , an inverse quantizer 234 , and an inverse transformer 235 .
- the residual processing unit 230 may further include a subtractor 231 .
- the adder 250 may be referred to as a reconstructor or a reconstructed block generator.
- the above-described image segmentation unit 210, prediction unit 220, residual processing unit 230, entropy encoding unit 240, adder 250 and filtering unit 260 may include one or more hardware components ( For example, by an encoder chipset or processor).
- the memory 270 may include a decoded picture buffer (DPB), and may be configured by a digital storage medium.
- the hardware component may further include a memory 270 as an internal/external component.
- the image dividing unit 210 may divide an input image (or a picture, a frame) input to the encoding apparatus 200 into one or more processing units.
- the processing unit may be referred to as a coding unit (CU).
- the coding unit is to be recursively divided according to a quad-tree binary-tree ternary-tree (QTBTTT) structure from a coding tree unit (CTU) or largest coding unit (LCU).
- QTBTTT quad-tree binary-tree ternary-tree
- CTU coding tree unit
- LCU largest coding unit
- one coding unit may be divided into a plurality of coding units having a lower depth based on a quad tree structure, a binary tree structure, and/or a ternary structure.
- a quad tree structure may be applied first and a binary tree structure and/or a ternary structure may be applied later.
- the binary tree structure may be applied first.
- a coding procedure according to this document may be performed based on the final coding unit that is no longer divided.
- the maximum coding unit may be directly used as the final coding unit based on coding efficiency according to image characteristics, or the coding unit may be recursively divided into coding units having a lower depth than the optimal coding unit if necessary.
- a coding unit of the size of may be used as the final coding unit.
- the coding procedure may include procedures such as prediction, transformation, and restoration, which will be described later.
- the processing unit may further include a prediction unit (PU) or a transform unit (TU).
- the prediction unit and the transform unit may be divided or partitioned from the above-described final coding unit, respectively.
- the prediction unit may be a unit of sample prediction
- 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.
- a unit may be used interchangeably with terms such as a block or an area in some cases.
- an MxN block may represent a set of samples or transform coefficients including M columns and N rows.
- a sample may generally represent a pixel or a value of a pixel, may represent only a pixel/pixel value of a luma component, or may represent only a pixel/pixel value of a chroma component.
- a sample may be used as a term corresponding to a picture (or image) as a pixel or a pel.
- the encoding apparatus 200 subtracts the prediction signal (predicted block, prediction sample array) output from the inter prediction unit 221 or the intra prediction unit 222 from the input image signal (original block, original sample array) to obtain a residual A signal (residual signal, residual block, residual sample array) may be generated, and the generated residual signal is transmitted to the converter 232 .
- a unit for subtracting a prediction signal (prediction block, prediction sample array) from an input image signal (original block, original sample array) in the encoder 200 may be referred to as a subtraction unit 231 .
- the prediction unit may perform prediction on a processing target block (hereinafter, referred to as a current block) and generate a predicted block including prediction samples for the current block.
- the prediction unit may determine whether intra prediction or inter prediction is applied on a current block or CU basis.
- the prediction unit may generate various information related to prediction, such as prediction mode information, and transmit it to the entropy encoding unit 240 , as will be described later in the description of each prediction mode.
- the prediction information may be encoded by the entropy encoding unit 240 and output in the form of a bitstream.
- the intra prediction unit 222 may predict the current block with reference to samples in the current picture.
- the referenced samples may be located in the neighborhood of the current block or may be located apart from each other according to the prediction mode.
- prediction modes may include a plurality of non-directional modes and a plurality of directional modes.
- the non-directional mode may include, for example, a DC mode and a planar mode (Planar mode).
- the directional mode may include, for example, 33 directional prediction modes or 65 directional prediction modes according to the granularity of the prediction direction. However, this is an example, and a higher or lower number of directional prediction modes may be used according to a setting.
- the intra prediction unit 222 may determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring block.
- the inter prediction unit 221 may derive the predicted block for the current block based on the reference block (reference sample array) specified by the motion vector on the reference picture.
- motion information may be predicted in units of blocks, subblocks, or samples based on the correlation between 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 further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information.
- the neighboring blocks may include spatial neighboring blocks existing 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 called a collocated reference block, a collocated CU (colCU), etc.
- a reference picture including the temporally neighboring block may be called a collocated picture (colPic).
- the inter prediction unit 221 constructs a motion information candidate list based on neighboring blocks, and provides information indicating which candidate is used to derive a motion vector and/or a reference picture index of the current block. can create Inter prediction may be performed based on various prediction modes. For example, in the skip mode and merge mode, the inter prediction unit 221 may use motion information of a neighboring block as motion information of the current block. In the skip mode, unlike the merge mode, a residual signal may not be transmitted. In the case of motion vector prediction (MVP) mode, the motion vector of the current block is determined by using a motion vector of a neighboring block as a motion vector predictor and signaling a motion vector difference. can direct
- the prediction unit 220 may generate a prediction signal based on various prediction methods to be described later.
- the prediction unit may apply intra prediction or inter prediction for prediction of one block, and may simultaneously apply intra prediction and inter prediction. This can be called combined inter and intra prediction (CIIP).
- the prediction unit may be based on an intra block copy (IBC) prediction mode or based on a palette mode for prediction of a block.
- IBC prediction mode or the palette mode may be used for video/video coding of content such as games, for example, screen content coding (SCC).
- SCC screen content coding
- IBC basically performs prediction within the current picture, but may be performed similarly to inter prediction in that a reference block is derived within the current picture. That is, IBC may use at least one of the inter prediction techniques described in this document.
- the palette mode may be viewed as an example of intra coding or intra prediction. When the palette mode is applied, the sample value in the picture may be signaled based on information about the palette table and palette index.
- the prediction signal generated by the prediction unit may be used to generate a reconstructed signal or may be used to generate a residual signal.
- the transform unit 232 may generate transform coefficients by applying a transform technique to the residual signal.
- the transformation method may include at least one of Discrete Cosine Transform (DCT), Discrete Sine Transform (DST), Karhunen-Loeve Transform (KLT), Graph-Based Transform (GBT), or Conditionally Non-linear Transform (CNT).
- DCT Discrete Cosine Transform
- DST Discrete Sine Transform
- KLT Karhunen-Loeve Transform
- GBT Graph-Based Transform
- CNT Conditionally Non-linear Transform
- GBT means a transformation obtained from this graph when expressing relationship information between pixels in a graph.
- CNT refers to a transformation obtained by generating a prediction signal using all previously reconstructed pixels and based thereon. Also, the transformation process may be applied to a block of pixels having the same size as a square, or may be applied to a block of a variable size that is not a square.
- the quantization unit 233 quantizes the transform coefficients and transmits them to the entropy encoding unit 240, and the entropy encoding unit 240 encodes the quantized signal (information on the quantized transform coefficients) and outputs it as a bitstream. there is.
- Information about the quantized transform coefficients may be referred to as residual information.
- the quantization unit 233 may rearrange the quantized transform coefficients in the block form into a one-dimensional vector form based on a coefficient scan order, and the quantized transform coefficients in the one-dimensional vector form are quantized based on the quantized transform coefficients in the one-dimensional vector form. Information about the transform coefficients may be generated.
- the entropy encoding unit 240 may perform various encoding methods such as, for example, exponential Golomb, context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC).
- the entropy encoding unit 240 may encode information necessary for video/image reconstruction (eg, values of syntax elements, etc.) other than the quantized transform coefficients together or separately.
- Encoded information eg, encoded video/image information
- NAL network abstraction layer
- the video/image information may further include information about various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). Also, the video/image information may further include general constraint information.
- APS adaptation parameter set
- PPS picture parameter set
- SPS sequence parameter set
- VPS video parameter set
- general constraint information information and/or syntax elements transmitted/signaled from the encoding device to the decoding device may be included in video/image information.
- the video/image information may be encoded through the above-described encoding procedure and included in the bitstream.
- the bitstream may be transmitted over a network or may be stored in a digital storage medium.
- the network may include a broadcasting network and/or a communication network
- the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD.
- a transmitting unit (not shown) and/or a storing unit (not shown) for storing may be configured as internal/external elements of the encoding apparatus 200, or the transmitting unit It may be included in the entropy encoding unit 240 .
- the quantized transform coefficients output from the quantization unit 233 may be used to generate a prediction signal.
- the residual signal residual block or residual samples
- the adder 155 adds the reconstructed residual signal to the prediction signal output from the inter prediction unit 221 or the intra prediction unit 222 to obtain a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array). can be created
- the predicted block may be used as a reconstructed block.
- the adder 250 may be referred to as a restoration unit or a restoration block generator.
- the generated reconstructed signal may be used for intra prediction of the next processing object block in the current picture, or may be used for inter prediction of the next picture after filtering as described below.
- LMCS luma mapping with chroma scaling
- the filtering unit 260 may improve subjective/objective image quality by applying filtering to the reconstructed signal.
- the filtering unit 260 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and convert the modified reconstructed picture to the memory 270 , specifically the DPB of the memory 270 .
- the various filtering methods may include, for example, deblocking filtering, a sample adaptive offset, an adaptive loop filter, a bilateral filter, and the like.
- the filtering unit 260 may generate various types of filtering-related information and transmit it to the entropy encoding unit 240 , as will be described later in the description of each filtering method.
- the filtering-related information may be encoded by the entropy encoding unit 240 and output in the form of a bitstream.
- the modified reconstructed picture transmitted to the memory 270 may be used as a reference picture in the inter prediction unit 221 .
- the encoding apparatus can avoid prediction mismatch between the encoding apparatus 100 and the decoding apparatus, and can also improve encoding efficiency.
- the memory 270 DPB may store the corrected reconstructed picture to be used as a reference picture in the inter prediction unit 221 .
- the memory 270 may store motion information of a block in which motion information in the current picture is derived (or encoded) and/or motion information of blocks in an already reconstructed picture.
- the stored motion information may be transmitted to the inter prediction unit 221 to be 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 blocks reconstructed in the current picture and may transmit them to the intra prediction unit 222 .
- the decoding device may include an image decoding device and/or a video decoding device.
- the decoding apparatus 300 includes an entropy decoder 310 , a residual processor 320 , a predictor 330 , an adder 340 , and a filtering unit. (filter, 350) and may be configured to include a memory (memoery, 360).
- the prediction unit 330 may include an inter prediction unit 331 and an intra prediction unit 332 .
- the residual processor 320 may include a dequantizer 321 and an inverse transformer 321 .
- the entropy decoding unit 310 , the residual processing unit 320 , the prediction unit 330 , the addition unit 340 , and the filtering unit 350 are one hardware component (eg, a decoder chipset or a processor according to an embodiment). ) can be configured by
- the memory 360 may include a decoded picture buffer (DPB), and may be configured by a digital storage medium.
- the hardware component may further include a memory 360 as an internal/external component.
- the decoding apparatus 300 may reconstruct an image corresponding to a process in which the video/image information is processed in the encoding apparatus of FIG. 2 .
- the decoding apparatus 300 may derive units/blocks based on block division related information obtained from the bitstream.
- the decoding apparatus 300 may perform decoding by using a processing unit applied in the encoding apparatus.
- the processing unit of decoding may be, for example, a coding unit, and the coding unit may be divided along a quad tree structure, a binary tree structure and/or a ternary tree structure from a coding tree unit or a largest coding unit.
- One or more transform units may be derived from a coding unit.
- the reconstructed image signal decoded and output through the decoding apparatus 300 may be reproduced through the reproducing apparatus.
- the decoding apparatus 300 may receive a signal output from the encoding apparatus of FIG. 2 in the form of a bitstream, and the received signal may be decoded through the entropy decoding unit 310 .
- the entropy decoding unit 310 may parse the bitstream to derive information (eg, video/image information) required for image restoration (or picture restoration).
- the video/image information may further include information about various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS).
- the video/image information may further include general constraint information.
- the decoding apparatus may decode the picture further based on the information on the parameter set and/or the general restriction information.
- Signaled/received information and/or syntax elements described later in this document may be decoded through the decoding procedure and obtained from the bitstream.
- the entropy decoding unit 310 decodes information in a bitstream based on a coding method such as exponential Golomb encoding, CAVLC or CABAC, and a value of a syntax element required for image reconstruction and a quantized value of a transform coefficient related to a residual can be printed out.
- the CABAC entropy decoding method receives a bin corresponding to each syntax element in a bitstream, and decodes the syntax element information to be decoded and the decoding information of the surrounding and decoding target blocks or the symbol/bin information decoded in the previous step.
- a context model is determined using the context model, and the probability of occurrence of a bin is predicted according to the determined context model, and a symbol corresponding to the value of each syntax element can be generated by performing arithmetic decoding of the bin.
- the CABAC entropy decoding method may update the context model by using the decoded symbol/bin information for the context model of the next symbol/bin after determining the context model.
- Prediction-related information among the information decoded by the entropy decoding unit 310 is provided to the prediction unit (the inter prediction unit 332 and the intra prediction unit 331), and the entropy decoding unit 310 performs entropy decoding.
- Dual values that is, quantized transform coefficients and related parameter information may be input to the residual processing unit 320 .
- the residual processing unit 320 may derive a residual signal (residual block, residual samples, residual sample array). Also, information on filtering among the information decoded by the entropy decoding unit 310 may be provided to the filtering unit 350 .
- a receiving unit (not shown) that receives a signal output from the encoding device may be further configured as an internal/external element of the decoding device 300 , or the receiving unit may be a component of the entropy decoding unit 310 .
- the decoding apparatus may be called a video/image/picture decoding apparatus, and the decoding apparatus is divided 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 decoding unit 310 , and the sample decoder includes the inverse quantization unit 321 , the inverse transform unit 322 , the adder 340 , the filtering unit 350 , and the memory 360 . ), an inter prediction unit 332 , and an intra prediction unit 331 .
- the inverse quantizer 321 may inverse quantize the quantized transform coefficients to output transform coefficients.
- the inverse quantizer 321 may rearrange the quantized transform coefficients in a two-dimensional block form. In this case, the rearrangement may be performed based on the coefficient scan order performed by the encoding device.
- the inverse quantizer 321 may perform inverse quantization on the quantized transform coefficients using a quantization parameter (eg, quantization step size information) and obtain transform coefficients.
- a quantization parameter eg, quantization step size information
- the inverse transform unit 322 inverse transforms the transform coefficients to obtain a residual signal (residual block, residual sample array).
- the prediction unit may perform prediction on the current block and generate a predicted block including prediction samples for the current block.
- the prediction unit may determine whether intra prediction or inter prediction is applied to the current block based on the prediction information output from the entropy decoding unit 310 , and may determine a specific intra/inter prediction mode.
- the prediction unit 320 may generate a prediction signal based on various prediction methods to be described later.
- the prediction unit may apply intra prediction or inter prediction for prediction of one block, and may simultaneously apply intra prediction and inter prediction. This can be called combined inter and intra prediction (CIIP).
- the prediction unit may be based on an intra block copy (IBC) prediction mode or based on a palette mode for prediction of a block.
- IBC prediction mode or the palette mode may be used for video/video coding of content such as games, for example, screen content coding (SCC).
- SCC screen content coding
- IBC basically performs prediction within the current picture, but may be performed similarly to inter prediction in that a reference block is derived within the current picture. That is, IBC may use at least one of the inter prediction techniques described in this document.
- the palette mode may be viewed as an example of intra coding or intra prediction. When the palette mode is applied, information about the palette table and the palette index may be included in the video/image information and signaled.
- the intra prediction unit 331 may predict the current block with reference to samples in the current picture.
- the referenced samples may be located in the neighborhood of the current block or may be located apart from each other according to the prediction mode.
- prediction modes may include a plurality of non-directional modes and a plurality of directional modes.
- the intra prediction unit 331 may determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring block.
- the inter prediction unit 332 may derive the predicted block for the current block based on the reference block (reference sample array) specified by the motion vector on the reference picture.
- motion information may be predicted in units of blocks, subblocks, or samples based on the correlation between 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 further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information.
- the neighboring blocks may include spatial neighboring blocks existing in the current picture and temporal neighboring blocks present in the reference picture.
- the inter prediction unit 332 may construct 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 prediction may be performed based on various prediction modes, and the prediction information may include information indicating a mode of inter prediction for the current block.
- the adder 340 restores the obtained residual signal by adding it to the prediction signal (predicted block, prediction sample array) output from the prediction unit (including the inter prediction unit 332 and/or the intra prediction unit 331 ).
- a signal (reconstructed picture, reconstructed block, reconstructed sample array) may be generated.
- the predicted block may be used as a reconstructed block.
- the adder 340 may be referred to as a restoration unit or a restoration block generator.
- the generated reconstructed signal may be used for intra prediction of the next processing object block in the current picture, may be output through filtering as described below, or may be used for inter prediction of the next picture.
- LMCS luma mapping with chroma scaling
- the filtering unit 350 may improve subjective/objective image quality by applying filtering to the reconstructed signal.
- the filtering unit 350 may 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 .
- the various filtering methods may include, for example, deblocking filtering, a sample adaptive offset, an adaptive loop filter, a bilateral filter, and the like.
- the (modified) reconstructed picture stored in the DPB of the memory 360 may be used as a reference picture in the inter prediction unit 332 .
- the memory 360 may store motion information of a block from which motion information in the current picture is derived (or decoded) and/or motion information of blocks in an already reconstructed picture.
- the stored motion information may be transmitted to the inter prediction unit 332 to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block.
- the memory 360 may store reconstructed samples of blocks reconstructed in the current picture, and may transmit the reconstructed samples to the intra prediction unit 331 .
- the embodiments described in the filtering unit 260 , the inter prediction unit 221 , and the intra prediction unit 222 of the encoding apparatus 200 are the filtering unit 350 and the inter prediction unit of the decoding apparatus 300 , respectively.
- the same or corresponding application may be applied to the unit 332 and the intra prediction unit 331 .
- the predicted block includes prediction samples in the spatial domain (or pixel domain).
- the predicted block is derived equally from the encoding device and the decoding device, and the encoding device signals information (residual information) about the residual between the original block and the predicted block, rather than the original sample value of the original block itself, to the decoding device. It is possible to increase the video coding efficiency.
- the decoding apparatus may derive a residual block including residual samples based on the residual information, generate a reconstructed block including reconstructed samples by combining the residual block and the predicted block, and reconstruct including reconstructed blocks You can create a picture.
- the residual information may be generated through transformation and quantization procedures.
- the encoding apparatus derives a residual block between the original block and the predicted block, and performs a transform procedure on residual samples (residual sample array) included in the residual block to derive transform coefficients, and transform A quantization procedure may be performed on the coefficients to derive quantized transform coefficients, and related residual information may be signaled to a decoding apparatus (via a bitstream).
- the residual information may include information such as value information of quantized transform coefficients, location information, a transform technique, a transform kernel, and a quantization parameter.
- the decoding apparatus may perform an inverse quantization/inverse transformation procedure based on the residual information and derive residual samples (or residual blocks).
- the decoding apparatus may generate a reconstructed picture based on the predicted block and the residual block.
- the encoding apparatus may also inverse quantize/inverse transform the quantized transform coefficients for reference for inter prediction of a later picture to derive a residual block, and generate a reconstructed picture based thereon.
- a quantization rate may be changed, and compression may be adjusted using the changed quantization rate.
- a quantization parameter may be used instead of using a quantization rate directly in consideration of complexity.
- quantization parameters of integer values from 0 to 63 may be used, and each quantization parameter value may correspond to an actual quantization rate.
- the quantization parameter QP Y for the luma component (luma sample) and the quantization parameter QP C for the chroma component (chroma sample) may be set differently.
- the quantization process takes a transform coefficient (C) as an input and divides it by a quantization rate (Q step ) to obtain a quantized transform coefficient (C ⁇ ) based on this.
- a quantization rate is multiplied by a scale to form an integer, and a shift operation may be performed by a value corresponding to the scale value.
- a 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, by applying the quantization scale to the transform coefficient C, a quantized transform coefficient C′ may be derived based thereon.
- the inverse quantization process is the inverse process of the quantization process, and a quantized transform coefficient (C') is multiplied by a quantization rate (Q step ), and a restored transform coefficient (C') can be obtained based on this.
- a level scale may be derived according to the quantization parameter, and the level scale is applied to the quantized transform coefficient C ⁇ , and a reconstructed transform coefficient C ⁇ is derived based on this.
- the reconstructed transform coefficient C ⁇ may be slightly different from the original transform coefficient C due to loss in the transform and/or quantization process. Accordingly, the encoding apparatus performs inverse quantization in the same manner as in the decoding apparatus.
- S400 may be performed by the prediction unit 220 of the encoding apparatus described above in FIG. 2
- S410 may be performed by the residual processing unit 230
- S420 may be performed by the entropy encoding unit 240 .
- S400 may include the inter/intra prediction procedure described in this document
- S410 may include the residual processing procedure described in this document
- S420 may include the information encoding procedure described in this document .
- the video/image encoding procedure schematically encodes information for picture restoration (eg, prediction information, residual information, partitioning information, etc.) as shown in the description for FIG. 2 and outputs it in the form of a bitstream.
- information for picture restoration eg, prediction information, residual information, partitioning information, etc.
- a procedure for generating a reconstructed picture for the current picture and a procedure for applying in-loop filtering to the reconstructed picture may be included (optional).
- the encoding apparatus may derive (modified) residual samples from the quantized transform coefficients through the inverse quantization unit 234 and the inverse transform unit 235 , and the prediction samples output from S400 and the (modified) residual samples.
- a reconstructed picture may be generated based on the samples.
- the reconstructed picture thus generated may be the same as the reconstructed picture generated by the above-described decoding apparatus.
- a modified reconstructed picture may be generated through an in-loop filtering procedure for the reconstructed picture, which may be stored in a decoded picture buffer or memory 270, and, as in the case of a decoding apparatus, an inter It can be used as a reference picture in the prediction procedure. As described above, some or all of the in-loop filtering procedure may be omitted in some cases.
- (in-loop) filtering-related information may be encoded by the entropy encoding unit 240 and output in the form of a bitstream, and the decoding apparatus encodes based on the filtering-related information
- the in-loop filtering procedure can be performed in the same way as the device.
- noise generated during video/video coding such as blocking artifacts and ringing artifacts
- the encoding apparatus and the decoding apparatus can derive the same prediction result, increase the reliability of picture coding, and reduce the amount of data to be transmitted for picture coding can be reduced
- the picture restoration procedure may be performed not only in the decoding apparatus but also in the encoding apparatus.
- a reconstructed block may be generated based on intra prediction/inter prediction for each block, and a reconstructed picture including the reconstructed blocks may be generated.
- the current picture/slice/tile group is an I picture/slice/tile group
- blocks included in the current picture/slice/tile group may be reconstructed based on only intra prediction.
- the current picture/slice/tile group is a P or B picture/slice/tile group
- blocks included in the current picture/slice/tile group may be reconstructed based on intra prediction or inter prediction.
- inter prediction may be applied to some blocks in the current picture/slice/tile group
- intra prediction may be applied to some remaining blocks.
- a color component of a picture may include a luma component and a chroma component, and unless explicitly limited in this document, the methods and embodiments proposed in this document may be applied to the luma component and the chroma component.
- S500 may be performed by the entropy decoding unit 310 of the decoding apparatus described above in FIG. 3
- S510 may be performed by the prediction unit 330
- S520 may be performed by the residual processing unit 320
- S530 may be performed by the adder 340
- S540 may be performed by the filtering unit 350 .
- S500 may include the information decoding procedure described in this document
- S510 may include the inter/intra prediction procedure described in this document
- S520 may include the residual processing procedure described in this document
- S530 may include the block/picture restoration procedure described in this document
- S540 may include the in-loop filtering procedure described in this document.
- the picture decoding procedure is schematically as shown in the description for FIG. 3, image/video information acquisition procedure (S500), picture restoration procedure (S510 ⁇ S530) and reconstructed from the bitstream (through decoding) It may include an in-loop filtering procedure (S540) for the picture.
- the picture restoration procedure is based on prediction samples and residual samples obtained through the inter/intra prediction (S510) and residual processing (S520, inverse quantization and inverse transformation of quantized transform coefficients) described in this document. can be performed.
- a modified reconstructed picture may be generated through an in-loop filtering procedure for the reconstructed picture generated through the picture reconstructing procedure, and the modified reconstructed picture may be output as a decoded picture, and It may be stored in the decoded picture buffer or the memory 360 and used as a reference picture in an inter prediction procedure when decoding a picture thereafter.
- the in-loop filtering procedure may be omitted, and in this case, the reconstructed picture may be output as a decoded picture, and is also stored in the decoded picture buffer or memory 360 of the decoding apparatus and interpolated during decoding of a subsequent picture. It can be used as a reference picture in the prediction procedure.
- the in-loop filtering procedure may include a deblocking filtering procedure, a sample adaptive offset (SAO) procedure, an adaptive loop filter (ALF) procedure, and/or a bi-lateral filter procedure as described above. may be, and some or all of them may be omitted.
- one or some of the deblocking filtering procedure, the sample adaptive offset (SAO) procedure, the adaptive loop filter (ALF) procedure, and the bi-lateral filter procedure may be sequentially applied, or all are sequential may be applied as
- the SAO procedure may be performed.
- the ALF procedure may be performed. This may also be performed in the encoding device.
- the encoding apparatus performs entropy encoding based on various encoding methods such as, for example, exponential Golomb, context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC).
- the decoding apparatus may perform entropy decoding based on a coding method such as exponential Golomb coding, CAVLC, or CABAC.
- a coding method such as exponential Golomb coding, CAVLC, or CABAC.
- FIG. 6 schematically shows an example of an entropy encoding method to which embodiments of this document are applicable
- FIG. 7 schematically shows an entropy encoding unit in an encoding apparatus.
- the entropy encoding unit in the encoding apparatus of FIG. 7 may be applied to the same or corresponding to the entropy encoding unit 240 of the encoding apparatus 200 of FIG. 2 described above.
- an encoding apparatus may perform an entropy coding procedure on image/video information.
- the image/video information may include partitioning-related information, prediction-related information (eg, inter/intra prediction classification information, intra prediction mode information, inter prediction mode information, etc.), residual information, in-loop filtering related information, etc. Or it may include various syntax elements related thereto.
- Entropy coding may be performed in units of syntax elements. S600 to S610 may be performed by the entropy encoding unit 240 of the encoding apparatus 200 of FIG. 2 described above.
- the encoding apparatus may perform binarization on the target syntax element (S600).
- the binarization may be based on various binarization methods such as a Truncated Rice binarization process and a fixed-length binarization process, and the binarization method for a target syntax element may be predefined.
- the binarization procedure may be performed by the binarization unit 242 in the entropy encoding unit 240 .
- the encoding apparatus may perform entropy encoding on the target syntax element ( S610 ).
- the encoding device uses an entropy coding technique such as context-adaptive arithmetic coding (CABAC) or context-adaptive variable length coding (CAVLC) to convert a bin string of a target syntax element to a regular coding-based (context-based) or bypass Coding-based encoding may be performed, and the output may be included in a bitstream.
- CABAC context-adaptive arithmetic coding
- CAVLC context-adaptive variable length coding
- the entropy encoding procedure may be performed by the entropy encoding processing unit 243 in the entropy encoding unit 240 .
- the bitstream may be transmitted to the decoding device through a (digital) storage medium or a network.
- FIG. 8 schematically shows an example of an entropy decoding method to which embodiments of this document are applicable
- FIG. 9 schematically shows an entropy decoding unit in a decoding apparatus.
- the entropy decoding unit in the decoding apparatus of FIG. 9 may be applied to the same or corresponding to the entropy decoding unit 310 of the decoding apparatus 300 of FIG. 3 described above.
- the decoding apparatus may decode encoded image/video information.
- the image/video information may include partitioning-related information, prediction-related information (eg, inter/intra prediction classification information, intra prediction mode information, inter prediction mode information, etc.), residual information, in-loop filtering related information, etc. Or it may include various syntax elements related thereto.
- Entropy coding may be performed in units of syntax elements. S800 to S810 may be performed by the entropy decoding unit 310 of the decoding apparatus 300 of FIG. 3 described above.
- the decoding apparatus may perform binarization on the target syntax element (S800).
- the binarization may be based on various binarization methods such as a Truncated Rice binarization process and a fixed-length binarization process, and the binarization method for a target syntax element may be predefined.
- the decoding apparatus may derive available bin strings (bin string candidates) for available values of the target syntax element through a binarization procedure.
- the binarization procedure may be performed by the binarization unit 312 in the entropy decoding unit 310 .
- the decoding apparatus may perform entropy decoding on the target syntax element (S810).
- the decoding apparatus sequentially decodes and parses each bin for the target syntax element from the input bit(s) in the bitstream, and compares the derived bin string with available bin strings for the corresponding syntax element. If the derived bin string is the same as one of the available bin strings, a value corresponding to the corresponding bin string may be derived as a value of the corresponding syntax element. If not, the above-described procedure may be performed again after further parsing the next bit in the bitstream. Through this process, the corresponding information can be signaled using a variable length bit without using a start bit or an end bit for specific information (a specific syntax element) in the bitstream. Through this, relatively fewer bits can be allocated to a low value, and overall coding efficiency can be increased.
- the decoding apparatus may perform context-based or bypass-based decoding of each bin in a bin string from a bitstream based on an entropy coding technique such as CABAC or CAVLC.
- the bitstream may include various information for video/video decoding as described above.
- the bitstream may be transmitted to the decoding device through a (digital) storage medium or a network.
- the coded image/video is a video coding layer (VCL) that handles decoding processing of the image/video and itself, a subsystem that transmits and stores coded information, and the VCL and subsystem It exists between them and is divided into a network abstraction layer (NAL) that is responsible for network adaptation functions.
- VCL video coding layer
- NAL network abstraction layer
- VCL data including compressed video data is generated, or picture parameter set (PPS), sequence parameter set (SPS), video parameter set (Video Parameter Set: A supplemental enhancement information (SEI) message additionally necessary for a parameter set including information such as VPS) or an image decoding process may be generated.
- PPS picture parameter set
- SPS sequence parameter set
- SEI Supplemental Enhancement Information
- a NAL unit may be generated by adding header information (NAL unit header) to a raw byte sequence payload (RBSP) generated in the VCL.
- the RBSP refers to slice data, parameter sets, SEI messages, etc. generated in the VCL.
- the NAL unit header may include NAL unit type information specified according to RBSP data included in the corresponding NAL unit.
- the NAL unit may be divided into a VCL NAL unit and a Non-VCL NAL unit according to the RBSP generated in the VCL.
- a VCL NAL unit may mean a NAL unit including information (slice data) about an image
- the Non-VCL NAL unit is a NAL unit containing information (parameter set or SEI message) necessary for decoding an image.
- the VCL NAL unit and the Non-VCL NAL unit may be transmitted through the network by attaching header information according to the data standard of the subsystem.
- the NAL unit may be transformed into a data form of a predetermined standard such as H.266/VVC file format, Real-time Transport Protocol (RTP), Transport Stream (TS), and transmitted through various networks.
- RTP Real-time Transport Protocol
- TS Transport Stream
- the NAL unit type may be specified according to the RBSP data structure included in the corresponding NAL unit, and information on the NAL unit type may be stored and signaled in the NAL unit header.
- the NAL unit may be largely classified into a VCL NAL unit type and a Non-VCL NAL unit type according to whether or not the NAL unit includes image information (slice data).
- the VCL NAL unit type may be classified according to properties and types of pictures included in the VCL NAL unit, and the Non-VCL NAL unit type may be classified according to the type of a parameter set.
- NAL unit type specified according to the type of parameter set included in the Non-VCL NAL unit type.
- NAL unit Type for NAL unit including APS
- NAL unit a type for a NAL unit including a DPS
- NAL unit Type of NAL unit including VPS
- NAL unit Type for NAL unit including SPS
- NAL unit Type of NAL unit including PPS
- NAL unit Type of NAL unit including PH
- NAL unit types have syntax information for the NAL unit type, and the syntax information may be stored and signaled in the NAL unit header.
- the syntax information may be nal_unit_type, and NAL unit types may be specified by a nal_unit_type value.
- one picture may include a plurality of slices, and one slice may include a slice header and slice data.
- one picture header may be further added to a plurality of slices (a slice header and a slice data set) in one picture.
- the picture header (picture header syntax) may include information/parameters commonly applicable to pictures.
- a tile group may be mixed or replaced with a slice or a picture.
- the tile group header may be mixed or replaced with a slice header or a picture header.
- the slice header may include information/parameters commonly applicable to slices.
- APS APS syntax
- PPS PPS syntax
- SPS SPS syntax
- VPS VPS syntax
- DPS DPS syntax
- CVS coded video sequence
- high level syntax may include at least one of the APS syntax, PPS syntax, SPS syntax, VPS syntax, DPS syntax, picture header syntax, and slice header syntax.
- the video/video information encoded from the encoding device to the decoding device and signaled in the form of a bitstream includes not only partitioning-related information in a picture, intra/inter prediction information, residual information, in-loop filtering information, etc., but also slice Information included in the header, information included in the picture header, information included in the APS, information included in the PPS, information included in the SPS, information included in the VPS, and/or information included in the DPS may be included.
- the video/video information may further include information of a NAL unit header.
- Adaptive Color Transform is a technology present in HEVC screen content extension to use in-loop color space conversion to remove inter-color-component overlap. am. ACT was also adopted for 444 content in the VVC standard.
- ACT was used to adaptively transform prediction residuals from one color space to YCgCo space.
- Two color spaces are adaptively selected by signaling one ACT flag for each transform unit (TU). When the flag is equal to 1, it indicates that the residual of the TU is coded in the YCgCo space. Otherwise (ie, if the flag is equal to 0), it indicates that the residual of the TU is coded in the original color space.
- ACT is also adopted in the VVC standard for 444 content (4:4:4 chroma format content), and the decoding process using ACT may be performed as shown in FIG. 11 .
- FIG. 11 is a diagram for explaining an example of a video/image decoding procedure using ACT to which embodiment(s) of this document are applicable.
- the reconstructed picture (or reconstructed block, reconstructed sample array, reconstructed sample(s), reconstructed signal) has a prediction output and a residual output (inverse normal transform) (eg: Inverse MTS-based transform and/or inverse LFNST, etc.) or residual output of inverse ACT).
- the prediction output may include a prediction block, an array of prediction samples, prediction sample(s), or a prediction signal.
- the residual output may include a residual block, a residual sample array, residual sample(s), or a residual signal.
- the ACT process may be performed on residual samples derived based on the prediction samples, and the output of the ACT process may be a general transform (eg, MTS-based transform and/or LFNST) (eg, MTS-based transform and/or LFNST). normal transform).
- (Reverse) ACT-related information may be generated/encoded by an encoding device and transmitted to a decoding device through a bitstream.
- the decoding apparatus may obtain/parse/decode information (parameters) related to (inverse) ACT, and may perform inverse ACT based on information (parameters) related to (inverse) ACT.
- a (modified) residual sample (or residual block) may be derived.
- a (transform) coefficient is derived by inverse quantization on the quantized (transform) coefficient
- a residual sample can be derived by performing an inverse transform
- the inverse ACT is used to obtain a (modified) residual sample. may be further performed.
- the core transform (the transform kernel) used for color space transforms can remain the same as that used for HEVC.
- forward and inverse YCgCo color conversion matrices may be applied as follows.
- C 0 , C 1 , C 2 may correspond to G, B, R, and C 0 ', C 1 ' and C 2 ' may correspond to Y, Cg, Co.
- a QP adjustment of (-5, -5, -3) may be applied to the conversion residual. Details of QP adjustment will be described later.
- ACT is disabled (disabled) for the dual tree. That is, ACT is enabled only for a single tree.
- ISP Intra sub-partition prediction
- BDPCM Block Differential Pulse Coded Modulation
- CCLM Cross-component linear model prediction
- ACT-related information ie, ACT-related syntax elements
- Tables 1 and 2 ACT-related syntax elements
- Tables 1 and 2 show an example of a syntax structure in which ACT-related information (ie, ACT-related syntax elements) is signaled.
- Table 3 below shows semantics of syntax elements included in the syntax tables of Tables 1 and 2 above.
- information indicating whether the ACT is available may be signaled/parsed through a sequence parameter set (SPS).
- information indicating whether the ACT is available may be a sps_act_enabled_flag syntax element.
- sps_act_enabled_flag When the value of sps_act_enabled_flag is 1, it may indicate that the ACT is available, and in this case, information indicating whether to apply the ACT to the residual of the current block (ie, the current coding unit) in the coding unit syntax may be present.
- sps_act_enabled_flag when the value of sps_act_enabled_flag is 0, it may indicate that ACT is not available, and in this case, information indicating whether to apply the ACT to the residual of the current block (ie, the current coding unit) in the coding unit syntax does not exist.
- information indicating whether the ACT signaled through the SPS is available information indicating whether to apply the ACT to the residual of the current block (ie, the current coding unit) through the coding unit syntax It can be signaled/parsed.
- information indicating whether to apply the ACT to the residual of the current block may be a cu_act_enabled_flag syntax element.
- ACT When the value of cu_act_enabled_flag is 1, it may indicate that ACT is applied to the residual of the current block (that is, it indicates coding in the YCgCo color space), and when the value of cu_act_enabled_flag is 0, ACT is applied to the residual of the current block. may indicate not (ie, indicating that it is coded in the original color space).
- applying the ACT may mean using color space conversion.
- the current block ie, the current coding unit
- Information eg, cu_act_enabled_flag
- the coding unit syntax indicates whether the ACT is applied to the residual of the current block (ie, the current coding unit).
- Information indicating whether or not may not be signaled/parsed.
- the value of information eg, cu_act_enabled_flag
- the value of the current block ACT i.e., color space conversion
- Equation 2 the same equation as in Equation 1 may be used for VVC to ACT color conversion. This transformation is called YCgCo transformation. Matrix multiplication as in Equation 1 may be expressed as Equation 2 below.
- each color component may have a different ACT Qp offset, which is not accurately reflected in the QP derivation process.
- the derived QP may have a negative value. Accordingly, an embodiment of the present document proposes a method of deriving a QP reflecting the ACT Qp offset for each color component and preventing the derived QP from having a negative value.
- the quantization parameter for the luma component is Qp' y
- the quantization parameter for the chroma Cb component is Qp' Cb
- the quantization parameter for the chroma Cr component is Qp' Cr
- the quantization parameter for the joint Cb-Cr coding is Qp' It can be represented by CbCr.
- the QP derived based on the ACT QP offset of each color component may be clipped.
- an ACT QP offset (eg, ActQpOffset) for each color component may be derived.
- the ACT QP offset (eg ActQpOffset) for the luma component is -5
- the ACT QP offset (eg ActQpOffset) for the joint Cb-Cr coding is -5
- the ACT QP offset for the chroma Cb component Example: ActQpOffset
- the ACT QP offset (eg, ActQpOffset) for the chroma Cr component may be -3.
- the quantization parameter (eg, qP) may be modified based on the value of the ACT QP offset (eg, ActQpOffset) for each color component. For example, based on the quantization parameters derived for each color component (eg Qp' y , Qp' Cb , Qp' Cr , Qp' CbCr ) and the ACT QP offset of each color component (eg ActQpOffset), the quantization A parameter (eg qP) may be modified.
- the ACT QP offset (eg ActQpOffset) is set as a quantization parameter (eg Qp) ' y , Qp' Cb , Qp' Cr , Qp' CbCr ) can be reflected.
- the quantization parameter eg, qP
- the quantization parameter may be clipped.
- the quantization quantization parameter (eg, qP) is a quantization parameter derived based on the value of the ACT QP offset (eg, ActQpOffset) for each color component and a value of 0 can be determined as a larger value .
- the QP may be clipped as shown in Table 5 below.
- Table 5 shows that when the value of information (eg, transform_skip_flag) on whether transform/inverse transform is omitted in Table 4 is 1, QP is clipped based on the minimum quantization parameter value (eg, QpPrimeTsMin) in the transform skip mode instead of 0.
- An example of clipping is shown.
- the value of information (eg, transform_skip_flag) regarding whether transform/inverse transform is skipped is 1, it indicates that transform/inverse transform is skipped, and may be referred to as a transform skip mode.
- the value of information (eg, transform_skip_flag) regarding whether transform/inverse transform is skipped is 0, it may indicate that transform/inverse transform is applied.
- the minimum quantization parameter value (eg, QpPrimeTsMin) in the transform skip mode may be a value derived based on the min_qp_prime_ts_minus4 syntax element, and the min_qp_prime_ts_minus4 syntax element is the minimum allowed quantization parameter for the transform skip mode signaled in the SPS. ) can be represented.
- Y and Cb represent three color components, Y may correspond to C 0 , Cb may correspond to C 1 or Cg, and Cr may correspond to C 2 or Co in the ACT transformation.
- Table 6 shows an example of applying the above-described embodiment to the scaling process and the residual correction process in the specification.
- the adjustment for the ACT QP offset is fixed to -5 for the Y, Cg, Co components and YCbCr.
- the minimum and maximum to prevent the ACT QP offset-based modified QP from going out of range We propose a method that can be clipped within a range.
- the ACT QP offset may be a value derived based on signaled information or a predefined number.
- the ACT QP offset may be represented by variables PpsActQpOffsetY, PpsActQpOffsetCb, PpsActQpOffsetCr, and PpsActQpOffsetCbCr.
- the variables may be a predefined number or a value derived from a signaled ACT QP offset. Signaling of the ACT QP offset will be described later.
- PpsActQpOffsetY, PpsActQpOffsetCbCr, PpsActQpOffsetCb, and PpsActQpOffsetCr should exist in the range of -12 to +12, which may be a requirement for bitstream conformance.
- the minimum value of the derived QP is clipped to avoid the negative QP, as well as It is also necessary to clip the maximum value of the derived QP.
- the minimum value of qP may be 0 to avoid negative values, or may be the minimum allowable qP (eg, minimum quantization parameter value in transform skip mode; QpPrimeTsMin) limited by the signaled syntax element.
- the maximum value of qP may be a maximum possible qP value (eg, 63) or a maximum allowed qP limited by a signaled syntax element.
- Table 7 below shows an example of an algorithm to which the above-described embodiment can be applied.
- the QP may be clipped within the minimum and maximum ranges as shown in Table 8 below.
- Table 8 shows an example in which the minimum qP is clipped based on QpPrimeTsMin instead of 0 when the value of information (eg, transform_skip_flag) on whether transform/inverse transform is omitted in Table 7 is 1.
- BDPCM for ACT and luma components is currently allowed in VVC.
- BDPCM for ACT and chroma components is not allowed (disabled). Therefore, in one embodiment of the present document, it is proposed to allow a combination of BDPCM and ACT for the chroma component.
- BDPCM block differential pulse coded modulation
- RDPCM quantized residual block-based Delta Pulse Code Modulation
- reconstructed samples may be used to predict a row or column of the block line-by-line.
- the used reference sample may be an unfiltered sample.
- the BDPCM direction may indicate whether vertical direction or horizontal direction prediction is used. That is, when BDPCM is applied, a vertical direction or a horizontal direction may be selected as the BDPCM direction, and prediction may be performed in the BDPCM direction.
- a prediction error can be quantized in the spatial domain, and a sample can be reconstructed by adding the inverse quantized prediction error to the prediction (ie, the prediction sample).
- the prediction error may mean a residual.
- a quantized residual domain BDPCM may be proposed, and the prediction direction or signaling may be the same as the BDPCM applied to the spatial domain. That is, the quantization coefficient itself can be accumulated like DPCM (Delta Pulse Code Modulation) through the quantized residual domain BDPCM, and then the residual can be restored through inverse quantization. Accordingly, the quantized residual domain BDPCM may be used in the sense of applying DPCM in the residual coding stage.
- a quantized residual domain used below is a residual derived based on prediction that is quantized without transformation, and refers to a domain for a quantized residual sample.
- the quantized residual domain may include quantized residuals (or quantized residual coefficients) to which a transform skip is applied, ie, a transform is skipped for a residual sample but quantization is applied.
- the quantized residual domain may include quantized transform coefficients.
- BDPCM may be applied to a quantized residual domain
- the quantized residual domain may include a quantized residual (or quantized residual coefficient), and in this case, transform skip is applied to the residual.
- transform skip is applied to the residual.
- the quantized residual domain may include quantized transform coefficients.
- a flag indicating whether BDPCM is applicable may be signaled at the sequence level (SPS), and this flag may be signaled only when it is signaled that the transform skip mode is possible in the SPS.
- the flag may be referred to as a BDPCM available flag or an SPS BDPCM available flag.
- intra prediction may be performed on the entire block by sample copy according to a prediction direction (eg, vertical prediction or horizontal prediction) similar to the intra prediction direction.
- the residual which is the difference value between the original and the prediction block, is quantized by skipping the transform, and the delta value between the quantized residual and the predictor in the horizontal or vertical direction (that is, the quantized residual in the horizontal or vertical direction), that is, the difference Values may be coded.
- BDPCM maximum transform skip block size
- MaxTsSize maximum transform skip block size
- the flag information may indicate whether conventional intra coding or BDPCM is applied.
- BDPCM a BDPCM prediction direction flag indicating whether the prediction direction is a horizontal direction or a vertical direction may be transmitted.
- the BDPCM prediction direction flag may be referred to as a BDPCM direction flag.
- the block may be predicted through a conventional horizontal or vertical intra prediction process using an unfiltered reference sample.
- the residuals are quantized, and a difference value between each quantized residual and its predictor, for example, a residual already quantized in a horizontal or vertical direction according to a BDPCM prediction direction, may be coded.
- this document proposes a method that can be applied not only to the luma component but also the chroma component.
- Table 9 shows a part of the coding unit syntax, and shows an example of a syntax structure to allow BDPCM for ACT and chroma components.
- whether the BDPCM for the chroma component is applied is not determined by information (eg, cu_act_enabled_flag) indicating whether the residual of the current block is applied using color space conversion. It is possible to change the syntax structure of the coding unit so that For example, only when the value of cu_act_enabled_flag is not 1, the condition (eg, !cu_act_enabled_flag) to which the BDPCM for the chroma component is applied may be removed. In this case, both ACT and BDPCM may be applied to the chroma component of the current block.
- Information on whether BDPCM for the chroma component is applied may be an intra_bdpcm_chroma_flag syntax element.
- intra_bdpcm_chroma_flag 1
- intra_bdpcm_chroma_flag 0
- both ACT and CCLM can be used to remove inter-component duplication. These two tools sometimes overlap some, but after applying either tool, the overlap between the components is not removed. Therefore, it may be useful to allow the two tools to be applied together.
- An embodiment of this document proposes a method to allow a combination of ACT and CCLM. In this case, CCLM may be applied first and ACT may be applied later on the decoder side.
- Table 10 shows a part of the coding unit syntax, and shows an example of a syntax structure that allows a combination of ACT and CCLM.
- cclm_mode_flag when the value of cclm_mode_flag is 1, it may indicate that CCLM is applied to the current block, and when the value of cclm_mode_flag is 0, it may indicate that CCLM is not applied to the current block.
- the prediction residual is converted from one color space (GBR or YCbCr) to the YCgCo space, and the residual of the TU is coded in the YCgCo space.
- An ACT core conversion (conversion kernel) used for color space conversions is expressed by Equation 3 below. where C 0 , C 1 , C 2 may correspond to G, B, R, and C 0 ', C 1 ' and C 2 ' may correspond to Y, Cg, Co.
- L2norm of the transform for each component is approximately equal to 0.6 for C 0 ' and C 1 ' and 0.7 for C 2 '.
- a QP adjustment method may be used by transmitting a QP offset value for compensating for the dynamic range change for each conversion component. Therefore, one embodiment of this document focuses on joint CbCr as well as general QP adjustment control method for ACT transformation. In the joint CbCr method, dynamic range variation may occur between each color component because each color component is coded jointly rather than independently.
- VVC supports a mode jointly coded for chroma residuals, and this may be referred to as a joint chroma coding mode or a joint CbCr mode.
- the use (activation) 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 indicated implicitly by the chroma CBF.
- the tu_joint_cbcr_residual_flag flag may be present if one or both of the chroma CBFs for the TU are 1.
- the 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.
- This chroma QP offset value may be used to derive a chroma QP value for a block coded using the joint chroma residual coding mode. If the corresponding joint chroma coding mode (mode 2 of Table 11) is activated in the TU, this chroma QP offset may be added to the luma-derived chroma QP applied during quantization and decoding of the corresponding TU.
- chroma QP can be derived in the same way as the existing Cb or Cr block.
- the restoration process of the chroma residuals (resCb and resCr) in the transmitted transform block is shown in Table 11.
- this mode is activated, one single joint chroma residual block (resJointC [x][y] in Table 11) is signaled, and information such as tu_cbf_cb, tu_cbf_cr and CSign, which are sign values specified in the slice header, is considered for Cb
- a residual block resCb and a residual block resCr for Cr may be derived.
- Table 11 shows an example of restoring the chroma residual according to the joint CbCr mode.
- the CSign value is a sign value (+1 or -1) specified in the slice header
- resJointC[][] is the transmitted residual.
- the joint chroma component can be derived as shown in Table 12 below.
- resJointC ⁇ 1,2 ⁇ may be generated by the encoder as in the algorithm in Table 12 below.
- ACT QP offset adjustment in VVC is fixed at -5 and is the same for Y, Cg, Co components and joint CbCr.
- An embodiment of the present document allows different ACT QP offset values for Y, Cb, Cr and/or joint CbCr to provide flexibility in QP control of each component and joint CbCr.
- the ACT QP offset value may vary depending on the component index and/or whether it is a joint CbCr and/or a joint CbCr mode.
- the ACT QP offsets for Y, Cb, and Cr are indicated using the variables ppsActQpOffsetY, ppsActQpOffsetCb, and ppsActQpOffsetCr derived based on the information on the ACT QP offset as described above, and joint CbCr mode 2 (ie, cb and the variable ppsActQpOffsetCbCr for the ACT QP offset of (with a non-zero cbf in both the cr component).
- the values of the variables may be defined or signaled from the bitstream. There may be several variations in the ACT QP offset of the joint CbCr mode.
- the ACT QP offset of the joint CbCr mode 2 may have its own offset value.
- the ACT QP offset of the corresponding component can be used.
- the algorithm may be implemented as shown in Table 13 below.
- the algorithm may be implemented as shown in Table 14 below.
- ppsActQpOffsetY may be used
- component index is Cb
- ppsActQpOffsetCb may be used
- component index is Cr
- ppsActQpOffsetCr may be used.
- the algorithm may be implemented as shown in Table 15 below.
- the ACT QP offset may be signaled through a bitstream to allow more flexibility.
- information about the ACT QP offset may be placed in an appropriate header and signaled.
- it may be signaled via SPS, PPS, picture header, slice header and/or other header sets.
- the ACT QP offset of the joint CbCr may be signaled individually or derived from the ACT QP offset of Y, Cb, Cr.
- the ACT QP offset may be signaled in the PPS without a general loss, and may be signaled as shown in the syntax table of Table 16 below. In the example of Table 16, one ACT QP offset may be signaled for the joint CbCr.
- Table 16 below is an example of a syntax table for signaling information related to ACT QP offset in PPS, and Table 17 below shows semantics for syntax elements included in the syntax table of Table 16.
- pps_act_qp_offsets_present_flag syntax element may be parsed/signaled in the PPS.
- pps_act_qp_offsets_present_flag may be information indicating whether information related to the ACT QP offset exists 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 does not exist in the PPS. .
- the information related to the ACT QP offset may be parsed/signaled in the PPS.
- the information related to the 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.
- pps_act_y_qp_offset_plusX1, pps_act_cb_qp_offset_plusX2, pps_act_cr_qp_offset_plusX3, pps_act_cbcr_qp_offset_plusX4 may be used to determine quantization parameter values for luma, Cb, Cr components, and joint CbCr to determine the offset applied to CbCr.
- the information related to the ACT QP offset is signaled in the PPS: a base (such as pps_act_y_qp_offset_plusX1, pps_act_cb_qp_offset_plusX2, pps_act_cr_qp_offset_plusX3, pps_act_cbcr_qp_offset_plusX4), ACT QP offset (e: PpsActQpOffsetY, PpsActQpOffsetCb, PpsActQpOffsetCr, PpsActQpOffsetCbCr) value is derived can Based on the ACT QP offset value 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 18 below.
- a base such as pps_act_y_qp_offset_plusX1, pps_act_cb_qp_offset_plusX2, pps_
- multiple ACT QP offsets may be signaled for other modes of joint CbCr referred to as mode A and mode B.
- the joint CbCr mode A is mode 1 and mode 2 in Table 11, and may indicate a joint CbCr mode in which tu_cbf_cb is not 0.
- the joint CbCr mode B is mode 3 in Table 11, and may indicate a joint CbCr mode in which tu_cbf_cb is 0.
- 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 the PPS, and the following Table 20 shows the semantics for the syntax elements included in the syntax table of Table 19 .
- pps_act_qp_offsets_present_flag syntax element may be parsed/signaled in the PPS.
- pps_act_qp_offsets_present_flag may be information indicating whether information related to the ACT QP offset exists 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 does not exist in the PPS. .
- the information related to the ACT QP offset may include syntax elements 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_modeA_plusX4_, pps_act_cbcr.
- 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, which can be used to determine the luma parameters used to determine the luma offset, CbCbcr_qp_offset_modeB for luma, CbCplus, joint CbCr_offset_modeB.
- the information related to the ACT QP offset is signaled in the PPS: a base (such as 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), ACT QP offset (e: PpsActQpOffsetY, PpsActQpOffsetCb, PpsActQpOffsetCr, PpsActQpOffsetCbCrModeA, PpsActQpOffsetCbCrModeB) A value can be derived. Based on the ACT QP offset value derived as described above, quantization parameter values qP for luma, Cb, Cr components and joint CbCr may be derived as in the
- the ACT QP offset for the joint CbCr may be derived based on PpsActQpOffsetY, PpsActQpOffsetCb, and/or PpsActQpOffsetCr.
- the ACT QP offset for the joint CbCr may be set equal to PpsActQpOffsetCb.
- the offset may be set with PpsActQpOffsetCr.
- Table 22 below shows an example of a syntax table for signaling only information related to ACT QP offsets for Y, Cb, and Cr in PPS.
- pps_act_qp_offsets_present_flag syntax element may be parsed/signaled in the PPS.
- pps_act_qp_offsets_present_flag may be information indicating whether information related to the ACT QP offset exists 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 does not exist in the PPS. .
- the information related to the ACT QP offset may be parsed/signaled in the PPS.
- the 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, pps_act_cr_qp_offset_plusX3 may be used to determine an offset applied to a quantization parameter value qP for luma, Cb, Cr components and joint CbCr.
- the ACT QP offset (eg, PpsActCpsOffsetQpOffsetQpActQpOffsetQpActQpOffsetQpOffsetQpOffset)
- quantization parameter values qP for luma, Cb, Cr components and joint CbCr may be derived as in the algorithm of Table 23 below.
- the ACT QP offset is signaled at multiple levels.
- the ACT QP offset may be signaled at one level such as the PPS, and the ACT QP offset at a lower level such as a slice header, a picture header, or other suitable header to allow finer QP control. It can also be signaled.
- ACT QP offset related information may be signaled through multiple levels (ie, PPS and slice header), and may be signaled as shown in the syntax tables of Tables 24 and 25 below.
- a slice header is proposed as an example of a lower level, but this is only an example, and ACT QP offset related information may be signaled through a picture header (PH) or another header in a similar manner.
- Table 26 below shows semantics of syntax elements included in the syntax tables of Tables 24 and 25.
- the pps_act_qp_offsets_present_flag syntax element may be parsed/signaled at a higher level (eg, PPS).
- pps_act_qp_offsets_present_flag may be information indicating whether information related to the ACT QP offset exists in a lower level (eg, a slice header). 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 exists at a lower level (eg, slice header), and when the value of pps_act_qp_offsets_present_flag is 0, it is located at a lower level (eg, slice header). It may indicate that information related to the ACT QP offset does not exist.
- information related to an ACT QP offset may be parsed/signaled at a lower level (eg, slice header).
- the information related to the ACT QP offset may include syntax elements slice_act_y_qp_offset, slice_act_cb_qp_offset, slice_act_cr_qp_offset, and slice_act_cbcr_qp_offset.
- the above-described embodiments 1) signal one ACT QP offset for joint CbCr or 2) multiple ACT QP offsets for other modes of joint CbCr or 3) without signaling the ACT QP offset for the joint CbCr, the method of deriving the ACT QP offset for the joint CbCr is applied based on the ACT QP offset (ACTQpOffset) of the Y, Cb, Cr and/or joint CbCr mode You may.
- pps_act_qp_offsets_present_flag may be signaled in the PPS, and ACT QP offset related information may be signaled in the slice header based on the pps_act_qp_offsets_present_flag.
- Table 27 is a syntax table showing an example of signaling a plurality of ACT QP offsets in a slice header for the above-described 2) other modes of joint CbCr, and Table 28 below shows the above-mentioned 3) ACT QP offsets for joint CbCr
- This is a syntax table showing an example of a method of deriving the ACT QP offset for the joint CbCr based on the ACT QP offset (ACTQpOffset) of the Y, Cb, Cr and/or joint CbCr mode without signaling.
- the ACT QP offsets of Y, Cb, and Cr are signaled, and the ACT QP offset at the slice level for the joint CbCr may be derived based on slice_act_y_qp_offset, slice_act_cb_qp_offset and/or slice_act_cr_qp_offset. It may also vary depending on the mode type of the joint CbCr. For example, the ACT QP offset (QpOffset) at the slice level for CbCr may be set equal to slice_act_cb_qp_offset. Or, for example, if the joint CbCr mode is tu_cbf_cb!
- the ACT QP offset at the slice level for k may be set as slice_act_cr_qp_offset.
- one of a slice header or a picture header may signal ACT QP offset related information. This method can be applied as follows.
- a flag (eg, referred to as pps_picture_slice_act_qp_offsets_present_flag) may be signaled in the PPS, and the pps_picture_slice_act_qp_offsets_present_flag may indicate whether an ACT QP offset may be present in either a picture header or a slice header.
- a flag (eg, referred to as pic_act_qp_offsets_present_flag) may be signaled in the picture header.
- the pic_act_qp_offsets_present_flag may indicate whether the ACT QP offset is present in the picture header.
- ACT QP offsets for all slices of the picture associated with the picture header may be present in the picture header.
- the ACT QP offset for the slice may be present in the slice header.
- 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 shown in the syntax tables of Tables 29 to 31 below.
- Table 32 shows the semantics of the syntax elements included in the syntax table of Table 29
- Table 33 shows the semantics of the syntax elements included in the syntax table of Table 30
- Table 34 shows The semantics of the syntax elements included in the syntax table of Table 31 are shown.
- the final offset used to derive the qP value is the offset derived by the sum of the offset signaled in the PPS and the slice header/picture header.
- the final offset (ActQpOffset) used to derive the qP value may be derived as in the algorithms of Tables 35 to 37 below.
- the ACT QP offsets (ActQpOffset) for the joint CbCr may be set as in the algorithm of Table 36 below.
- the joint CbCr mode is The ACT QP offset (ActQpOffset) may be set as in the algorithm of Table 37 below.
- an embodiment of the present document proposes a method of having a list of ACT QP offsets. This method can be applied as follows.
- ACT QP offset sets may be signaled as a list in a parameter set (eg, SPS or PPS). Each set in the list may contain ACT QP offsets for Y, Cb, Cr and joint CbCr components.
- the ACT QP offset list may be signaled in the same parameter set as the signaling of the chroma QP offset list.
- the number of ACT QP offsets set in the list may be the same as the number of chroma QP offset sets signaled in the PPS.
- the ACT QP offset used may be one offset indicated by an index (ie, cu_chroma_qp_offset_idx) to the CU chroma QP offset in the list.
- 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.
- an index for indicating the index of the AQT QP offset used for the CU may be signaled.
- Table 39 below shows semantics of syntax elements included in the syntax table of Table 38.
- Table 40 shows an example of an algorithm for deriving the final offset (ActQpOffset) used to derive the qP value for each component based on the syntax elements related to the ACT QP offset signaled in Table 39 above.
- ACT uses reversible color conversion to support both lossless and lossy coding.
- This reversible color conversion can replace the existing lossy color conversion of current VVC.
- the ACT QP offset can also be adjusted to match the color conversion.
- the reversible color conversion may be as shown in Table 41 below.
- the transformation is a reversible (full restoration support) YCgCo-R color transformation, where R represents reversibility.
- This YCgCo-R conversion increases the bit depths of Cg and Co by one.
- Other forms of reversible transformation may also be used.
- ACT QP offsets for Y, Cg, and Co must be adjusted to compensate for the dynamic range changes due to color conversion.
- ACT QP offsets (-5, -5, -5) are used for Y, Cg, and Co.
- an ACT QP offset value other than (-5, -5, -5) may be defined.
- ACT QP offsets (-5, 1, 3) for Y, Cg, and Co may be used.
- the ACT QP offset may be signaled as in the embodiments described in Tables 16 to 36 above.
- ACT can be utilized for lossless coding that can obtain coding performance of 5% or more.
- Table 43 below shows a part of the VVC specification including the unified ACT matrix, and is modified to implement the above-described embodiment.
- an embodiment of this document proposes a method for enabling one or more color conversions to be used in ACT.
- the color conversion to be used may vary according to flag(s) signaled through the bitstream.
- the flag(s) may be signaled at multiple levels or granularity including SPS, PPS, picture header and slice.
- a flag may be signaled to indicate which ACT is to be applied. For example, when the flag is 1, reversible color conversion-based ACT may be applied. When the flag is 0, the irreversible color conversion-based ACT may be applied.
- a flag specifying ACT may be signaled to indicate color conversion to be used.
- an example of a syntax element signaled by the SPS may be as shown in Table 44 below.
- Table 45 shows semantics of syntax elements included in the syntax table of Table 44.
- the decoder can perform inverse conversion from YCgCo to GBR, which is as shown in Table 46 and Table 47 below. It can be implemented in pseudo code.
- Table 49 below shows an example of inverse conversion from YCgCo to GBR.
- a flag for indicating the ACT transformation to be used may be used as shown in Table 50 below.
- Table 50 below shows an example of signaling a flag (eg, actShiftFlag) for indicating which ACT transformation to use in the SPS.
- Table 51 below shows semantics of syntax elements included in the syntax table of Table 50.
- the decoder may perform inverse transformation from YCgCo to GBR based on the flag actShiftFlag, which may be implemented as a pseudo code as shown in Table 52 below.
- an embodiment of this document proposes a method for enabling one or more color conversions to be used in ACT.
- the color conversion type to be used may be inferred from other information signaled through the bitstream.
- ACT transformations including a reversible ACT transformation and an irreversible ACT transformation
- the ACT transform type can 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 transformation can be used.
- the two ACT transformation types may be implemented with pseudo codes as shown in Tables 53 and 54 below.
- the ACT transformation type may vary according to the QP value. If the QP value is less than or equal to a threshold value (eg QpPrimeTsMin), a reversible ACT transformation may be used. Otherwise, an irreversible ACT transformation can be used.
- a threshold value eg QpPrimeTsMin
- a method of clipping the QP derived based on the ACT QP offset of each color component has been proposed. More specifically, the proposed method assumes that QP including Qp' Y , Qp' CbCr , Qp' Cb , and Qp' Cr has already been derived. And, modify the derived QP (Qp' Y , Qp' CbCr , Qp' Cb , Qp' Cr ) based on the ACT QP offset, so that the modified QP for transform coefficient scaling does not go out of range Add the necessary clipping process to do this.
- an embodiment of the present document proposes a method of integrating the ACT QP offset into a QP derivation process for deriving Qp' Y , Qp' CbCr , Qp' Cb , and Qp' Cr . Since the QP derivation process already includes clipping steps to prevent the derived QP from going out of range, integrating the ACT QP offset into the QP derivation process can ensure that the final QP does not go out of range, and additional clipping steps It is possible to prevent these problems and simplify the entire QP derivation process for the transform coefficient scaling process.
- the ACT QP offset may be defined as a constant or signaled.
- the ACT QP offset for each color component Y, Cb, Cr, and CbCr may be expressed as ppsActQpOffsetY, ppsActQpOffsetCb, ppsActQpOffsetCr, ppsActQpOffsetCbCr as shown in Table 55 below.
- the ACT QP offset for each color component Y, Cb, Cr and CbCr can be a constant or variable ranging from -M to +N, where M and N are, for example, 12 for lossy and 0 for lossless.
- M and N are, for example, 12 for lossy and 0 for lossless.
- ppsActQpOffsetCbCr may be set to ppsActQpOffsetCb and ppsActQpOffsetCr according to the joint CbCr mode.
- the above-described ACT QP offset-based QP derivation process may be implemented as shown in Table 55 below.
- Table 55 shows an example of applying the above-described embodiment to a derivation process for a quantization parameter and a scaling process for a transform coefficient in the specification of VVC.
- the residual maintained in the intermediate decoding process is made to be within the dynamic range of a 16-bit signed integer.
- the input residual for the inverse ACT transform is clipped according to the inner coding bit depth as shown in Equation 4 below.
- the clipping as in Equation 4 may cause a problem in the reversible ACT transformation. Because the reversible ACT transformation increases the bit depth of the Cg and Co components by 1, a problem may occur when clipping in the range of (-( 1 ⁇ BitDepth ), ( 1 ⁇ BitDepth ) -1).
- an embodiment of the present document proposes a clipping range of the ACT residual in order to solve a problem that may occur in the clipping process of the ACT residual as described above.
- the ACT residual may refer to a residual derived by applying color space conversion to a residual of a current block (ie, a current coding unit) when ACT is enabled.
- the clipping range of the ACT residual may be increased to BitDepth+1. That is, the ACT residual sample may be derived based on the clipping range in which the bit depth is increased by 1.
- Table 56 shows an example of a process of deriving a residual sample for each color component based on a clipping range in which the bit depth is increased by 1.
- clipping may be applied to the residual sample to which ACT is applied to have a value within a specific range, and in this case, the clipping range may be determined based on the bit depth.
- the clipping range may be determined as a range between a minimum value and a maximum value for clipping, and may be determined based on a value of BitDepth+1.
- the clipping range may be determined based on a value (or variable) ACTClipBitDepth used to designate the clipping range, and the ACTClipBitDepth may be determined to be a smaller value among (BitDepth+1) and 16.
- the clipping range (ie, the minimum and maximum values) may be determined as (-( 1 ⁇ ACTClipBitDepth), ( 1 ⁇ ACTClipBitDepth) - 1) ).
- Clipping may be applied to the residual samples r Y , r Cb , and r Cr for each color component based on the determined clipping range.
- the ACT residual sample may be finally corrected based on the clipped residual samples r Y , r Cb , and r Cr for each color component.
- the ACT residual sample may be clipped based on a clipping range (eg, actClipRange). That is, in Table 57, the clipping range used to derive the ACT residual sample may be represented by actClipRange derived based on the value of BitDepth+1. For example, a value (or variable) actClipRange used to designate a clipping range may be derived as 1 ⁇ (BitDepth+1)-1. In this case, the clipping range (ie, the minimum value and the maximum value) may be determined as ( -actClipRange, actClipRange ).
- a clipping range eg, actClipRange
- Clipping may be applied to the residual samples r Y , r Cb , and r Cr for each color component based on the determined clipping range.
- the ACT residual sample may be finally corrected based on the clipped residual samples r Y , r Cb , and r Cr for each color component.
- a process of deriving a residual sample for each color component based on a clipping range in which the bit depth is increased by 1 may be shown in Table 58 below.
- clipping may be applied to the residual sample to which ACT is applied to have a value within a specific range, and in this case, the clipping range may be determined based on a value obtained by increasing the bit depth by 1.
- the clipping range may be determined as a range between a minimum value and a maximum value for clipping, and may be determined based on a value of BitDepth+1.
- the clipping range may be determined based on a value (or variable) ACTClipBitDepth used to designate the clipping range, and the ACTClipBitDepth may be derived as a value of BitDepth+1.
- the clipping range (ie, the minimum value and the maximum value) may be determined as (-( 1 ⁇ ACTClipBitDepth), ( 1 ⁇ ACTClipBitDepth) ).
- the ACTClipBitDepth may be clipped within a specific range (eg, 16) or may be a value derived based on min(BitDepth+1, 16). Clipping may be applied to the residual samples r Y , r Cb , and r Cr for each color component based on the clipping range determined as described above.
- the ACT residual sample may be finally corrected based on the clipped residual samples r Y , r Cb , and r Cr for each color component.
- the ACT residual sample may be clipped based on a clipping range (eg, actClipRange). That is, in Table 59, the clipping range used to derive the ACT residual sample may be represented by actClipRange derived based on the value of BitDepth+1. For example, a value (or variable) actClipRange used to designate a clipping range may be derived as 1 ⁇ (BitDepth+1). In this case, the clipping range (ie, the minimum value and the maximum value) may be determined as ( -actClipRange, actClipRange-1 ).
- a clipping range eg, actClipRange
- Clipping may be applied to the residual samples r Y , r Cb , and r Cr for each color component based on the determined clipping range.
- the ACT residual sample may be finally corrected based on the clipped residual samples r Y , r Cb , and r Cr for each color component.
- the clipping range of the ACT residual may be fixed to 16 bits. This not only ensures that the ACT residual is within the dynamic range of 16 bits, but can also ensure safety against lossless coding in which the internal bit depth is not properly set.
- Table 60 shows an example of a process of deriving residual samples for each color component based on a fixed clipping range of 16 bits.
- clipping may be applied to residual samples to which ACT is applied to have a value within a specific range, and in this case, the clipping range may be determined based on a fixed bit depth.
- the fixed bit depth may be set to 16 bits, which may be an internal bit depth used in a coding system.
- the clipping range (ie, the range between the minimum and maximum values for clipping) may be determined as (-( 1 ⁇ 16), ( 1 ⁇ 16) ).
- Clipping may be applied to the residual samples r Y , r Cb , and r Cr for each color component based on the determined clipping range.
- the ACT residual sample may be finally corrected based on the clipped residual samples r Y , r Cb , and r Cr for each color component.
- the ACT residual sample may be clipped by a clipping range determined based on a fixed bit depth.
- the fixed bit depth may be determined as 16 bits, and in this case, the clipping range (ie, the range between the minimum and maximum values for clipping) may be determined as (-65536, 65535 ).
- Clipping may be applied to the residual samples r Y , r Cb , and r Cr for each color component based on the clipping range determined as described above.
- the ACT residual sample may be finally corrected based on the clipped residual samples r Y , r Cb , and r Cr for each color component.
- the clipping range of the ACT residual may be set differently for the luma and chroma components. That is, the clipping range applied to the ACT residual sample for the luma component and the ACT residual sample for the chroma component may have different dynamic ranges. For example, in the case of the ACT residual for 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 for the luma component, an unchanged clipping range may be used.
- Table 62 shows an example of a process in which the luma component is clipped based on the clipping range in which the bit depth value is not changed, and the chroma component is clipped based on the clipping range in which the bit depth is increased by 1. will be.
- the ACT residual sample may be clipped by applying different clipping ranges to the luma component and the chroma component, respectively.
- a clipping range may be derived based on a value of a bit depth (eg, BitDepth)
- an ACT residual of a chroma component eg, r Cb , r Cr
- the clipping range may be derived based on a value obtained by increasing the bit depth by 1 (eg, BitDepth+1).
- the ACTClipBitDepthLuma variable can be used to specify the clipping range of the ACT residual of the luma component (eg, r Y ), and in order to specify the clipping range of the ACT residual of the chroma component (eg, r Cb , r Cr ) You can use the ACTClipBitDepthChroma variable.
- the clipping range used for the luma component may be determined as ( -( 1 ⁇ ACTClipBitDepthLuma), ( 1 ⁇ ACTClipBitDepthLuma) - 1 ), and the clipping range used for the chroma component is ( -( 1 ⁇ ACTClipBitDepthChroma) ), ( 1 ⁇ ACTClipBitDepthChroma) - 1 ).
- the clipping range ACTClipBitDepthChroma used for the chroma component may be clipped within a specific range (eg, 16) or may be a value derived based on min(BitDepth+1, 16).
- Clipping may be applied to the residual samples r Y , r Cb , and r Cr for each color component based on the clipping range determined as described above.
- the ACT residual sample may be finally corrected based on the clipped residual samples r Y , r Cb , and r Cr for each color component.
- the ACT residual sample may be clipped by applying different clipping ranges to the luma component and the chroma component, respectively.
- a clipping range may be derived based on a value of a bit depth (eg, BitDepth)
- an ACT residual of a chroma component eg, r Cb , r Cr
- the clipping range may be derived based on a value obtained by increasing the bit depth by 1 (eg, BitDepth+1).
- the clipping range used for the luma component may be determined as ( - (BitDepth ⁇ 1), (BitDepth ⁇ 1)-1 ), and the clipping range used for the chroma component is ( -((BitDepth+ 1) ⁇ 1), ((BitDepth+1) ⁇ 1)-1 ) may be determined.
- Clipping may be applied to the residual samples r Y , r Cb , and r Cr for each color component based on the clipping range determined as described above.
- the ACT residual sample may be finally corrected based on the clipped residual samples r Y , r Cb , and r Cr for each color component.
- the method disclosed in FIG. 12 may be performed by the encoding apparatus 200 illustrated in FIG. 2 or 13 .
- the encoding apparatus 200 disclosed in FIG. 13 is a simplified representation of the encoding apparatus 200 illustrated in FIG. 2 .
- steps S1200 to S1210 of FIG. 12 may be performed by the residual processing unit 230 illustrated in FIG. 2
- step S1220 of FIG. 12 may be performed by the entropy encoding unit 240 illustrated in FIG. 2 .
- the process of deriving the prediction sample may be performed by the prediction unit 220 of the encoding apparatus 200, and the current block based on the residual sample and the prediction sample for the current block.
- the process of generating the reconstructed sample and the reconstructed picture for n may be performed by the adder 250 of the encoding apparatus 200, and the encoding of the prediction information for the current block is performed by the encoding apparatus 200. This may be performed by the entropy encoding unit 240 . Also, the method disclosed in FIG. 12 may be performed including the embodiments described above in this document. Accordingly, in FIG. 12 , a detailed description of content overlapping with the above-described embodiments will be omitted or simplified.
- the encoding apparatus may derive a residual sample for the current block ( S1200 ).
- the encoding apparatus may derive a residual block (residual sample) based on a predicted block (prediction sample) derived through prediction. For example, first, the encoding apparatus may determine a prediction mode for the current block and derive prediction samples. The encoding apparatus may determine whether to perform inter prediction or intra prediction on the current block, and may determine a specific inter prediction mode or a specific intra prediction mode based on the RD cost. The encoding apparatus may perform prediction according to the determined prediction mode to derive prediction samples for the current block. In this case, various prediction methods disclosed in this document, such as inter prediction or intra prediction, may be applied. Also, the encoding apparatus may generate and encode information related to prediction applied to the current block (eg, prediction mode information). In addition, the encoding apparatus may derive residual samples by comparing original samples and prediction samples for the current block.
- prediction mode information related to prediction applied to the current block.
- the encoding apparatus may determine whether to apply adaptive color transform (ACT) to the residual sample derived as described above.
- the encoding device may generate ACT-related information according to the determination.
- the ACT-related information may include information on whether to apply the ACT to the current block.
- the information on whether to apply the ACT to the current block may be the above-described cu_act_enabled_flag syntax element, and may be included in the coding unit syntax and signaled.
- cu_act_enabled_flag when the value of cu_act_enabled_flag is 1, it may indicate that ACT is applied to the current block (ie, the residual of the current block), which indicates coding in the YCgCo color space.
- the value of cu_act_enabled_flag is 0, it may indicate that the ACT is not applied to the current block (ie, the residual of the current block), which indicates that it is coded in the original color space.
- ACT refers to a method of deriving a residual using color space conversion, for example, a method of adaptively converting a residual from one color space to a YCgCo color space as described above. can represent
- the ACT-related information may further include information on whether the ACT is available.
- the information on whether the ACT is available may be the above-described sps_act_enabled_flag syntax element, and may be included in a sequence parameter set (SPS) and signaled.
- SPS sequence parameter set
- the value of sps_act_enabled_flag 1
- it may indicate that the ACT is available and in this case, information indicating whether to apply the ACT to the current block (ie, the residual of the current block) in the coding unit syntax may be present.
- the value of sps_act_enabled_flag is 0, it may indicate that ACT is not available. In this case, information indicating whether to apply the ACT to the current block (ie, the residual of the current block) in the coding unit syntax may not exist.
- the ACT in the current block ie, the residual of the current block
- Information eg, cu_act_enabled_flag
- the ACT is applied to the current block (that is, the residual of the current block) through the coding unit syntax.
- Information indicating whether or not (eg, cu_act_enabled_flag) may not be signaled/parsed.
- the encoding device may determine whether to apply the 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.
- ACT-related information eg, cu_act_enabled_flag, sps_act_enabled_flag, etc.
- the encoding apparatus may apply the ACT to the residual sample of the current block based on the above ACT-related information (ie, ACT-related information on applying the ACT). For example, if the value of information (eg, cu_act_enabled_flag) indicating whether to apply the ACT to the current block (ie, the residual of the current block) is 1, the encoding device applies the ACT to the residual sample of the current block can do.
- the residual sample may include a luma residual sample for a luma component, a Cb chroma residual sample for a Cb chroma component, and a Cr chroma residual sample for a Cr chroma component.
- the encoding device performs clipping on the residual sample for each color component, applies ACT based on the clipped residual sample for each color component, and finally derives a corrected residual sample for each color component.
- the encoding device is a luma residual sample for the luma component of the current block, the Cb chroma residual sample for the Cb chroma component of the current block, and the Cr chroma residual sample for the Cr chroma component of the current block.
- clipping can be performed based on the clipping range.
- the encoding device applies an ACT based on the clipped luma residual sample, the clipped Cb chroma residual sample, and the clipped Cr chroma residual sample to apply a modified luma residual sample, a modified Cb chroma residual sample , and a modified Cr chroma residual sample.
- ACT derives a residual using color space conversion, for example, adaptively converts a residual from one color space to a YCgCo color space.
- any one of the methods of ACT color conversion disclosed in Tables 41 to 54 may be applied.
- a detailed description of applying the ACT to the residual sample will be omitted.
- the encoding apparatus determines a clipping range based on a bit depth, and for the residual sample to have a value within the determined clipping range. Clipping can be done.
- 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.
- the minimum value of the clipping range is a value derived by -( 1 ⁇ ( BitDepth + 1 )
- the maximum value of the clipping range may be a value derived by ( 1 ⁇ ( BitDepth + 1 ) ) - 1 .
- clipping may be performed on the residual samples r Y , r Cb , and r Cr of each color component based on the clipping range.
- a (corrected) residual sample to which the ACT is finally applied may be derived based on the clipped residual samples (r Y , r Cb , r Cr ) for each color component.
- the clipping range may have a value between a minimum value and a maximum value derived based on a smaller value among a value obtained by increasing the bit depth by 1 and a value of 16.
- clipping may be performed on the residual samples r Y , r Cb , and r Cr of each color component based on the clipping range.
- a (corrected) residual sample to which the ACT is finally applied may be derived based on the clipped residual samples (r Y , r Cb , r Cr ) for each color component.
- the clipping range may be determined based on a fixed bit depth.
- the fixed bit depth may be 16 bits.
- the clipping range may be in the range of -( 1 ⁇ 16) to (1 ⁇ 16) -1, or in the range of -65536 to 65535.
- clipping may be performed on the residual samples r Y , r Cb , and r Cr of each color component based on the clipping range.
- a (corrected) residual sample to which the ACT is finally applied may be derived based on the clipped residual samples (r Y , r Cb , r Cr ) for each color component.
- the clipping range may include clipping ranges for the luma component and the chroma component, and different clipping ranges may be set for the luma component and the chroma component, respectively.
- the clipping range for the luma component may have a range from -( 1 ⁇ BitDepth) to ( 1 ⁇ BitDepth) - 1, which is derived based on the value of the bit depth
- the clipping range for the chroma component may have a range of -( 1 ⁇ (BitDepth + 1)) to ( 1 ⁇ (BitDepth + 1)) - 1 derived based on a value obtained by increasing the bit depth by 1.
- clipping may be performed on the residual samples (r Y , r Cb , r Cr ) of each color component based on the clipping ranges for the luma component and the chroma component.
- a (corrected) residual sample to which the ACT is finally applied may be derived based on the clipped residual samples (r Y , r Cb , r Cr ) for each color component.
- the encoding apparatus may generate residual information based on the residual sample (S1210).
- the residual information is information generated through a transform and/or quantization procedure with respect to a residual sample, and may be information on quantized transform coefficients, for example, value information of the quantized transform coefficients, location information, a transform technique, and a transform kernel. , quantization parameters, and the like.
- the encoding apparatus may derive transform coefficients through a transform procedure for residual samples, and quantize the derived transform coefficients to derive quantized transform coefficients.
- the encoding apparatus may determine whether to apply the transform to the current block in consideration of coding efficiency. That is, the encoding apparatus may determine whether a transform is applied to the residual samples. For example, when no transform is applied to the residual samples, the encoding apparatus may derive the residual samples as transform coefficients. Alternatively, when transform is applied to the residual samples, the encoding apparatus may derive transform coefficients by performing transform on the residual samples.
- the residual sample may refer to a residual sample modified by applying ACT as described above.
- the encoding apparatus may encode image information (or video information) ( S1220 ).
- the image information may include the ACT-related information.
- the image information may include residual information.
- the image information may include information related to the prediction (eg, prediction mode information) used to derive the prediction samples. That is, the image information may include various information derived from an encoding process, and may be encoded by including such various information.
- the encoding apparatus may encode image information including at least one of the ACT-related information, the residual information, and the prediction mode information.
- Image information including various information as described above may be encoded and output in the form of a bitstream.
- the bitstream may be transmitted to the decoding device via a network or (digital) storage medium.
- the network may include a broadcasting network and/or a communication network
- the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD.
- the method disclosed in FIG. 14 may be performed by the decoding apparatus 300 illustrated in FIG. 3 or 15 .
- the decoding apparatus 300 illustrated in FIG. 15 is a simplified diagram of the decoding apparatus 300 illustrated in FIG. 3 .
- step S1400 of FIG. 14 may be performed by the entropy decoding unit 310 illustrated in FIG. 3
- step S1410 of FIG. 14 may be performed by the residual processing unit 320 illustrated in FIG. 3
- FIG. Step S1420 of 14 may be performed by the addition unit 340 illustrated in FIG. 3 .
- the process of receiving the prediction information for the current block may be performed by the entropy decoding unit 310 of the decoding apparatus 300, and the process of deriving the prediction sample of the current block is the decoding This may be performed by the prediction unit 330 of the device 300 .
- the method disclosed in FIG. 14 may be performed including the embodiments described above in this document. Accordingly, in FIG. 14 , a detailed description of the content overlapping with the above-described embodiments will be omitted or simplified.
- the decoding apparatus may receive image information (or video information) from a bitstream ( S1400 ).
- the decoding apparatus may derive information (eg, video/image information) required for image restoration (or picture restoration) by parsing the bitstream.
- the image information may include residual information, and the residual information may include information such as value information of quantized transform coefficients, location information, a transform technique, a transform kernel, and a quantization parameter.
- the image information may include information related to prediction (eg, prediction mode information).
- 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.
- the decoding apparatus may obtain image information including at least one of prediction mode information, residual information, and ACT-related information from a bitstream.
- the decoding apparatus may derive a residual sample for the current block based on the residual information (S1410).
- the decoding apparatus may acquire residual information included in image information.
- the residual information may include information such as value information of the transform coefficients quantized as described above, location information, a transform technique, a transform kernel, and a quantization parameter.
- the decoding apparatus may derive quantized transform coefficients for the current block based on quantized transform coefficient information included in the residual information.
- the decoding apparatus may derive transform coefficients by applying an inverse quantization process to the quantized transform coefficients, and may perform inverse transform on the transform coefficients to derive residual samples of the current block.
- the decoding apparatus may obtain information indicating whether to apply inverse transform to the current block (ie, transform skip flag information), and derive residual samples based on this information (ie, transform skip flag information). .
- the decoding apparatus may derive the transform coefficients as residual samples of the current block.
- the decoding apparatus may inverse transform the transform coefficients to derive residual samples of the current block.
- the decoding apparatus may determine whether to apply the ACT to the residual sample derived as described above. That is, the decoding apparatus may obtain image information including the ACT-related information from the bitstream, and determine whether to apply the ACT to the residual sample of the current block based on the ACT-related information.
- the ACT-related information may include information on whether to apply the ACT to the current block.
- the information on whether to apply the ACT to the current block may be the above-described cu_act_enabled_flag syntax element, and may be included in the coding unit syntax and signaled.
- cu_act_enabled_flag when the value of cu_act_enabled_flag is 1, it may indicate that ACT is applied to the current block (ie, the residual of the current block), which indicates coding in the YCgCo color space.
- the value of cu_act_enabled_flag is 0, it may indicate that the ACT is not applied to the current block (ie, the residual of the current block), which indicates that it is coded in the original color space.
- ACT refers to a method of deriving a residual using color space conversion, for example, a method of adaptively converting a residual from one color space to a YCgCo color space as described above. can represent
- the ACT-related information may further include information on whether the ACT is available.
- the information on whether the ACT is available may be the above-described sps_act_enabled_flag syntax element, and may be included in a sequence parameter set (SPS) and signaled.
- SPS sequence parameter set
- the value of sps_act_enabled_flag 1
- it may indicate that the ACT is available and in this case, information indicating whether to apply the ACT to the current block (ie, the residual of the current block) in the coding unit syntax may be present.
- the value of sps_act_enabled_flag is 0, it may indicate that ACT is not available. In this case, information indicating whether to apply the ACT to the current block (ie, the residual of the current block) in the coding unit syntax may not exist.
- the ACT in the current block ie, the residual of the current block
- Information eg, cu_act_enabled_flag
- the ACT is applied to the current block (that is, the residual of the current block) through the coding unit syntax.
- Information indicating whether or not (eg, cu_act_enabled_flag) may not be signaled/parsed.
- the decoding apparatus may apply the ACT to the residual sample of the current block based on the above ACT-related information (ie, ACT-related information on applying the ACT). For example, if the value of information (eg, cu_act_enabled_flag) indicating whether to apply ACT to the current block (ie, the residual of the current block) is 1, the decoding device applies the ACT to the residual sample of the current block can do.
- the residual sample may include a luma residual sample for a luma component, a Cb chroma residual sample for a Cb chroma component, and a Cr chroma residual sample for a Cr chroma component.
- the decoding device performs clipping on the residual sample for each color component, applies ACT based on the clipped residual sample for each color component, and finally derives the corrected residual sample for each color component.
- the decoding apparatus is configured to include a luma residual sample for the luma component of the current block, a Cb chroma residual sample for the Cb chroma component of the current block, and a Cr chroma residual sample for the Cr chroma component of the current block clipping can be performed based on the clipping range.
- the decoding apparatus applies ACT based on the clipped luma residual sample, the clipped Cb chroma residual sample, and the clipped Cr chroma residual sample to apply a modified luma residual sample, a modified Cb chroma residual sample , and a modified Cr chroma residual sample.
- ACT derives a residual using color space conversion, for example, adaptively converts a residual from one color space to a YCgCo color space.
- any one of the methods of ACT color conversion disclosed in Tables 41 to 54 may be applied.
- a detailed description of applying the ACT to the residual sample will be omitted.
- the decoding apparatus determines a clipping range based on a bit depth, and for the residual sample to have a value within the determined clipping range. Clipping can be done.
- 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.
- the minimum value of the clipping range is a value derived by -( 1 ⁇ ( BitDepth + 1 )
- the maximum value of the clipping range may be a value derived by ( 1 ⁇ ( BitDepth + 1 ) ) - 1 .
- clipping may be performed on the residual samples r Y , r Cb , and r Cr of each color component based on the clipping range.
- a (corrected) residual sample to which the ACT is finally applied may be derived based on the clipped residual samples (r Y , r Cb , r Cr ) for each color component.
- the clipping range may have a value between a minimum value and a maximum value derived based on a smaller value among a value obtained by increasing the bit depth by 1 and a value of 16.
- clipping may be performed on the residual samples r Y , r Cb , and r Cr of each color component based on the clipping range.
- a (corrected) residual sample to which the ACT is finally applied may be derived based on the clipped residual samples (r Y , r Cb , r Cr ) for each color component.
- the clipping range may be determined based on a fixed bit depth.
- the fixed bit depth may be 16 bits.
- the clipping range may be in the range of -( 1 ⁇ 16) to (1 ⁇ 16) -1, or in the range of -65536 to 65535.
- clipping may be performed on the residual samples r Y , r Cb , and r Cr of each color component based on the clipping range.
- a (corrected) residual sample to which the ACT is finally applied may be derived based on the clipped residual samples (r Y , r Cb , r Cr ) for each color component.
- the clipping range may include clipping ranges for the luma component and the chroma component, and different clipping ranges may be set for the luma component and the chroma component, respectively.
- the clipping range for the luma component may have a range from -( 1 ⁇ BitDepth) to ( 1 ⁇ BitDepth) - 1, which is derived based on the value of the bit depth
- the clipping range for the chroma component may have a range of -( 1 ⁇ (BitDepth + 1)) to ( 1 ⁇ (BitDepth + 1)) - 1 derived based on a value obtained by increasing the bit depth by 1.
- clipping may be performed on the residual samples (r Y , r Cb , r Cr ) of each color component based on the clipping ranges for the luma component and the chroma component.
- a (corrected) residual sample to which the ACT is finally applied may be derived based on the clipped residual samples (r Y , r Cb , r Cr ) for each color component.
- the decoding apparatus may generate a reconstructed sample based on the residual sample (S1420).
- the residual sample may refer to a residual sample modified by applying ACT as described above.
- the decoding apparatus may determine whether to perform inter prediction or intra prediction on the current block based on prediction information (eg, prediction mode information) included in image information, and according to the determination Prediction may be performed to derive prediction samples for the current block.
- Prediction may be performed to derive prediction samples for the current block.
- the decoding apparatus may generate reconstructed samples based on the prediction samples and the residual samples.
- the decoding apparatus may directly use the prediction samples as reconstructed samples according to the prediction mode, or may generate reconstructed samples by adding residual samples to the prediction samples.
- a reconstructed block or a reconstructed picture may be derived based on the reconstructed samples.
- the decoding apparatus may apply an in-loop filtering procedure such as deblocking filtering and/or SAO procedure to the reconstructed picture in order to improve subjective/objective picture quality if necessary.
- the above-described method according to this document may be implemented in the form of software, and the encoding device and/or decoding device according to this document is, for example, a TV, computer, smart phone, set-top box, or display device that performs image processing. may be included in the device.
- a module may be stored in a memory and executed by a processor.
- the memory may be internal or external to the processor, and may be coupled to the processor by various well-known means.
- the processor may include an application-specific integrated circuit (ASIC), other chipsets, logic circuits, and/or data processing devices.
- Memory may include read-only memory (ROM), random access memory (RAM), flash memory, memory cards, storage media, and/or other storage devices. That is, the embodiments described in this document may be implemented and performed on a processor, a microprocessor, a controller, or a chip.
- the functional units shown in each figure may be implemented and performed on a computer, a processor, a microprocessor, a controller, or a chip.
- information for implementation (ex. information on instructions) or an algorithm may be stored in a digital storage medium.
- the decoding device and the encoding device to which this document is applied are a multimedia broadcasting transceiver, mobile communication terminal, home cinema video device, digital cinema video device, surveillance camera, video conversation device, real-time communication device such as video communication, mobile streaming Device, storage medium, camcorder, video on demand (VoD) service providing device, over the top video (OTT) device, internet streaming service providing device, three-dimensional (3D) video device, VR (virtual reality) device, AR (argumente) reality) may be included in devices, video telephony video devices, transportation means (eg, vehicle (including autonomous vehicle) terminals, airplane terminals, ship terminals, etc.) and medical video devices, etc., and may be used to process video signals or data signals.
- transportation means eg, vehicle (including autonomous vehicle) terminals, airplane terminals, ship terminals, etc.
- medical video devices etc.
- the OTT video (Over the top 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, a digital video recorder (DVR), and the like.
- a game console a Blu-ray player
- an Internet-connected TV a home theater system
- a smart phone a tablet PC
- DVR digital video recorder
- the processing method to which the embodiment(s) of this document is applied may be produced 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 embodiment(s) of this document may also be stored in a computer-readable recording medium.
- the computer-readable recording medium includes all types of storage devices and distributed storage devices in which computer-readable data is stored.
- the computer-readable recording medium includes, for example, Blu-ray Disc (BD), Universal Serial Bus (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, magnetic tape, floppy disk and optical It may include a data storage device.
- the computer-readable recording medium includes a medium implemented in the form of a carrier wave (eg, transmission through the Internet).
- the bitstream generated by the encoding method may be stored in a computer-readable recording medium or transmitted through a wired/wireless communication network.
- embodiment(s) of this document may be implemented as a computer program product by program code, and the program code may be executed in a computer by the embodiment(s) of this document.
- the program code may be stored on a carrier readable by a computer.
- FIG. 16 shows an example of a content streaming system to which embodiments disclosed in this document can be applied.
- the content streaming system applied to the embodiments of the present document may largely include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.
- the encoding server compresses content input from multimedia input devices such as a smart phone, a camera, a camcorder, etc. into digital data to generate a bitstream and transmits it to the streaming server.
- multimedia input devices such as a smartphone, a camera, a camcorder, etc. directly generate a bitstream
- the encoding server may be omitted.
- the bitstream may be generated by an encoding method or a bitstream generation method applied to embodiments of this document, and the streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream .
- the streaming server transmits multimedia data to the user device based on a user's request through the web server, and the web server serves as a medium informing the user of any service.
- the web server transmits it to a streaming server, and the streaming server transmits multimedia data to the user.
- the content streaming system may include a separate control server.
- the control server serves to control commands/responses between devices in the content streaming system.
- the streaming server may receive content from a media repository and/or an encoding server. For example, when content is received from the encoding server, the content may be received in real time. In this case, in order to provide a smooth streaming service, the streaming server may store the bitstream for a predetermined time.
- Examples of the user device include a mobile phone, a smart phone, a laptop computer, a digital broadcasting terminal, a personal digital assistant (PDA), a portable multimedia player (PMP), a navigation system, a slate PC, Tablet PC (tablet PC), ultrabook (ultrabook), wearable device (e.g., watch-type terminal (smartwatch), glass-type terminal (smart glass), HMD (head mounted display)), digital TV, desktop There may be a computer, digital signage, and the like.
- PDA personal digital assistant
- PMP portable multimedia player
- PDA portable multimedia player
- slate PC slate PC
- Tablet PC Tablet PC
- ultrabook ultrabook
- wearable device e.g., watch-type terminal (smartwatch), glass-type terminal (smart glass), HMD (head mounted display)
- digital TV desktop
- desktop There may be a computer, digital signage, and the like.
- Each server in the content streaming system may be operated as a distributed server, and in this case, data received from each server may be distributed and processed.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 문서의 개시에 따르면, ACT (Adaptive Color Transform) 관련 정보를 기반으로 현재 블록에 대한 ACT를 적용하여 레지듀얼 샘플을 도출할 수 있고, 이때 레지듀얼 샘플은 클리핑 범위를 기반으로 클리핑되어 도출되고, 클리핑 범위는 비트 뎁스를 기반으로 결정되는 것을 특징으로 한다.
Description
본 기술은 비디오 또는 영상 코딩에 관한 것이며, 예를 들어 색상 공간 변환을 사용하는 레지듀얼을 위한 영상 또는 비디오 코딩 기술에 관한 것이다.
최근 4K 또는 8K 이상의 UHD(Ultra High Definition) 영상/비디오와 같은 고해상도, 고품질의 영상/비디오에 대한 수요가 다양한 분야에서 증가하고 있다. 영상/비디오 데이터가 고해상도, 고품질이 될수록 기존의 영상/비디오 데이터에 비해 상대적으로 전송되는 정보량 또는 비트량이 증가하기 때문에 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 데이터를 전송하거나 기존의 저장 매체를 이용해 영상/비디오 데이터를 저장하는 경우, 전송 비용과 저장 비용이 증가된다.
또한, 최근 VR(Virtual Reality), AR(Artificial Realtiy) 컨텐츠나 홀로그램 등의 실감 미디어(Immersive Media)에 대한 관심 및 수요가 증가하고 있으며, 게임 영상과 같이 현실 영상과 다른 영상 특성을 갖는 영상/비디오에 대한 방송이 증가하고 있다.
이에 따라, 상기와 같은 다양한 특성을 갖는 고해상도 고품질의 영상/비디오의 정보를 효과적으로 압축하여 전송하거나 저장하고, 재생하기 위해 고효율의 영상/비디오 압축 기술이 요구된다.
또한, 압축 효율을 향상시키고 주관적/객관적 비주얼 품질을 높이기 위하여 다수의 색상 공간 변환을 지원하기 위한 ACT (Adaptive Color Transform) 기술에 관한 논의가 있다. 이러한 기술을 효율적으로 적용하기 위한 다양한 방법 및 관련된 정보를 시그널링하는 방법이 필요하다.
본 문서의 기술적 과제는 비디오/영상 코딩 효율을 높이는 방법 및 장치를 제공함에 있다.
본 문서의 다른 기술적 과제는 코딩 과정에서 효율적으로 ACT를 적용하는 방법 및 장치를 제공함에 있다.
본 문서의 또 다른 기술적 과제는 ACT를 적용하는 과정에서 사용되는 레지듀얼에 대한 클리핑 범위를 효과적으로 구성하는 방법 및 장치를 제공함에 있다.
본 문서의 일 실시예에 따르면, ACT (Adaptive Color Transform) 관련 정보를 기반으로 레지듀얼 샘플에 대해 ACT를 적용할지 여부를 결정하고, 상기 ACT를 적용하여 수정된 레지듀얼 샘플을 도출할 수 있다. 이때, ACT가 적용되는 레지듀얼 샘플에 대해 클리핑 범위를 기반으로 클리핑이 수행되고, 상기 클리핑된 레지듀얼 샘플에 대해 ACT가 적용될 수 있다.
본 문서의 일 실시예에 따르면, 상기 클리핑 범위는 비트 뎁스에 1을 증가시킨 값을 기반으로 도출되는 최소값 및 최대값 사이의 값을 가질 수 있다. 또는, 상기 클리핑 범위는 비트 뎁스에 1을 증가시킨 값 및 16 중 작은 값을 기반으로 도출되는 최소값 및 최대값 사이의 값을 가질 수 있다. 또는, 상기 클리핑 범위는 고정된 비트 뎁스를 기반으로 결정될 수 있다. 또는, 상기 클리핑 범위는 루마 성분 및 크로마 성분에 대한 클리핑 범위를 다르게 설정할 수 있다.
본 문서의 일 실시예에 따르면, ACT 관련 정보는 ACT가 가용한지 여부에 관한 정보 및 레지듀얼 샘플에 대해 ACT를 적용할지 여부에 관한 정보를 포함할 수 있다. 예를 들어, SPS에 포함된 ACT가 가용한지 여부에 관한 정보를 기반으로, 레지듀얼 샘플에 대해 ACT를 적용할지 여부에 관한 정보가 코딩 유닛 신택스로부터 획득될 수 있다.
본 문서의 일 실시예에 따르면, 디코딩 장치에 의하여 수행되는 비디오/영상 디코딩 방법을 제공한다. 상기 비디오/영상 디코딩 방법은 본 문서의 실시예들에서 개시된 방법을 포함할 수 있다.
본 문서의 일 실시예에 따르면, 비디오/영상 디코딩을 수행하는 디코딩 장치를 제공한다. 상기 디코딩 장치는 본 문서의 실시예들에서 개시된 방법을 수행할 수 있다.
본 문서의 일 실시예에 따르면, 인코딩 장치에 의하여 수행되는 비디오/영상 인코딩 방법을 제공한다. 상기 비디오/영상 인코딩 방법은 본 문서의 실시예들에서 개시된 방법을 포함할 수 있다.
본 문서의 일 실시예에 따르면, 비디오/영상 인코딩을 수행하는 인코딩 장치를 제공한다. 상기 인코딩 장치는 본 문서의 실시예들에서 개시된 방법을 수행할 수 있다.
본 문서의 일 실시예에 따르면, 본 문서의 실시예들 중 적어도 하나에 개시된 비디오/영상 인코딩 방법에 따라 생성된 인코딩된 비디오/영상 정보가 저장된 컴퓨터 판독 가능한 디지털 저장 매체를 제공한다.
본 문서의 일 실시예에 따르면, 디코딩 장치에 의하여 본 문서의 실시예들 중 적어도 하나에 개시된 비디오/영상 디코딩 방법을 수행하도록 야기하는 인코딩된 정보 또는 인코딩된 비디오/영상 정보가 저장된 컴퓨터 판독 가능한 디지털 저장 매체를 제공한다.
본 문서는 다양한 효과를 가질 수 있다. 예를 들어, 본 문서의 일 실시예에 따르면 전반적인 영상/비디오 압축 효율을 높일 수 있다. 또한, 본 문서의 일 실시예에 따르면 코딩 과정에서 효율적으로 ACT를 적용함으로써 코딩 효율을 높이고 주관적/객관적 비주얼 품질을 향상시킬 수 있다. 또한, 본 문서의 일 실시예에 따르면 ACT를 적용하는 과정에서 사용되는 레지듀얼에 대한 클리핑 범위를 효과적으로 구성함으로써 색 변환 전후의 레지듀얼 신호의 동적 범위 변화를 보상할 수 있고 레지듀얼 신호의 손실을 최소화할 수 있다.
본 문서의 구체적인 실시예를 통해 얻을 수 있는 효과는 이상에서 나열된 효과로 제한되지 않는다. 예를 들어, 관련된 기술분야의 통상의 지식을 자긴 자(a person having ordinary skill in the related art)가 본 문서로부터 이해하거나 유도할 수 있는 다양한 기술적 효과가 존재할 수 있다. 이에 따라 본 문서의 구체적인 효과는 본 문서에 명시적으로 기재된 것에 제한되지 않고, 본 문서의 기술적 특징으로부터 이해되거나 유도될 수 있는 다양한 효과를 포함할 수 있다.
도 1은 본 문서의 실시예들에 적용될 수 있는 비디오/영상 코딩 시스템의 예를 개략적으로 나타낸다.
도 2는 본 문서의 실시예들이 적용될 수 있는 비디오/영상 인코딩 장치의 구성을 개략적으로 설명하는 도면이다.
도 3은 본 문서의 실시예들이 적용될 수 있는 비디오/영상 디코딩 장치의 구성을 개략적으로 설명하는 도면이다.
도 4는 본 문서의 실시예(들)이 적용 가능한 개략적인 비디오/영상 인코딩 절차의 예를 나타낸다.
도 5는 본 문서의 실시예(들)이 적용 가능한 개략적인 비디오/영상 디코딩 절차의 예를 나타낸다.
도 6은 본 문서의 실시예들이 적용 가능한 엔트로피 인코딩 방법의 일 예를 개략적으로 나타내고, 도 7은 인코딩 장치 내 엔트로피 인코딩부를 개략적으로 나타낸다.
도 8은 본 문서의 실시예들이 적용 가능한 엔트로피 디코딩 방법의 일 예를 개략적으로 나타내고, 도 9는 디코딩 장치 내 엔트로피 디코딩부를 개략적으로 나타낸다.
도 10은 코딩된 영상/비디오에 대한 계층 구조를 예시적으로 나타낸다.
도 11은 본 문서의 실시예(들)이 적용 가능한 ACT를 사용한 비디오/영상 디코딩 절차의 일예를 설명하기 위한 도면이다.
도 12 및 도 13은 본 문서의 실시예(들)에 따른 비디오/영상 인코딩 방법 및 관련 컴포넌트의 일 예를 개략적으로 나타낸다.
도 14 및 도 15는 본 문서의 실시예(들)에 따른 비디오/영상 디코딩 방법 및 관련 컴포넌트의 일 예를 개략적으로 나타낸다.
도 16은 본 문서에서 개시된 실시예들이 적용될 수 있는 컨텐츠 스트리밍 시스템의 예를 나타낸다.
본 문서는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 문서를 특정 실시예에 한정하려고 하는 것이 아니다. 본 문서에서 상용하는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 문서의 기술적 사상을 한정하려는 의도로 사용되는 것은 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 문서에서 "포함하다" 또는 "가지다" 등의 용어는 문서상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 도는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
한편, 본 문서에서 설명되는 도면상의 각 구성들은 서로 다른 특징적인 기능들에 관한 설명의 편의를 위해 독립적으로 도시된 것으로서, 각 구성들이 서로 별개의 하드웨어나 별개의 소프트웨어로 구현된다는 것을 의미하지는 않는다. 예컨대, 각 구성 중 두 개 이상의 구성이 합쳐져 하나의 구성을 이룰 수도 있고, 하나의 구성이 복수의 구성으로 나뉘어질 수도 있다. 각 구성이 통합 및/또는 분리된 실시예도 본 문서의 본질에서 벗어나지 않는 한 본 문서의 권리범위에 포함된다.
본 문서에서 하나의 도면 내에서 개별적으로 설명되는 기술적 특징은, 개별적으로 구현될 수도 있고, 동시에 구현될 수도 있다.
이하, 첨부한 도면들을 참조하여, 본 문서의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성 요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성 요소에 대해서 중복된 설명은 생략될 수 있다.
도 1은 본 문서의 실시예들에 적용될 수 있는 비디오/영상 코딩 시스템의 예를 개략적으로 나타낸다.
도 1을 참조하면, 비디오/영상 코딩 시스템은 제1 장치(소스 디바이스) 및 제2 장치(수신 디바이스)를 포함할 수 있다. 소스 디바이스는 인코딩된 비디오(video)/영상(image) 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스로 전달할 수 있다.
상기 소스 디바이스는 비디오 소스, 인코딩 장치, 전송부를 포함할 수 있다. 상기 수신 디바이스는 수신부, 디코딩 장치 및 렌더러를 포함할 수 있다. 상기 인코딩 장치는 비디오/영상 인코딩 장치라고 불릴 수 있고, 상기 디코딩 장치는 비디오/영상 디코딩 장치라고 불릴 수 있다. 송신기는 인코딩 장치에 포함될 수 있다. 수신기는 디코딩 장치에 포함될 수 있다. 렌더러는 디스플레이부를 포함할 수도 있고, 디스플레이부는 별개의 디바이스 또는 외부 컴포넌트로 구성될 수도 있다.
비디오 소스는 비디오/영상의 캡쳐, 합성 또는 생성 과정 등을 통하여 비디오/영상을 획득할 수 있다. 비디오 소스는 비디오/영상 캡쳐 디바이스 및/또는 비디오/영상 생성 디바이스를 포함할 수 있다. 비디오/영상 캡쳐 디바이스는 예를 들어, 하나 이상의 카메라, 이전에 캡쳐된 비디오/영상을 포함하는 비디오/영상 아카이브 등을 포함할 수 있다. 비디오/영상 생성 디바이스는 예를 들어 컴퓨터, 타블렛 및 스마트폰 등을 포함할 수 있으며 (전자적으로) 비디오/영상을 생성할 수 있다. 예를 들어, 컴퓨터 등을 통하여 가상의 비디오/영상이 생성될 수 있으며, 이 경우 관련 데이터가 생성되는 과정으로 비디오/영상 캡쳐 과정이 갈음될 수 있다.
인코딩 장치는 입력 비디오/영상을 인코딩할 수 있다. 인코딩 장치는 압축 및 코딩 효율을 위하여 예측, 변환, 양자화 등 일련의 절차를 수행할 수 있다. 인코딩된 데이터(인코딩된 비디오/영상 정보)는 비트스트림(bitstream) 형태로 출력될 수 있다.
전송부는 비트스트림 형태로 출력된 인코딩된 비디오/영상 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스의 수신부로 전달할 수 있다. 디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체를 포함할 수 있다. 전송부는 미리 정해진 파일 포멧을 통하여 미디어 파일을 생성하기 위한 엘리먼트를 포함할 수 있고, 방송/통신 네트워크를 통한 전송을 위한 엘리먼트를 포함할 수 있다. 수신부는 상기 비트스트림을 수신/추출하여 디코딩 장치로 전달할 수 있다.
디코딩 장치는 인코딩 장치의 동작에 대응하는 역양자화, 역변환, 예측 등 일련의 절차를 수행하여 비디오/영상을 디코딩할 수 있다.
렌더러는 디코딩된 비디오/영상을 렌더링할 수 있다. 렌더링된 비디오/영상은 디스플레이부를 통하여 디스플레이될 수 있다.
본 문서에서 "A 또는 B(A or B)"는 "오직 A", "오직 B" 또는 "A와 B 모두"를 의미할 수 있다. 달리 표현하면, 본 문서에서 "A 또는 B(A or B)"는 "A 및/또는 B(A and/or B)"으로 해석될 수 있다. 예를 들어, 본 문서에서 "A, B 또는 C(A, B or C)"는 "오직 A", "오직 B", "오직 C", 또는 "A, B 및 C의 임의의 모든 조합(any combination of A, B and C)"를 의미할 수 있다.
본 문서에서 사용되는 슬래쉬(/)나 쉼표(comma)는 "및/또는(and/or)"을 의미할 수 있다. 예를 들어, "A/B"는 "A 및/또는 B"를 의미할 수 있다. 이에 따라 "A/B"는 "오직 A", "오직 B", 또는 "A와 B 모두"를 의미할 수 있다. 예를 들어, "A, B, C"는 "A, B 또는 C"를 의미할 수 있다.
본 문서에서 "적어도 하나의 A 및 B(at least one of A and B)"는, "오직 A", "오직 B" 또는 "A와 B 모두"를 의미할 수 있다. 또한, 본 문서에서 "적어도 하나의 A 또는 B(at least one of A or B)"나 "적어도 하나의 A 및/또는 B(at least one of A and/or B)"라는 표현은 "적어도 하나의 A 및 B(at least one of A and B)"와 동일하게 해석될 수 있다.
또한, 본 문서에서 "적어도 하나의 A, B 및 C(at least one of A, B and C)"는, "오직 A", "오직 B", "오직 C", 또는 "A, B 및 C의 임의의 모든 조합(any combination of A, B and C)"를 의미할 수 있다. 또한, "적어도 하나의 A, B 또는 C(at least one of A, B or C)"나 "적어도 하나의 A, B 및/또는 C(at least one of A, B and/or C)"는 "적어도 하나의 A, B 및 C(at least one of A, B and C)"를 의미할 수 있다.
또한, 본 문서에서 사용되는 괄호는 "예를 들어(for example)"를 의미할 수 있다. 구체적으로, "예측(인트라 예측)"로 표시된 경우, "예측"의 일례로 "인트라 예측"이 제안된 것일 수 있다. 달리 표현하면 본 문서의 "예측"은 "인트라 예측"으로 제한(limit)되지 않고, "인트라 예측"이 "예측"의 일례로 제안될 것일 수 있다. 또한, "예측(즉, 인트라 예측)"으로 표시된 경우에도, "예측"의 일례로 "인트라 예측"이 제안된 것일 수 있다.
본 문서는 비디오/영상 코딩에 관한 것이다. 예를 들어 본 문서에서 개시된 방법/실시예는 VVC (versatile video coding) 표준에 개시되는 방법에 적용될 수 있다. 또한, 본 문서에서 개시된 방법/실시예는 EVC (essential video coding) 표준, AV1 (AOMedia Video 1) 표준, AVS2 (2nd generation of audio video coding standard) 또는 차세대 비디오/영상 코딩 표준(ex. H.267 or H.268 등)에 개시되는 방법에 적용될 수 있다.
본 문서에서는 비디오/영상 코딩에 관한 다양한 실시예들을 제시하며, 다른 언급이 없는 한 상기 실시예들은 서로 조합되어 수행될 수도 있다.
본 문서에서 비디오(video)는 시간의 흐름에 따른 일련의 영상(image)들의 집합을 의미할 수 있다. 픽처(picture)는 일반적으로 특정 시간대의 하나의 영상을 나타내는 단위를 의미하며, 슬라이스(slice)/타일(tile)은 코딩에 있어서 픽처의 일부를 구성하는 단위이다. 슬라이스/타일은 하나 이상의 CTU(coding tree unit)을 포함할 수 있다. 하나의 픽처는 하나 이상의 슬라이스/타일로 구성될 수 있다. 타일은 픽너 내 특정 타일 열 및 특정 타일 열 이내의 CTU들의 사각 영역이다. 상기 타일 열은 CTU들의 사각 영역이고, 상기 사각 영역은 상기 픽처의 높이와 동일한 높이를 갖고, 너비는 픽처 파라미터 세트 내의 신택스 요소들에 의하여 명시될 수 있다. 상기 타일 행은 CTU들의 사각 영역이고, 상기 사각 영역은 픽처 파라미터 세트 내의 신택스 요소들에 의하여 명시되는 너비를 갖고, 높이는 상기 픽처의 높이와 동일할 수 있다. 타일 스캔은 픽처를 파티셔닝하는 CTU들의 특정 순차적 오더링을 나타낼 수 있고, 상기 CTU들은 타일 내 CTU 래스터 스캔으로 연속적으로 정렬될 수 있고, 픽처 내 타일들은 상기 픽처의 상기 타일들의 래스터 스캔으로 연속적으로 정렬될 수 있다. 슬라이스는 단일 NAL 유닛에 배타적으로 담겨질 수 있는, 정수개의 완전한 타일들 또는 픽처의 타일 내의 정수개의 연속적인 완전한 CTU 행들을 포함할 수 있다.
한편, 하나의 픽처는 둘 이상의 서브픽처로 구분될 수 있다. 서브픽처는 픽처 내 하나 이상의 슬라이스들의 사각 리전일 수 있다(an rectangular region of one or more slices within a picture).
픽셀(pixel) 또는 펠(pel)은 하나의 픽처(또는 영상)을 구성하는 최소의 단위를 의미할 수 있다. 또한, 픽셀에 대응하는 용어로서 '샘플(sample)'이 사용될 수 있다. 샘플은 일반적으로 픽셀 또는 픽셀의 값을 나타낼 수 있으며, 루마(luma) 성분의 픽셀/픽셀값만을 나타낼 수도 있고, 크로마(chroma) 성분의 픽셀/픽셀 값만을 나타낼 수도 있다. 또는 샘플은 공간 도메인에서의 픽셀값을 의미할 수도 있고, 이러한 픽셀값이 주파수 도메인으로 변환되면 주파수 도메인에서의 변환 계수를 의미할 수도 있다.
유닛(unit)은 영상 처리의 기본 단위를 나타낼 수 있다. 유닛은 픽처의 특정 영역 및 해당 영역에 관련된 정보 중 적어도 하나를 포함할 수 있다. 하나의 유닛은 하나의 루마 블록 및 두개의 크로마(ex. cb, cr) 블록을 포함할 수 있다. 유닛은 경우에 따라서 블록(block) 또는 영역(area) 등의 용어와 혼용하여 사용될 수 있다. 일반적인 경우, MxN 블록은 M개의 열과 N개의 행으로 이루어진 샘플들(또는 샘플 어레이) 또는 변환 계수(transform coefficient)들의 집합(또는 어레이)을 포함할 수 있다.
또한, 본 문서에서 양자화/역양자화 및/또는 변환/역변환 중 적어도 하나는 생략될 수 있다. 양자화/역양자화가 생략되는 경우, 양자화된 변환 계수는 변환 계수라고 불릴 수 있다. 변환/역변환이 생략되는 경우, 변환 계수는 계수 또는 레지듀얼 계수라고 불릴 수도 있고, 또는 표현의 통일성을 위하여 변환 계수라고 여전히 불릴 수도 있다.
본 문서에서 양자화된 변환 계수 및 변환 계수는 각각 변환 계수 및 스케일링된(scaled) 변환 계수라고 지칭될 수 있다. 이 경우 레지듀얼 정보는 변환 계수(들)에 관한 정보를 포함할 수 있고, 변환 계수(들)에 관한 정보는 레지듀얼 코딩 신택스를 통하여 시그널링될 수 있다. 레지듀얼 정보(또는 변환 계수(들)에 관한 정보)를 기반으로 변환 계수들이 도출될 수 있고, 변환 계수들에 대한 역변환(스케일링)을 통하여 스케일링된 변환 계수들이 도출될 수 있다. 스케일링된 변환 계수들에 대한 역변환(변환)을 기반으로 레지듀얼 샘플들이 도출될 수 있다. 이는 본 문서의 다른 부분에서도 마찬가지로 적용/표현될 수 있다.
도 2는 본 문서의 실시예들이 적용될 수 있는 비디오/영상 인코딩 장치의 구성을 개략적으로 설명하는 도면이다. 이하 인코딩 장치라 함은 영상 인코딩 장치 및/또는 비디오 인코딩 장치를 포함할 수 있다.
도 2를 참조하면, 인코딩 장치(200)는 영상 분할부(image partitioner, 210), 예측부(predictor, 220), 레지듀얼 처리부(residual processor, 230), 엔트로피 인코딩부(entropy encoder, 240), 가산부(adder, 250), 필터링부(filter, 260) 및 메모리(memory, 270)를 포함하여 구성될 수 있다. 예측부(220)는 인터 예측부(221) 및 인트라 예측부(222)를 포함할 수 있다. 레지듀얼 처리부(230)는 변환부(transformer, 232), 양자화부(quantizer 233), 역양자화부(dequantizer 234), 역변환부(inverse transformer, 235)를 포함할 수 있다. 레지듀얼 처리부(230)은 감산부(subtractor, 231)를 더 포함할 수 있다. 가산부(250)는 복원부(reconstructor) 또는 복원 블록 생성부(recontructged block generator)로 불릴 수 있다. 상술한 영상 분할부(210), 예측부(220), 레지듀얼 처리부(230), 엔트로피 인코딩부(240), 가산부(250) 및 필터링부(260)는 실시예에 따라 하나 이상의 하드웨어 컴포넌트(예를 들어 인코더 칩셋 또는 프로세서)에 의하여 구성될 수 있다. 또한 메모리(270)는 DPB(decoded picture buffer)를 포함할 수 있고, 디지털 저장 매체에 의하여 구성될 수도 있다. 상기 하드웨어 컴포넌트는 메모리(270)을 내/외부 컴포넌트로 더 포함할 수도 있다.
영상 분할부(210)는 인코딩 장치(200)에 입력된 입력 영상(또는, 픽쳐, 프레임)를 하나 이상의 처리 유닛(processing unit)으로 분할할 수 있다. 일 예로, 상기 처리 유닛은 코딩 유닛(coding unit, CU)이라고 불릴 수 있다. 이 경우 코딩 유닛은 코딩 트리 유닛(coding tree unit, CTU) 또는 최대 코딩 유닛(largest coding unit, LCU)으로부터 QTBTTT (Quad-tree binary-tree ternary-tree) 구조에 따라 재귀적으로(recursively) 분할될 수 있다. 예를 들어, 하나의 코딩 유닛은 쿼드 트리 구조, 바이너리 트리 구조, 및/또는 터너리 구조를 기반으로 하위(deeper) 뎁스의 복수의 코딩 유닛들로 분할될 수 있다. 이 경우 예를 들어 쿼드 트리 구조가 먼저 적용되고 바이너리 트리 구조 및/또는 터너리 구조가 나중에 적용될 수 있다. 또는 바이너리 트리 구조가 먼저 적용될 수도 있다. 더 이상 분할되지 않는 최종 코딩 유닛을 기반으로 본 문서에 따른 코딩 절차가 수행될 수 있다. 이 경우 영상 특성에 따른 코딩 효율 등을 기반으로, 최대 코딩 유닛이 바로 최종 코딩 유닛으로 사용될 수 있고, 또는 필요에 따라 코딩 유닛은 재귀적으로(recursively) 보다 하위 뎁스의 코딩 유닛들로 분할되어 최적의 사이즈의 코딩 유닛이 최종 코딩 유닛으로 사용될 수 있다. 여기서 코딩 절차라 함은 후술하는 예측, 변환, 및 복원 등의 절차를 포함할 수 있다. 다른 예로, 상기 처리 유닛은 예측 유닛(PU: Prediction Unit) 또는 변환 유닛(TU: Transform Unit)을 더 포함할 수 있다. 이 경우 상기 예측 유닛 및 상기 변환 유닛은 각각 상술한 최종 코딩 유닛으로부터 분할 또는 파티셔닝될 수 있다. 상기 예측 유닛은 샘플 예측의 단위일 수 있고, 상기 변환 유닛은 변환 계수를 유도하는 단위 및/또는 변환 계수로부터 레지듀얼 신호(residual signal)를 유도하는 단위일 수 있다.
유닛은 경우에 따라서 블록(block) 또는 영역(area) 등의 용어와 혼용하여 사용될 수 있다. 일반적인 경우, MxN 블록은 M개의 열과 N개의 행으로 이루어진 샘플들 또는 변환 계수(transform coefficient)들의 집합을 나타낼 수 있다. 샘플은 일반적으로 픽셀 또는 픽셀의 값을 나타낼 수 있으며, 휘도(luma) 성분의 픽셀/픽셀값만을 나타낼 수도 있고, 채도(chroma) 성분의 픽셀/픽셀 값만을 나타낼 수도 있다. 샘플은 하나의 픽처(또는 영상)을 픽셀(pixel) 또는 펠(pel)에 대응하는 용어로서 사용될 수 있다.
인코딩 장치(200)는 입력 영상 신호(원본 블록, 원본 샘플 어레이)에서 인터 예측부(221) 또는 인트라 예측부(222)로부터 출력된 예측 신호(예측된 블록, 예측 샘플 어레이)를 감산하여 레지듀얼 신호(residual signal, 잔여 블록, 잔여 샘플 어레이)를 생성할 수 있고, 생성된 레지듀얼 신호는 변환부(232)로 전송된다. 이 경우 도시된 바와 같이 인코더(200) 내에서 입력 영상 신호(원본 블록, 원본 샘플 어레이)에서 예측 신호(예측 블록, 예측 샘플 어레이)를 감산하는 유닛은 감산부(231)라고 불릴 수 있다. 예측부는 처리 대상 블록(이하, 현재 블록이라 함)에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부는 현재 블록 또는 CU 단위로 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 결정할 수 있다. 예측부는 각 예측모드에 대한 설명에서 후술하는 바와 같이 예측 모드 정보 등 예측에 관한 다양한 정보를 생성하여 엔트로피 인코딩부(240)로 전달할 수 있다. 예측에 관한 정보는 엔트로피 인코딩부(240)에서 인코딩되어 비트스트림 형태로 출력될 수 있다.
인트라 예측부(222)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 상기 참조되는 샘플들은 예측 모드에 따라 상기 현재 블록의 주변(neighbor)에 위치할 수 있고, 또는 떨어져서 위치할 수도 있다. 인트라 예측에서 예측 모드들은 복수의 비방향성 모드와 복수의 방향성 모드를 포함할 수 있다. 비방향성 모드는 예를 들어 DC 모드 및 플래너 모드(Planar 모드)를 포함할 수 있다. 방향성 모드는 예측 방향의 세밀한 정도에 따라 예를 들어 33개의 방향성 예측 모드 또는 65개의 방향성 예측 모드를 포함할 수 있다. 다만, 이는 예시로서 설정에 따라 그 이상 또는 그 이하의 개수의 방향성 예측 모드들이 사용될 수 있다. 인트라 예측부(222)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용되는 예측 모드를 결정할 수도 있다.
인터 예측부(221)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)을 기반으로, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기초하여 움직임 정보를 블록, 서브블록 또는 샘플 단위로 예측할 수 있다. 상기 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있다. 상기 움직임 정보는 인터 예측 방향(L0 예측, L1 예측, Bi 예측 등) 정보를 더 포함할 수 있다. 인터 예측의 경우에, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 상기 참조 블록을 포함하는 참조 픽처와 상기 시간적 주변 블록을 포함하는 참조 픽처는 동일할 수도 있고, 다를 수도 있다. 상기 시간적 주변 블록은 동일 위치 참조 블록(collocated reference block), 동일 위치 CU(colCU) 등의 이름으로 불릴 수 있으며, 상기 시간적 주변 블록을 포함하는 참조 픽처는 동일 위치 픽처(collocated picture, colPic)라고 불릴 수도 있다. 예를 들어, 인터 예측부(221)는 주변 블록들을 기반으로 움직임 정보 후보 리스트를 구성하고, 상기 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 도출하기 위하여 어떤 후보가 사용되는지를 지시하는 정보를 생성할 수 있다. 다양한 예측 모드를 기반으로 인터 예측이 수행될 수 있으며, 예를 들어 스킵 모드와 머지 모드의 경우에, 인터 예측부(221)는 주변 블록의 움직임 정보를 현재 블록의 움직임 정보로 이용할 수 있다. 스킵 모드의 경우, 머지 모드와 달리 레지듀얼 신호가 전송되지 않을 수 있다. 움직임 정보 예측(motion vector prediction, MVP) 모드의 경우, 주변 블록의 움직임 벡터를 움직임 벡터 예측자(motion vector predictor)로 이용하고, 움직임 벡터 차분(motion vector difference)을 시그널링함으로써 현재 블록의 움직임 벡터를 지시할 수 있다.
예측부(220)는 후술하는 다양한 예측 방법을 기반으로 예측 신호를 생성할 수 있다. 예를 들어, 예측부는 하나의 블록에 대한 예측을 위하여 인트라 예측 또는 인터 예측을 적용할 수 있을 뿐 아니라, 인트라 예측과 인터 예측을 동시에 적용할 수 있다. 이는 combined inter and intra prediction (CIIP)라고 불릴 수 있다. 또한, 예측부는 블록에 대한 예측을 위하여 인트라 블록 카피(intra block copy, IBC) 예측 모드에 기반할 수도 있고 또는 팔레트 모드(palette mode)에 기반할 수도 있다. 상기 IBC 예측 모드 또는 팔레트 모드는 예를 들어 SCC(screen content coding) 등과 같이 게임 등의 컨텐츠 영상/동영상 코딩을 위하여 사용될 수 있다. IBC는 기본적으로 현재 픽처 내에서 예측을 수행하나 현재 픽처 내에서 참조 블록을 도출하는 점에서 인터 예측과 유사하게 수행될 수 있다. 즉, IBC는 본 문서에서 설명되는 인터 예측 기법들 중 적어도 하나를 이용할 수 있다. 팔레트 모드는 인트라 코딩 또는 인트라 예측의 일 예로 볼 수 있다. 팔레트 모드가 적용되는 경우 팔레트 테이블 및 팔레트 인덱스에 관한 정보를 기반으로 픽처 내 샘플 값을 시그널링할 수 있다.
상기 예측부 (인터 예측부(221) 및/또는 상기 인트라 예측부(222) 포함)를 통해 생성된 예측 신호는 복원 신호를 생성하기 위해 이용되거나 레지듀얼 신호를 생성하기 위해 이용될 수 있다. 변환부(232)는 레지듀얼 신호에 변환 기법을 적용하여 변환 계수들(transform coefficients)를 생성할 수 있다. 예를 들어, 변환 기법은 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform), KLT(Karhunen-Loeve Transform), GBT(Graph-Based Transform), 또는 CNT(Conditionally Non-linear Transform) 중 적어도 하나를 포함할 수 있다. 여기서, GBT는 픽셀 간의 관계 정보를 그래프로 표현한다고 할 때 이 그래프로부터 얻어진 변환을 의미한다. CNT는 이전에 복원된 모든 픽셀(all previously reconstructed pixel)를 이용하여 예측 신호를 생성하고 그에 기초하여 획득되는 변환을 의미한다. 또한, 변환 과정은 정사각형의 동일한 크기를 갖는 픽셀 블록에 적용될 수도 있고, 정사각형이 아닌 가변 크기의 블록에도 적용될 수 있다.
양자화부(233)는 변환 계수들을 양자화하여 엔트로피 인코딩부(240)로 전송되고, 엔트로피 인코딩부(240)는 양자화된 신호(양자화된 변환 계수들에 관한 정보)를 인코딩하여 비트스트림으로 출력할 수 있다. 상기 양자화된 변환 계수들에 관한 정보는 레지듀얼 정보라고 불릴 수 있다. 양자화부(233)는 계수 스캔 순서(scan order)를 기반으로 블록 형태의 양자화된 변환 계수들을 1차원 벡터 형태로 재정렬할 수 있고, 상기 1차원 벡터 형태의 양자화된 변환 계수들을 기반으로 상기 양자화된 변환 계수들에 관한 정보를 생성할 수도 있다. 엔트로피 인코딩부(240)는 예를 들어 지수 골롬(exponential Golomb), CAVLC(context-adaptive variable length coding), CABAC(context-adaptive binary arithmetic coding) 등과 같은 다양한 인코딩 방법을 수행할 수 있다. 엔트로피 인코딩부(240)는 양자화된 변환 계수들 외 비디오/이미지 복원에 필요한 정보들(예컨대 신택스 요소들(syntax elements)의 값 등)을 함께 또는 별도로 인코딩할 수도 있다. 인코딩된 정보(ex. 인코딩된 비디오/영상 정보)는 비트스트림 형태로 NAL(network abstraction layer) 유닛 단위로 전송 또는 저장될 수 있다. 상기 비디오/영상 정보는 어댑테이션 파라미터 세트(APS), 픽처 파라미터 세트(PPS), 시퀀스 파라미터 세트(SPS) 또는 비디오 파라미터 세트(VPS) 등 다양한 파라미터 세트에 관한 정보를 더 포함할 수 있다. 또한 상기 비디오/영상 정보는 일반 제한 정보(general constraint information)을 더 포함할 수 있다. 본 문서에서 인코딩 장치에서 디코딩 장치로 전달/시그널링되는 정보 및/또는 신택스 요소들은 비디오/영상 정보에 포함될 수 있다. 상기 비디오/영상 정보는 상술한 인코딩 절차를 통하여 인코딩되어 상기 비트스트림에 포함될 수 있다. 상기 비트스트림은 네트워크를 통하여 전송될 수 있고, 또는 디지털 저장매체에 저장될 수 있다. 여기서 네트워크는 방송망 및/또는 통신망 등을 포함할 수 있고, 디지털 저장매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장매체를 포함할 수 있다. 엔트로피 인코딩부(240)로부터 출력된 신호는 전송하는 전송부(미도시) 및/또는 저장하는 저장부(미도시)가 인코딩 장치(200)의 내/외부 엘리먼트로서 구성될 수 있고, 또는 전송부는 엔트로피 인코딩부(240)에 포함될 수도 있다.
양자화부(233)로부터 출력된 양자화된 변환 계수들은 예측 신호를 생성하기 위해 이용될 수 있다. 예를 들어, 양자화된 변환 계수들에 역양자화부(234) 및 역변환부(235)를 통해 역양자화 및 역변환을 적용함으로써 레지듀얼 신호(레지듀얼 블록 or 레지듀얼 샘플들)를 복원할 수 있다. 가산부(155)는 복원된 레지듀얼 신호를 인터 예측부(221) 또는 인트라 예측부(222)로부터 출력된 예측 신호에 더함으로써 복원(reconstructed) 신호(복원 픽처, 복원 블록, 복원 샘플 어레이)가 생성될 수 있다. 스킵 모드가 적용된 경우와 같이 처리 대상 블록에 대한 레지듀얼이 없는 경우, 예측된 블록이 복원 블록으로 사용될 수 있다. 가산부(250)는 복원부 또는 복원 블록 생성부라고 불릴 수 있다. 생성된 복원 신호는 현재 픽처 내 다음 처리 대상 블록의 인트라 예측을 위하여 사용될 수 있고, 후술하는 바와 같이 필터링을 거쳐서 다음 픽처의 인터 예측을 위하여 사용될 수도 있다.
한편 픽처 인코딩 및/또는 복원 과정에서 LMCS (luma mapping with chroma scaling)가 적용될 수도 있다.
필터링부(260)는 복원 신호에 필터링을 적용하여 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어 필터링부(260)은 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있고, 상기 수정된 복원 픽처를 메모리(270), 구체적으로 메모리(270)의 DPB에 저장할 수 있다. 상기 다양한 필터링 방법은 예를 들어, 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset), 적응적 루프 필터(adaptive loop filter), 양방향 필터(bilateral filter) 등을 포함할 수 있다. 필터링부(260)은 각 필터링 방법에 대한 설명에서 후술하는 바와 같이 필터링에 관한 다양한 정보를 생성하여 엔트로피 인코딩부(240)로 전달할 수 있다. 필터링 관한 정보는 엔트로피 인코딩부(240)에서 인코딩되어 비트스트림 형태로 출력될 수 있다.
메모리(270)에 전송된 수정된 복원 픽처는 인터 예측부(221)에서 참조 픽처로 사용될 수 있다. 인코딩 장치는 이를 통하여 인터 예측이 적용되는 경우, 인코딩 장치(100)와 디코딩 장치에서의 예측 미스매치를 피할 수 있고, 부호화 효율도 향상시킬 수 있다.
메모리(270) DPB는 수정된 복원 픽처를 인터 예측부(221)에서의 참조 픽처로 사용하기 위해 저장할 수 있다. 메모리(270)는 현재 픽처 내 움직임 정보가 도출된(또는 인코딩된) 블록의 움직임 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 정보를 저장할 수 있다. 상기 저장된 움직임 정보는 공간적 주변 블록의 움직임 정보 또는 시간적 주변 블록의 움직임 정보로 활용하기 위하여 인터 예측부(221)에 전달할 수 있다. 메모리(270)는 현재 픽처 내 복원된 블록들의 복원 샘플들을 저장할 수 있고, 인트라 예측부(222)에 전달할 수 있다.
도 3은 본 문서의 실시예들이 적용될 수 있는 비디오/영상 디코딩 장치의 구성을 개략적으로 설명하는 도면이다. 이하 디코딩 장치라 함은 영상 디코딩 장치 및/또는 비디오 디코딩 장치를 포함할 수 있다.
도 3을 참조하면, 디코딩 장치(300)는 엔트로피 디코딩부(entropy decoder, 310), 레지듀얼 처리부(residual processor, 320), 예측부(predictor, 330), 가산부(adder, 340), 필터링부(filter, 350) 및 메모리(memoery, 360)를 포함하여 구성될 수 있다. 예측부(330)는 인터 예측부(331) 및 인트라 예측부(332)를 포함할 수 있다. 레지듀얼 처리부(320)는 역양자화부(dequantizer, 321) 및 역변환부(inverse transformer, 321)를 포함할 수 있다. 상술한 엔트로피 디코딩부(310), 레지듀얼 처리부(320), 예측부(330), 가산부(340) 및 필터링부(350)는 실시예에 따라 하나의 하드웨어 컴포넌트(예를 들어 디코더 칩셋 또는 프로세서)에 의하여 구성될 수 있다. 또한 메모리(360)는 DPB(decoded picture buffer)를 포함할 수 있고, 디지털 저장 매체에 의하여 구성될 수도 있다. 상기 하드웨어 컴포넌트는 메모리(360)을 내/외부 컴포넌트로 더 포함할 수도 있다.
비디오/영상 정보를 포함하는 비트스트림이 입력되면, 디코딩 장치(300)는 도 2의 인코딩 장치에서 비디오/영상 정보가 처리된 프로세스에 대응하여 영상을 복원할 수 있다. 예를 들어, 디코딩 장치(300)는 상기 비트스트림으로부터 획득한 블록 분할 관련 정보를 기반으로 유닛들/블록들을 도출할 수 있다. 디코딩 장치(300)는 인코딩 장치에서 적용된 처리 유닛을 이용하여 디코딩을 수행할 수 있다. 따라서 디코딩의 처리 유닛은 예를 들어 코딩 유닛일 수 있고, 코딩 유닛은 코딩 트리 유닛 또는 최대 코딩 유닛으로부터 쿼드 트리 구조, 바이너리 트리 구조 및/또는 터너리 트리 구조를 따라서 분할될 수 있다. 코딩 유닛으로부터 하나 이상의 변환 유닛이 도출될 수 있다. 그리고, 디코딩 장치(300)를 통해 디코딩 및 출력된 복원 영상 신호는 재생 장치를 통해 재생될 수 있다.
디코딩 장치(300)는 도 2의 인코딩 장치로부터 출력된 신호를 비트스트림 형태로 수신할 수 있고, 수신된 신호는 엔트로피 디코딩부(310)를 통해 디코딩될 수 있다. 예를 들어, 엔트로피 디코딩부(310)는 상기 비트스트림을 파싱하여 영상 복원(또는 픽처 복원)에 필요한 정보(ex. 비디오/영상 정보)를 도출할 수 있다. 상기 비디오/영상 정보는 어댑테이션 파라미터 세트(APS), 픽처 파라미터 세트(PPS), 시퀀스 파라미터 세트(SPS) 또는 비디오 파라미터 세트(VPS) 등 다양한 파라미터 세트에 관한 정보를 더 포함할 수 있다. 또한 상기 비디오/영상 정보는 일반 제한 정보(general constraint information)을 더 포함할 수 있다. 디코딩 장치는 상기 파라미터 세트에 관한 정보 및/또는 상기 일반 제한 정보를 더 기반으로 픽처를 디코딩할 수 있다. 본 문서에서 후술되는 시그널링/수신되는 정보 및/또는 신택스 요소들은 상기 디코딩 절차를 통하여 디코딩되어 상기 비트스트림으로부터 획득될 수 있다. 예컨대, 엔트로피 디코딩부(310)는 지수 골롬 부호화, CAVLC 또는 CABAC 등의 코딩 방법을 기초로 비트스트림 내 정보를 디코딩하고, 영상 복원에 필요한 신택스 엘리먼트의 값, 레지듀얼에 관한 변환 계수의 양자화된 값 들을 출력할 수 있다. 보다 상세하게, CABAC 엔트로피 디코딩 방법은, 비트스트림에서 각 구문 요소에 해당하는 빈을 수신하고, 디코딩 대상 구문 요소 정보와 주변 및 디코딩 대상 블록의 디코딩 정보 혹은 이전 단계에서 디코딩된 심볼/빈의 정보를 이용하여 문맥(context) 모델을 결정하고, 결정된 문맥 모델에 따라 빈(bin)의 발생 확률을 예측하여 빈의 산술 디코딩(arithmetic decoding)를 수행하여 각 구문 요소의 값에 해당하는 심볼을 생성할 수 있다. 이때, CABAC 엔트로피 디코딩 방법은 문맥 모델 결정 후 다음 심볼/빈의 문맥 모델을 위해 디코딩된 심볼/빈의 정보를 이용하여 문맥 모델을 업데이트할 수 있다. 엔트로피 디코딩부(310)에서 디코딩된 정보 중 예측에 관한 정보는 예측부(인터 예측부(332) 및 인트라 예측부(331))로 제공되고, 엔트로피 디코딩부(310)에서 엔트로피 디코딩이 수행된 레지듀얼 값, 즉 양자화된 변환 계수들 및 관련 파라미터 정보는 레지듀얼 처리부(320)로 입력될 수 있다. 레지듀얼 처리부(320)는 레지듀얼 신호(레지듀얼 블록, 레지듀얼 샘플들, 레지듀얼 샘플 어레이)를 도출할 수 있다. 또한, 엔트로피 디코딩부(310)에서 디코딩된 정보 중 필터링에 관한 정보는 필터링부(350)으로 제공될 수 있다. 한편, 인코딩 장치로부터 출력된 신호를 수신하는 수신부(미도시)가 디코딩 장치(300)의 내/외부 엘리먼트로서 더 구성될 수 있고, 또는 수신부는 엔트로피 디코딩부(310)의 구성요소일 수도 있다. 한편, 본 문서에 따른 디코딩 장치는 비디오/영상/픽처 디코딩 장치라고 불릴 수 있고, 상기 디코딩 장치는 정보 디코더(비디오/영상/픽처 정보 디코더) 및 샘플 디코더(비디오/영상/픽처 샘플 디코더)로 구분할 수도 있다. 상기 정보 디코더는 상기 엔트로피 디코딩부(310)를 포함할 수 있고, 상기 샘플 디코더는 상기 역양자화부(321), 역변환부(322), 가산부(340), 필터링부(350), 메모리(360), 인터 예측부(332) 및 인트라 예측부(331) 중 적어도 하나를 포함할 수 있다.
역양자화부(321)에서는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 출력할 수 있다. 역양자화부(321)는 양자화된 변환 계수들을 2차원의 블록 형태로 재정렬할 수 있다. 이 경우 상기 재정렬은 인코딩 장치에서 수행된 계수 스캔 순서를 기반하여 재정렬을 수행할 수 있다. 역양자화부(321)는 양자화 파라미터(예를 들어 양자화 스텝 사이즈 정보)를 이용하여 양자화된 변환 계수들에 대한 역양자화를 수행하고, 변환 계수들(transform coefficient)를 획득할 수 있다.
역변환부(322)에서는 변환 계수들를 역변환하여 레지듀얼 신호(레지듀얼 블록, 레지듀얼 샘플 어레이)를 획득하게 된다.
예측부는 현재 블록에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부는 엔트로피 디코딩부(310)로부터 출력된 상기 예측에 관한 정보를 기반으로 상기 현재 블록에 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 결정할 수 있고, 구체적인 인트라/인터 예측 모드를 결정할 수 있다.
예측부(320)는 후술하는 다양한 예측 방법을 기반으로 예측 신호를 생성할 수 있다. 예를 들어, 예측부는 하나의 블록에 대한 예측을 위하여 인트라 예측 또는 인터 예측을 적용할 수 있을 뿐 아니라, 인트라 예측과 인터 예측을 동시에 적용할 수 있다. 이는 combined inter and intra prediction (CIIP)라고 불릴 수 있다. 또한, 예측부는 블록에 대한 예측을 위하여 인트라 블록 카피(intra block copy, IBC) 예측 모드에 기반할 수도 있고 또는 팔레트 모드(palette mode)에 기반할 수도 있다. 상기 IBC 예측 모드 또는 팔레트 모드는 예를 들어 SCC(screen content coding) 등과 같이 게임 등의 컨텐츠 영상/동영상 코딩을 위하여 사용될 수 있다. IBC는 기본적으로 현재 픽처 내에서 예측을 수행하나 현재 픽처 내에서 참조 블록을 도출하는 점에서 인터 예측과 유사하게 수행될 수 있다. 즉, IBC는 본 문서에서 설명되는 인터 예측 기법들 중 적어도 하나를 이용할 수 있다. 팔레트 모드는 인트라 코딩 또는 인트라 예측의 일 예로 볼 수 있다. 팔레트 모드가 적용되는 경우 팔레트 테이블 및 팔레트 인덱스에 관한 정보가 상기 비디오/영상 정보에 포함되어 시그널링될 수 있다.
인트라 예측부(331)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 상기 참조되는 샘플들은 예측 모드에 따라 상기 현재 블록의 주변(neighbor)에 위치할 수 있고, 또는 떨어져서 위치할 수도 있다. 인트라 예측에서 예측 모드들은 복수의 비방향성 모드와 복수의 방향성 모드를 포함할 수 있다. 인트라 예측부(331)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용되는 예측 모드를 결정할 수도 있다.
인터 예측부(332)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)을 기반으로, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기초하여 움직임 정보를 블록, 서브블록 또는 샘플 단위로 예측할 수 있다. 상기 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있다. 상기 움직임 정보는 인터 예측 방향(L0 예측, L1 예측, Bi 예측 등) 정보를 더 포함할 수 있다. 인터 예측의 경우에, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 예를 들어, 인터 예측부(332)는 주변 블록들을 기반으로 움직임 정보 후보 리스트를 구성하고, 수신한 후보 선택 정보를 기반으로 상기 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 도출할 수 있다. 다양한 예측 모드를 기반으로 인터 예측이 수행될 수 있으며, 상기 예측에 관한 정보는 상기 현재 블록에 대한 인터 예측의 모드를 지시하는 정보를 포함할 수 있다.
가산부(340)는 획득된 레지듀얼 신호를 예측부(인터 예측부(332) 및/또는 인트라 예측부(331) 포함)로부터 출력된 예측 신호(예측된 블록, 예측 샘플 어레이)에 더함으로써 복원 신호(복원 픽처, 복원 블록, 복원 샘플 어레이)를 생성할 수 있다. 스킵 모드가 적용된 경우와 같이 처리 대상 블록에 대한 레지듀얼이 없는 경우, 예측된 블록이 복원 블록으로 사용될 수 있다.
가산부(340)는 복원부 또는 복원 블록 생성부라고 불릴 수 있다. 생성된 복원 신호는 현재 픽처 내 다음 처리 대상 블록의 인트라 예측을 위하여 사용될 수 있고, 후술하는 바와 같이 필터링을 거쳐서 출력될 수도 있고 또는 다음 픽처의 인터 예측을 위하여 사용될 수도 있다.
한편, 픽처 디코딩 과정에서 LMCS (luma mapping with chroma scaling)가 적용될 수도 있다.
필터링부(350)는 복원 신호에 필터링을 적용하여 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어 필터링부(350)는 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있고, 상기 수정된 복원 픽처를 메모리(360), 구체적으로 메모리(360)의 DPB에 전송할 수 있다. 상기 다양한 필터링 방법은 예를 들어, 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset), 적응적 루프 필터(adaptive loop filter), 양방향 필터(bilateral filter) 등을 포함할 수 있다.
메모리(360)의 DPB에 저장된 (수정된) 복원 픽처는 인터 예측부(332)에서 참조 픽쳐로 사용될 수 있다. 메모리(360)는 현재 픽처 내 움직임 정보가 도출된(또는 디코딩된) 블록의 움직임 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 정보를 저장할 수 있다. 상기 저장된 움직임 정보는 공간적 주변 블록의 움직임 정보 또는 시간적 주변 블록의 움직임 정보로 활용하기 위하여 인터 예측부(332)에 전달할 수 있다. 메모리(360)는 현재 픽처 내 복원된 블록들의 복원 샘플들을 저장할 수 있고, 인트라 예측부(331)에 전달할 수 있다.
본 문서에서, 인코딩 장치(200)의 필터링부(260), 인터 예측부(221) 및 인트라 예측부(222)에서 설명된 실시예들은 각각 디코딩 장치(300)의 필터링부(350), 인터 예측부(332) 및 인트라 예측부(331)에도 동일 또는 대응되도록 적용될 수 있다.
상술한 바와 같이 비디오 코딩을 수행함에 있어 압축 효율을 높이기 위하여 예측을 수행한다. 이를 통하여 코딩 대상 블록인 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록을 생성할 수 있다. 여기서 예측된 블록은 공간 도메인(또는 픽셀 도메인)에서의 예측 샘플들을 포함한다. 예측된 블록은 인코딩 장치 및 디코딩 장치에서 동일하게 도출되며, 인코딩 장치는 원본 블록의 원본 샘플 값 자체가 아닌 원본 블록과 예측된 블록 간의 레지듀얼에 대한 정보(레지듀얼 정보)를 디코딩 장치로 시그널링함으로써 영상 코딩 효율을 높일 수 있다. 디코딩 장치는 레지듀얼 정보를 기반으로 레지듀얼 샘플들을 포함하는 레지듀얼 블록을 도출하고, 레지듀얼 블록과 예측된 블록을 합하여 복원 샘플들을 포함하는 복원 블록을 생성할 수 있고, 복원 블록들을 포함하는 복원 픽처를 생성할 수 있다.
상기 레지듀얼 정보는 변환 및 양자화 절차를 통하여 생성될 수 있다. 예를 들어, 인코딩 장치는 원본 블록과 예측된 블록 간의 레지듀얼 블록을 도출하고, 레지듀얼 블록에 포함된 레지듀얼 샘플들(레지듀얼 샘플 어레이)에 변환 절차를 수행하여 변환 계수들을 도출하고, 변환 계수들에 양자화 절차를 수행하여 양자화된 변환 계수들을 도출하여 관련된 레지듀얼 정보를 (비트스트림을 통하여) 디코딩 장치로 시그널링할 수 있다. 여기서 레지듀얼 정보는 양자화된 변환 계수들의 값 정보, 위치 정보, 변환 기법, 변환 커널, 양자화 파라미터 등의 정보를 포함할 수 있다. 디코딩 장치는 레지듀얼 정보를 기반으로 역양자화/역변환 절차를 수행하고 레지듀얼 샘플들(또는 레지듀얼 블록)을 도출할 수 있다. 디코딩 장치는 예측된 블록과 레지듀얼 블록을 기반으로 복원 픽처를 생성할 수 있다. 인코딩 장치는 또한 이후 픽처의 인터 예측을 위한 참조를 위하여 양자화된 변환 계수들을 역양자화/역변환하여 레지듀얼 블록을 도출하고, 이를 기반으로 복원 픽처를 생성할 수 있다.
일반적으로 비디오/영상 코딩에서는 양자화율을 변화시킬 수 있으며, 변화된 양자화율을 이용하여 압축를을 조절할 수 있다. 구현 관점에서는 복잡도를 고려하여 양자화율을 직접 사용하는 대신 양자화 파라미터(quantization parameter, QP)가 사용될 수 있다. 예를 들어, 0부터 63까지의 정수 값의 양자화 파라미터가 사용될 수 있으며, 각 양자화 파라미터 값은 실제 양자화율에 대응될 수 있다. 또한, 예를 들어, 루마 성분(루마 샘플)에 대한 양자화 파라미터(QPY)와 크로마 성분(크로마 샘플)에 대한 양자화 파라미터(QPC)는 다르게 설정될 수 있다.
양자화 과정은 변환 계수(C)를 입력으로 하고, 양자화율(Qstep)로 나누어서, 이를 기반으로 양자화된 변환 계수(C`)을 얻을 수 있다. 이 경우, 계산 복잡도를 고려하여 양자화율에 스케일을 곱하여 정수 형태로 만들고, 스케일 값에 해당하는 값만큼 쉬프트 연산을 수행할 수 있다. 양자화율과 스케일 값의 곱을 기반으로 양자화 스케일(quantization scale)이 도출될 수 있다. 즉, QP에 따라 상기 양자화 스케일이 도출될 수 있다. 예를 들어, 상기 변환 계수(C)에 상기 양자화 스케일을 적용하여, 이를 기반으로 양자화된 변환 계수(C`)가 도출될 수도 있다.
역양자화 과정은 양자화 과정의 역과정으로 양자화된 변환 계수(C`)에 양자화율(Qstep)을 곱하여, 이를 기반으로 복원된 변환 계수(C``)를 얻을 수 있다. 이 경우 상기 양자화 파라미터에 따라 레벨 스케일(level scale)이 도출될 수 있으며, 상기 양자화된 변환 계수(C`)에 상기 레벨 스케일을 적용하여, 이를 기반으로 복원된 변환 계수(C``)가 도출될 수 있다. 복원된 변환 계수(C``)는 변환 및/또는 양자화 과정에서의 손실(loss)로 인하여 최초 변환 계수(C)와 다소 차이가 있을 수 있다. 따라서, 인코딩 장치에서도 디코딩 장치에서와 동일하게 역양자화을 수행한다.
도 4는 본 문서의 실시예(들)이 적용 가능한 개략적인 비디오/영상 인코딩 절차의 예를 나타낸다. 도 4에서 S400은 도 2에서 상술한 인코딩 장치의 예측부(220)에서 수행될 수 있고, S410은 레지듀얼 처리부(230)에서 수행될 수 있고, S420은 엔트로피 인코딩부(240)에서 수행될 수 있다. S400은 본 문서에서 설명된 인터/인트라 예측 절차를 포함할 수 있고, S410은 본 문서에서 설명된 레지듀얼 처리 절차를 포함할 수 있고, S420은 본 문서에서 설명된 정보 인코딩 절차를 포함할 수 있다.
도 4를 참조하면, 비디오/영상 인코딩 절차는 도 2에 대한 설명에서 나타난 바와 같이 개략적으로 픽처 복원을 위한 정보(ex. 예측 정보, 레지듀얼 정보, 파티셔닝 정보 등)을 인코딩하여 비트스트림 형태로 출력하는 절차뿐 아니라, 현재 픽처에 대한 복원 픽처를 생성하는 절차 및 복원 픽처에 인루프 필터링을 적용하는 절차(optional)를 포함할 수 있다. 인코딩 장치는 역양자화부(234) 및 역변환부(235)를 통하여 양자화된 변환 계수로부터 (수정된) 레지듀얼 샘플들을 도출할 수 있으며, S400의 출력인 예측 샘플들과 상기 (수정된) 레지듀얼 샘플들을 기반으로 복원 픽처를 생성할 수 있다. 이렇게 생성된 복원 픽처는 상술한 디코딩 장치에서 생성한 복원 픽처와 동일할 수 있다. 상기 복원 픽처에 대한 인루프 필터링 절차를 통하여 수정된 복원 픽처가 생성될 수 있으며, 이는 복호 픽처 버퍼 또는 메모리(270)에 저장될 수 있으며, 디코딩 장치에서의 경우와 마찬가지로, 이후 픽처의 인코딩시 인터 예측 절차에서 참조 픽처로 사용될 수 있다. 상술한 바와 같이 경우에 따라서 상기 인루프 필터링 절차의 일부 또는 전부는 생략될 수 있다. 상기 인루프 필터링 절차가 수행되는 경우, (인루프) 필터링 관련 정보(파라미터)가 엔트로피 인코딩부(240)에서 인코딩되어 비트스트림 형태로 출력될 수 있고, 디코딩 장치는 상기 필터링 관련 정보를 기반으로 인코딩 장치와 동일한 방법으로 인루프 필터링 절차를 수행할 수 있다.
이러한 인루프 필터링 절차를 통하여 블록킹 아티팩트(artifact) 및 링잉(ringing) 아티팩트 등 영상/동영상 코딩시 발생하는 노이즈를 줄일 수 있으며, 주관적/객관적 비주얼 퀄리티를 높일 수 있다. 또한, 인코딩 장치와 디코딩 장치에서 둘 다 인루프 필터링 절차를 수행함으로서, 인코딩 장치와 디코딩 장치는 동일한 예측 결과를 도출할 수 있으며, 픽처 코딩의 신뢰성을 높이고, 픽처 코딩을 위하여 전송되어야 하는 데이터량을 줄일 수 있다.
상술한 바와 같이 디코딩 장치뿐 아니라 인코딩 장치서도 픽처 복원 절차가 수행될 수 있다. 각 블록 단위로 인트라 예측/인터 예측에 기반하여 복원 블록이 생성될 수 있으며, 복원 블록들을 포함하는 복원 픽처가 생성될 수 있다. 현재 픽처/슬라이스/타일 그룹이 I 픽처/슬라이스/타일 그룹인 경우 상기 현재 픽처/슬라이스/타일 그룹에 포함되는 블록들은 인트라 예측만을 기반으로 복원될 수 있다. 한편, 현재 픽처/슬라이스/타일 그룹이 P 또는 B 픽처/슬라이스/타일 그룹인 경우 상기 현재 픽처/슬라이스/타일 그룹에 포함되는 블록들은 인트라 예측 또는 인터 예측을 기반으로 복원될 수 있다. 이 경우 현재 픽처/슬라이스/타일 그룹 내 일부 블록들에 대하여는 인터 예측이 적용되고, 나머지 일부 블록들에 대하여는 인트라 예측이 적용될 수도 있다. 픽처의 컬러 성분은 루마 성분 및 크로마 성분을 포함할 수 있으며, 본 문서에서 명시적으로 제한하지 않으면 본 문서에서 제안되는 방법들 및 실시예들은 루마 성분 및 크로마 성분에 적용될 수 있다.
도 5는 본 문서의 실시예(들)이 적용 가능한 개략적인 비디오/영상 디코딩 절차의 예를 나타낸다. 도 5에서 S500은 도 3에서 상술한 디코딩 장치의 엔트로피 디코딩부(310)에서 수행될 수 있고, S510은 예측부(330)에서 수행될 수 있고, S520은 레지듀얼 처리부(320)에서 수행될 수 있고, S530은 가산부(340)에서 수행될 수 있고, S540은 필터링부(350)에서 수행될 수 있다. S500은 본 문서에서 설명된 정보 디코딩 절차를 포함할 수 있고, S510은 본 문서에서 설명된 인터/인트라 예측 절차를 포함할 수 있고, S520은 본 문서에서 설명된 레지듀얼 처리 절차를 포함할 수 있고, S530은 본 문서에서 설명된 블록/픽처 복원 절차를 포함할 수 있고, S540은 본 문서에서 설명된 인루프 필터링 절차를 포함할 수 있다.
도 5를 참조하면, 픽처 디코딩 절차는 도 3에 대한 설명에서 나타난 바와 같이 개략적으로 비트스트림으로부터 (디코딩을 통한) 영상/비디오 정보 획득 절차(S500), 픽처 복원 절차(S510~S530) 및 복원된 픽처에 대한 인루프 필터링 절차(S540)를 포함할 수 있다. 상기 픽처 복원 절차는 본 문서에서 설명된 인터/인트라 예측(S510) 및 레지듀얼 처리(S520, 양자화된 변환 계수에 대한 역양자화, 역변환) 과정을 거쳐서 획득한 예측 샘플들 및 레지듀얼 샘플들을 기반으로 수행될 수 있다. 상기 픽처 복원 절차를 통하여 생성된 복원 픽처에 대한 인루프 필터링 절차를 통하여 수정된(modified) 복원 픽처가 생성될 수 있으며, 상기 수정된 복원 픽처가 디코딩된 픽처로서 출력될 수 있고, 또한 디코딩 장치의 복호 픽처 버퍼 또는 메모리(360)에 저장되어 이후 픽처의 디코딩시 인터 예측 절차에서 참조 픽처로 사용될 수 있다.
경우에 따라서 상기 인루프 필터링 절차는 생략될 수 있으며, 이 경우 상기 복원 픽처가 디코딩된 픽처로서 출력될 수 있고, 또한 디코딩 장치의 복호 픽처 버퍼 또는 메모리(360)에 저장되어 이후 픽처의 디코딩시 인터 예측 절차에서 참조 픽처로 사용될 수 있다. 상기 인루프 필터링 절차(S540)는 상술한 바와 같이 디블록킹 필터링 절차, SAO(sample adaptive offset) 절차, ALF(adaptive loop filter) 절차 및/또는 바이래터럴 필터(bi-lateral filter) 절차 등을 포함할 수 있고, 그 일부 또는 전부가 생략될 수 있다. 또한, 상기 디블록킹 필터링 절차, SAO(sample adaptive offset) 절차, ALF(adaptive loop filter) 절차 및 바이래터럴 필터(bi-lateral filter) 절차들 중 하나 또는 일부가 순차적으로 적용될 수 있고, 또는 모두가 순차적으로 적용될 수도 있다. 예를 들어, 복원 픽처에 대하여 디블록킹 필터링 절차가 적용된 후 SAO 절차가 수행될 수 있다. 또는 예를 들어 복원 픽처에 대하여 디블록킹 필터링 절차가 적용된 후 ALF 절차가 수행될 수 있다. 이는 인코딩 장치에서도 마찬가지로 수행될 수 있다.
한편, 상술한 내용과 같이 인코딩 장치는 예를 들어 지수 골롬(exponential Golomb), CAVLC(context-adaptive variable length coding), CABAC(context-adaptive binary arithmetic coding) 등과 같은 다양한 인코딩 방법을 기반으로 엔트로피 인코딩을 수행할 수 있다. 또한, 디코딩 장치는 지수 골롬 부호화, CAVLC 또는 CABAC 등의 코딩 방법을 기초로 엔트로피 디코딩을 수행할 수 있다. 이하에서는 엔트로피 인코딩/디코딩 절차에 관하여 설명한다.
도 6은 본 문서의 실시예들이 적용 가능한 엔트로피 인코딩 방법의 일 예를 개략적으로 나타내고, 도 7은 인코딩 장치 내 엔트로피 인코딩부를 개략적으로 나타낸다. 도 7의 인코딩 장치 내 엔트로피 인코딩부는 상술한 도 2의 인코딩 장치(200)의 엔트로피 인코딩부(240)에도 동일 또는 대응되도록 적용될 수 있다.
도 6 및 도 7을 참조하면, 인코딩 장치(엔트로피 인코딩부)는 영상/비디오 정보에 관한 엔트로피 코딩 절차를 수행할 수 있다. 영상/비디오 정보는 파티셔닝 관련 정보, 예측 관련 정보(ex. 인터/인트라 예측 구분 정보, 인트라 예측 모드 정보, 인터 예측 모드 정보 등), 레지듀얼 정보, 인루프 필터링 관련 정보 등을 포함할 수 있고, 또는 그에 관한 다양한 신택스 요소들을 포함할 수 있다. 엔트로피 코딩은 신택스 요소 단위로 수행될 수 있다. S600 내지 S610은 상술한 도 2의 인코딩 장치(200)의 엔트로피 인코딩부(240)에 의하여 수행될 수 있다.
인코딩 장치는 대상 신택스 요소에 대한 이진화를 수행할 수 있다(S600). 여기서 이진화는 Truncated Rice binarization process, Fixed-length binarization process 등 다양한 이진화 방법에 기반할 수 있으며, 대상 신택스 요소에 대한 이진화 방법은 미리 정의될 수 있다. 이진화 절차는 엔트로피 인코딩부(240) 내의 이진화부(242)에 의하여 수행될 수 있다.
인코딩 장치는 대상 신택스 요소에 대한 엔트로피 인코딩을 수행할 수 있다(S610). 인코딩 장치는 CABAC (context-adaptive arithmetic coding) 또는 CAVLC (context-adaptive variable length coding) 등의 엔트로피 코딩 기법을 기반으로 대상 신택스 요소의 빈 스트링(bin string)을 정규 코딩 기반(컨텍스트 기반) 또는 바이패스 코딩 기반 인코딩할 수 있으며, 그 출력은 비트스트림에 포함될 수 있다. 엔트로피 인코딩 절차는 엔트로피 인코딩부(240) 내의 엔트로피 인코딩 처리부(243)에 의하여 수행될 수 있다. 비트스트림은 (디지털) 저장매체 또는 네트워크를 통하여 디코딩 장치로 전달될 수 있음을 전술한 바와 같다.
도 8은 본 문서의 실시예들이 적용 가능한 엔트로피 디코딩 방법의 일 예를 개략적으로 나타내고, 도 9는 디코딩 장치 내 엔트로피 디코딩부를 개략적으로 나타낸다. 도 9의 디코딩 장치 내 엔트로피 디코딩부는 상술한 도 3의 디코딩 장치(300)의 엔트로피 디코딩부(310)에도 동일 또는 대응되도록 적용될 수 있다.
도 8 및 도 9를 참조하면, 디코딩 장치(엔트로피 디코딩부)는 인코딩된 영상/비디오 정보를 디코딩할 수 있다. 영상/비디오 정보는 파티셔닝 관련 정보, 예측 관련 정보(ex. 인터/인트라 예측 구분 정보, 인트라 예측 모드 정보, 인터 예측 모드 정보 등), 레지듀얼 정보, 인루프 필터링 관련 정보 등을 포함할 수 있고, 또는 그에 관한 다양한 신택스 요소들을 포함할 수 있다. 엔트로피 코딩은 신택스 요소 단위로 수행될 수 있다. S800 내지 S810은 상술한 도 3의 디코딩 장치(300)의 엔트로피 디코딩부(310)에 의하여 수행될 수 있다.
디코딩 장치는 대상 신택스 요소에 대한 이진화를 수행할 수 있다(S800). 여기서 이진화는 Truncated Rice binarization process, Fixed-length binarization process 등 다양한 이진화 방법에 기반할 수 있으며, 대상 신택스 요소에 대한 이진화 방법은 미리 정의될 수 있다. 디코딩 장치는 이진화 절차를 통하여 대상 신택스 요소의 가용 값들에 대한 가용 빈 스트링들(빈 스트링 후보들)을 도출할 수 있다. 이진화 절차는 엔트로피 디코딩부(310) 내의 이진화부(312)에 의하여 수행될 수 있다.
디코딩 장치는 대상 신택스 요소에 대한 엔트로피 디코딩을 수행할 수 있다(S810). 디코딩 장치는 비트스트림 내 입력 비트(들)로부터 대상 신택스 요소에 대한 각 빈들을 순차적으로 디코딩 및 파싱하면서, 도출된 빈 스트링을 해당 신택스 요소에 대한 가용 빈 스트링들과 비교한다. 만약 도출된 빈 스트링이 가용 빈 스트링들 중 하나와 같으면, 해당 빈 스트링에 대응하는 값이 해당 신택스 요소의 값으로 도출될 수 있다. 만약, 그렇지 않으면, 비트스트림 내 다음 비트를 더 파싱 후 상술한 절차를 다시 수행할 수 있다. 이러한 과정을 통하여 비트스트림 내에 특정 정보(특정 신택스 요소)에 대한 시작 비트나 끝 비트를 사용하지 않고도 가변 길이 비트를 이용하여 해당 정보를 시그널링할 수 있다. 이를 통하여 낮은 값에 대하여는 상대적으로 더 적은 비트를 할당할 수 있으며, 전반적인 코딩 효율을 높일 수 있다.
디코딩 장치는 CABAC 또는 CAVLC 등의 엔트로피 코딩 기법을 기반으로 비트스트림으로부터 빈 스트링 내 각 빈들을 컨텍스트 기반 또는 바이패스 기반 디코딩할 수 있다. 여기서 비트스트림은 상술한 바와 같이 영상/비디오 디코딩을 위한 다양한 정보를 포함할 수 있다. 비트스트림은 (디지털) 저장매체 또는 네트워크를 통하여 디코딩 장치로 전달될 수 있음을 전술한 바와 같다.
도 10은 코딩된 영상/비디오에 대한 계층 구조를 예시적으로 나타낸다.
도 10을 참조하면, 코딩된 영상/비디오는 영상/비디오의 디코딩 처리 및 그 자체를 다루는 VCL(video coding layer, 비디오 코딩 계층), 부호화된 정보를 전송하고 저장하는 하위 시스템, 그리고 VCL과 하위 시스템 사이에 존재하며 네트워크 적응 기능을 담당하는 NAL(network abstraction layer, 네트워크 추상 계층)로 구분되어 있다.
VCL에서는 압축된 영상 데이터(슬라이스 데이터)를 포함하는 VCL 데이터를 생성하거나, 혹은 픽처 파라미터 세트(Picture Parameter Set: PPS), 시퀀스 파라미터 세트(Sequence Parameter Set: SPS), 비디오 파라미터 세트(Video Parameter Set: VPS) 등의 정보를 포함하는 파라미터 세트 또는 영상의 디코딩 과정에 부가적으로 필요한 SEI(Supplemental Enhancement Information) 메시지를 생성할 수 있다.
NAL에서는 VCL에서 생성된 RBSP(Raw Byte Sequence Payload)에 헤더 정보(NAL 유닛 헤더)를 부가하여 NAL 유닛을 생성할 수 있다. 이때, RBSP는 VCL에서 생성된 슬라이스 데이터, 파라미터 세트, SEI 메시지 등을 말한다. NAL 유닛 헤더에는 해당 NAL 유닛에 포함되는 RBSP 데이터에 따라 특정되는 NAL 유닛 타입 정보를 포함할 수 있다.
또한, NAL 유닛은 VCL에서 생성된 RBSP의 따라 VCL NAL 유닛과 Non-VCL NAL 유닛으로 구분될 수 있다. VCL NAL 유닛은 영상에 대한 정보(슬라이스 데이터)를 포함하고 있는 NAL 유닛을 의미할 수 있고, Non-VCL NAL 유닛은 영상을 디코딩하기 위하여 필요한 정보(파라미터 세트 또는 SEI 메시지)를 포함하고 있는 NAL 유닛을 의미할 수 있다.
VCL NAL 유닛, Non-VCL NAL 유닛은 하위 시스템의 데이터 규격에 따라 헤더 정보를 붙여서 네트워크를 통해 전송될 수 있다. 예컨대, NAL 유닛은 H.266/VVC 파일 포맷, RTP(Real-time Transport Protocol), TS(Transport Stream) 등과 같은 소정 규격의 데이터 형태로 변형되어 다양한 네트워크를 통해 전송될 수 있다.
상술한 바와 같이, NAL 유닛은 해당 NAL 유닛에 포함되는 RBSP 데이터 구조(structure)에 따라 NAL 유닛 타입이 특정될 수 있으며, 이러한 NAL 유닛 타입에 대한 정보는 NAL 유닛 헤더에 저장되어 시그널링될 수 있다.
예를 들어, NAL 유닛이 영상에 대한 정보(슬라이스 데이터)를 포함하는지 여부에 따라 크게 VCL NAL 유닛 타입과 Non-VCL NAL 유닛 타입으로 분류될 수 있다. VCL NAL 유닛 타입은 VCL NAL 유닛이 포함하는 픽처의 성질 및 종류 등에 따라 분류될 수 있으며, Non-VCL NAL 유닛 타입은 파라미터 세트의 종류 등에 따라 분류될 수 있다.
아래는 Non-VCL NAL 유닛 타입이 포함하는 파라미터 세트의 종류 등에 따라 특정된 NAL 유닛 타입의 일 예이다.
- APS (Adaptation Parameter Set) NAL unit: APS를 포함하는 NAL 유닛에 대한 타입
- DPS (Decoding Parameter Set) NAL unit: DPS를 포함하는 NAL 유닛에 대한 타입
- VPS(Video Parameter Set) NAL unit: VPS를 포함하는 NAL 유닛에 대한 타입
- SPS(Sequence Parameter Set) NAL unit: SPS를 포함하는 NAL 유닛에 대한 타입
- PPS(Picture Parameter Set) NAL unit: PPS를 포함하는 NAL 유닛에 대한 타입
- PH(Picture header) NAL unit: PH를 포함하는 NAL 유닛에 대한 타입
상술한 NAL 유닛 타입들은 NAL 유닛 타입을 위한 신택스 정보를 가지며, 신택스 정보는 NAL 유닛 헤더에 저장되어 시그널링될 수 있다. 예컨대, 상기 신택스 정보는 nal_unit_type일 수 있으며, NAL 유닛 타입들은 nal_unit_type 값으로 특정될 수 있다.
한편, 상술한 바와 같이 하나의 픽처는 복수의 슬라이스를 포함할 수 있으며, 하나의 슬라이스는 슬라이스 헤더 및 슬라이스 데이터를 포함할 수 있다. 이 경우, 하나의 픽처 내 복수의 슬라이스(슬라이스 헤더 및 슬라이스 데이터 집합)에 대하여 하나의 픽처 헤더가 더 부가될 수 있다. 픽처 헤더(픽처 헤더 신택스)는 픽처에 공통적으로 적용할 수 있는 정보/파라미터를 포함할 수 있다. 본 문서에서 타일 그룹은 슬라이스 또는 픽처로 혼용 또는 대체될 수 있다. 또한, 본 문서에서 타일 그룹 헤더는 슬라이스 헤더 또는 픽처 헤더로 혼용 또는 대체될 수 있다.
슬라이스 헤더(슬라이스 헤더 신택스)는 슬라이스에 공통적으로 적용할 수 있는 정보/파라미터를 포함할 수 있다. APS(APS 신택스) 또는 PPS(PPS 신택스)는 하나 이상의 슬라이스 또는 픽처에 공통적으로 적용할 수 있는 정보/파라미터를 포함할 수 있다. SPS(SPS 신택스)는 하나 이상의 시퀀스에 공통적으로 적용할 수 있는 정보/파라미터를 포함할 수 있다. VPS(VPS 신택스)는 다중 레이어에 공통적으로 적용할 수 있는 정보/파라미터를 포함할 수 있다. DPS(DPS 신택스)는 비디오 전반에 공통적으로 적용할 수 있는 정보/파라미터를 포함할 수 있다. DPS는 CVS(coded video sequence)의 접합(concatenation)에 관련된 정보/파라미터를 포함할 수 있다. 본 문서에서 상위 레벨 신택스(High level syntax, HLS)라 함은 상기 APS 신택스, PPS 신택스, SPS 신택스, VPS 신택스, DPS 신택스, 픽처 헤더 신택스, 슬라이스 헤더 신택스 중 적어도 하나를 포함할 수 있다.
본 문서에서 인코딩 장치에서 디코딩 장치로 인코딩되어 비트스트림 형태로 시그널링되는 영상/비디오 정보는 픽처 내 파티셔닝 관련 정보, 인트라/인터 예측 정보, 레지듀얼 정보, 인루프 필터링 정보 등을 포함할 뿐 아니라, 슬라이스 헤더에 포함된 정보, 픽처 헤더에 포함된 정보, APS에 포함된 정보, PPS에 포함된 정보, SPS에 포함된 정보, VPS에 포함된 정보 및/또는 DPS에 포함된 정보를 포함할 수 있다. 또한 상기 영상/비디오 정보는 NAL 유닛 헤더의 정보를 더 포함할 수 있다.
한편, ACT (Adaptive Color Transform)는 색상 구성요소 간(inter-color-component) 중복을 제거하기 위해 인 루프 색 공간 변환(in-loop color space conversion)을 사용하기 위한 HEVC 스크린 콘텐츠 확장에 존재하는 기술이다. 또한 ACT는 VVC 표준에서도 444 콘텐츠에 대해 채택되었다.
HEVC 스크린 콘텐츠 코딩 (SCC) 확장에서, ACT는 예측 레지듀얼(prediction residuals)을 하나의 색상 공간에서 YCgCo 공간으로 적응 적으로 변환하기 위해 사용되었다. 각 변환 유닛(TU)에 대해 하나의 ACT 플래그를 시그널링하여 두 개의 색상 공간이 적응적으로 선택된다. 상기 플래그가 1과 같은 경우, TU의 레지듀얼이 YCgCo 공간에서 코딩됨을 나타낸다. 그렇지 않으면 (즉, 상기 플래그가 0과 같은 경우), TU의 레지듀얼이 원래 색상 공간에서 코딩됨을 나타낸다.
ACT는 444 콘텐츠 (4:4:4 크로마 포맷 콘텐츠)에 대한 VVC 표준에도 채택되었으며, ACT를 사용한 디코딩 프로세스는 도 11에 도시된 바와 같이 수행될 수 있다.
도 11은 본 문서의 실시예(들)이 적용 가능한 ACT를 사용한 비디오/영상 디코딩 절차의 일예를 설명하기 위한 도면이다.
여기서, 움직임 보상 예측(motion compensated prediction)은 본 문서에서 인터 예측이라고 지칭할 수 있다. 도 11에 도시된 바와 같이, 복원된 픽처(또는 복원된 블록, 복원된 샘플 어레이, 복원된 샘플(들), 복원된 신호)는 예측 출력 및 레지듀얼 출력 (역변환(inverse normal transform)(예: 역 MTS 기반 변환 및/또는 역 LFNST 등) 또는 역 ACT의 레지듀얼 출력)을 기반으로 생성될 수 있다. 예측 출력은 예측 블록, 예측 샘플 어레이, 예측 샘플(들) 또는 예측 신호를 포함할 수 있다. 레지듀얼 출력은 레지듀얼 블록, 레지듀얼 샘플 어레이, 레지듀얼 샘플(들) 또는 레지듀얼 신호를 포함할 수 있다. 예를 들어, 인코딩 측에서, ACT 프로세스는 예측 샘플을 기반으로 도출된 레지듀얼 샘플에 대해 수행될 수 있고, ACT 프로세스의 출력은 (예를 들어 MTS 기반 변환 및/또는 LFNST와 같은) 일반 변환(normal transform)의 입력일 수 있다. (역) ACT와 관련된 정보 (파라미터)는 인코딩 장치에 의해 생성/인코딩될 수 있고, 비트스트림을 통해 디코딩 장치로 전송될 수 있다. 디코딩 장치는 (역) ACT와 관련된 정보 (파라미터)를 획득/파싱/디코딩할 수 있고, (역) ACT와 관련된 정보 (파라미터)를 기반으로 역 ACT를 수행할 수 있다. 역 ACT를 기반으로, (수정된) 레지듀얼 샘플(또는 레지듀얼 블록)이 도출될 수 있다. 구체적으로, (변환) 계수는 양자화된 (변환) 계수에 대한 역양자화에 의해 도출되고, 레지듀얼 샘플은 역변환을 수행하여 도출될 수 있으며, 역 ACT는 (수정된) 레지듀얼 샘플을 획득하기 위해 추가로 수행될 수 있다.
색상 공간 변환에 사용되는 핵심(core) 변환 (변환 커널)은 HEVC에 사용된 것과 동일하게 유지될 수 있다. 구체적으로, 다음과 같이 정방향(forward) 및 역방향(inverse) YCgCo 색상 변환 매트릭스가 적용될 수 있다.
여기서 C0, C1, C2은 G, B, R에 대응할 수 있고, C0', C1' 및 C2'는 Y, Cg, Co에 대응할 수 있다.
또한, 색 변환 전후의 레지듀얼 신호의 동적 범위 변화를 보상하기 위해, (-5, -5, -3)의 QP 조정이 변환 레지듀얼에 적용될 수 있다. QP 조정에 대한 자세한 내용은 후술한다.
VVC에 채택된 ACT의 경우, ACT를 적용할 수 있는 경우 및 다른 툴(tool)과의 상호작용에 대한 몇가지 제한사항(restrictions)이 있다.
- ACT는 듀얼 트리에 대해 비활성화(disabled) 된다. 즉, ACT는 싱글 트리에 대해서만 활성화(enabled) 된다.
- ACT는 ISP(Intra sub-partition prediction)에 대해 비활성화 된다.
- ACT는 BDPCM(Block Differential Pulse Coded Modulation) 크로마에 대해 비활성화되며, BDPCM 루마에 대해서만 활성화 된다.
- ACT가 활성화되면 CCLM(Cross-component linear model prediction)이 비활성화 된다.
영상/비디오에 대한 인코딩/디코딩 과정에서 상술한 ACT를 적용할지 여부는 다음 표 1 및 표 2에서와 같은 신택스를 통해서 시그널링되는 ACT 관련 정보(즉, ACT 관련 신택스 엘리먼트들)를 기반으로 결정될 수 있다. 즉, 영상 정보에 포함된 ACT 관련 정보를 기반으로 ACT를 적용할지 여부가 결정되고, 상기 결정에 따라 ACT가 적용되는 경우 레지듀얼 샘플에 대해 적용되어 수정된 레지듀얼 샘플이 도출될 수 있다.
예를 들어, 다음 표 1 및 표 2는 ACT 관련 정보(즉, ACT 관련 신택스 엘리먼트들)가 시그널링되는 신택스 구조의 일예를 나타낸 것이다.
다음 표 3은 상기 표 1 및 표 2의 신택스 테이블에 포함된 신택스 엘리먼트들에 대한 시맨틱스를 나타낸 것이다.
상기 표 1 내지 3을 참조하면, SPS(Sequence parameter set)를 통해서 ACT가 가용한지 여부를 나타내는 정보가 시그널링/파싱될 수 있다. 예를 들어, ACT가 가용한지 여부를 나타내는 정보는 sps_act_enabled_flag 신택스 엘리먼트일 수 있다. sps_act_enabled_flag의 값이 1인 경우 ACT가 가용함을 나타낼 수 있고, 이 경우 코딩 유닛 신택스에서 현재 블록(즉, 현재 코딩 유닛)의 레지듀얼에 ACT를 적용할지 여부를 나타내는 정보가 존재할 수 있다. 또는, sps_act_enabled_flag의 값이 0인 경우 ACT가 가용하지 않음을 나타낼 수 있고, 이 경우 코딩 유닛 신택스에서 현재 블록(즉, 현재 코딩 유닛)의 레지듀얼에 ACT를 적용할지 여부를 나타내는 정보가 존재하지 않을 수 있다.
상기 SPS를 통해 시그널링된 ACT가 가용한지 여부를 나타내는 정보(예: sps_act_enabled_flag)를 기반으로, 코딩 유닛 신택스를 통해서 현재 블록(즉, 현재 코딩 유닛)의 레지듀얼에 ACT를 적용할지 여부를 나타내는 정보가 시그널링/파싱될 수 있다. 예를 들어, 현재 블록(즉, 현재 코딩 유닛)의 레지듀얼에 ACT를 적용할지 여부를 나타내는 정보는 cu_act_enabled_flag 신택스 엘리먼트일 수 있다. cu_act_enabled_flag의 값이 1인 경우 현재 블록의 레지듀얼에 ACT를 적용함을 나타낼 수 있고(즉, YCgCo 색상 공간에서 코딩함을 나타냄), cu_act_enabled_flag의 값이 0인 경우 현재 블록의 레지듀얼에 ACT를 적용하지 않음을 나타낼 수 있다(즉, 오리지널 색상 공간에서 코딩됨을 나타냄). 여기서, ACT를 적용한다는 것은 색상 공간 변환(colour space conversion)을 사용함을 의미하는 것일 수 있다.
일 실시예로, SPS를 통해 시그널링/파싱된 ACT가 가용한지 여부를 나타내는 정보(예: sps_act_enabled_flag)의 값이 1인 경우, 코딩 유닛 신택스에서는 현재 블록(즉, 현재 코딩 유닛)의 레지듀얼에 ACT를 적용할지 여부를 나타내는 정보(예: cu_act_enabled_flag)가 시그널링/파싱될 수 있다. 또는, SPS를 통해 시그널링/파싱된 ACT가 가용한지 여부를 나타내는 정보(예: sps_act_enabled_flag)의 값이 0인 경우, 코딩 유닛 신택스에서는 현재 블록(즉, 현재 코딩 유닛)의 레지듀얼에 ACT를 적용할지 여부를 나타내는 정보(예: cu_act_enabled_flag)가 시그널링/파싱되지 않을 수 있다.
또한, 코딩 유닛 신택스를 통해 시그널링/파싱된 현재 블록(즉, 현재 코딩 유닛)의 레지듀얼에 ACT를 적용할지 여부를 나타내는 정보(예: cu_act_enabled_flag)의 값이 1인 경우를 기반으로, 현재 블록의 레지듀얼에 ACT(즉, 색상 공간 변환)을 적용할 수 있다.
한편, 상술한 바와 같이 VVC에서 ACT 색상 변환은 상기 수학식 1에서와 같은 수식을 이용할 수 있다. 이 변환은 YCgCo 변환이라고 한다. 상기 수학식 1에서와 같은 행렬 곱셈은 아래 수학식 2와 같이 표현될 수도 있다.
상기 변환은 완전히 되돌릴 수 없다(Co 및 Cg 처리(handling)에 대한 정확도(precision) 손실로 인해 완벽한 복원이 아님). 따라서 무손실 코딩이 필요한 어플리케이션에서는 사용할 수 없다. 무손실 코딩을 활성화하는 직접적인 한가지 방법은 ACT를 끄는(turn off) 것이다. 단점은 무손실 코딩 어플리케이션이 ACT의 이점을 누릴 수 없다는 것이다. 후술할 본 문서의 실시예들은 손실 및 무손실 코딩 어플리케이션 모두에서 ACT를 가능하게(enable) 하는 방법을 제공한다.
이하, 본 문서에서는 ACT 기반 인코딩/디코딩 절차를 적용함에 있어서 상술한 바와 같은 ACT의 문제점을 개선하고 코딩 효율을 높일 수 있는 방안들을 제안한다.
현재 VVC에서는 ACT QP 조정(adjustment)이 적용될 수 있고, 이 경우 두 가지 문제가 있을 수 있다. 첫째, 각 색상 구성요소가 다른 ACT Qp 오프셋을 가질 수 있는데, QP 도출 과정에서 이를 정확하게 반영하지 않는다. 둘째, 도출된 QP는 음의 값을 가질 수 있다. 따라서, 본 문서의 일 실시예는 각 색상 성분에 대한 ACT Qp 오프셋을 반영한 QP를 도출하고, 상기 도출된 QP가 음의 값을 갖지 않도록 하는 방안을 제안한다. 본 문서에서 루마 성분에 대한 양자화 파라미터는 Qp'y, 크로마 Cb 성분에 대한 양자화 파라미터는 Qp'Cb, 크로마 Cr 성분에 대한 양자화 파라미터는 Qp'Cr, 조인트 Cb-Cr 코딩에 대한 양자화 파라미터는 Qp'CbCr 로 나타낼 수 있다.
일 실시예로, 다음 표 1에서와 같이, 각 색상 구성요소의 ACT QP 오프셋을 기반으로 도출되는 QP를 클리핑(clip)할 수 있다.
상기 표 4를 참조하면, 각 색상 성분에 대한 ACT QP 오프셋(예: ActQpOffset)이 도출될 수 있다. 예를 들어, 루마 성분에 대한 ACT QP 오프셋(예: ActQpOffset)은 -5이고, 조인트 Cb-Cr 코딩에 대한 ACT QP 오프셋(예: ActQpOffset)은 -5이고, 크로마 Cb 성분에 대한 ACT QP 오프셋(예: ActQpOffset)은 -5이고, 크로마 Cr 성분에 대한 ACT QP 오프셋(예: ActQpOffset)은 -3일 수 있다. 이때, 양자화 파라미터(예: qP)는 각 색상 성분에 대한 ACT QP 오프셋(예: ActQpOffset)의 값을 기반으로 수정(modify)될 수 있다. 예를 들어, 각 색상 성분에 대해 도출된 양자화 파라미터(예: Qp'y, Qp'Cb, Qp'Cr, Qp'CbCr) 및 각 색상 성분의 ACT QP 오프셋(예: ActQpOffset)을 기반으로, 양자화 파라미터(예: qP)가 수정될 수 있다. 여기서 현재 블록의 레지듀얼이 색 공간 변환(colour space conversion)을 사용하여 적용되는지 여부를 나타내는 정보(예: cu_act_enabled_flag)의 값을 기반으로, ACT QP 오프셋(예: ActQpOffset)을 양자화 파라미터(예: Qp'y, Qp'Cb, Qp'Cr, Qp'CbCr)에 반영할 수 있다. 이때, 양자화 파라미터(예: qP)가 음의 값을 가지지 않도록 하기 위해서, 양자화 파라미터(예: qP)를 클리핑할 수 있다. 예를 들어 상기 표 4에서와 같이 양자화 양자화 파라미터(예: qP)는 각 색상 성분에 대한 ACT QP 오프셋(예: ActQpOffset)의 값을 기반으로 도출된 양자화 파라미터 및 0 값 중에서 큰 값으로 결정될 수 있다.
다른 예로, 다음 표 5와 같이 QP를 클리핑(clip)할 수 있다. 표 5는 상기 표 4에서 변환/역변환의 생략 여부에 관한 정보(예: transform_skip_flag)의 값이 1인 경우, 0 대신 변환 스킵 모드에서의 최소 양자화 파라미터 값(예: QpPrimeTsMin)을 기반으로 QP를 클리핑(clip)하는 예를 나타낸 것이다. 여기서 변환/역변환의 생략 여부에 관한 정보(예: transform_skip_flag)의 값이 1인 경우, 변환/역변환이 생략됨을 나타내며 변환 스킵 모드라고 지칭될 수 있다. 변환/역변환의 생략 여부에 관한 정보(예: transform_skip_flag)의 값이 0인 경우, 변환/역변환이 적용됨을 나타낼 수 있다. 변환 스킵 모드에서의 최소 양자화 파라미터 값(예: QpPrimeTsMin)은 min_qp_prime_ts_minus4 신택스 엘리먼트를 기반으로 도출되는 값일 수 있고, min_qp_prime_ts_minus4 신택스 엘리먼트는 SPS에서 시그널링되는 변환 스킵 모드에 대해 허용되는 최소 양자화 파라미터(minimum allowed quantization parameter)를 나타낼 수 있다.
여기서 Y, Cb는 3가지 색상 성분을 나타내고, Y는 C0에 대응할 수 있고, Cb는 C1 또는 Cg에 대응할 수 있으며, Cr은 ACT 변환에서 C2 또는 Co에 대응할 수 있다.
상술한 실시예는 다음 표 6에서와 같이 VVC의 스펙(spec)에 적용될 수 있다. 표 6은 스펙 내의 스케일링 과정 및 레지듀얼 수정 과정에 상술한 실시예를 적용할 경우의 일예를 나타낸다.
상기 표 4에서, 세가지 색상 성분에 대한 ACTQpOffset의 값은 -5, -5, -3으로 도출되었고, 상기 표 6에서, 세가지 색상 성분에 대한 ACTQpOffset의 값은 5, 5, 3으로 도출되었으나, 이는 하나의 예시일 뿐이고 다른 값 또는 변수로 대체될 수 있다.
한편, 현재 VVC 경우, ACT QP 오프셋에 대한 조정이 Y, Cg, Co 성분 및 YCbCr에 대해 -5로 고정된다. 본 문서의 일 실시예에서는 ACT QP 오프셋이 비트스트림을 통해서 시그널링될 수 있고 더 넓은 오프셋 범위를 가질 수 있는 경우를 고려하여, ACT QP 오프셋 기반 수정된 QP가 범위를 벗어나는 것을 방지하기 위해서 최소 및 최대 범위 내에서 클리핑될 수 있는 방안을 제안한다.
일 실시예로, ACT QP 오프셋은 시그널링되는 정보를 기반으로 도출되는 값 또는 미리 정의된 숫자일 수 있다. 예를 들어, 다음 표 4에서와 같이, ACT QP 오프셋은 변수 PpsActQpOffsetY, PpsActQpOffsetCb, PpsActQpOffsetCr 및 PpsActQpOffsetCbCr로 나타낼 수 있다. 상기 변수들은 시그널링되는 ACT QP 오프셋으로부터 도출되는 값 또는 미리 정의된 숫자일 수 있다. ACT QP 오프셋의 시그널링에 관해서는 후술하도록 한다. 일예로, PpsActQpOffsetY, PpsActQpOffsetCbCr, PpsActQpOffsetCb, PpsActQpOffsetCr의 값은 -12에서 +12까지의 범위에 존재해야 하며, 이는 비트스트림 적합성의 요구 사항일 수 있다.
예를 들어, 고정된 값 대신 QP 오프셋의 값이 시그널링되고 상기 QP 오프셋의 값의 범위가 -12에서 12까지인 경우, 음의 값을 갖는 QP를 피하기 위해서 도출된 QP의 최소값을 클리핑할 뿐만 아니라 도출된 QP의 최대값도 클리핑할 필요가 있다. qP의 최소값은 음의 값을 피하기 위해서 0이 될 수 있고, 또는 시그널링되는 신택스 엘리먼트에 의해 제한되는 최소 허용 qP(예: 변환 스킵 모드에서의 최소 양자화 파라미터 값; QpPrimeTsMin)이 될 수 있다. qP의 최대값은 가능한 최대 qP 값(예: 63) 또는 시그널링되는 신택스 엘리먼트에 의해 제한되는 최대 허용 qP일 수 있다.
다음 표 7은 상술한 실시예를 적용할 수 있는 알고리즘의 일예를 나타낸 것이다.
다른 예로, 다음 표 8과 같이 QP를 최소 및 최대 범위 내에서 클리핑(clip)할 수 있다. 표 8은 상기 표 7에서 변환/역변환의 생략 여부에 관한 정보(예: transform_skip_flag)의 값이 1인 경우, 최소 qP가 0 대신 QpPrimeTsMin을 기반으로 클리핑되는 예를 나타낸 것이다.
한편, ACT 및 루마 성분에 대한 BDPCM의 조합은 현재 VVC에서 허용되고 있다. 그러나 ACT 및 크로마 성분에 대한 BDPCM은 허용되지 않고 있다(disabled). 따라서, 본 문서의 일 실시예에서는 크로마 성분에 대한 BDPCM 및 ACT의 조합을 허용하는 것을 제안한다.
먼저 BDPCM에 관해 살펴보면, 인코딩/디코딩 과정에서 BDPCM (block differential pulse coded modulation 또는 Block-based Delta Pulse Code Modulation) 기법이 사용될 수 있다. BDPCM은 RDPCM(quantized Residual block-based Delta Pulse Code Modulation)으로 명명될 수도 있다.
BDPCM를 적용하여 블록을 예측하는 경우, 블록의 행 또는 열을 라인 바이 라인으로 예측하기 위하여 복원된 샘플들이 활용될 수 있다. 이 때, 사용된 참조 샘플은 필터링되지 않는 샘플일 수 있다. BDPCM 방향은 수직 방향 또는 수평 방향 예측이 사용되었는지 여부를 나타낼 수 있다. 즉, BDPCM 이 적용되는 경우, 수직 방향 또는 수평 방향이 BDPCM 방향으로 선택될 수 있고, 상기 BDPCM 방향으로 예측이 수행될 수 있다. 예측 오류(prediction error)는 공간적 도메인에서 양자화될 수 있고, 샘플은 예측(즉, 예측 샘플)에 역양자화된 예측 오류를 더함으로써 복원될 수 있다. 상기 예측 오류는 레지듀얼(residual)을 의미할 수 있다. 이러한 BDPCM의 대안으로써 양자화된 레지듀얼 도메인 BDPCM이 제안될 수 있고, 예측 방향이나 시그널링은 공간적 도메인에 적용되었던 BDPCM과 동일할 수 있다. 즉, 양자화된 레지듀얼 도메인 BDPCM을 통하여 양자화 계수 자체를 DPCM(Delta Pulse Code Modulation)처럼 쌓아나간 다음 역양자화를 통해 레지듀얼이 복원될 수 있다. 따라서, 양자화된 레지듀얼 도메인 BDPCM는 레지듀얼 코딩 단에서 DPCM을 적용한다는 의미로 사용될 수 있다. 이하에서 사용되는 양자화된 레지듀얼 도메인은 예측에 기반하여 도출된 레지듀얼이 변환 없이 양자화된 것으로, 양자화된 레지듀얼 샘플에 대한 도메인을 의미한다. 예를 들어, 양자화된 레지듀얼 도메인은 변환 스킵이 적용되는, 즉, 레지듀얼 샘플에 대하여 변환은 스킵되지만 양자화는 적용되는 양자화된 레지듀얼(또는 양자화된 레지듀얼 계수)를 포함할 수 있다. 또는, 예를 들어, 양자화된 레지듀얼 도메인은 양자화된 변환 계수를 포함할 수 있다.
상기와 같이, BDPCM은 양자화된 레지듀얼 도메인에 적용될 수 있으며, 양자화된 레지듀얼 도메인은 양자화된 레지듀얼(또는 양자화된 레지듀얼 계수)을 포함할 수 있고, 이 때 레지듀얼에 대해서는 변환 스킵이 적용될 수 있다. 즉, BDPCM 이 적용되는 경우에는 레지듀얼 샘플에 대하여 변환은 스킵되고 양자화는 적용될 수 있다. 또는 양자화된 레지듀얼 도메인은 양자화된 변환 계수를 포함할 수도 있다. BDPCM 적용 가능 여부에 대한 플래그는 시퀀스 레벨(SPS)에서 시그널링 될 수 있고, 이러한 플래그는 SPS에서 변환 스킵 모드가 가능하다고 시그널링되는 경우에만 시그널링 될 수도 있다. 상기 플래그는 BDPCM 가용 플래그 또는 SPS BDPCM 가용 플래그라고 불릴 수 있다.
BDPCM 적용 시, 인트라 예측은 인트라 예측 방향과 유사한 예측 방향(예를 들어, 수직 예측 또는 수평 예측)에 따른 샘플 복제(sample copy)에 의해서 전체 블록에 수행될 수 있다. 원본과 예측 블록의 차분값인 레지듀얼은 변환이 스킵되어 양자화되고, 양자화된 레지듀얼과 수평 또는 수직 방향에 대한 예측자(즉, 수평 또는 수직 방향의 양자화된 레지듀얼) 간의 델타값, 즉 차분값이 코딩될 수 있다.
BDPCM이 적용 가능하면, CU 사이즈가 루마 샘플에 대한 MaxTsSize(최대 변환 스킵 블록 사이즈)보다 작거나 같고, CU가 인트라 예측으로 코딩되는 경우, 플래그 정보가 CU 레벨에서 전송될 수 있다. 상기 플래그 정보는 BDPCM 플래그라고 불릴 수 있다. 여기서 MaxTsSize는 변환 스킵 모드가 허용되기 위한 최대 블록 사이즈를 의미할 수 있다. 상기 플래그 정보는 통상적인 인트라 코딩이 적용되는지 또는 BDPCM이 적용되는지 여부를 지시할 수 있다. BDPCM이 적용되면, 예측 방향이 수평 방향인지 수직 방향인지 여부를 지시하는 BDPCM 예측 방향 플래그가 전송될 수 있다. 상기 BDPCM 예측 방향 플래그는 BDPCM 방향 플래그라고 불릴 수도 있다. 이후, 블록은 필터링되지 않은 참조 샘플을 이용한 통상적인 수평 또는 수직 인트라 예측 과정을 통하여 예측될 수 있다. 또한, 레지듀얼은 양자화되고, 각 양자화된 레지듀얼과 그 예측자, 예를 들어 BDPCM 예측 방향에 따라 수평 또는 수직 방향에 있는 주변 위치의 이미 양자화된 레지듀얼 간의 차이값이 코딩될 수 있다.
상술한 바와 같은 BDPCM을 ACT와 함께 적용함에 있어서, 본 문서에서는 루마 성분에 대해서뿐만 아니라 크로마 성분에 대해서도 적용할 수 있는 방안을 제안한다. 일 실시예로, 다음 표 9는 코딩 유닛 신택스의 일부를 나타낸 것으로, ACT 및 크로마 성분에 대한 BDPCM을 허용하도록 하는 신택스 구조의 일예를 나타낸 것이다.
상기 표 9를 참조하면, 현재 블록의 레지듀얼이 색 공간 변환(colour space conversion)을 사용하여 적용되는지 여부를 나타내는 정보(예: cu_act_enabled_flag)에 의해, 크로마 성분에 대한 BDPCM이 적용되는지 여부가 결정되지 않도록 코딩 유닛의 신택스 구조를 변경할 수 있다. 예를 들어, cu_act_enabled_flag의 값이 1이 아닌 경우에만 크로마 성분에 대한 BDPCM이 적용되는 조건(예: !cu_act_enabled_flag)을 제거할 수 있다. 이 경우, 현재 블록의 크로마 성분에 대해 ACT 및 BDPCM 모두 적용될 수 있다. 크로마 성분에 대한 BDPCM이 적용되는지 여부에 관한 정보는 intra_bdpcm_chroma_flag 신택스 엘리먼트일 수 있다. 예컨대, intra_bdpcm_chroma_flag의 값이 1인 경우 현재 블록의 크로마 성분에 대해 BDPCM이 적용됨을 나타내고, intra_bdpcm_chroma_flag의 값이 0인 경우 현재 블록의 크로마 성분에 대해 BDPCM이 적용되지 않음을 나타낼 수 있다.
한편, ACT 및 CCLM의 경우 모두 구성성분 간(inter-component) 중복을 제거하기 위해 사용될 수 있다. 이 두 가지 툴은 몇몇 오버랩(overlap) 되는 경우가 있지만, 두 가지 툴 중 하나를 적용한 후에, 구성성분 간 중복이 제거되지는 않는다. 따라서 두 가지 툴을 함께 적용하도록 허용하는 것이 유용할 수도 있다. 본 문서의 일 실시예는 ACT 및 CCLM의 조합을 허용하도록 하는 방안을 제안한다. 이 경우, 디코더 측에서는 CCLM이 먼저 적용되고 ACT는 나중에 적용될 수 있다.
일 실시예로, 다음 표 10은 코딩 유닛 신택스의 일부를 나타낸 것으로, ACT 및 CCLM의 조합을 허용하도록 하는 신택스 구조의 일예를 나타낸 것이다.
상기 표 10을 참조하면, 현재 블록의 레지듀얼이 색 공간 변환(colour space conversion)을 사용하여 적용되는지 여부를 나타내는 정보(예: cu_act_enabled_flag)에 의해, CCLM이 적용되는지 여부가 결정되지 않도록 코딩 유닛의 신택스 구조를 변경할 수 있다. 예를 들어, cu_act_enabled_flag의 값이 1이 아닌 경우에만 CCLM이 적용되는 조건(예: !cu_act_enabled_flag)을 제거할 수 있다. 이 경우, 현재 블록에 대해 ACT 및 CCLM 모두 적용될 수 있다. CCLM이 적용되는지 여부에 관한 정보는 cclm_mode_flag 신택스 엘리먼트일 수 있다. 예컨대, cclm_mode_flag의 값이 1인 경우 현재 블록에 대해 CCLM이 적용됨을 나타내고, cclm_mode_flag의 값이 0인 경우 현재 블록에 대해 CCLM이 적용되지 않음을 나타낼 수 있다.
또한, 크로마 성분에 대한 BDPCM 및 CCLM과 함께 ACT를 허용하도록 신택스 구조를 변경할 수도 있다. 예를 들어, 상기 표 9 및 표 10에 나타낸 바와 같이, intra_bdpcm_chroma_flag 및 cclm_mode_flag 신택스 엘리먼트의 시그널링에 대한 제약 조건 "! cu_act_enabled_flag"을 제거함으로써 구현 가능하다.
한편, ACT 모드에서 예측 레지듀얼은 하나의 색상 공간 (GBR 또는 YCbCr)에서 YCgCo 공간으로 변환되고 TU의 레지듀얼은 YCgCo 공간에서 코딩된다. 색상 공간 변환(color space conversions)에 사용되는 ACT 코어 변환 (변환 커널)은 다음 수학식 3과 같다. 여기서 C0, C1, C2은 G, B, R에 대응할 수 있고, C0', C1'및 C2'는 Y, Cg, Co에 대응할 수 있다.
상기 수학식 3에 나타낸 것과 같이, C0', C1'및 C2' (여기서는 C0'= Y, C1'= Cg, C2'= Co) 변환은 정규화되지 않는다(즉, L2norm이 1과 같지 않음). 예를 들어 각 구성요소에 대한 변환의 L2norm은 대략 C0'및 C1'의 경우 0.6, C2'의 경우 0.7과 같다. L2norm은 각 계수를 제곱한 합계의 제곱근에 의해 획득될 수 있다. 예를 들어 C0'= 2/4 * C0 + ¼ * C1 + ¼ * C2 이다. 따라서 C0'의 norm은 {(2/4) * (2/4) + (¼) * (¼) + (¼) * (¼)}의 제곱근 = (6/16 = 0.375)의 제곱근과 같다. = 0.375). 0.375의 제곱근은 약 0.6이다.
변환이 정규화되지 않는 경우, 각 구성요소의 동적 범위가 불규칙 해져 기존 비디오 압축 시스템에서 코딩 성능 저하가 발생할 수 있다. 레지듀얼 신호의 동적 범위 변화를 보상하기 위해, 각 변환 구성요소 별 동적 범위 변화를 보상하기 위한 QP 오프셋 값을 전송함으로써 QP 조정 방법이 사용될 수 있다. 따라서, 본 문서의 일 실시예는 ACT 변환을 위한 일반적인 QP 조정 제어 방법뿐만 아니라 조인트 CbCr에도 초점을 맞춘다. 조인트 CbCr 방법은 각 색상 구성요소가 독립적으로 코딩되지 않고 공동으로 코딩되기 때문에 각 색상 구성요소 간에 동적 범위 변화가 발생할 수 있다.
조인트 CbCr 코딩 방법에 대해 살펴보면, VVC에서는 크로마 레지듀얼에 대해 공동으로 코딩되는 모드를 지원하고, 이를 조인트 크로마 코딩 모드 또는 조인트 CbCr 모드라고 지칭할 수 있다. 조인트 크로마 코딩 모드의 사용(활성화)은 TU 레벨 플래그 tu_joint_cbcr_residual_flag로 나타낼 수 있고, 선택된 모드는 크로마 CBF에 의해 암시적으로 나타낼 수 있다. TU에 대한 크로마 CBFs 중 하나 또는 둘 다가 1이면 tu_joint_cbcr_residual_flag 플래그가 존재할 수 있다. PPS 및 슬라이스 헤더에서, 크로마 QP 오프셋 값은 일반 크로마 레지듀얼 코딩 모드에 대해 시그널링되는 일반적인 크로마 QP 오프셋 값과 구별하기 위해 조인트 크로마 레지듀얼 코딩 모드에 대해 시그널링될 수 있다. 이러한 크로마 QP 오프셋 값은 조인트 크로마 레지듀얼 코딩 모드를 사용하여 코딩된 블록에 대한 크로마 QP 값을 유도하는데 사용될 수 있다. 해당 조인트 크로마 코딩 모드 (표 11의 모드 2)가 TU에서 활성화되면, 이 크로마 QP 오프셋이 해당 TU의 양자화 및 디코딩 동안 적용된 루마-유도된 크로마 QP에 추가될 수 있다. 다른 모드 (표 11의 모드 1 및 3)의 경우, 크로마 QP는 기존 Cb 또는 Cr 블록과 동일한 방식으로 도출될 수 있다. 전송된 변환 블록에서 크라마 레지듀얼(resCb 및 resCr)의 복원 프로세스는 표 11에 나타난 바와 같다. 이 모드가 활성화되면 하나의 싱글 조인트 크로마 레지듀얼 블록(표 11의 resJointC [x][y])이 시그널링되고, 슬라이스 헤더에서 특정된 부호 값인 tu_cbf_cb, tu_cbf_cr 및 CSign와 같은 정보를 고려하여 Cb에 대한 레지듀얼 블록(resCb) 및 Cr에 대한 레지듀얼 블록(resCr)이 도출될 수 있다.
다음 표 11은 조인트 CbCr 모드에 따른 크로마 레지듀얼을 복원하는 일예를 나타낸 것이다. 여기서, CSign 값은 슬라이스 헤더에서 특정된 부호 값 (+1 또는 -1)이며, resJointC [][]는 전송된 레지듀얼이다.
인코더 측에서 조인트 크로마 구성요소는 다음 표 12와 같이 도출될 수 있다. 상기 표 11에 개시된 모드에 따라 resJointC {1,2}는 다음 표 12의 알고리즘과 같이 인코더에 의해 생성될 수 있다.
상술한 세가지 조인트 크로마 코딩 모드들은 I 슬라이스에서만 지원되고, P 및 B 슬라이스에서는 모드 2만 지원된다. 따라서 P 및 B 슬라이스에서, 신택스 엘리먼트 tu_joint_cbcr_residual_flag는 두 크로마 cbf가 1인 경우에만 존재할 수 있다. tu_cbf_luma 및 tu_cbf_cb의 컨텍스트 모델링에서 변환 깊이가 제거될 수 있다.
현재 VVC에서 ACT QP 오프셋 조정은 -5로 고정되며 Y, Cg, Co 구성요소 및 조인트 CbCr에 대해 동일하다. 본 문서의 일 실시예에서는 각 구성요소 및 조인트 CbCr의 QP 제어에 유연성을 제공하도록 Y, Cb, Cr 및/또는 조인트 CbCr에 대해 상이한 ACT QP 오프셋 값을 허용하도록 한다. ACT QP 오프셋 값은 구성요소 인덱스 및/또는 조인트 CbCr인지 여부 및/또는 조인트 CbCr 모드에 따라 달라질 수 있다.
일 실시예로, 상술한 바와 같은 ACT QP 오프셋에 대한 정보를 기반으로 도출되는 변수 ppsActQpOffsetY, ppsActQpOffsetCb, ppsActQpOffsetCr을 사용하여 Y, Cb, Cr에 대한 ACT QP 오프셋을 나타내고, 조인트 CbCr 모드 2 (즉, cb 및 cr 구성요소 모두에 0이 아닌 cbf가 있음)의 ACT QP 오프셋에 대해 변수 ppsActQpOffsetCbCr을 사용할 수 있다. 상기 변수들의 값은 정의되거나 비트스트림으로부터 시그널링될 수 있다. 조인트 CbCr 모드의 ACT QP 오프셋에는 몇 가지 변형(variation)이 있을 수 있다.
일예로, 조인트 CbCr 모드 2의 ACT QP 오프셋에는 자체 오프셋 값을 가질 수 있다. 다른 조인트 CbCr 모드의 경우 해당 구성요소의 ACT QP 오프셋을 사용할 수 있다. 이 경우, 다음 표 13에서와 같은 알고리즘으로 구현될 수 있다.
또 다른 예로, tu_cbf_cb ! = 0 인 조인트 CbCr 모드의 경우(즉, 모드 1 및 2) ppsActQpOffsetCb를 사용하고, tu_cbf_cb == 0 인 조인트 CbCr 모드(즉, 모드 3)의 경우 ppsActQpOffsetCr을 사용할 수 있다. 이 경우, 다음 표 14에서와 같은 알고리즘으로 구현될 수 있다.
또 다른 예로, CbCr 조인트 모드에 관계없이 구성요소 인덱스가 Y이면 ppsActQpOffsetY를 사용하고, 구성요소 인덱스가 Cb이면 ppsActQpOffsetCb를 사용하고, 구성요소 인덱스가 Cr이면 ppsActQpOffsetCr을 사용할 수 있다. 이 경우, 다음 표 15에서와 같은 알고리즘으로 구현될 수 있다.
한편, 본 발명의 일 실시예에서는 ACT QP 오프셋에 대해 더 많은 유연성을 허용하기 위해 비트스트림을 통해 시그널링되도록 할 수 있다. 이를 위해서 ACT QP 오프셋에 관한 정보를 적절한 헤더에 배치시켜 시그널링할 수 있다. 예를 들어, SPS, PPS, 픽처 헤더, 슬라이스 헤더 및/또는 다른 헤더 세트를 통해 시그널링될 수 있다. 조인트 CbCr의 ACT QP 오프셋은 개별적으로 시그널링되거나 Y, Cb, Cr의 ACT QP 오프셋에서 도출될 수 있다.
일예로, 일반적인 손실없이 PPS에서 ACT QP 오프셋을 시그널링할 수 있으며, 다음 표 16의 신택스 테이블과 같이 시그널링될 수 있다. 표 16의 예에서는 조인트 CbCr에 대해 하나의 ACT QP 오프셋이 시그널링될 수 있다.
다음 표 16은 PPS에서 ACT QP 오프셋에 관련된 정보를 시그널링하는 신택스 테이블의 일예이고, 다음 표 17은 표 16의 신택스 테이블에 포함된 신택스 엘리먼트들에 대한 시맨틱스를 나타낸 것이다.
상기 표 16 및 표 17을 참조하면, PPS에서 pps_act_qp_offsets_present_flag 신택스 요소가 파싱/시그널링될 수 있다. 여기서, pps_act_qp_offsets_present_flag는 PPS에 ACT QP 오프셋에 관련된 정보가 존재하는지 여부를 나타내는 정보일 수 있다. 예를 들어, pps_act_qp_offsets_present_flag의 값이 1인 경우 PPS에 ACT QP 오프셋에 관련된 정보가 존재함을 나타낼 수 있고, pps_act_qp_offsets_present_flag의 값이 0인 경우 PPS에 ACT QP 오프셋에 관련된 정보가 존재하지 않음을 나타낼 수 있다.
예를 들어, pps_act_qp_offsets_present_flag의 값이 1인 경우, PPS에서 ACT QP 오프셋에 관련된 정보가 파싱/시그널링될 수 있다. 여기서, ACT QP 오프셋에 관련된 정보는 pps_act_y_qp_offset_plusX1, pps_act_cb_qp_offset_plusX2, pps_act_cr_qp_offset_plusX3, pps_act_cbcr_qp_offset_plusX4 신택스 엘리먼트를 포함할 수 있다.
pps_act_y_qp_offset_plusX1, pps_act_cb_qp_offset_plusX2, pps_act_cr_qp_offset_plusX3, pps_act_cbcr_qp_offset_plusX4는 루마, Cb, Cr 구성요소 및 조인트 CbCr에 대한 양자화 파라미터 값 qP에 적용되는 오프셋을 결정하는데 사용될 수 있다. 상기 표 17에서와 같이, PPS에서 시그널링되는 ACT QP 오프셋에 관련된 정보(예: pps_act_y_qp_offset_plusX1, pps_act_cb_qp_offset_plusX2, pps_act_cr_qp_offset_plusX3, pps_act_cbcr_qp_offset_plusX4)를 기반으로, ACT QP 오프셋(예: PpsActQpOffsetY, PpsActQpOffsetCb, PpsActQpOffsetCr, PpsActQpOffsetCbCr) 값이 도출될 수 있다. 이와 같이 도출된 ACT QP 오프셋 값을 기반으로 다음 표 18의 알고리즘에서와 같이 루마, Cb, Cr 구성요소 및 조인트 CbCr에 대한 양자화 파라미터 값 qP가 도출될 수 있다.
또는, 다른 예로, ACT QP 오프셋을 시그널링함에 있어서, 모드 A 및 모드 B로 지칭되는 조인트 CbCr의 다른 모드들에 대해 다수의 ACT QP 오프셋이 시그널링될 수 있다. 조인트 CbCr 모드 A는 상기 표 11에서의 모드 1 및 모드 2로서, tu_cbf_cb가 0이 아닌 조인트 CbCr 모드를 나타낼 수 있다. 조인트 CbCr 모드 B는 상기 표 11에서의 모드 3으로서, tu_cbf_cb가 0인 조인트 CbCr 모드를 나타낼 수 있다.
다음 표 19는 PPS에서 조인트 CbCr 모드에 따라 다수의 ACT QP 오프셋에 관련된 정보를 시그널링하는 신택스 테이블의 일예이고, 다음 표 20은 표 19의 신택스 테이블에 포함된 신택스 엘리먼트들에 대한 시맨틱스를 나타낸 것이다.
상기 표 19 및 표 20을 참조하면, PPS에서 pps_act_qp_offsets_present_flag 신택스 요소가 파싱/시그널링될 수 있다. 여기서, pps_act_qp_offsets_present_flag는 PPS에 ACT QP 오프셋에 관련된 정보가 존재하는지 여부를 나타내는 정보일 수 있다. 예를 들어, pps_act_qp_offsets_present_flag의 값이 1인 경우 PPS에 ACT QP 오프셋에 관련된 정보가 존재함을 나타낼 수 있고, pps_act_qp_offsets_present_flag의 값이 0인 경우 PPS에 ACT QP 오프셋에 관련된 정보가 존재하지 않음을 나타낼 수 있다.
예를 들어, pps_act_qp_offsets_present_flag의 값이 1인 경우, PPS에서 ACT QP 오프셋에 관련된 정보가 파싱/시그널링될 수 있다. 여기서, ACT QP 오프셋에 관련된 정보는 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 신택스 엘리먼트를 포함할 수 있다. 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는 루마, Cb, Cr 구성요소 및 조인트 CbCr에 대한 양자화 파라미터 값 qP에 적용되는 오프셋을 결정하는데 사용될 수 있다. 상기 표 20에서와 같이, PPS에서 시그널링되는 ACT QP 오프셋에 관련된 정보(예: 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) 를 기반으로, ACT QP 오프셋(예: PpsActQpOffsetY, PpsActQpOffsetCb, PpsActQpOffsetCr, PpsActQpOffsetCbCrModeA, PpsActQpOffsetCbCrModeB) 값이 도출될 수 있다. 이와 같이 도출된 ACT QP 오프셋 값을 기반으로 다음 표 21의 알고리즘에서와 같이 루마, Cb, Cr 구성요소 및 조인트 CbCr에 대한 양자화 파라미터 값 qP가 도출될 수 있다.
또는, 다른 예로, ACT QP 오프셋을 시그널링함에 있어서, Y, Cb, Cr에 대한 ACT QP 오프셋만 시그널링될 수 있다. 이 경우, 조인트 CbCr에 대한 ACT QP 오프셋은 PpsActQpOffsetY, PpsActQpOffsetCb 및/또는 PpsActQpOffsetCr을 기반으로 도출될 수 있다. 예를 들어, 조인트 CbCr에 대한 ACT QP 오프셋은 PpsActQpOffsetCb와 동일하게 설정될 수 있다. 또는, 예를 들어, 조인트 CbCr 모드가 tu_cbf_cb! = 0인 경우(즉, 모드 1 및 모드 2) 조인트 CbCr에 대한 ACT QP 오프셋은 PpsActQpOffsetCb로 설정될 수 있고, 조인트 CbCr 모드가 tu_cbf_cb == 0인 경우(즉, 모드 0) 조인트 CbCr에 대한 ACT QP 오프셋은 PpsActQpOffsetCr로 설정될 수 있다.
다음 표 22는 PPS에서 Y, Cb, Cr에 대한 ACT QP 오프셋에 관련된 정보만을 시그널링하는 신택스 테이블의 일예를 나타낸 것이다.
상기 표 22를 참조하면, PPS에서 pps_act_qp_offsets_present_flag 신택스 요소가 파싱/시그널링될 수 있다. 여기서, pps_act_qp_offsets_present_flag는 PPS에 ACT QP 오프셋에 관련된 정보가 존재하는지 여부를 나타내는 정보일 수 있다. 예를 들어, pps_act_qp_offsets_present_flag의 값이 1인 경우 PPS에 ACT QP 오프셋에 관련된 정보가 존재함을 나타낼 수 있고, pps_act_qp_offsets_present_flag의 값이 0인 경우 PPS에 ACT QP 오프셋에 관련된 정보가 존재하지 않음을 나타낼 수 있다.
예를 들어, pps_act_qp_offsets_present_flag의 값이 1인 경우, PPS에서 ACT QP 오프셋에 관련된 정보가 파싱/시그널링될 수 있다. 여기서, ACT QP 오프셋에 관련된 정보는 pps_act_y_qp_offset_plusX1, pps_act_cb_qp_offset_plusX2, pps_act_cr_qp_offset_plusX3 신택스 엘리먼트를 포함할 수 있다. pps_act_y_qp_offset_plusX1, pps_act_cb_qp_offset_plusX2, pps_act_cr_qp_offset_plusX3는 루마, Cb, Cr 구성요소 및 조인트 CbCr에 대한 양자화 파라미터 값 qP에 적용되는 오프셋을 결정하는데 사용될 수 있다. 상기 표 22에서와 같이, PPS에서 시그널링되는 ACT QP 오프셋에 관련된 정보(예: pps_act_y_qp_offset_plusX1, pps_act_cb_qp_offset_plusX2, pps_act_cr_qp_offset_plusX3)를 기반으로, ACT QP 오프셋(예: PpsActQpOffsetY, PpsActQpOffsetCb, PpsActQpOffsetCr) 값이 도출될 수 있다. 이와 같이 도출된 ACT QP 오프셋 값을 기반으로 다음 표 23의 알고리즘에서와 같이 루마, Cb, Cr 구성요소 및 조인트 CbCr에 대한 양자화 파라미터 값 qP가 도출될 수 있다.
한편, 본 문서의 일 실시예에서는 ACT QP 오프셋이 다중 레벨에서 시그널링되도록 제안한다. 상술한 바와 같이 PPS와 같은 하나의 레벨에서 ACT QP 오프셋을 시그널링할 수도 있고, 더 미세한(finer) QP 제어를 허용하기 위해 슬라이스 헤더, 픽처 헤더, 또는 다른 적절한 헤더 등과 같은 하위 레벨에서 ACT QP 오프셋을 시그널링할 수도 있다.
일 실시예로, ACT QP 오프셋 관련 정보가 다중 레벨(즉, PPS 및 슬라이스 헤더)를 통해 시그널링될 수 있으며, 다음 표 24 및 표 25의 신택스 테이블에서와 같이 시그널링될 수 있다. 본 실시예에서는 하위 레벨의 예시로서 슬라이스 헤더를 제안하고 있으나 이는 하나의 예시일 뿐이며, 이와 유사한 방식으로 픽처 헤더(PH) 또는 다른 헤더를 통해 ACT QP 오프셋 관련 정보를 시그널링할 수도 있다.
다음 표 26은 표 24 및 표 25의 신택스 테이블에 포함된 신택스 엘리먼트들에 대한 시맨틱스를 나타낸 것이다.
상기 표 24 내지 표 26을 참조하면, 상위 레벨(예: PPS)에서 pps_act_qp_offsets_present_flag 신택스 요소가 파싱/시그널링될 수 있다. 여기서, pps_act_qp_offsets_present_flag는 하위 레벨(예: 슬라이스 헤더)에 ACT QP 오프셋에 관련된 정보가 존재하는지 여부를 나타내는 정보일 수 있다. 예를 들어, pps_act_qp_offsets_present_flag의 값이 1인 경우 하위 레벨(예: 슬라이스 헤더)에 ACT QP 오프셋에 관련된 정보가 존재함을 나타낼 수 있고, pps_act_qp_offsets_present_flag의 값이 0인 경우 하위 레벨(예: 슬라이스 헤더)에 ACT QP 오프셋에 관련된 정보가 존재하지 않음을 나타낼 수 있다.
상위 레벨(예: PPS)에서 시그널링되는 pps_act_qp_offsets_present_flag를 기반으로, 하위 레벨(예: 슬라이스 헤더)에서 ACT QP 오프셋에 관련된 정보가 파싱/시그널링될 수 있다. 여기서, ACT QP 오프셋에 관련된 정보는 slice_act_y_qp_offset, slice_act_cb_qp_offset, slice_act_cr_qp_offset, slice_act_cbcr_qp_offset 신택스 엘리먼트를 포함할 수 있다.
또한, 다중 레벨을 통해 ACT QP 오프셋 관련 정보를 시그널링함에 있어서, 상기 설명한 실시예들 1) 조인트 CbCr에 대해 하나의 ACT QP 오프셋을 시그널링하거나 2) 조인트 CbCr의 다른 모드들에 대해 다수의 ACT QP 오프셋을 시그널링하거나 3) 조인트 CbCr에 대한 ACT QP 오프셋을 시그널링하지 않고 Y, Cb, Cr 및/또는 조인트 CbCr모드의 ACT QP 오프셋(ACTQpOffset)을 기반으로 조인트 CbCr에 대한 ACT QP 오프셋을 도출하는 방법을 적용할 수도 있다. 예를 들어, 상기 표 24에서와 같이 PPS에서 pps_act_qp_offsets_present_flag를 시그널링하고, 상기 pps_act_qp_offsets_present_flag를 기반으로 슬라이스 헤더에서 ACT QP 오프셋 관련 정보를 시그널링할 수 있다.
다음 표 27은 상술한 2) 조인트 CbCr의 다른 모드들에 대해 다수의 ACT QP 오프셋을 슬라이스 헤더에서 시그널링하는 일예를 나타내는 신택스 테이블이고, 다음 표 28은 상술한 3) 조인트 CbCr에 대한 ACT QP 오프셋을 시그널링하지 않고 Y, Cb, Cr 및/또는 조인트 CbCr모드의 ACT QP 오프셋(ACTQpOffset)을 기반으로 조인트 CbCr에 대한 ACT QP 오프셋을 도출하는 방법의 일예를 나타내는 신택스 테이블이다.
상기 표 28에서, Y, Cb, Cr의 ACT QP 오프셋만 시그널링되고, 조인트 CbCr에 대한 슬라이스 레벨에서의 ACT QP 오프셋은 slice_act_y_qp_offset, slice_act_cb_qp_offset 및/또는 slice_act_cr_qp_offset를 기반으로 도출될 수 있다. 또한 조인트 CbCr의 모드 타입에 따라 달라질 수 있다. 예를 들어, CbCr에 대한 슬라이스 레벨에서의 ACT QP 오프셋(QpOffset)은 slice_act_cb_qp_offset과 동일하게 설정될 수 있다. 또는, 예를 들어, 조인트 CbCr 모드가 tu_cbf_cb! = 0인 경우(즉, 모드 1 및 모드 2) 조인트 CbCr에 대한 슬라이스 레벨에서의 ACT QP 오프셋은 slice_act_cb_qp_offset으로 설정될 수 있고, 조인트 CbCr 모드가 tu_cbf_cb == 0인 경우(즉, 모드 0) 조인트 CbCr에 대한 슬라이스 레벨에서의 ACT QP 오프셋은 slice_act_cr_qp_offset으로 설정될 수 있다.
또한, 일 실시예로, 다중 레벨을 통해 ACT QP 오프셋 관련 정보를 시그널링함에 있어서, 슬라이스 헤더 또는 픽처 헤더 중 하나에서 ACT QP 오프셋 관련 정보를 시그널링할 수 있다. 이 방법은 다음과 같이 적용될 수 있다.
- PPS에서 플래그(예: pps_picture_slice_act_qp_offsets_present_flag로 지칭)를 시그널링할 수 있으며, 상기 pps_picture_slice_act_qp_offsets_present_flag는 ACT QP 오프셋이 픽처 헤더 또는 슬라이스 헤더 중 어느 하나에 존재할 수 있는지 여부를 나타낼 수 있다.
- ACT가 가용하고(enabled) pps_picture_slice_act_qp_offsets_present_flag가 1인 경우, 픽처 헤더에서 플래그(예: pic_act_qp_offsets_present_flag로 지칭)를 시그널링할 수 있다. 상기 pic_act_qp_offsets_present_flag는 ACT QP 오프셋이 픽처 헤더에 존재하는지 여부를 나타낼 수 있다. pic_act_qp_offsets_present_flag의 값이 1인 경우, 픽처 헤더와 연관된 픽처의 모든 슬라이스들에 대한 ACT QP 오프셋은 픽처 헤더에 존재할 수 있다.
- ACT가 가용하고(enabled) pps_picture_slice_act_qp_offsets_present_flag가 1이고 pic_act_qp_offsets_present_flag가 0인 경우, 슬라이스에 대한 ACT QP 오프셋은 슬라이스 헤더에 존재할 수 있다.
상술한 바와 같은 상위 레벨(예: PPS)에서의 시그널링과 함께 슬라이스 헤더 또는 픽처 헤더 중 하나에서 ACT QP 오프셋 관련 정보를 시그널링하는 방법은 다음 표 29 내지 표 31의 신택스 테이블과 같이 구현될 수 있다.
다음 표 32는 표 29의 신택스 테이블에 포함된 신택스 엘리먼트들에 대한 시맨틱스를 나타낸 것이고, 다음 표 33은 표 30의 신택스 테이블에 포함된 신택스 엘리먼트들에 대한 시맨틱스를 나타낸 것이고, 다음 표 34은 표 31의 신택스 테이블에 포함된 신택스 엘리먼트들에 대한 시맨틱스를 나타낸 것이다.
또한, 일 실시예로, ACT QP 오프셋이 슬라이스 헤더 또는 픽처 헤더에도 존재하는 경우, qP 값을 도출하는데 사용되는 최종 오프셋은 PPS 및 슬라이스 헤더/픽처 헤더에서 시그널링된 오프셋의 합에 의해 도출된 오프셋일 수 있다. 이 경우, 다음 표 35 내지 표 37의 알고리즘과 같이 qP 값을 도출하는데 사용되는 최종 오프셋(ActQpOffset)이 도출될 수 있다.
또는, 일예로, 조인트 CbCr 모드에 대한 다수의 ACT QP 오프셋이 시그널링된 경우, 조인트 CbCr에 대한 ACT QP 오프셋(ActQpOffset)은 다음 표 36의 알고리즘과 같이 설정될 수 있다.
또한, 일 실시예로, 조인트 CbCr에 대한 ACT QP 오프셋이 존재하지 않고 조인트 CbCr에 대한 ACT QP 오프셋이 Y, Cb 및/또는 Cr 구성요소의 ACT QP 오프셋을 사용하여 도출되는 경우, 조인트 CbCr 모드에 대한 ACT QP 오프셋(ActQpOffset)은 다음 표 37의 알고리즘과 같이 설정될 수 있다.
한편, 본 문서의 일 실시예에서는 ACT QP 오프셋의 리스트를 갖는 방법을 제안한다. 이 방법은 다음과 같이 적용될 수 있다.
a) 다수의 ACT QP 오프셋 세트는 파라미터 세트(예 : SPS 또는 PPS)에서 리스트로 시그널링될 수 있다. 리스트 내 각 세트에는 Y, Cb, Cr 및 조인트 CbCr 구성요소에 대한 ACT QP 오프셋을 포함할 수 있다.
- 단순화를 위해, ACT QP 오프셋 리스트는 크로마 QP 오프셋 리스트의 시그널링과 동일한 파라미터 세트에서 시그널링될 수 있다.
b) 리스트 내에 설정된 ACT QP 오프셋의 개수는 PPS에서 시그널링되는 크로마 QP 오프셋 세트의 개수와 동일할 수 있다.
c) 각 CU에 대한 qP를 도출하는 경우, 사용되는 ACT QP 오프셋은 리스트 내에서 CU 크로마 QP 오프셋에 대한 인덱스(즉, cu_chroma_qp_offset_idx)에 의해 지시되는 하나의 오프셋일 수 있다.
d) 또는 상기 항목 b) 및 c)에 대해서 다음이 적용될 수도 있다.
- 리스트 내 ACT QP 오프셋 세트의 개수가 시그널링될 수 있고, 이는 크로마 QP 오프셋 세트의 개수와 다를 수 있다.
- ACT가 가용한(enabled) 경우, CU에 사용되는 AQT QP 오프셋의 인덱스를 나타내기 위한 인덱스가 시그널링될 수 있다.
일예로, 상술한 ACT QP 오프셋의 리스트를 갖는 방법은 다음 표 38의 신택스 테이블과 같이 구현될 수 있다.
다음 표 39는 표 38의 신택스 테이블에 포함된 신택스 엘리먼트들에 대한 시맨틱스를 나타낸 것이다.
또한, 다음 표 40은 상기 표 39에서 시그널링된 ACT QP 오프셋 관련 신택스 엘리먼트들을 기반으로 각 구성요소에 대한 qP 값을 도출하는데 사용되는 최종 오프셋(ActQpOffset)을 도출하는 알고리즘의 일예를 나타낸 것이다.
한편, 본 문서의 일 실시예에서는 ACT가 무손실 및 손실 코딩 모두를 지원하기 위해 가역 색상 변환(reversible color conversion)을 사용하도록 제안한다. 이 가역적 색상 변환은 현재 VVC의 기존 손실 색상 변환을 대체할 수 있다. ACT QP 오프셋도 색상 변환과 일치하도록 조정될 수 있다. 일예로, 가역적 색상 변환은 다음 표 41과 같을 수 있다.
상기 변환은 가역적 (완벽한 복원 지원) YCgCo-R 색상 변환이며, 여기서 R은 가역성을 나타낸다. 이 YCgCo-R 변환은 Cg 및 Co의 비트 뎁스를 1만큼 증가시킨다. 다른 형태의 가역 변환도 사용될 수 있다.
가역 색상 변환은 VVC의 기존 YCgCo 색상 변환과 다른 표준을 가질 수 있으므로, Y, Cg, Co에 대한 ACT QP 오프셋을 조정하여 색상 변환으로 인한 동적 범위 변화를 보정해야 한다. 현재 VVC에서는 Y, Cg, Co에 대해 ACT QP 오프셋 (-5, -5, -5)이 사용된다. 가역 변환의 경우, (-5, -5, -5) 이외의 ACT QP 오프셋 값이 정의될 수 있다. 예를 들어, YCgCo-R 변환에서는 Y, Cg, Co에 대한 ACT QP 오프셋 (-5, 1, 3)이 사용될 수 있다. 또는, ACT QP 오프셋은 상기 표 16 내지 표 36에서 설명한 실시예에서와 같이 시그널링될 수 있다. 특히, 상술한 YCgCo-R 변환이 ACT QP 오프셋 (-5, 1, 3)을 함께 사용할 경우, 다음 표 42에 나타난 바와 같이 손실 코딩 환경 (QP 22,27,32,37)에서 코딩 손실이 관찰되지 않는 것으로 보고되었다. 또한 ACT는 5% 이상의 코딩 성능을 얻을 수 있는 무손실 코딩에 활용될 수 있다.
다음 표 43은 통합(unified) ACT 매트릭스를 포함한 VVC 스펙의 일부를 나타낸 것이며, 상술한 실시예를 구현할 수 있도록 수정된 것이다.
한편, 본 문서의 일 실시예에서는 하나 이상의 색상 변환이 ACT에서 사용될 수 있도록 하는 방안을 제안한다. 사용할 색상 변환은 비트스트림을 통해 시그널링된 플래그(들)에 따라 달라질 수 있다. 상기 플래그(들)는 SPS, PPS, 픽처 헤더 및 슬라이스를 포함하는 다중 레벨 또는 입도(granularity)에서 시그널링될 수 있다.
일예로, 어떤 ACT가 적용될지 지시하기 위해 플래그가 시그널링될 수 있다. 예를 들어, 플래그가 1인 경우, 가역 색상 변환 기반 ACT가 적용될 수 있다. 플래그가 0인 경우, 비가역 색상 변환 기반 ACT가 적용될 수 있다.
다른 예로, 사용할 색상 변환을 지시하기 위해 ACT를 특정하는 플래그가 시그널링될 수 있다. 이 경우 SPS에서 시그널링되는 신택스 엘리먼트의 예는 다음 표 44와 같을 수 있다.
다음 표 45는 표 44의 신택스 테이블에 포함된 신택스 엘리먼트들에 대한 시맨틱스를 나타낸 것이다.
또한, 상기 표 45의 변수 lossyCoding에 대한 값을 도출하는데 사용되는 lossyCoding 플래그(예: sps_act_reversible_conversion)를 기반으로, 디코더에서는 YCgCo에서 GBR로의 역변환을 수행할 수 있으며, 이는 다음 표 46 및 표 47에서와 같은 의사 코드로 구현될 수 있다.
한편, YCgCo 역변환과 YCgCo-R 역변환에는 몇 가지 유사점이 있다. 가역 변환에서, Cg 및 Co가 Cg'= Cg << 1 및 Co'= Co << 1로 대체되면, 손실이 있는 역변환과 동일하게 된다. 이는 다음 표 48에서와 같이 수행될 수 있다.
따라서, 다른 실시예로서, 두 가지 색상 변환을 유지하는 대신 가역 변환만 사용할 수 있다. 손실 코딩의 경우, Cg, Co 구성성분은 인코더 측에서 ½로 스케일링되고 디코더 측에서 2로 스케일링된다. 이에 대한 이점은 손실 및 무손실 경우에 대해 하나의 통합 변환만 있고 손실 코딩에 대해 비트 뎁스를 변경하지 않고 유지한다는 것이다.
다음 표 49는 YCgCo에서 GBR로 역변환의 일예를 나타낸 것이다.
예를 들어, 사용할 ACT 변환을 지시하기 위한 플래그(예: actShiftFlag)는 다음 표 50과 같이 사용될 수 있다. 다음 표 50은 어떤 ACT 변환을 사용할지를 지시하기 위한 플래그(예: actShiftFlag)를 SPS에서 시그널링하는 일예를 나타낸 것이다.
다음 표 51은 표 50의 신택스 테이블에 포함된 신택스 엘리먼트들에 대한 시맨틱스를 나타낸 것이다.
또한, 상기 표 50의 actShiftFlag를 사용할 경우, 디코더에서는 상기 플래그 actShiftFlag를 기반으로 YCgCo에서 GBR로의 역변환을 수행할 수 있으며, 이는 다음 표 52에서와 같은 의사 코드로 구현될 수 있다.
한편, 본 문서의 일 실시예에서는 하나 이상의 색상 변환이 ACT에서 사용될 수 있도록 하는 방안을 제안한다. 이때, 사용할 색상 변환 타입은 비트스트림을 통해 시그널링되는 다른 정보로부터 유추(inferred)될 수 있다.
일예로, 가역적 ACT 변환과 비가역적 ACT 변환을 포함한 두 가지 ACT 변환 타입이 이용 가능할 수 있다. ACT 변환 타입은 변환 타입에서 유추될 수 있다. 예를 들어, 변환 타입이 변환 스킵(변수 tuIsTransformSkip으로 표시됨)인 경우, 가역적 ACT 변환이 사용될 수 있다. 그렇지 않으면 비가역적 ACT 변환이 사용될 수 있다. 상기 두 가지 ACT 변환 타입은 다음 표 53 및 표 54와 같은 의사 코드로 구현될 수 있다.
다른 예로, ACT 변환 타입은 QP 값에 따라 달라질 수 있다. QP 값이 임계 값(예: QpPrimeTsMin)보다 작거나 같은 경우, 가역적 ACT 변환이 사용될 수 있다. 그렇지 않으면 비가역적 ACT 변환이 사용될 수 있다.
한편, 상기 표 4 내지 표 8을 참조하여 상술한 실시예에서, 각 색상 구성요소의 ACT QP 오프셋을 기반으로 도출되는 QP를 클리핑하는 방안을 제안한 바 있다. 보다 구체적으로, 상기 제안 방법은 Qp'Y, Qp'CbCr, Qp'Cb, Qp'Cr을 포함하는 QP가 이미 도출된 것으로 가정한다. 그리고, ACT QP 오프셋을 기반으로 상기 도출된 QP(Qp'Y, Qp'CbCr, Qp'Cb, Qp'Cr)를 수정(modification)하고, 변환 계수 스케일링에 대한 상기 수정된 QP가 범위를 벗어나지 않도록 하기 위해 필요한 클리핑 과정을 추가한다.
이와 관련하여, 본 문서의 일 실시예에서는 Qp'Y, Qp'CbCr, Qp'Cb, Qp'Cr을 도출하는 QP 도출 과정에 ACT QP 오프셋을 통합하는 방안을 제안한다. QP 도출 과정에는 도출된 QP가 범위를 벗어나는 것을 방지하기 위한 클리핑 단계들이 이미 포함되어 있으므로, QP 도출 과정에 ACT QP 오프셋을 통합하는 방안은 최종 QP가 범위를 벗어나지 않도록 할 수 있으며, 또한 추가 클리핑 단계들을 방지하고 변환 계수 스케일링 과정에 대한 전체 QP 도출 과정을 단순화시킬 수 있다.
상술한 바와 같이, ACT QP 오프셋은 상수로 정의되거나 또는 시그널링될 수 있다. 예를 들어, 각 색상 성분 Y, Cb, Cr 및 CbCr에 대한 ACT QP 오프셋은 다음 표 55에서와 같이 ppsActQpOffsetY, ppsActQpOffsetCb, ppsActQpOffsetCr, ppsActQpOffsetCbCr로 나타낼 수 있다. 또한, 각 색상 성분 Y, Cb, Cr 및 CbCr에 대한 ACT QP 오프셋은 -M 에서 +N 까지 범위의 상수 또는 변수일 수 있고, M과 N은 예를 들어 손실의 경우 12, 무손실인 경우 0이 될 수 있다. 하나 이상의 ACT QP 오프셋은 다른 ACT QP 오프셋 값으로부터 도출될 수도 있다. 예를 들어, ppsActQpOffsetCbCr은 조인트 CbCr 모드에 따라 ppsActQpOffsetCb, ppsActQpOffsetCr로 설정될 수 있다.
일 실시예로, 상술한 ACT QP 오프셋 기반 QP 도출 과정은 다음 표 55에서와 같이 구현될 수 있다. 표 55는 VVC의 스펙 내 양자화 파라미터에 대한 도출 과정 및 변환 계수에 대한 스케일링 과정에 상술한 실시예를 적용할 경우의 일예를 나타낸다.
한편, 비디오 코딩에서, 중간 디코딩 프로세스에서 유지되는 레지듀얼은 16비트 부호있는 정수의 동적 범위 내에 있도록 한다. VVC에서 역 ACT 변환에 대한 입력 레지듀얼은 아래 수학식 4와 같이 내부 코딩 비트 뎁스에 따라 클리핑된다.
그러나 상기 수학식 4에서와 같은 클리핑은 가역적 ACT 변환에 문제가 발생할 수 있다. 왜냐하면 가역적 ACT 변환은 Cg 및 Co 성분의 비트 뎁스를 1만큼 증가시키기 때문에, ( -( 1 << BitDepth ), ( 1 << BitDepth ) - 1)의 범위로 클리핑되는 경우 문제가 발생할 수 있다.
따라서, 본 문서의 일 실시예에서는 상술한 바와 같은 ACT 레지듀얼의 클리핑 과정에서 발생할 수 있는 문제를 해결하기 위해서 ACT 레지듀얼의 클리핑 범위를 제안한다. 여기서 ACT 레지듀얼이라 함은 ACT이 가용한(enabled) 경우 현재 블록(즉, 현재 코딩 유닛)의 레지듀얼에 색상 공간 변환(colour space conversion)을 적용하여 도출되는 레지듀얼을 지칭할 수 있다.
일 실시예로, ACT 레지듀얼의 클리핑 범위는 BitDepth+ 1 로 증가될 수 있다. 즉, 비트 뎁스를 1만큼 증가시킨 클리핑 범위를 기반으로 ACT 레지듀얼 샘플을 도출할 수 있다.
일예로, 다음 표 56은 비트 뎁스를 1만큼 증가시킨 클리핑 범위를 기반으로 각 색상 성분에 대한 레지듀얼 샘플을 도출하는 과정의 예시를 나타낸 것이다.
상기 표 56을 참조하면, ACT가 적용되는 레지듀얼 샘플은 특정 범위 내의 값을 갖도록 클리핑을 적용할 수 있고, 이때 클리핑 범위는 비트 뎁스를 기반으로 정해질 수 있다. 예를 들어, 클리핑 범위는 클리핑을 위한 최소값 및 최대값 사이의 범위로 정해질 수 있으며, BitDepth+1 의 값을 기반으로 정해질 수 있다. 일예로, 클리핑 범위는 클리핑 범위를 지정하기 위해 사용되는 값(또는 변수) ACTClipBitDepth을 기반으로 정해질 수 있고, 상기 ACTClipBitDepth은 (BitDepth+ 1) 및 16 중에서 작은 값으로 결정될 수 있다. 이 경우, 클리핑 범위(즉, 최소값 및 최대값)는 ( -( 1 << ACTClipBitDepth), ( 1 << ACTClipBitDepth) - 1) )으로 결정될 수 있다. 상기 결정된 클리핑 범위를 기반으로 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)에 클리핑을 적용할 수 있다. 그리고, 클리핑된 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)을 기반으로 최종적으로 ACT 레지듀얼 샘플이 수정될 수 있다.
또는, 일예로, 상기 표 56에서 개시된 과정은 다음 표 57과 같이 나타낼 수도 있다.
상기 표 57을 참조하면, ACT 레지듀얼 샘플은 클리핑 범위(예: actClipRange)를 기반으로 클리핑될 수 있다. 즉, 상기 표 57에서 ACT 레지듀얼 샘플을 도출하는데 사용되는 클리핑 범위는, BitDepth+1 의 값을 기반으로 도출되는 actClipRange로 나타낼 수 있다. 예를 들어, 클리핑 범위를 지정하기 위해 사용되는 값(또는 변수) actClipRange는 1<<(BitDepth+1)-1으로 도출될 수 있다. 이 경우, 클리핑 범위(즉, 최소값 및 최대값)는 ( -actClipRange, actClipRange )로 결정될 수 있다. 상기 결정된 클리핑 범위를 기반으로 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)에 클리핑을 적용할 수 있다. 그리고, 클리핑된 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)을 기반으로 최종적으로 ACT 레지듀얼 샘플이 수정될 수 있다.
또는, 일예로, 비트 뎁스를 1만큼 증가시킨 클리핑 범위를 기반으로 각 색상 성분에 대한 레지듀얼 샘플을 도출하는 과정은 다음 표 58과 같이 나타낼 수 있다.
상기 표 58을 참조하면, ACT가 적용되는 레지듀얼 샘플은 특정 범위 내의 값을 갖도록 클리핑을 적용할 수 있고, 이때 클리핑 범위는 비트 뎁스를 1만큼 증가시킨 값을 기반으로 정해질 수 있다. 예를 들어, 클리핑 범위는 클리핑을 위한 최소값 및 최대값 사이의 범위로 정해질 수 있으며, BitDepth+1 의 값을 기반으로 정해질 수 있다. 일예로, 클리핑 범위는 클리핑 범위를 지정하기 위해 사용되는 값(또는 변수) ACTClipBitDepth을 기반으로 정해질 수 있고, 상기 ACTClipBitDepth은 BitDepth+1의 값으로 도출될 수 있다. 이 경우, 클리핑 범위(즉, 최소값 및 최대값)는 ( -( 1 << ACTClipBitDepth), ( 1 << ACTClipBitDepth) )으로 결정될 수 있다. 또는, 실시예에 따라, 상기 ACTClipBitDepth은 특정 범위(예컨대, 16) 이내로 클리핑될 수도 있고, 또는 min(BitDepth+1, 16)을 기반으로 도출되는 값일 수도 있다. 상기와 같이 결정된 클리핑 범위를 기반으로 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)에 클리핑을 적용할 수 있다. 그리고, 클리핑된 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)을 기반으로 최종적으로 ACT 레지듀얼 샘플이 수정될 수 있다.
또는, 일예로, 상기 표 58에서 개시된 과정은 다음 표 59와 같이 나타낼 수도 있다.
상기 표 59를 참조하면, ACT 레지듀얼 샘플은 클리핑 범위(예: actClipRange)를 기반으로 클리핑될 수 있다. 즉, 상기 표 59에서 ACT 레지듀얼 샘플을 도출하는데 사용되는 클리핑 범위는, BitDepth+1 의 값을 기반으로 도출되는 actClipRange로 나타낼 수 있다. 예를 들어, 클리핑 범위를 지정하기 위해 사용되는 값(또는 변수) actClipRange는 1<<(BitDepth+1)으로 도출될 수 있다. 이 경우, 클리핑 범위(즉, 최소값 및 최대값)는 ( -actClipRange, actClipRange-1 )로 결정될 수 있다. 상기 결정된 클리핑 범위를 기반으로 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)에 클리핑을 적용할 수 있다. 그리고, 클리핑된 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)을 기반으로 최종적으로 ACT 레지듀얼 샘플이 수정될 수 있다.
또한, 일 실시예로, ACT 레지듀얼의 클리핑 범위는 16 비트로 고정될 수 있다. 이는 ACT 레지듀얼이 16 비트의 동적 범위 내에 있도록 보장할 뿐만 아니라, 내부 비트 뎁스가 적절하게 설정되지 않은 무손실 코딩에 대해서도 안전성을 보장할 수 있다.
일예로, 다음 표 60은 16 비트의 고정된 클리핑 범위를 기반으로 각 색상 성분에 대한 레지듀얼 샘플을 도출하는 과정의 예시를 나타낸 것이다.
상기 표 60을 참조하면, ACT가 적용되는 레지듀얼 샘플은 특정 범위 내의 값을 갖도록 클리핑을 적용할 수 있고, 이때 클리핑 범위는 고정된 비트 뎁스를 기반으로 정해질 수 있다. 예를 들어, 고정된 비트 뎁스는 16 비트로 정해질 수 있고, 이는 코딩 시스템에서 사용되는 내부 비트 뎁스일 수 있다. 이 경우, 클리핑 범위 (즉, 클리핑을 위한 최소값 및 최대값 사이의 범위)는 ( -( 1 << 16), ( 1 << 16) )으로 결정될 수 있다. 상기 결정된 클리핑 범위를 기반으로 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)에 클리핑을 적용할 수 있다. 그리고, 클리핑된 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)을 기반으로 최종적으로 ACT 레지듀얼 샘플이 수정될 수 있다.
또는, 일예로, 상기 표 60에서 개시된 과정은 다음 표 61과 같이 나타낼 수도 있다.
상기 표 61을 참조하면, ACT 레지듀얼 샘플은 고정된 비트 뎁스를 기반으로 결정된 클리핑 범위에 의해 클리핑될 수 있다. 예를 들어, 고정된 비트 뎁스는 16 비트로 정해질 수 있고, 이 경우 클리핑 범위 (즉, 클리핑을 위한 최소값 및 최대값 사이의 범위)는 ( -65536, 65535 )으로 결정될 수 있다. 상기와 같이 결정된 클리핑 범위를 기반으로 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)에 클리핑을 적용할 수 있다. 그리고, 클리핑된 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)을 기반으로 최종적으로 ACT 레지듀얼 샘플이 수정될 수 있다.
또한, 일 실시예로, ACT 레지듀얼의 클리핑 범위는 루마 및 크로마 성분에 대해 각각 다르게 설정될 수 있다. 즉, 루마 성분에 대한 ACT 레지듀얼 샘플과 크로마 성분에 대한 ACT 레지듀얼 샘플에 적용되는 클리핑 범위가 다른 동적 범위를 가질 수 있다. 예를 들어, 크로마 성분에 대한 ACT 레지듀얼의 경우 비트 뎁스를 1만큼 증가시킨 클리핑 범위를 사용하고, 루마 성분에 대한 ACT 레지듀얼의 경우 변경되지 않은 클리핑 범위를 사용할 수 있다.
일예로, 다음 표 62는 루마 성분의 경우 비트 뎁스의 값을 변경하지 않은 클리핑 범위를 기반으로 클리핑되고, 크로마 성분의 경우 비트 뎁스를 1만큼 증가시킨 클리핑 범위를 기반으로 클리핑되는 과정의 예시를 나타낸 것이다.
상기 표 62를 참조하면, ACT 레지듀얼 샘플은 루마 성분 및 크로마 성분에 대해 각각 다른 클리핑 범위를 적용하여 클리핑될 수 있다. 예를 들어, 루마 성분의 ACT 레지듀얼(예: rY)의 경우 클리핑 범위는 비트 뎁스(예: BitDepth)의 값을 기반으로 도출될 수 있고, 크로마 성분의 ACT 레지듀얼(예: rCb, rCr)의 경우 클리핑 범위는 비트 뎁스를 1만큼 증가시킨 값(예: BitDepth+1)을 기반으로 도출될 수 있다. 이때, 루마 성분의 ACT 레지듀얼(예: rY)의 클리핑 범위를 지정하기 위해서 ACTClipBitDepthLuma 변수를 사용할 수 있고, 크로마 성분의 ACT 레지듀얼(예: rCb, rCr)의 클리핑 범위를 지정하기 위해서 ACTClipBitDepthChroma 변수를 사용할 수 있다. 즉, 루마 성분에 대해 사용되는 클리핑 범위는 ( -( 1 << ACTClipBitDepthLuma), ( 1 << ACTClipBitDepthLuma) - 1 )으로 결정될 수 있고, 크로마 성분에 대해 사용되는 클리핑 범위는 ( -( 1 << ACTClipBitDepthChroma ), ( 1 << ACTClipBitDepthChroma) - 1 )로 결정될 수 있다. 또는, 실시예에 따라, 크로마 성분에 대해 사용되는 클리핑 범위 ACTClipBitDepthChroma는 특정 범위(예컨대, 16) 이내로 클리핑될 수도 있고, 또는 min(BitDepth+1, 16)을 기반으로 도출되는 값일 수도 있다. 상기와 같이 결정된 클리핑 범위를 기반으로 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)에 클리핑을 적용할 수 있다. 그리고, 클리핑된 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)을 기반으로 최종적으로 ACT 레지듀얼 샘플이 수정될 수 있다.
또는, 일예로, 상기 표 62에서 개시된 과정은 다음 표 63과 같이 나타낼 수도 있다.
상기 표 63을 참조하면, ACT 레지듀얼 샘플은 루마 성분 및 크로마 성분에 대해 각각 다른 클리핑 범위를 적용하여 클리핑될 수 있다. 예를 들어, 루마 성분의 ACT 레지듀얼(예: rY)의 경우 클리핑 범위는 비트 뎁스(예: BitDepth)의 값을 기반으로 도출될 수 있고, 크로마 성분의 ACT 레지듀얼(예: rCb, rCr)의 경우 클리핑 범위는 비트 뎁스를 1만큼 증가시킨 값(예: BitDepth+1)을 기반으로 도출될 수 있다. 이 경우, 루마 성분에 대해 사용되는 클리핑 범위는 ( - (BitDepth<<1), (BitDepth <<1)-1 )로 결정될 수 있고, 크로마 성분에 대해 사용되는 클리핑 범위는 ( -((BitDepth+1)<<1), ((BitDepth+1) <<1)-1 )으로 결정될 수 있다. 상기와 같이 결정된 클리핑 범위를 기반으로 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)에 클리핑을 적용할 수 있다. 그리고, 클리핑된 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)을 기반으로 최종적으로 ACT 레지듀얼 샘플이 수정될 수 있다.
도 12 및 도 13은 본 문서의 실시예(들)에 따른 비디오/영상 인코딩 방법 및 관련 컴포넌트의 일 예를 개략적으로 나타낸다.
도 12에 개시된 방법은 도 2 또는 도 13에서 개시된 인코딩 장치(200)에 의하여 수행될 수 있다. 여기서 도 13에 개시된 인코딩 장치(200)는 도 2에 개시된 인코딩 장치(200)를 간략히 나타낸 것이다. 구체적으로, 도 12의 단계 S1200 ~ S1210은 도 2에 개시된 레지듀얼 처리부(230)에 의하여 수행될 수 있고, 도 12의 단계 S1220은 도 2에 개시된 엔트로피 인코딩부(240)에 의하여 수행될 수 있다. 또한, 비록 도시되지는 않았으나 예측 샘플을 도출하는 과정은 상기 인코딩 장치(200)의 예측부(220)에 의하여 수행될 수 있고, 상기 현재 블록에 대한 레지듀얼 샘플과 예측 샘플을 기반으로 상기 현재 블록에 대한 복원 샘플 및 복원 픽처를 생성하는 과정은 상기 인코딩 장치(200)의 가산부(250)에 의하여 수행될 수 있고, 상기 현재 블록에 대한 예측 정보를 인코딩하는 과정은 상기 인코딩 장치(200)의 엔트로피 인코딩부(240)에 의하여 수행될 수 있다. 또한, 도 12에서 개시된 방법은 본 문서에서 상술한 실시예들을 포함하여 수행될 수 있다. 따라서, 도 12에서는 상술한 실시예들과 중복되는 내용에 관해서 구체적인 설명을 생략하거나 간단히 하기로 한다.
도 12를 참조하면, 인코딩 장치는 현재 블록에 대한 레지듀얼 샘플을 도출할 수 있다(S1200).
일 실시예로, 인코딩 장치는 예측을 통하여 도출된 예측된 블록(예측 샘플)을 기반으로 레지듀얼 블록(레지듀얼 샘플)을 도출할 수 있다. 예를 들어, 먼저 인코딩 장치는 현재 블록에 대한 예측 모드를 결정하고 예측 샘플들을 도출할 수 있다. 인코딩 장치는 현재 블록에 인터 예측을 수행할지 또는 인트라 예측을 수행할지 여부를 결정할 수 있고, RD 코스트 기반으로 구체적인 인터 예측 모드 또는 구체적인 인트라 예측 모드를 결정할 수 있다. 인코딩 장치는 결정된 예측 모드에 따라 예측을 수행하여 현재 블록에 대한 예측 샘플들을 도출할 수 있다. 이때 인터 예측 또는 인트라 예측 등 본 문서에서 개시된 다양한 예측 방법이 적용될 수 있다. 또한, 인코딩 장치는 현재 블록에 적용된 예측과 관련된 정보(예컨대, 예측 모드 정보)를 생성하고 인코딩할 수 있다. 그리고, 인코딩 장치는 현재 블록에 대한 원본 샘플들과 예측 샘플들을 비교하여 레지듀얼 샘플들을 도출할 수 있다.
이때, 인코딩 장치는 상기와 같이 도출된 레지듀얼 샘플에 대해 ACT(Adaptive Color Transform)를 적용할지 여부를 결정할 수 있다. 그리고 인코딩 장치는 상기 결정에 따라 ACT 관련 정보를 생성할 수 있다.
ACT 관련 정보는 현재 블록에 ACT를 적용할지 여부에 관한 정보를 포함할 수 있다. 예를 들어, 현재 블록에 ACT를 적용할지 여부에 관한 정보는 상술한 cu_act_enabled_flag 신택스 엘리먼트일 수 있고, 코딩 유닛 신택스에 포함되어 시그널링될 수 있다. 일예로, cu_act_enabled_flag의 값이 1인 경우, 현재 블록(즉, 현재 블록의 레지듀얼)에 ACT를 적용함을 나타낼 수 있고, 이는 YCgCo 색상 공간에서 코딩함을 나타낸다. cu_act_enabled_flag의 값이 0인 경우, 현재 블록(즉, 현재 블록의 레지듀얼)에 ACT를 적용하지 않음을 나타낼 수 있고, 이는 오리지널 색상 공간에서 코딩됨을 나타낸다. 여기서, ACT는 색상 공간 변환(colour space conversion)을 사용하여 레지듀얼을 도출하는 방법을 말하며, 예를 들어, 상술한 바와 같이 레지듀얼을 하나의 색상 공간에서 YCgCo 색상 공간으로 적응적으로 변환하는 방식을 나타낼 수 있다.
또한, ACT 관련 정보는 ACT가 가용한지 여부에 관한 정보를 더 포함할 수 있다. 예를 들어, ACT가 가용한지 여부에 관한 정보는 상술한 sps_act_enabled_flag 신택스 엘리먼트일 수 있고, SPS(Sequence parameter set)에 포함되어 시그널링될 수 있다. 일예로, sps_act_enabled_flag의 값이 1인 경우 ACT가 가용함을 나타낼 수 있고, 이 경우 코딩 유닛 신택스에서 현재 블록(즉, 현재 블록의 레지듀얼)에 ACT를 적용할지 여부를 나타내는 정보가 존재할 수 있다. sps_act_enabled_flag의 값이 0인 경우 ACT가 가용하지 않음을 나타낼 수 있고, 이 경우 코딩 유닛 신택스에서 현재 블록(즉, 현재 블록의 레지듀얼)에 ACT를 적용할지 여부를 나타내는 정보가 존재하지 않을 수 있다.
일 실시예로, SPS를 통해 시그널링/파싱된 ACT가 가용한지 여부를 나타내는 정보(예: sps_act_enabled_flag)의 값이 1인 경우, 코딩 유닛 신택스를 통해 현재 블록(즉, 현재 블록의 레지듀얼)에 ACT를 적용할지 여부를 나타내는 정보(예: cu_act_enabled_flag)가 시그널링/파싱될 수 있다. 또는, SPS를 통해 시그널링/파싱된 ACT가 가용한지 여부를 나타내는 정보(예: sps_act_enabled_flag)의 값이 0인 경우, 코딩 유닛 신택스를 통해 현재 블록(즉, 현재 블록의 레지듀얼)에 ACT를 적용할지 여부를 나타내는 정보(예: cu_act_enabled_flag)가 시그널링/파싱되지 않을 수 있다.
즉, 인코딩 장치는 현재 블록에 대해 ACT를 적용할지 여부를 결정하고, 상기 결정에 따라 ACT 관련 정보(예: cu_act_enabled_flag, sps_act_enabled_flag 등)를 생성할 수 있다.
또한, 인코딩 장치는 상기와 같은 ACT 관련 정보(즉, ACT를 적용하는 것에 관한 ACT 관련 정보)를 기반으로, 현재 블록의 레지듀얼 샘플에 대해 ACT를 적용할 수 있다. 예를 들어, 현재 블록(즉, 현재 블록의 레지듀얼)에 ACT를 적용할지 여부를 나타내는 정보(예: cu_act_enabled_flag)의 값이 1인 경우, 인코딩 장치는 현재 블록의 레지듀얼 샘플에 대해 ACT를 적용할 수 있다. 여기서 레지듀얼 샘플은 루마 성분에 대한 루마 레지듀얼 샘플, Cb 크로마 성분에 대한 Cb 크로마 레지듀얼 샘플, 및 Cr 크로마 성분에 대한 Cr 크로마 레지듀얼 샘플을 포함할 수 있다. 인코딩 장치는 각 색상 성분에 대한 레지듀얼 샘플에 대해 클리핑을 수행하고, 각 색상 성분에 대해 클리핑된 레지듀얼 샘플을 기반으로 ACT를 적용하여 최종적으로 각 색상 성분에 대한 수정된 레지듀얼 샘플을 도출할 수 있다. 일 실시예로, 인코딩 장치는 현재 블록의 루마 성분에 대한 루마 레지듀얼 샘플, 현재 블록의 Cb 크로마 성분에 대한 Cb 크로마 레지듀얼 샘플, 및 현재 블록의 Cr 크로마 성분에 대한 Cr 크로마 레지듀얼 샘플 각각에 대해 클리핑 범위를 기반으로 클리핑을 수행할 수 있다. 인코딩 장치는 상기 클리핑된 루마 레지듀얼 샘플, 상기 클리핑된 Cb 크로마 레지듀얼 샘플, 및 상기 클리핑된 Cr 크로마 레지듀얼 샘플을 기반으로 ACT를 적용하여 수정된 루마 레지듀얼 샘플, 수정된 Cb 크로마 레지듀얼 샘플, 및 수정된 Cr 크로마 레지듀얼 샘플을 도출할 수 있다.
상술한 바와 같이, ACT는 색상 공간 변환(colour space conversion)을 사용하여 레지듀얼을 도출하는 것으로, 예를 들어 레지듀얼을 하나의 색상 공간에서 YCgCo 색상 공간으로 적응적으로 변환한다. 실시예에 따라, 상기 표 41 내지 표 54에 개시된 ACT 색상 변환의 방식들 중 어느 하나를 적용할 수 있다. 여기서는 레지듀얼 샘플에 대해 ACT를 적용하는 구체적인 설명은 생략하도록 한다.
또한, 일 실시예로, ACT를 적용하여 레지듀얼 샘플을 도출함에 있어서, 인코딩 장치는 비트 뎁스(BitDepth)를 기반으로 클리핑 범위를 결정하고, 상기 결정된 클리핑 범위 내의 값을 가지도록 레지듀얼 샘플에 대해 클리핑을 수행할 수 있다.
일예로, 클리핑 범위는 비트 뎁스에 1을 증가시킨 값을 기반으로 도출되는 최소값 및 최대값 사이의 값을 가질 수 있다. 이때, 클리핑 범위의 최소값은 -( 1 << ( BitDepth + 1 ) )에 의해 도출되는 값이고, 클리핑 범위의 최대값은 ( 1 << ( BitDepth + 1 ) ) - 1에 의해 도출되는 값일 수 있다. 예컨대 상기 표 56 내지 상기 표 59에 개시된 바와 같이, 상기 클리핑 범위를 기반으로 각 색상 성분의 레지듀얼 샘플(rY, rCb, rCr)에 클리핑이 수행될 수 있다. 그리고 클리핑된 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)을 기반으로 최종적으로 ACT가 적용된 (수정된) 레지듀얼 샘플이 도출될 수 있다.
또는, 일예로, 클리핑 범위는 비트 뎁스에 1을 증가시킨 값 및 16 중 작은 값을 기반으로 도출되는 최소값 및 최대값 사이의 값을 가질 수 있다. 예컨대 상기 표 56 내지 상기 표 59에 개시된 바와 같이, 상기 클리핑 범위를 기반으로 각 색상 성분의 레지듀얼 샘플(rY, rCb, rCr)에 클리핑이 수행될 수 있다. 그리고 클리핑된 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)을 기반으로 최종적으로 ACT가 적용된 (수정된) 레지듀얼 샘플이 도출될 수 있다.
또는, 일예로, 클리핑 범위는 고정된 비트 뎁스를 기반으로 결정될 수 있다. 예를 들어, 고정된 비트 뎁스는 16비트일 수 있다. 이때, 클리핑 범위는 -( 1 << 16) 내지 ( 1 << 16) -1 사이의 범위이거나, 또는 -65536 내지 65535 사이의 범위일 수 있다. 예컨대 상기 표 60 내지 상기 표 61에 개시된 바와 같이, 상기 클리핑 범위를 기반으로 각 색상 성분의 레지듀얼 샘플(rY, rCb, rCr)에 클리핑이 수행될 수 있다. 그리고 클리핑된 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)을 기반으로 최종적으로 ACT가 적용된 (수정된) 레지듀얼 샘플이 도출될 수 있다.
또는, 일예로, 클리핑 범위는 루마 성분 및 크로마 성분에 대한 클리핑 범위를 포함할 수 있고, 루마 성분 및 크로마 성분에 대해 각각 다른 클리핑 범위를 설정할 수 있다. 예를 들어, 루마 성분에 대한 클리핑 범위는 비트 뎁스의 값을 기반으로 도출되는 -( 1 << BitDepth) 내지 ( 1 << BitDepth) - 1 사이의 범위를 가질 수 있고, 크로마 성분에 대한 클리핑 범위는 비트 뎁스에 1을 증가시킨 값을 기반으로 도출되는 -( 1 << (BitDepth + 1)) 내지 ( 1 << (BitDepth + 1)) - 1 사이의 범위를 가질 수 있다. 예컨대 상기 표 62 내지 상기 표 63에 개시된 바와 같이, 상기 루마 성분 및 크로마 성분에 대한 클리핑 범위를 기반으로 각 색상 성분의 레지듀얼 샘플(rY, rCb, rCr)에 클리핑이 수행될 수 있다. 그리고 클리핑된 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)을 기반으로 최종적으로 ACT가 적용된 (수정된) 레지듀얼 샘플이 도출될 수 있다.
인코딩 장치는 레지듀얼 샘플을 기반으로 레지듀얼 정보를 생성할 수 있다(S1210).
레지듀얼 정보는 레지듀얼 샘플에 대해 변환 및/또는 양자화 절차를 통하여 생성된 정보로 양자화된 변환 계수들에 관한 정보일 수 있으며, 예컨대 양자화된 변환 계수들의 값 정보, 위치 정보, 변환 기법, 변환 커널, 양자화 파라미터 등의 정보를 포함할 수 있다.
일 실시예로, 인코딩 장치는 레지듀얼 샘플들에 대한 변환 절차를 통하여 변환 계수들을 도출하고, 도출된 변환 계수들을 양자화하여 양자화된 변환 계수들을 도출할 수 있다. 이때, 인코딩 장치는 코딩 효율을 고려하여 현재 블록에 대한 변환 적용 여부를 결정할 수 있다. 즉, 인코딩 장치는 레지듀얼 샘플들에 대하여 변환이 적용되는지 여부를 결정할 수 있다. 예를 들어, 레지듀얼 샘플들에 대하여 변환이 적용되지 않는 경우, 인코딩 장치는 레지듀얼 샘플들을 변환 계수들로 도출할 수 있다. 또는, 레지듀얼 샘플들에 대하여 변환이 적용되는 경우, 인코딩 장치는 레지듀얼 샘플들에 대한 변환을 수행하여 변환 계수들을 도출할 수 있다. 여기서, 레지듀얼 샘플은 상기와 같이 ACT가 적용되어 수정된 레지듀얼 샘플을 지칭할 수 있다.
인코딩 장치는 영상 정보(또는 비디오 정보)를 인코딩할 수 있다(S1220).
여기서, 영상 정보는 상기 ACT 관련 정보를 포함할 수 있다. 또한, 영상 정보는 레지듀얼 정보를 포함할 수 있다. 또한, 영상 정보는 상기 예측 샘플들을 도출하는데 사용된 상기 예측과 관련된 정보(예컨대, 예측 모드 정보)를 포함할 수 있다. 즉, 영상 정보는 인코딩 과정에서 도출되는 다양한 정보를 포함할 수 있고, 이러한 다양한 정보를 포함하여 인코딩될 수 있다.
일 실시예로, 인코딩 장치는 상기 ACT 관련 정보, 상기 레지듀얼 정보 및 상기 예측 모드 정보 중 적어도 하나를 포함하는 영상 정보를 인코딩할 수 있다.
상술한 바와 같은 다양한 정보를 포함하는 영상 정보는 인코딩되어 비트스트림 형태로 출력될 수 있다. 비트스트림은 네트워크 또는 (디지털) 저장매체를 통하여 디코딩 장치로 전송될 수 있다. 여기서 네트워크는 방송망 및/또는 통신망 등을 포함할 수 있고, 디지털 저장매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장매체를 포함할 수 있다.
도 14 및 도 15는 본 문서의 실시예(들)에 따른 비디오/영상 디코딩 방법 및 관련 컴포넌트의 일 예를 개략적으로 나타낸다.
도 14에 개시된 방법은 도 3 또는 도 15에서 개시된 디코딩 장치(300)에 의하여 수행될 수 있다. 여기서 도 15에 개시된 디코딩 장치(300)는 도 3에 개시된 디코딩 장치(300)를 간략히 나타낸 것이다. 구체적으로, 도 14의 단계 S1400은 도 3에 개시된 엔트로피 디코딩부(310)에 의하여 수행될 수 있고, 도 14의 단계 S1410은 도 3에 개시된 레지듀얼 처리부(320)에 의하여 수행될 수 있고, 도 14의 단계 S1420은 도 3에 개시된 가산부(340)에 의하여 수행될 수 있다. 또한, 비록 도시되지는 않았으나 현재 블록에 대한 예측 정보를 수신하는 과정은 상기 디코딩 장치(300)의 엔트로피 디코딩부(310)에 의하여 수행될 수 있고, 현재 블록의 예측 샘플을 도출하는 과정은 상기 디코딩 장치(300)의 예측부(330)에 의하여 수행될 수 있다. 또한, 도 14에서 개시된 방법은 본 문서에서 상술한 실시예들을 포함하여 수행될 수 있다. 따라서, 도 14에서는 상술한 실시예들과 중복되는 내용에 관해서 구체적인 설명을 생략하거나 간단히 하기로 한다.
도 14를 참조하면, 디코딩 장치는 비트스트림으로부터 영상 정보(또는 비디오 정보)를 수신할 수 있다(S1400).
일 실시예로, 디코딩 장치는 비트스트림을 파싱하여 영상 복원(또는 픽처 복원)에 필요한 정보(ex. 비디오/영상 정보)를 도출할 수 있다. 이때, 영상 정보는 레지듀얼 정보를 포함할 수 있고, 레지듀얼 정보는 양자화된 변환 계수들의 값 정보, 위치 정보, 변환 기법, 변환 커널, 양자화 파라미터 등의 정보를 포함할 수 있다. 또한, 영상 정보는 예측과 관련된 정보(예컨대, 예측 모드 정보)를 포함할 수 있다. 또한, 영상 정보는 ACT (Adaptive Color Transform) 관련 정보를 포함할 수 있다. 즉, 영상 정보는 디코딩 과정에서 필요한 다양한 정보를 포함할 수 있고, 지수 골롬 부호화, CAVLC 또는 CABAC 등의 코딩 방법을 기초로 디코딩될 수 있다.
일 실시예로, 디코딩 장치는 비트스트림으로부터 예측 모드 정보, 레지듀얼 정보 및 ACT 관련 정보 중 적어도 하나를 포함하는 영상 정보를 획득할 수 있다.
디코딩 장치는 레지듀얼 정보를 기반으로 현재 블록에 대한 레지듀얼 샘플을 도출할 수 있다(S1410).
일 실시예로, 먼저 디코딩 장치는 영상 정보에 포함된 레지듀얼 정보를 획득할 수 있다. 레지듀얼 정보는 상술한 바와 같이 양자화된 변환 계수들의 값 정보, 위치 정보, 변환 기법, 변환 커널, 양자화 파라미터 등의 정보를 포함할 수 있다. 디코딩 장치는 레지듀얼 정보에 포함된 양자화된 변환 계수 정보를 기반으로 현재 블록에 대한 양자화된 변환 계수들을 도출할 수 있다. 디코딩 장치는 양자화된 변환 계수들에 대한 역양자화 과정을 적용하여 변환 계수들을 도출하고, 변환 계수들에 대해 역변환을 수행하여 현재 블록의 레지듀얼 샘플들을 도출할 수 있다. 이때, 디코딩 장치는 현재 블록에 대해 역변환을 적용할지 여부를 나타내는 정보(즉, 변환 스킵 플래그 정보)를 획득하고, 이 정보(즉, 변환 스킵 플래그 정보)를 기반으로 레지듀얼 샘플들을 도출할 수 있다. 예를 들어, 변환 계수들에 대해 역변환이 적용되지 않는 경우(현재 블록에 대해 변환 스킵 플래그 정보의 값이 1인 경우), 디코딩 장치는 변환 계수들을 현재 블록의 레지듀얼 샘플들로 도출할 수 있다. 또는, 변환 계수들에 대해 역변환이 적용되는 경우(현재 블록에 대해 변환 스킵 플래그 정보의 값이 0인 경우), 디코딩 장치는 변환 계수들에 대해 역변환하여 현재 블록의 레지듀얼 샘플들을 도출할 수 있다.
디코딩 장치는 상기와 같이 도출된 레지듀얼 샘플에 대해 ACT를 적용할지 여부를 결정할 수 있다. 즉, 디코딩 장치는 비트스트림으로부터 ACT 관련 정보를 포함하는 영상 정보를 획득하고, 상기 ACT 관련 정보를 기반으로 현재 블록의 레지듀얼 샘플에 대해 ACT를 적용할지 여부를 결정할 수 있다.
ACT 관련 정보는 현재 블록에 ACT를 적용할지 여부에 관한 정보를 포함할 수 있다. 예를 들어, 현재 블록에 ACT를 적용할지 여부에 관한 정보는 상술한 cu_act_enabled_flag 신택스 엘리먼트일 수 있고, 코딩 유닛 신택스에 포함되어 시그널링될 수 있다. 일예로, cu_act_enabled_flag의 값이 1인 경우, 현재 블록(즉, 현재 블록의 레지듀얼)에 ACT를 적용함을 나타낼 수 있고, 이는 YCgCo 색상 공간에서 코딩함을 나타낸다. cu_act_enabled_flag의 값이 0인 경우, 현재 블록(즉, 현재 블록의 레지듀얼)에 ACT를 적용하지 않음을 나타낼 수 있고, 이는 오리지널 색상 공간에서 코딩됨을 나타낸다. 여기서, ACT는 색상 공간 변환(colour space conversion)을 사용하여 레지듀얼을 도출하는 방법을 말하며, 예를 들어, 상술한 바와 같이 레지듀얼을 하나의 색상 공간에서 YCgCo 색상 공간으로 적응적으로 변환하는 방식을 나타낼 수 있다.
또한, ACT 관련 정보는 ACT가 가용한지 여부에 관한 정보를 더 포함할 수 있다. 예를 들어, ACT가 가용한지 여부에 관한 정보는 상술한 sps_act_enabled_flag 신택스 엘리먼트일 수 있고, SPS(Sequence parameter set)에 포함되어 시그널링될 수 있다. 일예로, sps_act_enabled_flag의 값이 1인 경우 ACT가 가용함을 나타낼 수 있고, 이 경우 코딩 유닛 신택스에서 현재 블록(즉, 현재 블록의 레지듀얼)에 ACT를 적용할지 여부를 나타내는 정보가 존재할 수 있다. sps_act_enabled_flag의 값이 0인 경우 ACT가 가용하지 않음을 나타낼 수 있고, 이 경우 코딩 유닛 신택스에서 현재 블록(즉, 현재 블록의 레지듀얼)에 ACT를 적용할지 여부를 나타내는 정보가 존재하지 않을 수 있다.
일 실시예로, SPS를 통해 시그널링/파싱된 ACT가 가용한지 여부를 나타내는 정보(예: sps_act_enabled_flag)의 값이 1인 경우, 코딩 유닛 신택스를 통해 현재 블록(즉, 현재 블록의 레지듀얼)에 ACT를 적용할지 여부를 나타내는 정보(예: cu_act_enabled_flag)가 시그널링/파싱될 수 있다. 또는, SPS를 통해 시그널링/파싱된 ACT가 가용한지 여부를 나타내는 정보(예: sps_act_enabled_flag)의 값이 0인 경우, 코딩 유닛 신택스를 통해 현재 블록(즉, 현재 블록의 레지듀얼)에 ACT를 적용할지 여부를 나타내는 정보(예: cu_act_enabled_flag)가 시그널링/파싱되지 않을 수 있다.
즉, 디코딩 장치는 상기와 같은 ACT 관련 정보(즉, ACT를 적용하는 것에 관한 ACT 관련 정보)를 기반으로, 현재 블록의 레지듀얼 샘플에 대해 ACT를 적용할 수 있다. 예를 들어, 현재 블록(즉, 현재 블록의 레지듀얼)에 ACT를 적용할지 여부를 나타내는 정보(예: cu_act_enabled_flag)의 값이 1인 경우, 디코딩 장치는 현재 블록의 레지듀얼 샘플에 대해 ACT를 적용할 수 있다. 여기서 레지듀얼 샘플은 루마 성분에 대한 루마 레지듀얼 샘플, Cb 크로마 성분에 대한 Cb 크로마 레지듀얼 샘플, 및 Cr 크로마 성분에 대한 Cr 크로마 레지듀얼 샘플을 포함할 수 있다. 디코딩 장치는 각 색상 성분에 대한 레지듀얼 샘플에 대해 클리핑을 수행하고, 각 색상 성분에 대해 클리핑된 레지듀얼 샘플을 기반으로 ACT를 적용하여 최종적으로 각 색상 성분에 대한 수정된 레지듀얼 샘플을 도출할 수 있다. 일 실시예로, 디코딩 장치는 현재 블록의 루마 성분에 대한 루마 레지듀얼 샘플, 현재 블록의 Cb 크로마 성분에 대한 Cb 크로마 레지듀얼 샘플, 및 현재 블록의 Cr 크로마 성분에 대한 Cr 크로마 레지듀얼 샘플 각각에 대해 클리핑 범위를 기반으로 클리핑을 수행할 수 있다. 디코딩 장치는 상기 클리핑된 루마 레지듀얼 샘플, 상기 클리핑된 Cb 크로마 레지듀얼 샘플, 및 상기 클리핑된 Cr 크로마 레지듀얼 샘플을 기반으로 ACT를 적용하여 수정된 루마 레지듀얼 샘플, 수정된 Cb 크로마 레지듀얼 샘플, 및 수정된 Cr 크로마 레지듀얼 샘플을 도출할 수 있다.
상술한 바와 같이, ACT는 색상 공간 변환(colour space conversion)을 사용하여 레지듀얼을 도출하는 것으로, 예를 들어 레지듀얼을 하나의 색상 공간에서 YCgCo 색상 공간으로 적응적으로 변환한다. 실시예에 따라, 상기 표 41 내지 표 54에 개시된 ACT 색상 변환의 방식들 중 어느 하나를 적용할 수 있다. 여기서는 레지듀얼 샘플에 대해 ACT를 적용하는 구체적인 설명은 생략하도록 한다.
또한, 일 실시예로, ACT를 적용하여 레지듀얼 샘플을 도출함에 있어서, 디코딩 장치는 비트 뎁스(BitDepth)를 기반으로 클리핑 범위를 결정하고, 상기 결정된 클리핑 범위 내의 값을 가지도록 레지듀얼 샘플에 대해 클리핑을 수행할 수 있다.
일예로, 클리핑 범위는 비트 뎁스에 1을 증가시킨 값을 기반으로 도출되는 최소값 및 최대값 사이의 값을 가질 수 있다. 이때, 클리핑 범위의 최소값은 -( 1 << ( BitDepth + 1 ) )에 의해 도출되는 값이고, 클리핑 범위의 최대값은 ( 1 << ( BitDepth + 1 ) ) - 1에 의해 도출되는 값일 수 있다. 예컨대 상기 표 56 내지 상기 표 59에 개시된 바와 같이, 상기 클리핑 범위를 기반으로 각 색상 성분의 레지듀얼 샘플(rY, rCb, rCr)에 클리핑이 수행될 수 있다. 그리고 클리핑된 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)을 기반으로 최종적으로 ACT가 적용된 (수정된) 레지듀얼 샘플이 도출될 수 있다.
또는, 일예로, 클리핑 범위는 비트 뎁스에 1을 증가시킨 값 및 16 중 작은 값을 기반으로 도출되는 최소값 및 최대값 사이의 값을 가질 수 있다. 예컨대 상기 표 56 내지 상기 표 59에 개시된 바와 같이, 상기 클리핑 범위를 기반으로 각 색상 성분의 레지듀얼 샘플(rY, rCb, rCr)에 클리핑이 수행될 수 있다. 그리고 클리핑된 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)을 기반으로 최종적으로 ACT가 적용된 (수정된) 레지듀얼 샘플이 도출될 수 있다.
또는, 일예로, 클리핑 범위는 고정된 비트 뎁스를 기반으로 결정될 수 있다. 예를 들어, 고정된 비트 뎁스는 16비트일 수 있다. 이때, 클리핑 범위는 -( 1 << 16) 내지 ( 1 << 16) -1 사이의 범위이거나, 또는 -65536 내지 65535 사이의 범위일 수 있다. 예컨대 상기 표 60 내지 상기 표 61에 개시된 바와 같이, 상기 클리핑 범위를 기반으로 각 색상 성분의 레지듀얼 샘플(rY, rCb, rCr)에 클리핑이 수행될 수 있다. 그리고 클리핑된 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)을 기반으로 최종적으로 ACT가 적용된 (수정된) 레지듀얼 샘플이 도출될 수 있다.
또는, 일예로, 클리핑 범위는 루마 성분 및 크로마 성분에 대한 클리핑 범위를 포함할 수 있고, 루마 성분 및 크로마 성분에 대해 각각 다른 클리핑 범위를 설정할 수 있다. 예를 들어, 루마 성분에 대한 클리핑 범위는 비트 뎁스의 값을 기반으로 도출되는 -( 1 << BitDepth) 내지 ( 1 << BitDepth) - 1 사이의 범위를 가질 수 있고, 크로마 성분에 대한 클리핑 범위는 비트 뎁스에 1을 증가시킨 값을 기반으로 도출되는 -( 1 << (BitDepth + 1)) 내지 ( 1 << (BitDepth + 1)) - 1 사이의 범위를 가질 수 있다. 예컨대 상기 표 62 내지 상기 표 63에 개시된 바와 같이, 상기 루마 성분 및 크로마 성분에 대한 클리핑 범위를 기반으로 각 색상 성분의 레지듀얼 샘플(rY, rCb, rCr)에 클리핑이 수행될 수 있다. 그리고 클리핑된 각 색상 성분에 대한 레지듀얼 샘플(rY, rCb, rCr)을 기반으로 최종적으로 ACT가 적용된 (수정된) 레지듀얼 샘플이 도출될 수 있다.
디코딩 장치는 레지듀얼 샘플을 기반으로 복원 샘플을 생성할 수 있다(S1420).
여기서, 레지듀얼 샘플은 상기와 같이 ACT가 적용되어 수정된 레지듀얼 샘플을 지칭할 수 있다.
일 실시예로, 디코딩 장치는 영상 정보에 포함된 예측 정보(예컨대, 예측 모드 정보)를 기반으로 현재 블록에 대한 인터 예측을 수행할지 또는 인트라 예측을 수행할지 여부를 결정할 수 있고, 상기 결정에 따라 예측을 수행하여 현재 블록에 대한 예측 샘플들을 도출할 수 있다. 그리고, 디코딩 장치는 예측 샘플들과 레지듀얼 샘플들을 기반으로 복원 샘플들을 생성할 수 있다. 이때, 디코딩 장치는 예측 모드에 따라 예측 샘플들을 바로 복원 샘플들로 이용할 수도 있고, 또는 예측 샘플들에 레지듀얼 샘플들을 더하여 복원 샘플들을 생성할 수도 있다. 또한, 복원 샘플들을 기반으로 복원 블록 또는 복원 픽처를 도출할 수 있다. 이후 디코딩 장치는 필요에 따라 주관적/객관적 화질을 향상시키기 위하여 디블록킹 필터링 및/또는 SAO 절차와 같은 인루프 필터링 절차를 상기 복원 픽처에 적용할 수 있음은 상술한 바와 같다.
상술한 실시예에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 문서의 실시예들은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당업자라면 순서도에 나타내어진 단계들이 배타적이지 않고, 다른 단계가 포함되거나 순서도의 하나 또는 그 이상의 단계가 본 문서의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
상술한 본 문서에 따른 방법은 소프트웨어 형태로 구현될 수 있으며, 본 문서에 따른 인코딩 장치 및/또는 디코딩 장치는 예를 들어 TV, 컴퓨터, 스마트폰, 셋톱박스, 디스플레이 장치 등의 영상 처리를 수행하는 장치에 포함될 수 있다.
본 문서에서 실시예들이 소프트웨어로 구현될 때, 상술한 방법은 상술한 기능을 수행하는 모듈(과정, 기능 등)로 구현될 수 있다. 모듈은 메모리에 저장되고, 프로세서에 의해 실행될 수 있다. 메모리는 프로세서 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 프로세서는 ASIC(application-specific integrated circuit), 다른 칩셋, 논리 회로 및/또는 데이터 처리 장치를 포함할 수 있다. 메모리는 ROM(read-only memory), RAM(random access memory), 플래쉬 메모리, 메모리 카드, 저장 매체 및/또는 다른 저장 장치를 포함할 수 있다. 즉, 본 문서에서 설명한 실시예들은 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 예를 들어, 각 도면에서 도시한 기능 유닛들은 컴퓨터, 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 이 경우 구현을 위한 정보(ex. information on instructions) 또는 알고리즘이 디지털 저장 매체에 저장될 수 있다.
또한, 본 문서가 적용되는 디코딩 장치 및 인코딩 장치는 멀티미디어 방송 송수신 장치, 모바일 통신 단말, 홈 시네마 비디오 장치, 디지털 시네마 비디오 장치, 감시용 카메라, 비디오 대화 장치, 비디오 통신과 같은 실시간 통신 장치, 모바일 스트리밍 장치, 저장 매체, 캠코더, 주문형 비디오(VoD) 서비스 제공 장치, OTT 비디오(Over the top video) 장치, 인터넷 스트리밍 서비스 제공 장치, 3차원(3D) 비디오 장치, VR(virtual reality) 장치, AR(argumente reality) 장치, 화상 전화 비디오 장치, 운송 수단 단말 (ex. 차량(자율주행차량 포함) 단말, 비행기 단말, 선박 단말 등) 및 의료용 비디오 장치 등에 포함될 수 있으며, 비디오 신호 또는 데이터 신호를 처리하기 위해 사용될 수 있다. 예를 들어, OTT 비디오(Over the top video) 장치로는 게임 콘솔, 블루레이 플레이어, 인터넷 접속 TV, 홈시어터 시스템, 스마트폰, 태블릿 PC, DVR(Digital Video Recoder) 등을 포함할 수 있다.
또한, 본 문서의 실시예(들)이 적용되는 처리 방법은 컴퓨터로 실행되는 프로그램의 형태로 생산될 수 있으며, 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 본 문서의 실시예(들)에 따른 데이터 구조를 가지는 멀티미디어 데이터도 또한 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 상기 컴퓨터가 판독할 수 있는 기록 매체는 컴퓨터로 읽을 수 있는 데이터가 저장되는 모든 종류의 저장 장치 및 분산 저장 장치를 포함한다. 상기 컴퓨터가 판독할 수 있는 기록 매체는, 예를 들어, 블루레이 디스크(BD), 범용 직렬 버스(USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크 및 광학적 데이터 저장 장치를 포함할 수 있다. 또한, 상기 컴퓨터가 판독할 수 있는 기록 매체는 반송파(예를 들어, 인터넷을 통한 전송)의 형태로 구현된 미디어를 포함한다. 또한, 인코딩 방법으로 생성된 비트스트림이 컴퓨터가 판독할 수 있는 기록 매체에 저장되거나 유무선 통신 네트워크를 통해 전송될 수 있다.
또한, 본 문서의 실시예(들)는 프로그램 코드에 의한 컴퓨터 프로그램 제품으로 구현될 수 있고, 상기 프로그램 코드는 본 문서의 실시예(들)에 의해 컴퓨터에서 수행될 수 있다. 상기 프로그램 코드는 컴퓨터에 의해 판독가능한 캐리어 상에 저장될 수 있다.
도 16은 본 문서에서 개시된 실시예들이 적용될 수 있는 컨텐츠 스트리밍 시스템의 예를 나타낸다.
도 16을 참조하면, 본 문서의 실시예들에 적용되는 컨텐츠 스트리밍 시스템은 크게 인코딩 서버, 스트리밍 서버, 웹 서버, 미디어 저장소, 사용자 장치 및 멀티미디어 입력 장치를 포함할 수 있다.
상기 인코딩 서버는 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들로부터 입력된 컨텐츠를 디지털 데이터로 압축하여 비트스트림을 생성하고 이를 상기 스트리밍 서버로 전송하는 역할을 한다. 다른 예로, 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들이 비트스트림을 직접 생성하는 경우, 상기 인코딩 서버는 생략될 수 있다.
상기 비트스트림은 본 문서의 실시예들에 적용되는 인코딩 방법 또는 비트스트림 생성 방법에 의해 생성될 수 있고, 상기 스트리밍 서버는 상기 비트스트림을 전송 또는 수신하는 과정에서 일시적으로 상기 비트스트림을 저장할 수 있다.
상기 스트리밍 서버는 웹 서버를 통한 사용자 요청에 기초하여 멀티미디어 데이터를 사용자 장치에 전송하고, 상기 웹 서버는 사용자에게 어떠한 서비스가 있는지를 알려주는 매개체 역할을 한다. 사용자가 상기 웹 서버에 원하는 서비스를 요청하면, 상기 웹 서버는 이를 스트리밍 서버에 전달하고, 상기 스트리밍 서버는 사용자에게 멀티미디어 데이터를 전송한다. 이때, 상기 컨텐츠 스트리밍 시스템은 별도의 제어 서버를 포함할 수 있고, 이 경우 상기 제어 서버는 상기 컨텐츠 스트리밍 시스템 내 각 장치 간 명령/응답을 제어하는 역할을 한다.
상기 스트리밍 서버는 미디어 저장소 및/또는 인코딩 서버로부터 컨텐츠를 수신할 수 있다. 예를 들어, 상기 인코딩 서버로부터 컨텐츠를 수신하게 되는 경우, 상기 컨텐츠를 실시간으로 수신할 수 있다. 이 경우, 원활한 스트리밍 서비스를 제공하기 위하여 상기 스트리밍 서버는 상기 비트스트림을 일정 시간동안 저장할 수 있다.
상기 사용자 장치의 예로는, 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(personal digital assistants), PMP(portable multimedia player), 네비게이션, 슬레이트 PC(slate PC), 태블릿 PC(tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(wearable device, 예를 들어, 워치형 단말기 (smartwatch), 글래스형 단말기 (smart glass), HMD(head mounted display)), 디지털 TV, 데스크탑 컴퓨터, 디지털 사이니지 등이 있을 수 있다.
상기 컨텐츠 스트리밍 시스템 내 각 서버들은 분산 서버로 운영될 수 있으며, 이 경우 각 서버에서 수신하는 데이터는 분산 처리될 수 있다.
본 문서에 기재된 청구항들은 다양한 방식으로 조합될 수 있다. 예를 들어, 본 문서의 방법 청구항의 기술적 특징이 조합되어 장치로 구현될 수 있고, 본 문서의 장치 청구항의 기술적 특징이 조합되어 방법으로 구현될 수 있다. 또한, 본 문서의 방법 청구항의 기술적 특징과 장치 청구항의 기술적 특징이 조합되어 장치로 구현될 수 있고, 본 문서의 방법 청구항의 기술적 특징과 장치 청구항의 기술적 특징이 조합되어 방법으로 구현될 수 있다.
Claims (19)
- 디코딩 장치에 의하여 수행되는 영상 디코딩 방법에 있어서,비트스트림으로부터 레지듀얼 정보를 포함하는 영상 정보를 획득하는 단계;상기 레지듀얼 정보를 기반으로 현재 블록에 대한 레지듀얼 샘플을 도출하는 단계; 및상기 레지듀얼 샘플을 기반으로 복원 샘플을 생성하는 단계를 포함하며,상기 영상 정보는 상기 현재 블록의 상기 레지듀얼 샘플에 대해 ACT (Adaptive Color Transform)를 적용할지 여부에 관한 ACT 관련 정보를 포함하고,상기 ACT를 적용하는 상기 ACT 관련 정보에 기반하여, 상기 레지듀얼 샘플은 클리핑 범위를 기반으로 클리핑이 수행되어 상기 ACT가 적용되고,상기 클리핑 범위는 비트 뎁스(BitDepth)를 기반으로 결정되는 것을 특징으로 하는 영상 디코딩 방법.
- 제1항에 있어서,상기 ACT를 적용하는 상기 ACT 관련 정보를 기반으로, 상기 레지듀얼 샘플에 대해 상기 ACT를 적용하는 단계를 포함하고,상기 레지듀얼 샘플은 루마 성분에 대한 루마 레지듀얼 샘플, Cb 크로마 성분에 대한 Cb 크로마 레지듀얼 샘플, 및 Cr 크로마 성분에 대한 Cr 크로마 레지듀얼 샘플을 포함하고,상기 ACT를 적용하는 단계는,상기 루마 레지듀얼 샘플, 상기 Cb 크로마 레지듀얼 샘플, 및 상기 Cr 크로마 레지듀얼 샘플 각각에 대해 상기 클리핑 범위를 기반으로 상기 클리핑을 수행하는 단계; 및상기 클리핑된 루마 레지듀얼 샘플, 상기 클리핑된 Cb 크로마 레지듀얼 샘플, 및 상기 클리핑된 Cr 크로마 레지듀얼 샘플을 기반으로 상기 ACT를 적용하여 수정된 루마 레지듀얼 샘플, 수정된 Cb 크로마 레지듀얼 샘플, 및 수정된 Cr 크로마 레지듀얼 샘플을 도출하는 단계를 포함하는 것을 특징으로 하는 영상 디코딩 방법.
- 제1항에 있어서,상기 클리핑 범위는 상기 비트 뎁스에 1을 증가시킨 값을 기반으로 도출되는 최소값 및 최대값 사이의 값을 가지는 것을 특징으로 하는 영상 디코딩 방법.
- 제3항에 있어서,상기 클리핑 범위의 상기 최소값은 -( 1 << ( BitDepth + 1 ) )에 의해 도출되는 값이고,상기 클리핑 범위의 상기 최대값은 ( 1 << ( BitDepth + 1 ) ) - 1에 의해 도출되는 값인 것을 특징으로 하는 영상 디코딩 방법.
- 제1항에 있어서,상기 클리핑 범위는 상기 비트 뎁스에 1을 증가시킨 값 및 16 중 작은 값을 기반으로 도출되는 최소값 및 최대값 사이의 값을 가지는 것을 특징으로 하는 영상 디코딩 방법.
- 제1항에 있어서,상기 클리핑 범위는 16비트의 고정된 비트 뎁스를 기반으로 결정되는 것을 특징으로 하는 영상 디코딩 방법.
- 제6항에 있어서,상기 클리핑 범위는 -( 1 << 16) 내지 ( 1 << 16) -1 사이의 범위이거나, 또는 -65536 내지 65535 사이의 범위인 것을 특징으로 하는 영상 디코딩 방법.
- 제1항에 있어서,상기 클리핑 범위는 루마 성분 및 크로마 성분에 대해 다른 클리핑 범위를 가지며,상기 루마 성분에 대한 클리핑 범위는 상기 비트 뎁스의 값을 기반으로 도출되는 -( 1 << BitDepth) 내지 ( 1 << BitDepth) - 1 사이의 범위를 가지고,상기 크로마 성분에 대한 클리핑 범위는 상기 비트 뎁스에 1을 증가시킨 값을 기반으로 도출되는 -( 1 << (BitDepth + 1)) 내지 ( 1 << (BitDepth + 1)) - 1 사이의 범위를 갖는 것을 특징으로 하는 영상 디코딩 방법.
- 제1항에 있어서,상기 영상 정보는 SPS(Sequence parameter set)을 포함하고,상기 SPS는 상기 ACT가 가용한지(enabled) 여부에 관한 정보를 포함하고,상기 SPS에 포함된 상기 ACT가 가용한지 여부에 관한 정보를 기반으로, 상기 현재 블록의 상기 레지듀얼 샘플에 대해 ACT를 적용할지 여부에 관한 상기 ACT 관련 정보가 코딩 유닛 신택스로부터 획득되는 것을 특징으로 하는 영상 디코딩 방법.
- 인코딩 장치에 의하여 수행되는 영상 인코딩 방법에 있어서,현재 블록에 대한 레지듀얼 샘플을 도출하는 단계;상기 레지듀얼 샘플을 기반으로 레지듀얼 정보를 생성하는 단계; 및상기 레지듀얼 정보를 포함하는 영상 정보를 인코딩하는 단계를 포함하며,상기 영상 정보는 상기 현재 블록의 상기 레지듀얼 샘플에 대해 ACT (Adaptive Color Transform)를 적용할지 여부에 관한 ACT 관련 정보를 포함하고,상기 ACT를 적용하는 상기 ACT 관련 정보에 기반하여, 상기 레지듀얼 샘플은 클리핑 범위를 기반으로 클리핑이 수행되어 상기 ACT가 적용되고,상기 클리핑 범위는 비트 뎁스(BitDepth)를 기반으로 결정되는 것을 특징으로 하는 영상 인코딩 방법.
- 제10항에 있어서,상기 ACT를 적용하는 상기 ACT 관련 정보를 기반으로, 상기 레지듀얼 샘플에 대해 상기 ACT를 적용하는 단계를 포함하고,상기 레지듀얼 샘플은 루마 성분에 대한 루마 레지듀얼 샘플, Cb 크로마 성분에 대한 Cb 크로마 레지듀얼 샘플, 및 Cr 크로마 성분에 대한 Cr 크로마 레지듀얼 샘플을 포함하고,상기 ACT를 적용하는 단계는,상기 루마 레지듀얼 샘플, 상기 Cb 크로마 레지듀얼 샘플, 및 상기 Cr 크로마 레지듀얼 샘플 각각에 대해 상기 클리핑 범위를 기반으로 상기 클리핑을 수행하는 단계; 및상기 클리핑된 루마 레지듀얼 샘플, 상기 클리핑된 Cb 크로마 레지듀얼 샘플, 및 상기 클리핑된 Cr 크로마 레지듀얼 샘플을 기반으로 상기 ACT를 적용하여 수정된 루마 레지듀얼 샘플, 수정된 Cb 크로마 레지듀얼 샘플, 및 수정된 Cr 크로마 레지듀얼 샘플을 도출하는 단계를 포함하는 것을 특징으로 하는 영상 인코딩 방법.
- 제10항에 있어서,상기 클리핑 범위는 상기 비트 뎁스에 1을 증가시킨 값을 기반으로 도출되는 최소값 및 최대값 사이의 값을 가지는 것을 특징으로 하는 영상 인코딩 방법.
- 제12항에 있어서,상기 클리핑 범위의 상기 최소값은 -( 1 << ( BitDepth + 1 ) )에 의해 도출되는 값이고,상기 클리핑 범위의 상기 최대값은 ( 1 << ( BitDepth + 1 ) ) - 1에 의해 도출되는 값인 것을 특징으로 하는 영상 인코딩 방법.
- 제10항에 있어서,상기 클리핑 범위는 상기 비트 뎁스에 1을 증가시킨 값 및 16 중 작은 값을 기반으로 도출되는 최소값 및 최대값 사이의 값을 가지는 것을 특징으로 하는 영상 인코딩 방법.
- 제10항에 있어서,상기 클리핑 범위는 16비트의 고정된 비트 뎁스를 기반으로 결정되는 것을 특징으로 하는 영상 인코딩 방법.
- 제15항에 있어서,상기 클리핑 범위는 -( 1 << 16) 내지 ( 1 << 16) -1 사이의 범위이거나, 또는 -65536 내지 65535 사이의 범위인 것을 특징으로 하는 영상 인코딩 방법.
- 제10항에 있어서,상기 클리핑 범위는 루마 성분 및 크로마 성분에 대해 다른 클리핑 범위를 가지며,상기 루마 성분에 대한 클리핑 범위는 상기 비트 뎁스의 값을 기반으로 도출되는 -( 1 << BitDepth) 내지 ( 1 << BitDepth) - 1 사이의 범위를 가지고,상기 크로마 성분에 대한 클리핑 범위는 상기 비트 뎁스에 1을 증가시킨 값을 기반으로 도출되는 -( 1 << (BitDepth + 1)) 내지 ( 1 << (BitDepth + 1)) - 1 사이의 범위를 갖는 것을 특징으로 하는 영상 인코딩 방법.
- 제10항에 있어서,상기 영상 정보는 SPS(Sequence parameter set)을 포함하고,상기 SPS는 상기 ACT가 가용한지(enabled) 여부에 관한 정보를 포함하고,상기 SPS에 포함된 상기 ACT가 가용한지 여부에 관한 정보를 기반으로, 상기 현재 블록의 상기 레지듀얼 샘플에 대해 ACT를 적용할지 여부에 관한 상기 ACT 관련 정보가 코딩 유닛 신택스에 포함되는 것을 특징으로 하는 영상 인코딩 방법.
- 영상 디코딩 장치가 영상 디코딩 방법을 수행하도록 야기하는 인코딩된 정보를 저장하는 컴퓨터 판독 가능한 저장 매체에 있어서, 상기 영상 디코딩 방법은,비트스트림으로부터 레지듀얼 정보를 포함하는 영상 정보를 획득하는 단계;상기 레지듀얼 정보를 기반으로 현재 블록에 대한 레지듀얼 샘플을 도출하는 단계; 및상기 레지듀얼 샘플을 기반으로 복원 샘플을 생성하는 단계를 포함하며,상기 영상 정보는 상기 현재 블록의 상기 레지듀얼 샘플에 대해 ACT (Adaptive Color Transform)를 적용할지 여부에 관한 ACT 관련 정보를 포함하고,상기 ACT를 적용하는 상기 ACT 관련 정보에 기반하여, 상기 레지듀얼 샘플은 클리핑 범위를 기반으로 클리핑이 수행되어 상기 ACT가 적용되고,상기 클리핑 범위는 비트 뎁스(BitDepth)를 기반으로 결정되는 것을 특징으로 하는 컴퓨터 판독 가능한 저장 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/795,155 US20240048733A1 (en) | 2020-01-25 | 2021-01-25 | Image or video coding for residuals using color space transformation |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062965878P | 2020-01-25 | 2020-01-25 | |
US62/965,878 | 2020-01-25 | ||
US202063005325P | 2020-04-05 | 2020-04-05 | |
US63/005,325 | 2020-04-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021150085A1 true WO2021150085A1 (ko) | 2021-07-29 |
Family
ID=76993370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2021/000977 WO2021150085A1 (ko) | 2020-01-25 | 2021-01-25 | 색상 공간 변환을 사용하는 레지듀얼을 위한 영상 또는 비디오 코딩 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240048733A1 (ko) |
WO (1) | WO2021150085A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210385491A1 (en) * | 2020-06-09 | 2021-12-09 | Alibaba Group Holding Limited | Method for processing adaptive color transform and low-frequency non-separable transform in video coding |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160024886A (ko) * | 2013-06-21 | 2016-03-07 | 퀄컴 인코포레이티드 | 비디오 코딩을 위한 적응 컬러 변환들 |
KR20160132869A (ko) * | 2014-03-14 | 2016-11-21 | 퀄컴 인코포레이티드 | 컬러-공간 변환 코딩에서의 비트 심도들의 수정 |
KR20170013274A (ko) * | 2014-06-04 | 2017-02-06 | 퀄컴 인코포레이티드 | 블록 적응적 컬러-공간 변환 코딩 |
KR20170056626A (ko) * | 2014-09-12 | 2017-05-23 | 브이아이디 스케일, 인크. | 비디오 코딩을 위한 성분간 탈상관 |
KR20170108964A (ko) * | 2015-01-30 | 2017-09-27 | 퀄컴 인코포레이티드 | 비디오 코딩을 위해 크로스-컴포넌트 예측 및 적응적 컬러 변환을 위한 클립핑 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115176470A (zh) * | 2020-01-18 | 2022-10-11 | 抖音视界有限公司 | 图像/视频编解码中的自适应颜色变换 |
-
2021
- 2021-01-25 WO PCT/KR2021/000977 patent/WO2021150085A1/ko active Application Filing
- 2021-01-25 US US17/795,155 patent/US20240048733A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160024886A (ko) * | 2013-06-21 | 2016-03-07 | 퀄컴 인코포레이티드 | 비디오 코딩을 위한 적응 컬러 변환들 |
KR20160132869A (ko) * | 2014-03-14 | 2016-11-21 | 퀄컴 인코포레이티드 | 컬러-공간 변환 코딩에서의 비트 심도들의 수정 |
KR20170013274A (ko) * | 2014-06-04 | 2017-02-06 | 퀄컴 인코포레이티드 | 블록 적응적 컬러-공간 변환 코딩 |
KR20170056626A (ko) * | 2014-09-12 | 2017-05-23 | 브이아이디 스케일, 인크. | 비디오 코딩을 위한 성분간 탈상관 |
KR20170108964A (ko) * | 2015-01-30 | 2017-09-27 | 퀄컴 인코포레이티드 | 비디오 코딩을 위해 크로스-컴포넌트 예측 및 적응적 컬러 변환을 위한 클립핑 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210385491A1 (en) * | 2020-06-09 | 2021-12-09 | Alibaba Group Holding Limited | Method for processing adaptive color transform and low-frequency non-separable transform in video coding |
US11606577B2 (en) * | 2020-06-09 | 2023-03-14 | Alibaba Group Holding Limited | Method for processing adaptive color transform and low-frequency non-separable transform in video coding |
Also Published As
Publication number | Publication date |
---|---|
US20240048733A1 (en) | 2024-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020149648A1 (ko) | 변환 스킵 플래그를 이용한 영상 코딩 방법 및 장치 | |
WO2021040481A1 (ko) | 크로스 컴포넌트 필터링 기반 영상 코딩 장치 및 방법 | |
WO2021040480A1 (ko) | 인루프 필터링 기반 영상 코딩 장치 및 방법 | |
WO2021040484A1 (ko) | 크로스-컴포넌트 적응적 루프 필터링 기반 영상 코딩 장치 및 방법 | |
WO2021040479A1 (ko) | 필터링 기반 영상 코딩 장치 및 방법 | |
WO2020204413A1 (ko) | 복원 픽처를 수정하는 비디오 또는 영상 코딩 | |
WO2021040483A1 (ko) | 영상 코딩 장치 및 방법 | |
WO2020055014A1 (ko) | 레지듀얼 코딩 방법 및 그 장치 | |
WO2021172912A1 (ko) | 사인 데이터 하이딩 관련 영상 디코딩 방법 및 그 장치 | |
WO2020180143A1 (ko) | 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩 | |
WO2021101205A1 (ko) | 영상 코딩 장치 및 방법 | |
WO2020251278A1 (ko) | 크로마 양자화 파라미터 데이터 기반 영상 디코딩 방법 및 그 장치 | |
WO2021040482A1 (ko) | 적응적 루프 필터링 기반 영상 코딩 장치 및 방법 | |
WO2021101203A1 (ko) | 필터링 기반 영상 코딩 장치 및 방법 | |
WO2020213867A1 (ko) | 스케일링 리스트 데이터의 시그널링 기반 비디오 또는 영상 코딩 | |
WO2021101201A1 (ko) | 루프 필터링을 제어하는 영상 코딩 장치 및 방법 | |
WO2020184928A1 (ko) | 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩 | |
WO2021150084A1 (ko) | 색상 공간 변환 기반 영상 또는 비디오 코딩 | |
WO2021182816A1 (ko) | 직사각형 슬라이스의 크기 정보를 선택적으로 부호화 하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
WO2021145669A1 (ko) | 영상/비디오 코딩 시스템에서 인터 예측 방법 및 장치 | |
WO2021066618A1 (ko) | 변환 스킵 및 팔레트 코딩 관련 정보의 시그널링 기반 영상 또는 비디오 코딩 | |
WO2020213866A1 (ko) | 스케일링 리스트 파라미터 기반 비디오 또는 영상 코딩 | |
WO2020197207A1 (ko) | 맵핑을 포함하는 필터링 기반 비디오 또는 영상 코딩 | |
WO2021150085A1 (ko) | 색상 공간 변환을 사용하는 레지듀얼을 위한 영상 또는 비디오 코딩 | |
WO2021150086A1 (ko) | Act 레지듀얼 기반 영상 또는 비디오 코딩 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21744453 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 17795155 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21744453 Country of ref document: EP Kind code of ref document: A1 |