Apparatus and method for filtering-based video coding
By employing an efficient video coding method that filters restored chroma samples based on luma samples and signaling CCALF information, the challenges of high-resolution video compression are addressed, resulting in improved efficiency and visual quality.
Patent Information
- Application Number
- JP2023176634
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-08-29
- Filing Date
- 2023-10-12
- Publication Date
- 2025-04-02
- Estimated Expiration
- 2040-08-31
AI Technical Summary
The increasing demand for high-resolution and high-quality video, particularly in UHD and Immersive Media applications, poses a challenge for efficient video compression, leading to higher transmission and storage costs.
The implementation of an efficient video coding method that includes a filtering procedure for restored chroma samples based on restored luma samples, along with signaling information for CCALF availability and cross-component filter coefficients, enhances compression efficiency and image quality.
This approach improves overall video compression efficiency, enhances subjective and objective visual quality, and optimizes filtering performance, particularly for chroma components filtered based on restored luma samples.
Smart Images

Figure 0007656003000040 
Figure 0007656003000041 
Figure 0007656003000042
Abstract
Description
[Technical field]
[0001] This document relates to a filtering-based video coding apparatus and method. [Background technology]
[0002] In recent years, the demand for high-resolution, high-quality images / videos such as 4K or 8K or higher UHD (Ultra High Definition) images / videos is increasing in various fields. As the image / video data has higher resolution and quality, the amount of information or bits to be transmitted increases relatively compared to existing image / video data, so that when image data is transmitted using a medium such as an existing wired or wireless broadband line or when image / video data is stored using an existing storage medium, the transmission cost and storage cost increase.
[0003] In addition, interest in and demand for immersive media such as virtual reality (VR), artificial reality (AR) content, and holograms has been increasing in recent years, and the broadcast of images / videos that have different image characteristics from real images, such as game images, is increasing.
[0004] As a result, there is a demand for highly efficient image / video compression technology to effectively compress and transmit, store, and play back high-resolution, high-quality image / video information having the various characteristics described above. Summary of the Invention [Means for solving the problem]
[0005] According to one embodiment of the present document, a method and apparatus for improving image / video coding efficiency is provided.
[0006] According to one embodiment of the present document, an efficient method and apparatus for applying filtering is provided.
[0007] According to one embodiment of the present document, an efficient method and apparatus for applying ALF is provided.
[0008] According to one embodiment of this document, a filtering procedure may be performed on the reconstructed chroma samples based on the reconstructed luma samples.
[0009] According to one embodiment of this document, the filtered reconstructed chroma samples may be modified based on the reconstructed luma samples.
[0010] According to one embodiment of this document, information regarding whether CCALF is available in the SPS can be signaled.
[0011] According to one embodiment of this document, information regarding the values of the cross-component filter coefficients can be derived from ALF data (general ALF data or CCALF data).
[0012] According to one embodiment of this document, identifier (ID) information of an APS including ALF data for derivation of cross-component filter coefficients in a slice may be signaled.
[0013] According to one embodiment of this document, information regarding filter set index for CCALF can be signaled on a CTU (block) basis.
[0014] According to one embodiment of the present document, there is provided a video / image decoding method performed by a decoding device.
[0015] According to one embodiment of the present document, a decoding device for performing video / image decoding is provided.
[0016] According to one embodiment of the present document, there is provided a video / image encoding method performed by an encoding device.
[0017] According to one embodiment of the present document, an encoding device for performing video / image encoding is provided.
[0018] According to one embodiment of the present document, a computer-readable digital storage medium is provided having encoded video / image information generated by the video / image encoding method disclosed in at least one of the embodiments of the present document.
[0019] According to one embodiment of the present document, a computer-readable digital storage medium is provided having encoded information or encoded video / image information stored thereon that causes a decoding device to perform the video / image decoding method disclosed in at least one of the embodiments of the present document. Effect of the Invention
[0020] According to an embodiment of this document, the overall image / video compression efficiency can be improved.
[0021] According to an embodiment of this document, subjective / objective visual quality can be enhanced through efficient filtering.
[0022] According to one embodiment of this document, the ALF procedure can be performed efficiently and the filtering performance can be improved.
[0023] According to one embodiment of the present document, the reconstructed chroma samples filtered based on the reconstructed luma samples are modified to improve the picture quality and coding accuracy for the chroma components of the decoded picture.
[0024] According to one embodiment of this document, the CCALF procedure can be performed efficiently.
[0025] According to one embodiment of this document, ALF-related information can be signaled efficiently.
[0026] According to one embodiment of this document, CCALF-related information can be signaled efficiently.
[0027] According to one embodiment of this document, ALF and / or CCALF can be adaptively applied on a picture, slice, and / or coding block basis.
[0028] According to one embodiment of this document, when CCALF is used in an encoding and decoding method and apparatus for still or moving images, the filter coefficients for CCALF and the on / off transmission method on a block or CTU basis are improved, thereby increasing coding efficiency. [Brief description of the drawings]
[0029] [Figure 1] 1 illustrates generally an example of a video / image coding system that can be applied to embodiments of the present document; [Diagram 2] 1 is a diagram illustrating the configuration of a video / image encoding device that can be applied to an embodiment of the present document. [Diagram 3] 1 is a diagram illustrating the configuration of a video / image decoding device that can be applied to an embodiment of the present document. [Figure 4] 1 shows an exemplary hierarchical structure for coded images / video. [Diagram 5] 1 is a flow chart illustrating an intra-prediction based block restoration method in an encoding device. [Figure 6] 1 is a flow chart illustrating an intra-prediction based block restoration method in a decoding device. [Figure 7] 1 is a flow chart illustrating an inter-prediction based block reconstruction method in an encoding device. [Figure 8] 1 is a flow chart illustrating an inter-prediction based block reconstruction method in a decoding device. [Figure 9] 1 shows examples of ALF filter shapes. [Figure 10] 1 is a diagram illustrating a virtual boundary applied to a filtering procedure according to one embodiment of the present document. [Figure 11] An example of an ALF procedure using a virtual boundary is provided according to an embodiment of this document. [Figure 12] 1 is a diagram illustrating a cross-component adaptive loop filtering (CC-ALF (CCALF)) procedure according to one embodiment of the present document. [Figure 13] 1 illustrates a schematic diagram of an example video / image encoding method and associated components according to an embodiment of the present document; [Figure 14] 1 illustrates a schematic diagram of an example video / image encoding method and associated components according to an embodiment of the present document; [Figure 15] 1 illustrates a schematic diagram of an example of a picture / video decoding method and related components according to an embodiment of the present document; [Figure 16] 1 illustrates a schematic diagram of an example of a picture / video decoding method and related components according to an embodiment of the present document; [Figure 17] 1 illustrates an example of a content streaming system in which the embodiments disclosed herein can be applied. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0030] Although this document may have various modifications and various embodiments, a specific embodiment will be illustrated in the drawings and described in detail. However, this is not intended to limit this document to a specific embodiment. The terms used in this specification are merely used to describe a specific embodiment, and are not intended to limit the technical ideas of this document. A singular expression includes a plural expression unless the context clearly indicates otherwise. In this specification, the terms "include" or "have" are intended to specify the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, and should be understood not to preclude the possibility of the presence or addition of one or more different features, numbers, steps, operations, components, parts, or combinations thereof.
[0031] Meanwhile, each component in the drawings described in this document is shown independently for the convenience of describing the different characteristic functions, and does not mean that each component is realized by separate hardware or software. For example, two or more components among the components may be combined to form one component, or one component may be divided into multiple components. An embodiment in which each component is integrated and / or separated is also included in the scope of the rights of this document as long as it does not deviate from the essence of this document.
[0032] Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. Hereinafter, the same reference numerals may be used for the same components in the drawings, and duplicated descriptions of the same components may be omitted.
[0033] This document relates to video / image coding. For example, the methods / embodiments disclosed in this document may be related to the Versatile Video Coding (VVC) standard (ITU-T Rec. H.266), a next-generation video / image coding standard beyond VVC, or other video coding related standards (e.g., the High Efficiency Video Coding (HEVC) standard (ITU-T Rec. H.265), the essential video coding (EVC) standard, the AVS2 standard, etc.).
[0034] Various embodiments relating to video / image coding are presented herein and, unless otherwise stated, the embodiments may be used in combination with each other.
[0035] In this document, video may refer to a collection of a series of images over time. A picture generally refers to a unit that shows one image at a specific time, and a slice / tile is a unit that constitutes a part of a picture in coding. A slice / tile may include one or more coding tree units (CTUs). One picture may be composed of one or more slices / tiles. One picture may be composed of one or more tile groups. One tile group may be composed of one or more tiles.
[0036] A pixel or a pel may refer to the smallest unit constituting one picture (or image). A term corresponding to a pixel may be "sample." A sample may generally refer to a pixel or a pixel value, may refer to only a pixel / pixel value of a luma component, or may refer to only a pixel / pixel value of a chroma component. Alternatively, a sample may refer to a pixel value in the spatial domain, or may refer to a transform coefficient in the frequency domain when these pixel values are transformed into the frequency domain.
[0037] A unit may indicate a basic unit of image processing. A 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 (e.g., cb, cr) blocks. A unit may be used interchangeably with terms such as block or area depending on the case. In a general case, an M×N block may include a set (or array) of samples or transform coefficients consisting of M columns and N rows.
[0038] In this document, the terms " / " and "," should be interpreted to indicate "and / or." For instance, "A / B" means "A and / or B," and "A, B" means "A and / or B." Additionally, "A / B / C" means "at least one of A, B, and / or C." Also, "A, B, C" means "at least one of A, B, and / or C." (In this document, the term " / " and "," should be interpreted to indicate "and / or." For instance, the expression "A / B" may mean "A and / or B." Further, "A,B" may mean "A and / or B." Further, "A / B / C" may mean "at least one of A,B,and / or C." Also, "A / B / C" may mean "at least one of A,B,and / or C.")
[0039] Additionally, in this document, the term "or" should be interpreted to indicate "and / or." For example, "A or B" may comprise 1) only A, 2) only B, and / or 3) both A and B. In other words, the term "or" in this document should be interpreted to indicate "additionally or alternatively."
[0040] In this specification, "at least one of A and B" may mean "only A," "only B," or "both A and B." In addition, in this specification, the expressions "at least one of A or B" and "at least one of A and / or B" may be interpreted similarly to "at least one of A and B."
[0041] In addition, in this specification, "at least one of A, B and C" may mean "only A," "only B," "only C," or "any combination of A, B and C." Furthermore, "at least one of A, B or C" and "at least one of A, B and / or C" may mean "at least one of A, B and C."
[0042] In addition, parentheses used in this specification may mean "for example." Specifically, when "prediction (intra prediction)" is displayed, "intra prediction" may be proposed as an example of "prediction." In other words, "prediction" in this specification is not limited to "intra prediction," and "intra prediction" may be proposed as an example of "prediction." In addition, even when "prediction (i.e., intra prediction)" is displayed, "intra prediction" may be proposed as an example of "prediction."
[0043] Technical features individually described in one drawing in this specification may be embodied individually or simultaneously.
[0044] FIG. 1 illustrates a schematic diagram of an example of a video / image coding system to which this document can be applied.
[0045] As shown in Figure 1, a video / image coding system may include a source device and a receiving device. The source device may transmit encoded video / image information or data to the receiving device in a file or streaming form via a digital storage medium or a network.
[0046] The source device may comprise a video source, an encoding device, and a sending unit. The receiving device may comprise a receiving unit, a decoding device, and a renderer. The encoding device may be referred to as a video / video encoding device, and the decoding device may be referred to as a video / video decoding device. The transmitter may be comprised in the encoding device. The receiver may be comprised in the decoding device. The renderer may comprise a display unit, which may be a separate device or an external component.
[0047] A video source may acquire video / images through a video / image capture, synthesis, or generation process. A video source may include a video / image capture device and / or a video / image generation device. A video / image capture device may include, for example, one or more cameras, a video / image archive containing previously captured video / images, etc. A video / image generation device may include, for example, a computer, a tablet, a smartphone, etc., and may (electronically) generate video / images. For example, a virtual video / image may be generated via a computer, etc., in which case the video / image capture process may be replaced by a process in which related data is generated.
[0048] An encoding device may encode an input video / image. The encoding device may perform a series of procedures such as prediction, transformation, quantization, etc. for compression and coding efficiency. The encoded data (encoded video / image information) may be output in the form of a bitstream.
[0049] The transmitting unit may transmit the encoded video / image information or data output in the form of a bitstream to a receiving unit of a receiving device via a digital storage medium or a network in the form of a file or streaming. The digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitting unit may include elements for generating a media file through a predetermined file format and may include elements for transmission via a broadcasting / communication network. The receiving unit may receive / extract the bitstream and transmit it to a decoding device.
[0050] The decoding device can decode the video / image by performing a series of steps such as inverse quantization, inverse transformation, and prediction, which correspond to the operations of the encoding device.
[0051] The renderer may render the decoded video / image, and the rendered video / image may be displayed via a display unit.
[0052] 2 is a diagram for briefly explaining the configuration of a video / image encoding device to which this document can be applied. Hereinafter, the video encoding device may include an image encoding device.
[0053] As shown in FIG. 2, the encoding apparatus 200 may be configured to include an image partitioner 210, a predictor 220, a residual processor 230, an entropy encoder 240, an adder 250, a filter 260, and a memory 270. The predictor 220 may include an inter predictor 221 and an intra predictor 222. The residual processor 230 may include a transformer 232, a quantizer 233, a dequantizer 234, and an inverse transformer 235. The residual processor 230 may further include a subtractor 231. The adder 250 may be referred to as a reconstructor or a reconstructed block generator. The image division unit 210, the prediction unit 220, the residual processing unit 230, the entropy encoding unit 240, the addition unit 250, and the filtering unit 260 may be configured by one or more hardware components (e.g., an encoder chipset or a processor) according to an embodiment. In addition, the memory 270 may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The hardware components may further include the memory 270 as an internal / external component.
[0054] The image division unit 210 may divide an input image (or picture, frame) input to the encoding device 200 into one or more processing units. As an example, the processing units may be called coding units (CUs). In this case, the coding units may be recursively divided from a coding tree unit (CTU) or a largest coding unit (LCU) according to a quad-tree binary-tree ternary-tree (QTBTTT) structure. For example, one coding unit may be divided into a plurality of coding units of a deeper depth based on a quad-tree structure, a binary tree structure, and / or a ternary structure. In this case, for example, the quad-tree structure may be applied first, and then the binary tree structure and / or the ternary structure may be applied. Alternatively, the binary tree structure may be applied first. The coding procedure according to the present disclosure may be performed based on a final coding unit that is not further divided. In this case, the largest coding unit may be 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 of lower depths as necessary, and a coding unit of an optimal size may be used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and restoration, which will be described later. As another example, the processing unit may further include a prediction unit (PU) or a transform unit (TU). In this case, the prediction unit and the transform unit may each be divided or partitioned from the final coding unit described above.The prediction unit may be a unit of sample prediction, and the transform unit may be a unit for deriving transform coefficients and / or a unit for deriving a residual signal from the transform coefficients.
[0055] The unit may be used interchangeably with terms such as block or area depending on the case. In a general case, an M×N block may indicate a set of samples or transform coefficients consisting of M columns and N rows. A sample may generally indicate a pixel or a pixel value, may indicate only a pixel / pixel value of a luma component, or may indicate only a pixel / pixel value of a chroma component. A sample may be used as a term corresponding to a pixel or pel of one picture (or image).
[0056] The subtraction unit 231 may subtract a prediction signal (predicted block, prediction sample, or prediction sample array) output from the prediction unit 220 from an input image signal (original block, original sample, or original sample array) to generate a residual signal (residual block, residual sample, or residual sample array), and the generated residual signal is transmitted to the conversion unit 232. The prediction unit 220 may perform prediction on a processing target block (hereinafter, referred to as a current block) and generate a predicted block including a prediction sample for the current block. The prediction unit 220 may determine whether intra prediction or inter prediction is applied in units of a current block or a CU. The prediction unit may generate various information related to prediction, such as prediction mode information, and transmit the information to the entropy encoding unit 240, as 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.
[0057] The intra prediction unit 222 may predict the current block by referring to samples in the current picture. The referenced samples may be located in the neighborhood of the current block or may be located away from the current block depending on the prediction mode. In the intra prediction, the prediction mode may include a plurality of non-directional modes and a plurality of directional modes. The non-directional modes may include, for example, a DC mode and a planar mode. The directional modes may include, for example, 33 directional prediction modes or 65 directional prediction modes depending on the fineness of the prediction direction. However, this is merely an example, and more or less directional prediction modes may be used depending on the settings. The intra prediction unit 222 may also determine the prediction mode to be applied to the current block using the prediction modes applied to the neighboring blocks.
[0058] The inter prediction unit 221 may derive a predicted block for a current block based on a reference block (reference sample array) identified by a motion vector on a reference picture. In this case, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring blocks may include a spatial neighboring block present in the current picture and a temporal neighboring block 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 (col CU), etc., and the reference picture including the temporal neighboring block may be called a collocated picture (colPic). For example, the inter prediction unit 221 may generate information indicating which candidate is used to 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. Inter prediction may be performed based on various prediction modes, and for example, in the case of a skip mode and a merge mode, the inter prediction unit 221 may use motion information of a neighboring block as motion information of the current block. In the case of 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 neighboring block can be used as a motion vector predictor, and the motion vector of the current block can be indicated by signaling the motion vector difference.
[0059] The prediction unit 220 may generate a prediction signal based on various prediction methods described later. For example, 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 may be called combined inter and intra prediction (CIIP). The prediction unit may also perform intra block copy (IBC) for prediction of a block. The intra block copy may be used for content image / video coding such as games, for example, as in screen content coding (SCC). IBC basically performs prediction within a current picture, but may be performed similarly to inter prediction in deriving a reference block within the current picture. That is, IBC may use at least one of the inter prediction techniques described in this document.
[0060] The prediction signal generated through the inter prediction unit 221 and / or the intra prediction unit 222 may be used to generate a restored 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. For example, the transform technique may include a discrete cosine transform (DCT), a discrete sine transform (DST), a graph-based transform (GBT), or a conditionally non-linear transform (CNT). Here, the GBT refers to a transform obtained from a graph when the relationship information between pixels is expressed as a graph. The CNT refers to a transform obtained based on a prediction signal generated using all previously reconstructed pixels. In addition, the transform process may be applied to pixel blocks having the same square size, or may be applied to blocks of variable sizes that are not square.
[0061] The quantization unit 233 quantizes the transform coefficients and transmits the quantized transform coefficients to the entropy encoding unit 240, which may encode the quantized signal (information on the quantized transform coefficients) and output the quantized signal to a bitstream. The information on the quantized transform coefficients may be referred to as residual information. The quantization unit 233 may rearrange the quantized transform coefficients in a block form into a one-dimensional vector form based on a coefficient scan order, and may generate information on the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form. The entropy encoding unit 240 may perform various encoding methods, such as exponential Golomb, context-adaptive variable length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), etc. The entropy encoding unit 240 may also encode information required for video / image restoration (e.g., values of syntax elements, etc.) together with or separately from the quantized transform coefficients. The encoded information (e.g., encoded video / picture information) may be transmitted or stored in the form of a bitstream in network abstraction layer (NAL) unit units. The video / picture information may further include information on 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 / picture information may further include general constraint information. Signaling / transmitted information and / or syntax elements described later in this document may be encoded through the above-mentioned encoding procedure and included in the bitstream.The bitstream may be transmitted via a network or may be stored in a digital storage medium, where the network may include a broadcast network and / or a communication network, and the digital storage medium may include various storage media such as a USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmitter (not shown) for transmitting the signal output from the entropy encoding unit 240 and / or a storage unit (not shown) for storing the signal may be configured as an internal / external element of the encoding apparatus 200, or the transmitter may be included in the entropy encoding unit 240.
[0062] The quantized transform coefficients output from the quantizer 233 may be used to generate a prediction signal. For example, a residual signal (residual block or residual sample) may be reconstructed by applying inverse quantization and inverse transform to the quantized transform coefficients via the inverse quantizer 234 and the inverse transformer 235. The adder 155 may generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample, or reconstructed sample array) by adding the reconstructed residual signal to the prediction signal output from the predictor 220. When there is no residual for the current block, such as when a skip mode is applied, the predicted block may be used as the reconstructed block. The generated reconstructed signal may be used for intra prediction of the next current block in the current picture, and may also be used for inter prediction of the next picture after filtering, as described below.
[0063] Meanwhile, luma mapping with chroma scaling (LMCS) may be applied during picture encoding and / or reconstruction.
[0064] The filtering unit 260 may apply filtering to the reconstructed signal to improve subjective / objective image quality. For example, the filtering unit 260 may apply various filtering methods to the reconstructed picture to generate a modified reconstructed picture, and may store the modified reconstructed picture in the memory 270, specifically, in the DPB of the memory 270. The various filtering methods may include, for example, deblocking filtering, sample adaptive offset (SAO), an adaptive loop filter, a bilateral filter, etc. The filtering unit 260 may generate various information related to filtering and transmit it to the entropy encoding unit 240, as will be described later in the description of each filtering method. The information related to filtering may be encoded by the entropy encoding unit 240 and output in the form of a bitstream.
[0065] The modified reconstructed picture transmitted to the memory 270 may be used as a reference picture in the inter prediction unit 221. When inter prediction is applied through this, the encoding apparatus may avoid prediction mismatch between the encoding apparatus 100 and the decoding apparatus, and may also improve encoding efficiency.
[0066] The DPB of the memory 270 may store the modified 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 from which motion information in the current picture is derived (or encoded) and / or motion information of a block 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 reconstructed blocks in the current picture and transmit them to the intra prediction unit 222.
[0067] FIG. 3 is a diagram illustrating a schematic configuration of a video / image decoding device to which the present document can be applied.
[0068] As shown in FIG. 3, the decoding device 300 may be configured to include an entropy decoder 310, a residual processor 320, a predictor 330, an adder 340, a filter 350, and a memory 360. The predictor 330 may include an inter predictor 331 and an intra predictor 332. The residual processor 320 may include a dequantizer 321 and an inverse transformer 321. The entropy decoding unit 310, the residual processor 320, the predictor 330, the adder 340, and the filter 350 may be configured as one hardware component (e.g., a decoder chipset or processor) according to an embodiment. In addition, the memory 360 may include a decoded picture buffer (DPB) and may be configured as a digital storage medium. The hardware components may further include a memory 360 as an internal / external component.
[0069] If a bitstream including video / image information is input, the decoding apparatus 300 can restore an image corresponding to a process in which the video / image information is processed by the encoding apparatus of FIG. 3. For example, the decoding apparatus 300 can derive a unit / block based on block division related information obtained from the bitstream. The decoding apparatus 300 can perform decoding using a processing unit applied in the encoding apparatus. Thus, the processing unit for decoding can be, for example, a coding unit, and the coding unit can be divided from a coding tree unit or a maximal coding unit according to a quad tree structure, a binary tree structure, and / or a ternary tree structure. One or more transform units can be derived from the coding unit. Then, the restored image signal decoded and output by the decoding apparatus 300 can be reproduced by a reproduction device.
[0070] The decoding apparatus 300 may receive a signal output from the encoding apparatus of FIG. 3 in the form of a bitstream, and the received signal may be decoded via the entropy decoding unit 310. For example, the entropy decoding unit 310 may derive information (e.g., video / image information) required for image restoration (or picture restoration) by parsing the bitstream. The video / image information may further include information on 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). In addition, the video / image information may further include general constraint information. The decoding apparatus may further decode pictures based on information on the parameter set and / or the general constraint information. Signaling / received information and / or syntax elements described later in this document may be decoded via the decoding procedure and obtained from the bitstream. For example, the entropy decoding unit 310 may decode information in a bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output values of syntax elements required for image restoration and quantized values of transform coefficients related to residuals. More specifically, the CABAC entropy decoding method may receive bins corresponding to each syntax element in a bitstream, determine a context model using syntax element information to be decoded and decoding information of adjacent and to-be-decoded blocks or symbol / bin information decoded in a previous step, predict the occurrence probability of a bin according to the determined context model, and perform arithmetic decoding of the bin to generate a symbol corresponding to the value of each syntax element.In this case, the CABAC entropy decoding method may update the context model using information of the decoded symbol / bin for the context model of the next symbol / bin after determining the context model. Prediction information from among the information decoded by the entropy decoding unit 310 may be provided to the prediction unit 330, and residual information entropy-decoded by the entropy decoding unit 310, i.e., quantized transform coefficients and related parameter information, may be input to the inverse quantization unit 321. In addition, filtering information from among the information decoded by the entropy decoding unit 310 may be provided to the filtering unit 350. Meanwhile, a receiving unit (not shown) for receiving a signal output from the encoding apparatus may be further configured as an internal / external element of the decoding apparatus 300, or the receiving unit may be a component of the entropy decoding unit 310. Meanwhile, the decoding device according to this document may be called a video / image / picture decoding device, and the decoding device may be 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 may include at least one of the inverse quantization unit 321, the inverse transform unit 322, the prediction unit 330, the addition unit 340, the filtering unit 350, and the memory 360.
[0071] The inverse quantization unit 321 may inverse quantize the quantized transform coefficients and output the transform coefficients. The inverse quantization unit 321 may rearrange the quantized transform coefficients in a two-dimensional block form. In this case, the rearrangement may be performed based on a coefficient scan order performed in the encoding device. The inverse quantization unit 321 may perform inverse quantization on the quantized transform coefficients using a quantization parameter (e.g., quantization step size information) to obtain transform coefficients.
[0072] The inverse transform unit 322 inversely transforms the transform coefficients to obtain a residual signal (residual block, residual sample array).
[0073] The prediction unit may perform prediction on 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 to the current block based on information on the prediction output from the entropy decoding unit 310, and may determine a specific intra / inter prediction mode.
[0074] The prediction unit may generate a prediction signal based on various prediction methods described later. For example, 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 may be called combined inter and intra prediction (CIIP). The prediction unit may also perform intra block copy (IBC) for prediction of a block. The intra block copy may be used for content image / video coding such as games, for example, as in screen content coding (SCC). IBC basically performs prediction within a current picture, but may be performed similarly to inter prediction in deriving a reference block within the current picture. That is, IBC may use at least one of the inter prediction techniques described in this document. Palette mode may be considered as an example of intra coding or intra prediction.
[0075] The intra prediction unit 331 may predict a current block by referring to samples in a current picture. The referenced samples may be located in the neighborhood of the current block or may be located far away depending on a prediction mode. In intra prediction, prediction modes may include a plurality of non-directional modes and a plurality of directional modes. The intra prediction unit 331 may also determine a prediction mode to be applied to the current block using a prediction mode applied to a neighboring block.
[0076] The inter prediction unit 332 may derive a predicted block for the current block based on a reference block (reference sample array) identified by a motion vector on a reference picture. In this case, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on correlation of motion information between neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring blocks may include spatial neighboring blocks present in the current picture and temporal neighboring blocks present in the reference picture. For example, the inter prediction unit 332 may construct a motion information candidate list based on the neighboring blocks and derive a motion vector and / or a reference picture index for the current block based on received candidate selection information. Inter prediction may be performed based on various prediction modes, and the information on the prediction may include information indicating a mode of inter prediction for the current block.
[0077] The adder 340 may generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the acquired residual signal to the prediction signal (predicted block, predicted sample array) output from the prediction unit. When there is no residual for the current block, such as when the skip mode is applied, the predicted block may be used as the reconstructed block.
[0078] The adder 340 may be referred to as a reconstruction unit or a reconstruction block generator. The generated reconstruction signal may be used for intra prediction of a next block to be processed in a current picture, may be output through filtering as described below, or may be used for inter prediction of a next picture.
[0079] Meanwhile, luma mapping with chroma scaling (LMCS) can be applied during the picture decoding process.
[0080] The filtering unit 350 may apply filtering to the reconstructed signal to improve subjective / objective image quality. For example, the filtering unit 350 may apply various filtering methods to the reconstructed picture to generate a modified reconstructed picture, and may transmit the modified reconstructed picture to the memory 360, specifically, to the DPB of the memory 360. The various filtering methods may include, for example, deblocking filtering, sample adaptive offset, an adaptive loop filter, a bilateral filter, etc.
[0081] 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 a block 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 reconstructed blocks in the current picture and transmit them to the intra prediction unit 331.
[0082] In this specification, the embodiments described for the prediction unit 330, inverse quantization unit 321, inverse transform unit 322, and filtering unit 350 of the decoding device 300 can be applied identically or correspondingly to the prediction unit 220, inverse quantization unit 234, inverse transform unit 235, and filtering unit 260 of the encoding device 200, respectively.
[0083] As described above, prediction is performed to improve compression efficiency when performing video coding. Through this, a predicted block including predicted samples for a current block, which is a block to be coded, can be generated. Here, the predicted block includes predicted samples in a spatial domain (or a pixel domain). The predicted block is derived in the same manner by an encoding device and a decoding device, and the encoding device can improve video coding efficiency by signaling information (residual information) on the residual between the original block and the predicted block, which is not an original sample value of the original block, to a decoding device. The decoding device can derive a residual block including residual samples based on the residual information, combine the residual block with the predicted block to generate a reconstructed block including reconstructed samples, and generate a reconstructed picture including the reconstructed block.
[0084] The residual information may be generated through a transform and quantization procedure. For example, the encoding apparatus may derive a residual block between the original block and the predicted block, perform a transform procedure on the residual samples (residual sample array) included in the residual block to derive transform coefficients, and perform a quantization procedure on the transform coefficients to derive quantized transform coefficients, and then signal the related residual information (through a bitstream) to the decoding apparatus. Here, the residual information may include information such as value information, position information, transform technique, transform kernel, and quantization parameter of the quantized transform coefficients. The decoding apparatus may derive a residual sample (or a residual block) by performing an inverse quantization / inverse transform procedure based on the residual information. The decoding apparatus may generate a reconstructed picture based on the predicted block and the residual block. In addition, the encoding apparatus may derive a residual block by inverse quantizing / inverse transforming the quantized transform coefficients for reference for inter-prediction of a future picture, and generate a reconstructed picture based on the residual block.
[0085] In this document, at least one of quantization / dequantization and / or transform / inverse transform may be omitted. If the quantization / dequantization is omitted, the quantized transform coefficients may be referred to as transform coefficients. If the transform / inverse transform is omitted, the transform coefficients may also be referred to as coefficients or residual coefficients, or may still be referred to as transform coefficients for uniformity of representation.
[0086] In this document, the quantized transform coefficients and the transform coefficients may be referred to as transform coefficients and scaled transform coefficients, respectively. In this case, the residual information may include information about the transform coefficients, and the information about the transform coefficients may be signaled via a residual coding syntax. Transform coefficients may be derived based on the residual information (or the information about the transform coefficients), and scaled transform coefficients may be derived through an inverse transform (scaling) on the transform coefficients. Residual samples may be derived based on an inverse transform (transform) on the scaled transform coefficients. This may be similarly applied / expressed in other parts of this document.
[0087] A prediction unit of an encoding device / decoding device may perform inter prediction in units of blocks to derive prediction samples. Inter prediction may indicate a prediction derived in a manner dependent on data elements (e.g., sample values or motion information) of pictures other than the current picture. When inter prediction is applied to the current block, a predicted block (prediction sample array) for the current block may be derived based on a reference block (reference sample array) specified by a motion vector on a reference picture indicated by an index of the reference picture. In this case, in order to reduce the amount of motion information transmitted in the inter prediction mode, motion information of the current block may be predicted in units of blocks, sub-blocks, or samples based on correlation of motion information between neighboring blocks and the current block. The motion information may include a motion vector and an index of a reference picture. The motion information may further include information on an inter prediction type (L0 prediction, L1 prediction, Bi prediction, etc.). When inter prediction is applied, the neighboring block may include a spatial neighboring block present in the current picture and a temporal neighboring block 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., and the reference picture including the temporal neighboring block may be called a collocated picture (colPic). For example, a candidate list of motion information may be constructed based on the neighboring blocks of the current block, and a flag or index information indicating which candidate is selected (used) to derive the motion vector and / or the index of the reference picture of the current block may be signaled.Inter prediction is performed based on various prediction modes. For example, in the case of skip mode and merge mode, the motion information of the current block may be the same as the motion information of the selected neighboring block. In the case of 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 selected neighboring block is used as a motion vector predictor, and a motion vector difference may be signaled. In this case, the motion vector of the current block may be derived using the sum of the motion vector predictor and the motion vector difference.
[0088] The motion information may include L0 motion information and / or L1 motion information depending on an inter prediction type (L0 prediction, L1 prediction, Bi prediction, etc.). A motion vector in the L0 direction may be referred to as an L0 motion vector or MVL0, and a motion vector in the L1 direction may be referred to as an L1 motion vector or MVL1. A prediction based on an L0 motion vector may be referred to as an L0 prediction, a prediction based on an L1 motion vector may be referred to as an L1 prediction, and a prediction based on both the L0 motion vector and the L1 motion vector may be referred to as a bi-prediction (Bi) prediction. Here, the L0 motion vector may indicate a motion vector associated with a reference picture list L0 (L0), and the L1 motion vector may indicate a motion vector associated with a reference picture list L1 (L1). The reference picture list L0 may include pictures that are earlier in output order than the current picture, and the reference picture list L1 may include pictures that are later in output order than the current picture. The previous picture may be referred to as a forward (reference) picture, and the subsequent picture may be referred to as a backward (reference) picture. The reference picture list L0 may further include a picture subsequent to the current picture in output order as a reference picture. In this case, the previous picture may be indexed earlier in the reference picture list L0, and the subsequent picture may be indexed thereafter. The reference picture list L1 may further include a picture subsequent to the current picture in output order as a reference picture. In this case, the subsequent picture may be indexed earlier in the reference picture list 1, and the previous picture may be indexed thereafter. Here, the output order may correspond to a picture order count (POC) order.
[0089] FIG. 4 shows an exemplary hierarchical structure for coded images / video.
[0090] Referring to FIG. 4, the coded image / video is divided into a VCL (video coding layer), which handles the image / video decoding process and itself, a lower system that transmits and stores the coded information, and a NAL (network abstraction layer), which exists between the VCL and the lower system and is responsible for network adaptation functions.
[0091] In the VCL, it is possible to generate VCL data including compressed video data (slice data), or to generate a parameter set including information such as a Picture Parameter Set (PPS), a Sequence Parameter Set (SPS), and a Video Parameter Set (VPS), or a Supplemental Enhancement Information (SEI) message that is additionally required for the video decoding process.
[0092] In NAL, NAL units can be generated by adding header information (NAL unit header) to RBSP (Raw Byte Sequence Payload) generated in VCL. In this case, RBSP means slice data, parameter set, SEI message, etc. generated in VCL. NAL unit header can include NAL unit type information specified by RBSP data included in the corresponding NAL unit.
[0093] As shown in the drawing, NAL units can be classified into VCL NAL units and non-VCL NAL units according to the RBSP generated by the VCL. The VCL NAL unit can refer to a NAL unit that includes information (slice data) on an image, and the non-VCL NAL unit can refer to a NAL unit that includes information (parameter set or SEI message) required for decoding an image.
[0094] The VCL NAL unit and the non-VCL NAL unit can be transmitted over a network with header information according to the data standard of the lower system. For example, the NAL unit can be transformed into a data format of a predetermined standard such as H.266 / VVC file format, RTP (Real-time Transport Protocol), TS (Transport Stream), etc., and transmitted over various networks.
[0095] As mentioned above, the NAL unit type of a NAL unit can be identified by the RBSP data structure included in the corresponding NAL unit, and information on such NAL unit type can be stored and signaled in the NAL unit header.
[0096] For example, NAL units can be broadly classified into VCL NAL unit types and non-VCL NAL unit types depending on whether the NAL unit includes information on a video (slice data). The VCL NAL unit types can be classified according to the nature and type of a picture included in the VCL NAL unit, and the non-VCL NAL unit types can be classified according to the type of a parameter set.
[0097] The following is an example of a NAL unit type specified by the type of parameter set that the Non-VCL NAL unit type includes.
[0098] -APS (Adaptation Parameter Set) NAL unit: Type for NAL units containing APS
[0099] -DPS (Decoding Parameter Set) NAL unit: Type for NAL units containing DPS
[0100] -VPS (Video Parameter Set) NAL unit: Type for NAL units containing VPS
[0101] -SPS (Sequence Parameter Set) NAL unit: Type for NAL units containing SPS
[0102] -PPS (Picture Parameter Set) NAL unit: Type for NAL units containing PPS
[0103] -PH (Picture header) NAL unit: Type for NAL unit containing PH
[0104] The above-mentioned NAL unit type has syntax information for the NAL unit type, and the syntax information can be stored in a NAL unit header and signaled. For example, the syntax information can be nal_unit_type, and the NAL unit type can be specified by the nal_unit_type value.
[0105] Meanwhile, as described above, one picture may include multiple slices, and one slice may include a slice header and slice data. In this case, one picture header may be further added for multiple slices (slice header and slice data set) in one picture. The picture header (picture header syntax) may include information / parameters commonly applicable to the pictures. In this document, slices may be mixed with or replaced by tile groups. Also, in this document, slice headers may be mixed with or replaced by type group headers.
[0106] The slice header (slice header syntax, slice header information) may include information / parameters commonly applicable to the slices. The APS (APS syntax) or PPS (PPS syntax) may include information / parameters commonly applicable to one or more slices or pictures. The SPS (SPS syntax) may include information / parameters commonly applicable to one or more sequences. The VPS (VPS syntax) may include information / parameters commonly applicable to multiple layers. The DPS (DPS syntax) may include information / parameters commonly applicable to videos in general. The DPS may include information / parameters related to concatenation of coded video sequences (CVSs). In this document, a high level syntax (HLS) may include at least one of the APS syntax, PPS syntax, SPS syntax, VPS syntax, DPS syntax, picture header syntax, and slice header syntax.
[0107] In this document, image / video information encoded from an encoding device to a decoding device and signaled in the form of a bitstream may include information included in the slice 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, as well as information related to partitioning in a picture, intra / inter prediction information, residual information, in-loop filtering information, etc. Also, the image / video information may further include information of a NAL unit header.
[0108] Meanwhile, in order to compensate for the difference between an original image and a reconstructed image due to an error occurring during a compression encoding process such as quantization, an in-loop filtering procedure may be performed on the reconstructed samples or pictures as described above. As described above, the in-loop filtering may be performed in a filter unit of an encoding device and a filter unit of a decoding device, and a deblocking filter, SAO and / or an adaptive loop filter (ALF) may be applied. For example, the ALF procedure may be performed after the deblocking filtering procedure and / or the SAO procedure is completed. However, in this case, the deblocking filtering procedure and / or the SAO procedure may be omitted.
[0109] A detailed description of picture reconstruction and filtering will be given below. In image / video coding, a reconstruction block may be generated based on intra prediction / inter prediction for each block, and a reconstruction picture including the reconstruction block may be generated. If a current picture / slice is an I picture / slice, blocks included in the current picture / slice may be reconstructed based only on intra prediction. Meanwhile, if a current picture / slice is a P or B picture / slice, blocks included in the current picture / slice may be reconstructed based on intra prediction or inter prediction. In this case, intra prediction may be applied to some blocks in the current picture / slice, and inter prediction may be applied to the remaining blocks.
[0110] Intra prediction may refer to a prediction that generates a prediction sample for a current block based on a reference sample in a picture to which the current block belongs (hereinafter, referred to as a current picture). When intra prediction is applied to a current block, neighboring reference samples used for intra prediction of the current block may be derived. The neighboring reference samples of the current block may include a sample adjacent to the left boundary of the current block having a size of nW×nH and a total of 2×nH samples adjacent to the bottom-left side, a sample adjacent to the top boundary of the current block and a total of 2×nW samples adjacent to the top-right side, and one sample adjacent to the top-left side of the current block. Alternatively, the neighboring reference samples of the current block may include upper neighboring samples of multiple columns and left neighboring samples of multiple rows. In addition, the neighboring reference samples of the current block may include a total of nH samples adjacent to the right boundary of the current block having a size of nW×nH, a total of nW samples adjacent to the bottom boundary of the current block, and one sample adjacent to the bottom-right of the current block.
[0111] However, some of the neighboring reference samples of the current block may not yet be decoded or may not be available. In this case, the decoder may substitute the unavailable samples as available samples to construct neighboring reference samples to be used for prediction. Alternatively, the decoder may construct neighboring reference samples to be used for prediction through interpolation of available samples.
[0112] When the neighboring reference sample is derived, (i) the prediction sample may be derived based on an average or an interpolation of neighboring reference samples of the current block, and (ii) the prediction sample may be derived based on a reference sample that exists in a specific (prediction) direction with respect to the prediction sample among the neighboring reference samples of the current block. The case (i) may be called a non-directional mode or a non-angular mode, and the case (ii) may be called a directional mode or an angular mode. In addition, the prediction sample may be generated through an interpolation between the second neighboring sample and the first neighboring sample that are located in the opposite direction to the prediction direction of the intra prediction mode of the current block based on the prediction sample of the current block among the neighboring reference samples. The above case may be called a linear interpolation intra prediction (LIP). In addition, a chroma prediction sample may be generated based on a luma sample using a linear model. In this case, it may be called a LM mode. Also, a temporary prediction sample of the current block may be derived based on the filtered neighboring reference sample, and a prediction sample of the current block may be derived by weighting the temporary prediction sample and at least one reference sample derived according to the intra prediction mode among the existing neighboring reference samples, i.e., non-filtered neighboring reference samples. The above case may be called PDPC (Position Dependent Intra Prediction). Also, a reference sample line with the highest prediction accuracy is selected from the neighboring multiple reference sample lines of the current block, and a prediction sample is derived using a reference sample located in the prediction direction of the corresponding line, and the reference sample line used at this time is signaled to a decoding device, thereby performing intra prediction coding.The above case may be referred to as multi-reference line (MRL) intra prediction or MRL-based intra prediction. In addition, the current block may be divided into vertical or horizontal sub-partitions, and intra prediction may be performed based on the same intra prediction mode, and adjacent reference samples may be derived and used in units of the sub-partitions. That is, in this case, the intra prediction mode for the current block is equally applied to the sub-partitions, and adjacent reference samples may be derived and used in units of the sub-partitions, thereby improving intra prediction performance in some cases. Such a prediction method may be referred to as intra sub-partitions (ISP) or ISP-based intra prediction. The above-mentioned intra prediction method may be called an intra prediction type in distinction from the intra prediction modes in Tables 1 and 2. The intra prediction type may be called by various terms such as an intra prediction technique or an additional intra prediction mode. For example, the intra prediction type (or additional intra prediction mode, etc.) may include at least one of the above-mentioned LIP, PDPC, MRL, and ISP. A general intra prediction method excluding specific intra prediction types such as LIP, PDPC, MRL, and ISP may be called a normal intra prediction type. The normal intra prediction type may be generally applied when the specific intra prediction type is not applied, and prediction may be performed based on the intra prediction mode described above. Meanwhile, post-processing filtering may be performed on the derived prediction samples as necessary.
[0113] Specifically, the intra prediction procedure may include an intra prediction mode / type determination step, a neighboring reference sample derivation step, and an intra prediction mode / type-based prediction sample derivation step. If necessary, a post-processing filtering step may be performed on the derived prediction sample.
[0114] 5 is a flow chart for explaining an intra-prediction-based block restoration method in an encoding device. The method of FIG. 5 may include steps S500, S510, S520, S530, and S540.
[0115] S500 may be performed by the intra prediction unit 222 of the encoding device, and S510 to S530 may be performed by the residual processing unit 230 of the encoding device. Specifically, S510 may be performed by the subtraction unit 231 of the encoding device, S520 may be performed by the transformation unit 232 and the quantization unit 233 of the encoding device, and S530 may be performed by the inverse quantization unit 234 and the inverse transformation unit 235 of the encoding device. In S500, prediction information may be derived by the intra prediction unit 222 and encoded by the entropy encoding unit 240. Residual information may be derived through S510 and S520 and encoded by the entropy encoding unit 240. The residual information is information about the residual sample. The residual information may include information about quantized transform coefficients for the residual sample. As described above, the residual samples may be derived as transform coefficients through a transform unit 232 of the encoding device, and the transform coefficients may be derived as quantized transform coefficients through a quantization unit 233. Information about the quantized transform coefficients may be encoded in an entropy encoding unit 240 through a residual coding procedure.
[0116] The encoding apparatus performs intra prediction on a current block (S500). The encoding apparatus may derive an intra prediction mode for the current block, derive adjacent reference samples of the current block, and generate a prediction sample in the current block based on the intra prediction mode and the adjacent reference samples. Here, the intra prediction mode determination, adjacent reference sample derivation, and prediction sample generation procedures may be performed simultaneously, or one procedure may be performed prior to the other procedures. For example, the intra prediction unit 222 of the encoding apparatus may include a prediction mode / type determination unit, a reference sample derivation unit, and a prediction sample derivation unit, and the prediction mode / type determination unit may determine an intra prediction mode / type for the current block, the reference sample derivation unit may derive adjacent reference samples of the current block, and the prediction sample derivation unit may derive a motion sample of the current block. Meanwhile, although not shown, if a prediction sample filtering procedure to be described later is performed, the intra prediction unit 222 may further include a prediction sample filter unit (not shown). The encoding apparatus may determine a mode to be applied to the current block from among a plurality of intra prediction modes, and may determine an optimal intra prediction mode for the current block by comparing RD costs for the intra prediction modes.
[0117] Meanwhile, the encoding apparatus may also perform a predicted sample filtering procedure. The predicted sample filtering may be called post-filtering. The predicted sample filtering procedure may filter some or all of the predicted samples. In some cases, the predicted sample filtering procedure may be omitted.
[0118] The encoding apparatus derives a residual sample for the current block based on the predicted sample (S510). The encoding apparatus may derive the residual sample by comparing the predicted sample with an original sample of the current block based on a phase.
[0119] The encoding apparatus transforms / quantizes the residual samples to derive quantized transform coefficients (S520), and then performs inverse quantization / inverse transform on the quantized transform coefficients to derive (modified) residual samples (S530). The reason for performing inverse quantization / inverse transform again after transform / quantization is to derive the same residual samples as the residual samples derived by the decoding apparatus, as described above.
[0120] The encoding apparatus may generate a reconstruction block including reconstruction samples for the current block based on the prediction samples and the (corrected) residual samples (S540). A reconstruction picture for the current picture may be generated based on the reconstruction block.
[0121] As described above, the encoding apparatus may encode video information including prediction information regarding the intra prediction (e.g., prediction mode information indicating a prediction mode) and residual information regarding the intra and residual samples, and output the encoded video information in the form of a bitstream. The residual information may include a residual coding syntax. The encoding apparatus may transform / quantize the residual samples to derive quantized transform coefficients. The residual information may include information on the quantized transform coefficients.
[0122] 6 is a flow chart illustrating an intra-prediction based block reconstruction method in a decoding device. The method of FIG. 6 may include steps S600, S610, S620, S630, and S640. The decoding device may perform operations corresponding to those performed in the encoding device.
[0123] S600 to S620 may be performed by an intra prediction unit 331 of a decoding device, and prediction information of S600 and residual information of S630 may be obtained from a bitstream by an entropy decoding unit 310 of a decoding device. A residual processing unit 320 of a decoding device may derive a residual sample for a current block based on the residual information. Specifically, an inverse quantization unit 321 of the residual processing unit 320 may derive a transform coefficient by performing inverse quantization based on a quantized transform coefficient derived based on the residual information, and an inverse transform unit 322 of the residual processing unit may derive a residual sample for the current block by performing inverse transform on the transform coefficient. S640 may be performed by an adder 340 or a reconstruction unit of a decoding device.
[0124] Specifically, the decoding apparatus may derive an intra prediction mode for a current block based on received prediction mode information (S600). The decoding apparatus may derive neighboring reference samples of the current block (S610). The decoding apparatus may generate prediction samples in the current block based on the intra prediction mode and the neighboring reference samples (S620). In this case, the decoding apparatus may perform a prediction sample filtering procedure. Prediction sample filtering may be referred to as post-filtering. Some or all of the prediction samples may be filtered by the prediction sample filtering procedure. In some cases, the prediction sample filtering procedure may be omitted.
[0125] The decoding apparatus generates a residual sample for the current block based on the received residual information (S630). The decoding apparatus may generate a reconstructed sample for the current block based on the prediction sample and the residual sample, and derive a reconstructed block including the reconstructed sample (S640). A reconstructed picture for the current picture may be generated based on the reconstructed block.
[0126] Here, the intra prediction unit 331 of the decoding device may include a prediction mode / type determination unit, a reference sample derivation unit, and a prediction sample derivation unit, where the prediction mode / type determination unit determines an intra prediction mode for the current block based on prediction mode information acquired from the entropy decoding unit 310 of the decoding device, the reference sample derivation unit derives neighboring reference samples of the current block, and the prediction sample derivation unit derives a prediction sample of the current block. Meanwhile, although not shown, if the above-mentioned prediction sample filtering procedure is performed, the intra prediction unit 331 may further include a prediction sample filter unit (not shown).
[0127] The prediction information may include intra prediction mode information and / or intra prediction type information. The intra prediction mode information may include, for example, flag information (e.g., intra_luma_mpm_flag) indicating whether a most probable mode (MPM) is applied to the current block or a remaining mode is applied. If the MPM is applied to the current block, the prediction mode information may further include index information (e.g., intra_luma_mpm_idx) indicating one of the intra prediction mode candidates (MPM candidates). The intra prediction mode candidates (MPM candidates) may be configured as an MPM candidate list or an MPM list. In addition, if the MPM is not applied to the current block, the intra prediction mode information may further include remaining mode information (e.g., intra_luma_mpm_remainder) indicating one of the remaining intra prediction modes excluding the intra prediction mode candidates (MPM candidates). A decoding apparatus may determine the intra prediction mode of the current block based on the intra prediction mode information. A separate MPM list can be configured for the above-mentioned MIPs.
[0128] Also, the intra prediction type information may be implemented in various forms. As an example, the intra prediction type information may include intra prediction type index information indicating one of the intra prediction types. As another example, the intra prediction type information may include at least one of reference sample line information (e.g., intra_luma_ref_idx) indicating whether the MRL is applied to the current block and, if so, which reference sample line is used, ISP flag information (e.g., intra_subpartitions_mode_flag) indicating whether the ISP is applied to the current block, ISP type information (e.g., intra_subpartitions_split_flag) indicating a subpartition split type if the ISP is applied, flag information indicating whether PDCP is applied, or flag information indicating whether LIP is applied. Also, the intra prediction type information may include an MIP flag indicating whether MIP is applied to the current block.
[0129] The intra prediction mode information and / or the intra prediction type information may be encoded / decoded through a coding method described in this document. For example, the intra prediction mode information and / or the intra prediction type information may be encoded / decoded through entropy coding (e.g., CABAC, CAVLC coding) based on a truncated (rice) binary code.
[0130] A prediction unit of an encoding device / decoding device may perform inter prediction on a block basis to derive a prediction sample. Inter prediction may indicate a prediction derived in a manner that is dependent on data elements (e.g., sample values or motion information) of picture(s) other than the current picture. When inter prediction is applied to a current block, a predicted block (prediction sample array) for the current block may be derived based on a reference block (reference sample array) identified by a motion vector on a reference picture pointed to by a reference picture index. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, motion information of the current block may be predicted on a block, sub-block, or sample basis based on correlation of motion information between adjacent 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 type (L0 prediction, L1 prediction, Bi prediction, etc.) information. When inter prediction is applied, the neighboring blocks may include spatial neighboring blocks existing in the current picture and temporal neighboring blocks existing in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring blocks may be the same or different. The temporal neighboring blocks may be called collocated reference blocks, collocated CUs (colCUs), etc., and the reference picture including the temporal neighboring blocks may be called collocated pictures (colPic).For example, a motion information candidate list may be constructed based on neighboring blocks of the current block, and flag or index information indicating which candidate is selected (used) to derive the motion vector and / or reference picture index of the current block may be signaled. Inter prediction may be performed based on various prediction modes, for example, in skip mode and merge mode, the motion information of the current block is the same as the motion information of the selected neighboring block. In the skip mode, unlike the merge mode, no residual signal is transmitted. In the motion vector prediction (MVP) mode, the motion vector of the selected neighboring block is used as a motion vector predictor, and a motion vector difference may be signaled. In this case, the motion vector of the current block may be derived using the sum of the motion vector predictor and the motion vector difference.
[0131] 7 is a flow chart for explaining an inter-prediction based block reconstruction method in an encoding device. The method of FIG. 7 may include steps S700, S710, S720, S730, and S740.
[0132] S700 may be performed by the inter prediction unit 221 of the encoding device, and S710 to S730 may be performed by the residual processing unit 230 of the encoding device. Specifically, S710 may be performed by the subtraction unit 231 of the encoding device, S720 may be performed by the transform unit 232 and the quantization unit 233 of the encoding device, and S730 may be performed by the inverse quantization unit 234 and the inverse transform unit 235 of the encoding device. In S700, prediction information may be derived by the inter prediction unit 221 and encoded by the entropy encoding unit 240. Residual information may be derived through S710 and S720 and encoded by the entropy encoding unit 240. The residual information is information about the residual sample. The residual information may include information about quantized transform coefficients for the residual sample. As described above, the residual samples may be derived as transform coefficients through a transform unit 232 of the encoding device, and the transform coefficients may be derived as quantized transform coefficients through a quantization unit 233. Information about the quantized transform coefficients may be encoded in an entropy encoding unit 240 through a residual coding procedure.
[0133] The encoding apparatus performs inter prediction on a current block (S700). The encoding apparatus may derive an inter prediction mode and motion information of the current block and generate a prediction sample of the current block. Here, the inter prediction mode determination, motion information derivation, and prediction sample generation procedures may be performed simultaneously, or one procedure may be performed before the other procedures. For example, the inter prediction unit 221 of the encoding apparatus may include a prediction mode determination unit, a motion information derivation unit, and a prediction sample derivation unit, and the prediction mode determination unit may determine a prediction mode for the current block, the motion information derivation unit may derive motion information of the current block, and the prediction sample derivation unit may derive a motion sample of the current block. For example, the inter prediction unit 221 of the encoding apparatus may search for a block similar to the current block within a certain area (search area) of a reference picture through motion estimation, and derive a reference block whose difference with the current block is minimum or equal to or less than a certain criterion. Based on this, a reference picture index indicating a reference picture in which the reference block is located may be derived, and a motion vector may be derived based on a position difference between the reference block and the current block. The encoding apparatus may determine a mode to be applied to the current block from among various prediction modes. The encoding apparatus may compare RD costs for the various prediction modes to determine an optimal prediction mode for the current block.
[0134] For example, when a skip mode or a merge mode is applied to the current block, the encoding apparatus may construct a merge candidate list (to be described later) and derive a reference block whose difference between the current block and the reference block indicated by a merge candidate included in the merge candidate list is minimum or equal to or less than a certain criterion. In this case, a merge candidate associated with the derived reference block may be selected, and merge index information indicating the selected merge candidate may be generated and signaled to a decoding apparatus. Motion information of the current block may be derived using motion information of the selected merge candidate.
[0135] As another example, when the (A)MVP mode is applied to the current block, the encoding apparatus may construct an (A)MVP candidate list, which will be described later, and may use a motion vector of an MVP candidate selected from among the MVP (motion vector predictor) candidates included in the (A)MVP candidate list as the MVP of the current block. In this case, for example, a motion vector indicating a reference block derived by the above-mentioned motion estimation may be used as the motion vector of the current block, and an MVP candidate having a motion vector with the smallest difference from the motion vector of the current block among the MVP candidates may become the selected MVP candidate. A motion vector difference (MVD), which is a difference obtained by subtracting the MVP from the motion vector of the current block, may be derived. In this case, information regarding the MVD may be signaled to the decoding apparatus. In addition, when the (A)MVP mode is applied, the value of the reference picture index may be configured as reference picture index information and separately signaled to the decoding apparatus.
[0136] The encoding apparatus may derive a residual sample based on the predicted sample (S710). The encoding apparatus may derive the residual sample by comparing an original sample of the current block with the predicted sample.
[0137] The encoding apparatus transforms / quantizes the residual samples to derive quantized transform coefficients (S720), and then performs inverse quantization / inverse transform processing on the quantized transform coefficients again to derive (modified) residual samples (S730). The reason for performing inverse quantization / inverse transform again after transform / quantization is to derive the same residual samples as the residual samples derived by the decoding apparatus, as described above.
[0138] The encoding apparatus may generate a reconstruction block including reconstruction samples for the current block based on the prediction samples and the (corrected) residual samples (S740). A reconstruction picture for the current picture may be generated based on the reconstruction block.
[0139] Although not illustrated, as described above, the encoding apparatus may encode video information including prediction information and residual information. The encoding apparatus may output the encoded video information in the form of a bitstream. The prediction information may include prediction mode information (e.g., skip flag, merge flag or mode index, etc.) and information on motion information, which is information related to the prediction procedure. The information on the motion information may include candidate selection information (e.g., merge index, mvp flag or mvp index), which is information for deriving a motion vector. In addition, the information on the motion information may include the above-mentioned information on MVD and / or reference picture index information. In addition, the information on the motion information may include information indicating whether L0 prediction, L1 prediction, or bi-prediction is applied. The residual information is information on the residual sample. The residual information may include information on quantized transform coefficients for the residual sample.
[0140] The output bitstream may be stored in a (digital) storage medium and then transmitted to the decoding device, or may be transmitted to the decoding device via a network.
[0141] 8 is a flow chart illustrating an inter-prediction based block reconstruction method in a decoding device. The method of FIG. 8 may include steps S800, S810, S820, S830, and S840. The decoding device may perform operations corresponding to those performed in the encoding device.
[0142] S800 to S820 may be performed by an inter prediction unit 332 of a decoding device, and prediction information of S800 and residual information of S830 may be obtained from a bitstream by an entropy decoding unit 310 of a decoding device. The residual processing unit 320 of a decoding device may derive a residual sample for a current block based on the residual information. Specifically, the inverse quantization unit 321 of the residual processing unit 320 may derive a transform coefficient by performing inverse quantization based on a quantized transform coefficient derived based on the residual information, and the inverse transform unit 322 of the residual processing unit may derive a residual sample for the current block by performing inverse transform on the transform coefficient. S840 may be performed by an adder 340 or a reconstruction unit of a decoding device.
[0143] Specifically, the decoding apparatus may determine a prediction mode for the current block based on received prediction information (S800). The decoding apparatus may determine which inter prediction mode is applied to the current block based on prediction mode information in the prediction information.
[0144] For example, it may be determined whether the merge mode is applied to the current block or the (A)MVP mode is determined based on the merge flag. Alternatively, one of various inter prediction mode candidates may be selected based on the mode index. The inter prediction mode candidates may include skip mode, merge mode, and / or (A)MVP mode, or may include various inter prediction modes described below.
[0145] The decoding apparatus derives motion information of the current block based on the determined inter prediction mode (S810). For example, when a skip mode or a merge mode is applied to the current block, the decoding apparatus may form a merge candidate list (described later) and select one merge candidate from among the merge candidates included in the merge candidate list. The selection may be performed based on the above-mentioned selection information (merge index). Motion information of the current block may be derived using motion information of the selected merge candidate. The motion information of the selected merge candidate may be used as motion information of the current block.
[0146] As another example, when the (A)MVP mode is applied to the current block, the decoding apparatus may construct an (A)MVP candidate list described below, and may use a motion vector of an MVP candidate selected from among the MVP (motion vector predictor) candidates included in the (A)MVP candidate list as the MVP of the current block. The selection may be performed based on the selection information (mvp flag or mvp index) described above. In this case, the MVD of the current block may be derived based on information on the MVD, and the motion vector of the current block may be derived based on the MVP of the current block and the MVD. Also, the reference picture index of the current block may be derived based on the reference picture index information. A picture pointed to by the reference picture index in a reference picture list for the current block may be derived as a reference picture referenced for inter prediction of the current block.
[0147] Meanwhile, as described below, the motion information of the current block may be derived without constructing a candidate list, in which case the motion information of the current block may be derived according to a procedure disclosed in a prediction mode described below. In this case, the candidate list construction as described above may be omitted.
[0148] The decoding apparatus may generate a prediction sample for the current block based on the motion information of the current block (S820). In this case, the reference picture may be derived based on a reference picture index of the current block, and the prediction sample for the current block may be derived using a sample of a reference block to which the motion vector of the current block points on the reference picture. In this case, as described below, a prediction sample filtering procedure may be further performed on all or some of the prediction samples of the current block, depending on the circumstances.
[0149] For example, the inter prediction unit 332 of the decoding device may include a prediction mode determination unit, a motion information derivation unit, and a prediction sample derivation unit, and may determine a prediction mode for the current block based on prediction mode information received in the prediction mode determination unit, derive motion information (such as a motion vector and / or a reference picture index) of the current block based on information regarding the motion information received in the motion information derivation unit, and derive a prediction sample of the current block in the prediction sample derivation unit.
[0150] The decoding apparatus generates a residual sample for the current block based on the received residual information (S830). The decoding apparatus may generate a reconstructed sample for the current block based on the prediction sample and the residual sample, and derive a reconstructed block including the reconstructed sample (S840). A reconstructed picture for the current picture may be generated based on the reconstructed block.
[0151] Various inter prediction modes can be used for predicting a current block in a picture. For example, various modes such as merge mode, skip mode, motion vector prediction (MVP) mode, affine mode, sub-block merge mode, merge with MVD (MMVD) mode, etc. can be used. Decoder side motion vector refinement (DMVR) mode, adaptive motion vector resolution (AMVR) mode, Bi-prediction with CU-level weight (BCW), Bi-directional optical flow (BDOF), etc. can be used in addition to or instead as additional modes. Affine mode may also be called affine motion prediction mode. MVP mode may also be called advanced motion vector prediction mode (AMVP). In this document, a candidate for motion information derived by some modes and / or some modes may be included in one of candidates for motion information of other modes. For example, an HMVP candidate may be added as a merge candidate of the merge / skip mode, or may be added as an MVP candidate of the MVP mode.
[0152] Prediction mode information indicating an inter prediction mode of a current block may be signaled from an encoding apparatus to a decoding apparatus. The prediction mode information may be included in a bitstream and received by the decoding apparatus. The prediction mode information may include index information indicating one of a number of candidate modes. Alternatively, the inter prediction mode may be indicated through hierarchical signaling of flag information. In this case, the prediction mode information may include one or more flags. For example, a skip flag may be signaled to indicate whether or not a skip mode is applied, and if the skip mode is not applied, a merge flag may be signaled to indicate whether or not a merge mode is applied, and if the merge mode is not applied, an MVP mode may be applied, or a flag for additional classification may be further signaled. The affine mode may be signaled as an independent mode, or may be signaled as a mode dependent on the merge mode, MVP mode, etc. For example, the affine mode may include an affine merge mode and an affine MVP mode.
[0153] Meanwhile, information indicating whether the above-mentioned list0 (L0) prediction, list1 (L1) prediction, or bi-prediction prediction is used for the current block (current coding unit) may be signaled. The information may be called motion prediction direction information, inter prediction direction information, or inter prediction indication information, and may be configured / encoded / signaled in the form of, for example, a syntax element inter_pred_idc. That is, the syntax element inter_pred_idc may indicate whether the above-mentioned list0 (L0) prediction, list1 (L1) prediction, or bi-prediction is used for the current block (current coding unit). In this document, for convenience of explanation, the inter prediction type (L0 prediction, L1 prediction, or BI prediction) indicated by the syntax element inter_pred_idc may be represented as a motion prediction direction. L0 prediction may be represented as pred_L0, L1 prediction as pred_L1, and bi-prediction as pred_BI. For example, depending on the value of the syntax element inter_pred_idc, a prediction type can be determined as shown in the following table.
[0154] [Table 1]
[0155] As described above, one picture may include one or more slices. A slice may have one of slice types including an I slice, a P slice, and a bi-predictive slice. The slice type may be indicated based on slice type information. For blocks in an I slice, inter prediction may not be used for prediction, and only intra prediction may be used. Of course, even in this case, original sample values may be coded and signaled without prediction. For blocks in a P slice, intra prediction or inter prediction may be used, and when inter prediction is used, only uni prediction may be used. Meanwhile, for blocks in a B slice, intra prediction or inter prediction may be used, and when inter prediction is used, up to bi prediction may be used.
[0156] L0 and L1 may include reference pictures encoded / decoded earlier than the current picture. For example, L0 may include reference pictures earlier and / or later than the current picture in POC order, and L1 may include reference pictures later and / or earlier than the current picture in POC order. In this case, L0 may be assigned a lower reference picture index relative to a reference picture earlier than the current picture in POC order, and L1 may be assigned a lower reference picture index relative to a reference picture later than the current picture in POC order. For B slices, bi-prediction may be applied, and in this case, unidirectional bi-prediction may be applied, or both-directional bi-prediction may be applied. Both-directional bi-prediction may be referred to as true bi-prediction.
[0157] As described above, a residual block (residual sample) may be derived based on a predicted block (prediction sample) derived through prediction in an encoding stage, and residual information may be generated by transforming / quantizing the residual sample. The residual information may include information on quantized transform coefficients. The residual information may be included in video / image information, and the video / image information may be encoded and transmitted to a decoding device in the form of a bitstream. A decoding device may obtain the residual information from the bitstream and derive a residual sample based on the residual information. Specifically, the decoding device may derive a quantized transform coefficient based on the residual information, and derive a residual block (residual sample) through an inverse quantization / inverse transform procedure.
[0158] Meanwhile, at least one of the (inverse) transformation and / or (inverse) quantization steps may be omitted.
[0159] Hereinafter, an in-loop filtering procedure performed for a reconstructed picture will be described. A modified reconstructed sample, block, or picture (or a modified filtered sample, block, or picture) may be generated through the in-loop filtering procedure, and the modified (modified filtered) reconstructed picture may be output as a decoded picture in a decoding device, or may be stored in a decoded picture buffer or memory of an encoding device / decoding device and used as a reference picture in an inter-prediction procedure when encoding / decoding a picture thereafter. The in-loop filtering procedure may include a deblocking filtering procedure, a sample adaptive offset (SAO) procedure, and / or an adaptive loop filter (ALF) procedure, as described above. In this case, one or a part 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 applied sequentially, or all of them may be applied sequentially. For example, the SAO procedure may be performed after the deblocking filtering procedure is applied to the reconstructed picture. Or, for example, the ALF procedure can be performed after a deblocking filtering procedure is applied to the reconstructed picture, which can be performed in the encoding device as well.
[0160] Deblocking filtering is a filtering technique that removes distortions occurring at boundaries between blocks in a restored picture. The deblocking filtering procedure may, for example, derive a target boundary in a restored picture, determine a boundary strength (bS) for the target boundary, and perform deblocking filtering on the target boundary based on the bS. The bS may be determined based on the prediction modes of two blocks adjacent to the target boundary, a motion vector difference, whether the reference pictures are the same, whether there are non-zero valid coefficients, etc.
[0161] SAO is a method of compensating for an offset difference between a reconstructed picture and an original picture in sample units, and may be applied based on a type such as a band offset or an edge offset. According to SAO, samples may be classified into different categories according to each SAO type, and an offset value may be added to each sample based on the category. Filtering information for SAO may include information on whether SAO is applicable, SAO type information, SAO offset value information, etc. SAO may also be applied to a reconstructed picture after the deblocking filtering is applied.
[0162] An adaptive loop filter (ALF) is a technique for filtering a reconstructed picture on a sample-by-sample basis based on a filter coefficient according to a filter shape. An encoding apparatus can determine whether or not to apply ALF, an ALF shape and / or an ALF filtering coefficient, etc., by comparing a reconstructed picture with an original picture, and can signal the same to a decoding apparatus. That is, filtering information for ALF can include information on whether or not to apply ALF, ALF filter shape information, ALF filtering coefficient information, etc. An ALF can also be applied to a reconstructed picture after the deblocking filtering is applied.
[0163] FIG. 9 shows examples of ALF filter shapes.
[0164] FIG. 9 (a) shows a 7×7 diamond filter shape, and FIG. 9 (b) shows a 5×5 diamond filter shape. In FIG. 9, Cn in the filter shape indicates a filter coefficient. When n is the same in Cn, this indicates that the same filter coefficient can be assigned. In this document, the position and / or unit to which the filter coefficient is assigned according to the ALF filter shape may be called a filter tab. At this time, one filter coefficient may be assigned to each filter tab, and the arrangement of the filter tabs may correspond to the filter shape. A filter tab located at the center of the filter shape may be called a center filter tab. The same filter coefficient may be assigned to two filter tabs with the same n value that are located at positions corresponding to each other with reference to the center filter tab. For example, in the case of a 7×7 diamond filter shape, 25 filter tabs are included, and filter coefficients C0 to C11 are assigned in a central symmetrical form, so that filter coefficients can be assigned to the 25 filter tabs with only 13 filter coefficients. Also, for example, in the case of a 5×5 diamond filter shape, 13 filter tabs are included, and filter coefficients C0 to C5 are assigned in a centrally symmetric manner, so that filter coefficients can be assigned to the 13 filter tabs with only 7 filter coefficients. For example, to reduce the amount of data regarding the signaled filter coefficients, 12 filter coefficients out of the 13 filter coefficients for a 7×7 diamond filter shape can be (explicitly) signaled and one filter coefficient can be (implicitly) derived. Also, for example, 6 filter coefficients out of the 7 filter coefficients for a 5×5 diamond filter shape can be (explicitly) signaled and one filter coefficient can be (implicitly) derived.
[0165] According to one embodiment of this document, ALF parameters used for the ALF procedure may be signaled via an adaptation parameter set (APS). The ALF parameters may be derived from filter information or ALF data for the ALF.
[0166] As mentioned above, ALF is a type of in-loop filtering technique that can be applied in video / picture coding. ALF can be implemented using a Wiener-based adaptive filter to minimize the mean square error (MSE) between the original samples and the decoded samples (or reconstructed samples). A high level design for an ALF tool can incorporate syntax elements that are accessible in the SPS and / or slice header (or tile group header).
[0167] In one example, before filtering for each 4x4 luma block, a geometric transformation such as rotation or diagonal and vertical flipping can be applied to the filter coefficients f(k,l) and corresponding filter clipping values c(k,l) that depend on the gradient value calculated for the block. This is equivalent to applying these transformations to samples in the filter aided domain. It is similar to generating other blocks to which the ALF is applied and aligning these blocks by their orientation.
[0168] For example, the three transformations, diagonal, vertical flip, and rotation, can be performed based on the following equations:
[0169]
number
[0170]
number
[0171]
number
[0172] In Equation 1 to Equation 3, K is the size of the filter. 0≦k, 1≦K-1 are coefficient coordinates. For example, (0,0) is the upper left corner coordinate and / or (K-1,K-1) is the lower right corner coordinate. The relationship between the transformation and the four gradients of the four directions can be summarized as in the following table.
[0173] [Table 2]
[0174] ALF filter parameters can be signaled in the APS and slice header. Up to 25 luma filter coefficients and clipping value indexes can be signaled in one APS. Up to 8 chroma filter coefficients and clipping value indexes can be signaled in one APS. To reduce bit overhead, filter coefficients of different classifications for the luma component can be merged. In the slice header, the index of the APS used for the current slice (which the current slice refers to) can be signaled.
[0175] The clipping value index decoded from the APS may enable clipping values to be determined using a luma table of clipping values and a chroma table of clipping values. These clipping values are dependent on the internal bit depth. More specifically, the luma table of clipping values and the chroma table of clipping values may be derived based on the following formula:
[0176]
number
[0177]
number
[0178] In the above formula, B is the internal bit depth and N is the number of allowed clipping values (a predetermined number), for example N is 4.
[0179] In the slice header, up to seven APS indices can be signaled to indicate the luma filter set currently used for the slice. The filtering procedure can be further controlled at the CTB level. For example, a flag indicating whether ALF is applied to the luma CTB can be signaled. The luma CTB can select one filter set among 16 fixed filter sets and a filter set from the APS. A filter set index can be signaled for the luma CTB to indicate which filter set is applied. The 16 fixed filter sets can be predefined and hard-coded in both the encoder and the decoder.
[0180] For chroma components, an APS index can be signaled in the slice header to indicate the chroma filter set used for the current slice. At the CTB level, if there is more than one chroma filter set in the APS, a filter index can be signaled for each chroma CTB.
[0181] The filter coefficients may be quantized to a norm of 128. To limit the multiplication complexity, bitstream conformance may be applied, such that coefficient values of non-central positions are in the range of 0 to 28 and / or coefficient values of other positions are in the range of -27 to 27-1. The central position coefficients may be pre-determined to 128 without being signaled in the bitstream.
[0182] If ALF is available for the current block, each sample R(i,j) can be filtered and the filtered result R′(i,j) can be expressed as the following equation:
[0183]
number
[0184] In the above formula, f(k, l) is the decoded filter coefficient, K(x, y) is the clipping function, and c(k, l) is the decoded clipping parameter. For example, the variables k and / or l can vary from -L / 2 to L / 2, where L can represent the filter length. The clipping function K(x, y)=min(y, max(-y, x)) can correspond to the function Clip3(-y, y, x).
[0185] In one example, to reduce the line buffer requirements of the ALF, modified block classification and filtering can be applied for samples adjacent to horizontal CTU boundaries. To this end, a virtual boundary can be defined.
[0186] FIG. 10 is a diagram for explaining a virtual boundary applied to a filtering procedure according to an embodiment of the present document. FIG. 11 shows an example of an ALF procedure using a virtual boundary according to an embodiment of the present document. FIG. 11 will be described together with FIG. 10.
[0187] 10, the virtual boundary is a line defined by shifting the horizontal CTU boundary by N samples, in one example, N is 4 for the luma component and / or N is 2 for the chroma component.
[0188] In Fig. 10, a modified block classification can be applied to the luma component. For a 1D Laplacian gradient calculation of a 4x4 block above the virtual boundary, only samples on the virtual boundary can be used. Similarly, for a 1D Laplacian gradient calculation of a 4x4 block below the virtual boundary, only samples below the virtual boundary can be used. The quantization of the activity value A can be scaled accordingly to take into account the reduced number of samples used in the 1D Laplacian gradient calculation.
[0189] For the filtering procedure, a symmetric padding operation at the virtual boundary may be used for the luma and chroma components. Referring to FIG. 10, if a filtered sample is located below the virtual boundary, adjacent samples located on the virtual boundary may be padded. Meanwhile, the corresponding samples on the other side may also be padded symmetrically.
[0190] The procedure described by Fig. 11 can also be used for slice, brick, and / or tile boundaries if a filter is not available across the boundary. For ALF block classification, only samples contained in the same slice, brick, and / or tile can be used and activity values can be scaled accordingly. For ALF filtering, symmetric padding can be applied in the horizontal and / or vertical directions for each horizontal and / or vertical boundary.
[0191] 12 is a diagram for explaining a cross-component adaptive loop filtering (CCALF (CC-ALF)) procedure according to one embodiment of the present document. The CCALF procedure may also be called a cross-component filtering procedure.
[0192] In one aspect, the ALF procedure may include a general ALF procedure and a CCALF procedure. That is, the CCALF procedure may refer to a part of the ALF procedure. In another aspect, the filtering procedure may include a deblocking procedure, an SAO procedure, an ALF procedure, and / or a CCALF procedure.
[0193] CC-ALF can refine each chroma component using luma sample values. CC-ALF is controlled by (video) information in the bitstream, which may include (a) information about filter coefficients for each chroma component, and (b) information about a mask that controls the application of the filter to a block of samples. The filter coefficients can be signaled in the APS, and the block size and mask can be signaled at the slice level.
[0194] Referring to FIG. 12, CC-ALF can operate by applying a linear diamond-shaped filter (FIG. 12(b)) to the luma channel for each chroma component. The filter coefficients are sent to the APS, scaled by a factor of 210, and rounded to fixed-point representation. The application of the filter is controlled by a variable block size, which can be signaled by a context coding flag received for each block of samples. The block size along with the CC-ALF enable flag can be received at the slice level for each chroma component. The block size (for chroma samples) is 16×16, 32×32, 64×64, or 128×128.
[0195] In the following embodiment, a method for re-filtering or modifying the ALF filtered reconstructed chroma samples based on the reconstructed luma samples is proposed.
[0196] One embodiment of this document is related to filter on / off transmission and filter coefficient transmission in CC-ALF. As described above, the information (syntax elements) in the syntax table disclosed in this document can be included in image / video information, and can be configured / encoded by an encoding device and transmitted to a decoding device in the form of a bitstream. The decoding device can parse / decode the information (syntax elements) in the corresponding syntax table. The decoding device can perform a picture / image / video decoding procedure (specifically, for example, the CC-ALF procedure) based on the decoded information. The same applies to other embodiments below.
[0197] The following table shows a partial syntax of slice header information according to an embodiment of this document.
[0198] [Table 3]
[0199] The following table illustrates example semantics for the syntax elements contained in the table.
[0200] [Table 4]
[0201] Referring to the two tables, when sps_cross_component_alf_enabled_flag is 1 in the slice header, parsing of slice_cross_component_alf_cb_enabled_flag can be performed to determine whether Cb CC-ALF is applied in the corresponding slice. When slice_cross_component_alf_cb_enabled_flag is 1, CC-ALF is applied to the corresponding Cb slice, and when slice_cross_component_alf_cb_reuse_temporal_layer_filter is 1, the existing filter of the same temporal layer can be reused. When slice_cross_component_alf_cb_enabled_flag is 0, CC-ALF can be applied using a filter in the corresponding APS (adaptation parameter set) id via slice_cross_component_alf_cb_aps_idparsing. slice_cross_component_alf_cb_log2_control_size_minus4 can mean the CC-ALF application block unit in Cb slice.
[0202] For example, when the value of slice_cross_component_alf_cb_log2_control_size_minus4 is 0, the application of CC-ALF is determined in units of 16×16. When the value of slice_cross_component_alf_cb_log2_control_size_minus4 is 1, the application of CC-ALF is determined in units of 32×32. When the value of slice_cross_component_alf_cb_log2_control_size_minus4 is 2, the application of CC-ALF is determined in units of 64×64. When the value of slice_cross_component_alf_cb_log2_control_size_minus4 is 3, the application of CC-ALF is determined in units of 128×128. Also, for Cr CC-ALF, a syntax with the same structure as above is used.
[0203] The following table shows an example syntax for ALF data.
[0204] [Table 5]
[0205] The following table illustrates example semantics for the syntax elements contained in the table.
[0206] [Table 6-1]
[0207] [Table 6-2]
[0208] Referring to the two tables, the CC-ALF syntax elements are configured to be transmitted and applied independently regardless of the existing (general) ALF syntax structure. That is, CC-ALF can be applied even when the ALF tool on the SPS is turned off. Since CC-ALF must be able to operate independently of the existing ALF structure, a new hardware pipeline design is required. This causes increased costs and hardware delays when implementing the hardware.
[0209] In addition, ALF judges whether or not to apply both luma and chroma images in CTU units, and the result of the judgment is sent to the decoder via signaling. However, since the application of variable CC-ALF is judged from 16x16 to 128x128 units and this is applied, a conflict may occur between the existing ALF structure and CC-ALF. This causes problems in hardware implementation and also causes an increase in line buffers for applying various variable CC-ALFs.
[0210] The present invention aims to solve the above-mentioned problems in hardware implementation of CC-ALF by integrally applying the CC-ALF syntax structure to the ALF syntax structure.
[0211] According to one embodiment of this document, a sequence parameter set (SPS) may include a CC-ALF enable flag (sps_ccalf_enable_flag) to determine whether CC-ALF is used (applied). The CC-ALF enable flag may be transmitted independently of an ALF enable flag (sps_alf_enabled_flag) for determining whether ALF is used (applied).
[0212] The following table shows a portion of an example syntax for an SPS according to this embodiment.
[0213] [Table 7]
[0214] Referring to the table, CC-ALF can be applied only when ALF is always active. That is, the CC-ALF enabled flag (sps_ccalf_enabled_flag) can be parsed only when the ALF enabled flag (sps_alf_enabled_flag) is 1. According to the table, CC-ALF and ALF can be combined. The CC-ALF enabled flag can indicate (and be associated with) whether CC-ALF is enabled.
[0215] The following table shows some example syntax for a slice header.
[0216] [Table 8]
[0217] Referring to the table, parsing of sps_ccalf_enabled_flag can be performed only if sps_alf_enabled_flag is 1. Syntax elements included in the table can be described based on Table 4. In one example, video information encoded by an encoding device or acquired (received) by a decoding device may include slice header information (slice_header()). Based on a determination that the value of the CCALF enabled flag (sps_ccalf_flag) is 1, the slice header information may include a first flag (slice_cross_component_alf_cb_enabled_flag) associated with whether CC-ALF is enabled for a Cb color component of the filtered reconstructed chroma sample, and a second flag (slice_cross_component_alf_cr_enabled_flag) associated with whether CC-ALF is enabled for a Cr color component of the filtered reconstructed chroma sample.
[0218] In one example, based on a determination that the value of the first flag (slice_cross_component_alf_cb_enabeld_flag) is 1, the slice header information may include ID information (slice_cross_component_alf_cb_aps_id) of a first APS for derivation of cross-component filter coefficients for the Cb color component. Based on a determination that the value of the second flag (slice_cross_component_alf_cr_enabeld_flag) is 1, the slice header information may include ID information (slice_cross_component_alf_cr_aps_id) of a second APS for derivation of cross-component filter coefficients for the Cr color component.
[0219] The following table shows a portion of the SPS syntax according to another example of this embodiment.
[0220] [Table 9]
[0221] The following table shows an example of a portion of the slice header syntax.
[0222] [Table 10]
[0223] Referring to Table 9, the SPS may include a CCALF enabled flag (sps_ccalf_enabled_flag) if ChromaArrayType is not 0 and the ALF enabled flag (sps_alf_enabled_flag) is 1. For example, if ChromaArrayType is not 0, the chroma format is not monochrome, and the CCALF enabled flag may be transmitted via the SPS based on the case where the chroma format is not monochrome.
[0224] Referring to Table 9, if ChromaArrayType is not 0, information regarding CCALF (slice_cross_component_alf_cb_enabled_flag, slice_cross_component_alf_cb_aps_id, slice_cross_component_alf_cr_enabled_flag, slice_cross_component_alf_cr_aps_id) can be included in the slice header information.
[0225] In one example, video information encoded by an encoding device or acquired by a decoding device may include the SPS. The SPS may include a first ALF enabled flag (sps_alf_enabled_flag) associated with whether ALF is enabled. For example, based on a determination that the value of the first ALF enabled flag is 1, the SPS may include a CCALF enabled flag associated with whether the cross-component filtering is enabled. In another example, without using sps_ccalf_enabled_flag, if sps_alf_enabled_flag is 1, CCALF may always be applied (sps_ccalf_enabled_flag==1).
[0226] The following table shows a portion of the slice header syntax according to another example of this embodiment.
[0227] [Table 11]
[0228] Referring to the above table, sps_alf_enabled_flag parsing can be performed only if the ALF enabled flag (sps_alf_enabled_flag) is one.
[0229] The following table illustrates example semantics for the syntax elements contained in the table.
[0230] [Table 12]
[0231] The slice_ccalf_chroma_idc in the above table can also be described by the semantics of the following table:
[0232] [Table 13]
[0233] The following table shows a portion of the slice header syntax according to another example of this embodiment.
[0234] [Table 14]
[0235] The syntax elements included in the above table may be described by Table 12 or Table 13. Also, if the chroma format is not monochrome, CCALF related information may be included in the slice header.
[0236] The following table shows a portion of the slice header syntax according to another example of this embodiment.
[0237] [Table 15]
[0238] The following table illustrates example semantics for the syntax elements contained in the table.
[0239] [Table 16]
[0240] The following table shows a part of the slice header syntax according to another example of this embodiment. The syntax elements included in the following table may be described by Table 12 or Table 13.
[0241] [Table 17]
[0242] Referring to the table, whether or not the slice-based ALF and CC-ALF are applied can be determined at once via slice_alf_enabled_flag. After parsing slice_alf_chroma_idc, if the first ALF enabled flag (sps_alf_enabled_flag) is 1, slice_ccalf_chroma_idc can be parsed.
[0243] Referring to the table, it can be determined whether sps_ccalf_enabled_flag is 1 in the slice header information only if slice_alf_enabled_flag is 1. The slice header information may include a second ALF enabled flag (slice_alf_enabled_flag) associated with whether ALF is enabled. Based on a determination that the value of the second ALF enabled flag (slice_alf_enabled_flag) is 1, the CCALF is enabled for the slice.
[0244] The following table exemplarily shows a portion of the APS syntax: The syntax element adaptation_parameter_set_id can indicate identifier information (ID information) of the APS.
[0245] [Table 18]
[0246] The following table shows an example syntax for ALF data.
[0247] [Table 19]
[0248] Referring to the two tables, the APS may include ALF data (alf_data()). An APS including ALF data may be referred to as an ALF APS (ALF type APS). That is, the type of an APS including ALF data is ALF type. The type of the APS may be determined by information about the APS type or a syntax element (aps_params_type). The ALF data may include a Cb filter signal flag (alf_cross_component_cb_filter_signal_flag or alf_cc_cb_filter_signal_flag) associated with whether a cross-component filter for the Cb color component is signaled. The ALF data may include a Cr filter signal flag (alf_cross_component_cr_filter_signal_flag or alf_cc_cr_filter_signal_flag) associated with whether a cross-component filter for the Cr color component is signaled.
[0249] In one example, based on the Cr filter signal flag, the ALF data may include information on the absolute value of the cross-component filter coefficient for the Cr color component (alf_cross_component_cr_coeff_abs) and information on the sign of the cross-component filter coefficient for the Cr color component (alf_cross_component_cr_coeff_sign). Based on the information on the absolute value of the cross-component filter coefficient for the Cr color component and the information on the sign of the cross-component filter coefficient for the Cr color component, the cross-component filter coefficient for the Cr color component may be derived.
[0250] In one example, the ALF data may include information on absolute values of cross-component filter coefficients for the Cb color component (alf_cross_component_cb_coeff_abs) and information on signs of cross-component filter coefficients for the Cb color component (alf_cross_component_cb_coeff_sign). Based on the information on absolute values of cross-component filter coefficients for the Cb color component and the information on signs of cross-component filter coefficients for the Cb color component, cross-component filter coefficients for the Cb color component may be derived.
[0251] The following table shows the syntax for ALF data according to another example.
[0252] [Table 20]
[0253] Referring to the table, after alf_cross_component_filter_signal_flag is transmitted first, the Cb / Cr filter signal flag can be transmitted if the alf_cross_component_filter_signal_flag is 1. That is, the alf_cross_component_filter_signal_flag determines whether to transmit the CC-ALF filter coefficient by integrating Cb / Cr.
[0254] The following table shows the syntax for ALF data according to another example.
[0255] [Table 21]
[0256] The following table illustrates example semantics for the syntax elements contained in the table.
[0257] [Table 22-1]
[0258] [Table 22-2]
[0259] The following table shows the syntax for ALF data according to another example.
[0260] [Table 23]
[0261] The following table illustrates example semantics for the syntax elements contained in the table.
[0262] [Table 24-1]
[0263] [Table 24-2]
[0264] In the two tables, the degree of exp-Golomb binarization for parsing the alf_cross_component_cb_coeff_abs[j] and alf_cross_component_cr_coeff_abs[j] syntaxes can be defined as one of values from 0 to 9.
[0265] Referring to the two tables, the ALF data may include a Cb filter signal flag (alf_cross_component_cb_filter_signal_flag or alf_cc_cb_filter_signal_flag) related to whether a cross-component filter for the Cb color component is signaled. Based on the Cb filter signal flag (alf_cross_component_cb_filter_signal_flag), the ALF data may include information related to the number of cross-component filters for the Cb color component (ccalf_cb_num_alt_filters_minus1). Based on the information related to the number of cross-component filters for the Cb color component, the ALF data may include information on the absolute value of a cross-component filter coefficient for the Cb color component (alf_cross_component_cb_coeff_abs) and information on the sign of a cross-component filter coefficient for the Cb color component (alf_cross_component_cr_coeff_sign). Based on information regarding the absolute values of the cross-component filter coefficients for the Cb color component and information regarding the signs of the cross-component filter coefficients for the Cb color component, cross-component filter coefficients for the Cb color component may be derived.
[0266] In one example, the ALF data may include a Cr filter signal flag (alf_cross_component_cr_filter_signal_flag or alf_cc_cr_filter_signal_flag) associated with whether a cross-component filter for the Cr color component is signaled. Based on the Cr filter signal flag (alf_cross_component_cr_filter_signal_flag), the ALF data may include information associated with the number of cross-component filters for the Cr color component (ccalf_cr_num_alt_filters_minus1). Based on the information associated with the number of cross-component filters for the Cr color component, the ALF data may include information associated with absolute values of cross-component filter coefficients for the Cr color component (alf_cross_component_cr_coeff_abs) and information associated with signs of cross-component filter coefficients for the Cr color component (alf_cross_component_cr_coeff_sign). Based on information regarding the absolute values of the cross-component filter coefficients for the Cr color component and information regarding the signs of the cross-component filter coefficients for the Cr color component, cross-component filter coefficients for the Cr color component may be derived.
[0267] The following table shows the syntax for a coding tree unit according to one embodiment of this document.
[0268] [Table 25]
[0269] The following table illustrates example semantics for the syntax elements contained in the table.
[0270] [Table 26]
[0271] The following table shows a coding tree unit syntax according to another example of this embodiment.
[0272] [Table 27]
[0273] Referring to the table, CCALF may be applied in units of CTUs. In one example, the image information may include information about a coding tree unit (coding_tree_unit()). The information about the coding tree unit may include information about whether a cross-component filter is applied to the current block of a Cb color component (ccalf_ctb_flag[0]), and / or information about whether a cross-component filter is applied to the current block of a Cr color component (ccalf_ctb_flag[1]). In addition, the information about the coding tree unit may include information about a filter set index of a cross-component filter applied to the current block of a Cb color component (ccalf_ctb_filter_alt_idx[0]), and / or information about a filter set index of a cross-component filter applied to the current block of a Cr color component (ccalf_ctb_filter_alt_idx[1]). The syntax may be adaptively transmitted by a slice_ccalf_enabled_flag and a slice_ccalf_chroma_idc syntax.
[0274] The following table shows a coding tree unit syntax according to another example of this embodiment.
[0275] [Table 28]
[0276] The following table illustrates example semantics for the syntax elements contained in the table.
[0277] [Table 29]
[0278] The following table shows a coding tree unit syntax according to another example of this embodiment. The syntax elements included in the following table can be described by Table 29.
[0279] [Table 30]
[0280] In an example, the image information may include information about a coding tree unit (coding_tree_unit()). The information about the coding tree unit may include information about whether a cross-component filter is applied to the current block of a Cb color component (ccalf_ctb_flag[0]), and / or information about whether a cross-component filter is applied to the current block of a Cr color component (ccalf_ctb_flag[1]). In addition, the information about the coding tree unit may include information about a filter set index of a cross-component filter applied to the current block of a Cb color component (ccalf_ctb_filter_alt_idx[0]), and / or information about a filter set index of a cross-component filter applied to the current block of a Cr color component (ccalf_ctb_filter_alt_idx[1]).
[0281] 13 and 14 show a schematic diagram of an example of a video / image encoding method and associated components according to an embodiment of the present document.
[0282] The method disclosed in FIG. 13 may be performed by the encoding device disclosed in FIG. 2 or FIG. 14. Specifically, for example, S1300 to S1330 in FIG. 13 may be performed by the residual processing unit 230 of the encoding device in FIG. 14, S1340 in FIG. 13 may be performed by the addition unit 250 of the encoding device in FIG. 14, S1350 in FIG. 13 may be performed by the filtering unit 260 of the encoding device in FIG. 14, and S1360 in FIG. 13 may be performed by the entropy encoding unit 240 of the encoding device in FIG. 14. Also, although not shown in FIG. 13, in FIG. 13, a prediction sample or prediction related information may be derived by the prediction unit 220 of the encoding device, and a bitstream may be generated from the residual information or prediction related information by the entropy encoding unit 240 of the encoding device. The method disclosed in FIG. 13 may include the embodiments detailed in this document.
[0283] Referring to FIG. 13, an encoding apparatus may derive a residual sample (S1300). The encoding apparatus may derive a residual sample for a current block, and the residual sample for the current block may be derived based on an original sample and a predicted sample of the current block. Specifically, the encoding apparatus may derive a predicted sample for the current block based on a prediction mode. In this case, various prediction methods disclosed in this document, such as inter prediction or intra prediction, may be applied. A residual sample may be derived based on the predicted sample and the original sample.
[0284] The encoding apparatus may derive transform coefficients (S1310). The encoding apparatus may derive the transform coefficients based on a transform procedure for the residual samples. For example, the transform procedure may include at least one of DCT, DST, GBT, or CNT.
[0285] The encoding apparatus may derive quantized transform coefficients (S1320). The encoding apparatus may derive the quantized transform coefficients based on a quantization procedure for the transform coefficients. The quantized transform coefficients may have a one-dimensional vector form based on a coefficient scan order.
[0286] The encoding apparatus may generate residual information indicating the quantized transform coefficients (S1330). The residual information may be generated through various encoding methods such as Exponential Golomb, CAVLC, CABAC, etc.
[0287] The encoding apparatus may generate a reconstructed sample (S1340). The encoding apparatus may generate a reconstructed sample based on the residual information. The reconstructed sample may be generated by adding a residual sample based on the residual information to a predicted sample. Specifically, the encoding apparatus may perform prediction (intra- or inter-prediction) on the current block and generate a reconstructed sample based on an original sample and a predicted sample generated from the prediction.
[0288] The reconstructed sample may include a reconstructed luma sample and a reconstructed chroma sample. Specifically, the residual sample may include a residual luma sample and a residual chroma sample. The residual luma sample may be generated based on an original luma sample and a predicted luma sample. The residual chroma sample may be generated based on an original chroma sample and a predicted chroma sample. The encoding apparatus may derive a transform coefficient for the residual luma sample (luma transform coefficient) and / or a transform coefficient for the residual chroma sample (chroma transform coefficient). The quantized transform coefficient may include a quantized luma transform coefficient and / or a quantized chroma transform coefficient.
[0289] The encoding apparatus may generate ALF-related information and / or CCALF (CC-ALF)-related information for the reconstructed samples (S1350). The encoding apparatus may generate the ALF-related information for the reconstructed samples. The encoding apparatus derives ALF-related parameters that may be applied for filtering the reconstructed samples, and generates the ALF-related information. For example, the ALF-related information may include the ALF-related information detailed in this document.
[0290] The encoding device may encode video / image information (S1360). The image information may include residual information, ALF-related information, and / or CCALF-related information. The encoded video / image information may be output in the form of a bitstream. The bitstream may be transmitted to a decoding device via a network or a storage medium.
[0291] In one example, the CCALF-related information may include a CCALF enabled flag, a flag related to whether CCALF is enabled for the Cb (or Cr) color component, a Cb (or Cr) filter signal flag related to whether a cross-component filter for the Cb (or Cr) color component has been signaled, information related to the number of cross-component filters for the Cb (or Cr) color component, information related to values of cross-component filter coefficients for the Cb (or Cr) color component, information related to absolute values of cross-component filter coefficients for the Cb (or Cr) color component, information related to signs of cross-component filter coefficients for the Cb (or Cr) color component, and / or information related to whether a cross-component filter is applied to a current block of the Cb (or Cr) color component in information related to the coding tree unit (coding tree unit syntax).
[0292] The image / video information may include various information according to embodiments of this document, for example, the image / video information may include at least one of the information disclosed in Tables 1 to 30 above.
[0293] In one embodiment, the image information may include header information and an adaptation parameter set (APS). The header information may include information related to an identifier of an APS including ALF data. For example, the cross-component filter coefficients may be derived based on the ALF data.
[0294] In one embodiment, the image information may include a sequence parameter set (SPS), which may include a CCALF enabled flag associated with whether the cross-component filtering is enabled.
[0295] In one embodiment, the SPS may include an ALF enabled flag (sps_alf_enabled_flag) associated with whether ALF is enabled. Based on a determination that the value of the ALF enabled flag is 1, the SPS may include a CCALF enabled flag associated with whether the cross-component filtering is enabled.
[0296] In one embodiment, the video information may include slice header information. The slice header information may include an ALF enabled flag (slice_alf_enabled_flag) associated with whether ALF is enabled. Based on a determination that the ALF enabled flag has a value of 1, it may be determined whether the CCALF enabled flag has a value of 1. In one example, based on a determination that the ALF enabled flag has a value of 1, the CCALF is enabled for the slice.
[0297] In one embodiment, the header information (slice header information) may include a first flag associated with whether CCALF is enabled for the Cb color component of the filtered reconstructed chroma sample, and a second flag associated with whether CCALF is enabled for the Cr color component of the filtered reconstructed chroma sample. In another example, based on a determination that the ALF enabled flag (slice_alf_enabled_flag) is 1, the header information (slice header information) may include a first flag associated with whether CCALF is enabled for the Cb color component of the filtered reconstructed chroma sample, and a second flag associated with whether CCALF is enabled for the Cr color component of the filtered reconstructed chroma sample.
[0298] In one embodiment, the image information may include adaptation parameter sets (APSs). In one example, the slice header information may include first APS ID information (information associated with a second APS identifier) for deriving cross-component filter coefficients for a Cb color component of the filtered reconstructed chroma samples. The slice header information may include second APS ID information (information associated with a second APS identifier) for deriving cross-component filter coefficients for a Cr color component of the filtered reconstructed chroma samples. In another example, based on a determination that the value of the first flag is 1, the slice header information may include first APS ID information (information associated with a second APS identifier) for deriving cross-component filter coefficients for the Cb color component. Based on a determination that the value of the second flag is 1, the slice header information may include second APS ID information (information associated with a second APS identifier) for deriving cross-component filter coefficients for the Cr color component.
[0299] In one embodiment, the first ALF data included in the first APS may include a Cb filter signal flag associated with whether a cross-component filter for the Cb color component is signaled. Based on the Cb filter signal flag, the first ALF data may include information associated with the number of cross-component filters for the Cb color component. Based on the information associated with the number of cross-component filters for the Cb color component, the first ALF data may include information on absolute values of cross-component filter coefficients for the Cb color component and information on signs of cross-component filter coefficients for the Cb color component. Based on the information on absolute values of cross-component filter coefficients for the Cb color component and information on signs of cross-component filter coefficients for the Cb color component, cross-component filter coefficients for the Cb color component may be derived.
[0300] In one embodiment, the information related to the number of cross-component filters for the Cb color component is a zeroth order exponential Golomb (0 th EG) can be coded.
[0301] In one embodiment, the second ALF data included in the second APS may include a Cr filter signal flag associated with whether a cross-component filter for the Cr color component is signaled. Based on the Cr filter signal flag, the second ALF data may include information associated with the number of cross-component filters for the Cr color component. Based on the information associated with the number of cross-component filters for the Cr color component, the second ALF data may include information regarding absolute values of cross-component filter coefficients for the Cr color component and information regarding signs of cross-component filter coefficients for the Cr color component. Based on the information regarding absolute values of cross-component filter coefficients for the Cr color component and information regarding signs of cross-component filter coefficients for the Cr color component, cross-component filter coefficients for the Cr color component may be derived.
[0302] In one embodiment, the information related to the number of cross-component filters for the Cr color component is a 0th order exponential Golomb (0 th EG) can be coded.
[0303] In one embodiment, the image information may include information about a coding tree unit, the information about the coding tree unit including information about whether a cross-component filter is applied to the current block of a Cb color component and / or information about whether a cross-component filter is applied to the current block of a Cr color component.
[0304] In one embodiment, the information related to the coding tree unit may include information related to a filter set index of a cross-component filter applied to the current block of a Cb color component, and / or information related to a filter set index of a cross-component filter applied to the current block of a Cr color component.
[0305] 15 and 16 show a schematic diagram of an example of a video / image decoding method and associated components according to an embodiment of the present document.
[0306] The method disclosed in Fig. 15 may be performed by the decoding device disclosed in Fig. 3 or Fig. 16. Specifically, for example, S1500 in Fig. 15 may be performed by the entropy decoding unit 310 of the decoding device, S1510 may be performed by the addition unit 340 of the decoding device, and S1520 to S1550 may be performed by the filtering unit 350 of the decoding device. The method disclosed in Fig. 15 may include the embodiments detailed in this document.
[0307] Referring to FIG. 15, a decoding apparatus may receive / acquire video / image information (S1500). The video / image information may include residual information. The decoding apparatus may receive / acquire the image / image information via a bitstream. In one example, the video / image information may further include CCALF-related information. For example, the CCALF-related information may include a CCALF available flag, a flag related to whether CCALF is available for the Cb (or Cr) color component, a Cb (or Cr) filter signal flag related to whether a cross-component filter for the Cb (or Cr) color component is signaled, information related to the number of cross-component filters for the Cb (or Cr) color component, information related to absolute values of cross-component filter coefficients for the Cb (or Cr) color component, information related to signs of cross-component filter coefficients for the Cb (or Cr) color component, and / or information related to a coding tree unit (coding tree unit syntax) related to whether a cross-component filter is applied to a current block of the Cb (or Cr) color component.
[0308] The image / video information may include various information according to embodiments of this document, for example, the image / video information may include at least one of the information disclosed in Tables 1 to 30 above.
[0309] The decoding apparatus may derive quantized transform coefficients. The decoding apparatus may derive quantized transform coefficients based on the residual information. The quantized transform coefficients may have a one-dimensional vector form based on a coefficient scan order. The quantized transform coefficients may include quantized luma transform coefficients and / or quantized chroma transform coefficients.
[0310] The decoding apparatus may derive transform coefficients. The decoding apparatus may derive transform coefficients based on an inverse quantization procedure for the quantized transform coefficients. The decoding apparatus may derive luma transform coefficients through inverse quantization based on the quantized luma transform coefficients. The decoding apparatus may derive chroma transform coefficients through inverse quantization based on the quantized chroma transform coefficients.
[0311] The decoding apparatus may generate / derive a residual sample. The decoding apparatus may derive a residual sample based on an inverse transform procedure for the transform coefficients. The decoding apparatus may derive a residual luma sample through an inverse transform procedure based on a luma transform coefficient. The decoding apparatus may derive a residual chroma sample through an inverse transform procedure based on a chroma transform coefficient.
[0312] The decoding apparatus may generate / derive a reconstructed luma sample and / or a reconstructed chroma sample (S1510). The decoding apparatus may generate a reconstructed luma sample and / or a reconstructed chroma sample based on the residual information. The decoding apparatus may generate a reconstructed sample based on the residual information. The reconstructed sample may include a reconstructed luma sample and / or a reconstructed chroma sample. A luma component of the reconstructed sample may correspond to the reconstructed luma sample, and a chroma component of the reconstructed sample may correspond to the reconstructed chroma sample. The decoding apparatus may generate a predicted luma sample and / or a predicted chroma sample through a prediction procedure. The decoding apparatus may generate a reconstructed luma sample based on the predicted luma sample and the residual luma sample. The decoding apparatus may generate a reconstructed chroma sample based on the predicted chroma sample and the residual chroma sample.
[0313] The decoding apparatus may derive ALF filter coefficients for an ALF procedure of the reconstructed chroma samples (S1520). In addition, the decoding apparatus may derive ALF filter coefficients for an ALF procedure of the reconstructed luma samples. The ALF filter coefficients may be derived based on ALF parameters included in the ALF data in the APS.
[0314] The decoding apparatus may generate filtered reconstructed chroma samples (S1530). The decoding apparatus may generate filtered reconstructed samples based on the reconstructed chroma samples and the ALF filter coefficients.
[0315] The decoding apparatus may derive cross-component filter coefficients for the cross-component filtering (S1540). The cross-component filter coefficients may be derived based on CCALF-related information in ALF data included in the above-mentioned APS, and identifier (ID) information of the corresponding APS may be included in (signaled via) a slice header.
[0316] The decoding apparatus may generate modified filtered reconstructed chroma samples (S1550). The decoding apparatus may generate the modified filtered reconstructed chroma samples based on the reconstructed luma samples, the filtered reconstructed chroma samples, and the cross-component filter coefficients. In one example, the decoding apparatus may derive a difference between two of the reconstructed luma samples and multiply the difference by one of the cross-component filter coefficients. Based on a result of the multiplication and the filtered reconstructed chroma samples, the decoding apparatus may generate the modified filtered reconstructed chroma samples. For example, the decoding apparatus may generate the modified filtered reconstructed chroma samples based on a sum between the product and one of the filtered reconstructed chroma samples.
[0317] In one embodiment, the image information may include header information and an adaptation parameter set (APS). The header information may include information related to an identifier of an APS including ALF data. For example, the cross-component filter coefficients may be derived based on the ALF data.
[0318] In one embodiment, the image information may include a sequence parameter set (SPS), which may include a CCALF enabled flag associated with whether the cross-component filtering is enabled.
[0319] In one embodiment, the SPS may include an ALF enabled flag (sps_alf_enabled_flag) associated with whether ALF is enabled. Based on a determination that the value of the ALF enabled flag is 1, the SPS may include a CCALF enabled flag associated with whether the cross-component filtering is enabled.
[0320] In one embodiment, the video information may include slice header information. The slice header information may include an ALF enabled flag (slice_alf_enabled_flag) associated with whether ALF is enabled. Based on a determination that the ALF enabled flag has a value of 1, it may be determined whether the CCALF enabled flag has a value of 1. In one example, based on a determination that the ALF enabled flag has a value of 1, the CCALF is enabled for the slice.
[0321] In one embodiment, the header information (slice header information) may include a first flag associated with whether CCALF is enabled for the Cb color component of the filtered reconstructed chroma sample, and a second flag associated with whether CCALF is enabled for the Cr color component of the filtered reconstructed chroma sample. In another example, based on a determination that the ALF enabled flag (slice_alf_enabled_flag) is 1, the header information (slice header information) may include a first flag associated with whether CCALF is enabled for the Cb color component of the filtered reconstructed chroma sample, and a second flag associated with whether CCALF is enabled for the Cr color component of the filtered reconstructed chroma sample.
[0322] In one embodiment, the image information may include adaptation parameter sets (APSs). In one example, the slice header information may include first APS ID information (information associated with a second APS identifier) for deriving cross-component filter coefficients for a Cb color component of the filtered reconstructed chroma samples. The slice header information may include second APS ID information (information associated with a second APS identifier) for deriving cross-component filter coefficients for a Cr color component of the filtered reconstructed chroma samples. In another example, based on a determination that the value of the first flag is 1, the slice header information may include first APS ID information (information associated with a second APS identifier) for deriving cross-component filter coefficients for the Cb color component. Based on a determination that the value of the second flag is 1, the slice header information may include second APS ID information (information associated with a second APS identifier) for deriving cross-component filter coefficients for the Cr color component.
[0323] In one embodiment, the first ALF data included in the first APS may include a Cb filter signal flag associated with whether a cross-component filter for the Cb color component is signaled. Based on the Cb filter signal flag, the first ALF data may include information associated with the number of cross-component filters for the Cb color component. Based on the information associated with the number of cross-component filters for the Cb color component, the first ALF data may include information on absolute values of cross-component filter coefficients for the Cb color component and information on signs of cross-component filter coefficients for the Cb color component. Based on the information on absolute values of cross-component filter coefficients for the Cb color component and information on signs of cross-component filter coefficients for the Cb color component, cross-component filter coefficients for the Cb color component may be derived.
[0324] In one embodiment, the information related to the number of cross-component filters for the Cb color component is a zeroth order exponential Golomb (0 th EG) can be coded.
[0325] In one embodiment, the second ALF data included in the second APS may include a Cr filter signal flag associated with whether a cross-component filter for the Cr color component is signaled. Based on the Cr filter signal flag, the second ALF data may include information associated with the number of cross-component filters for the Cr color component. Based on the information associated with the number of cross-component filters for the Cr color component, the second ALF data may include information regarding absolute values of cross-component filter coefficients for the Cr color component and information regarding signs of cross-component filter coefficients for the Cr color component. Based on the information regarding absolute values of cross-component filter coefficients for the Cr color component and information regarding signs of cross-component filter coefficients for the Cr color component, cross-component filter coefficients for the Cr color component may be derived.
[0326] In one embodiment, the information related to the number of cross-component filters for the Cr color component is a 0th order exponential Golomb (0 th EG) can be coded.
[0327] In one embodiment, the image information may include information about a coding tree unit, the information about the coding tree unit including information about whether a cross-component filter is applied to the current block of a Cb color component and / or information about whether a cross-component filter is applied to the current block of a Cr color component.
[0328] In one embodiment, the information related to the coding tree unit may include information related to a filter set index of a cross-component filter applied to the current block of a Cb color component, and / or information related to a filter set index of a cross-component filter applied to the current block of a Cr color component.
[0329] The decoding apparatus may receive information about a residual for a current block if a residual sample for the current block exists. The information about the residual may include a transform coefficient related to the residual sample. The decoding apparatus may derive a residual sample (or a residual sample array) for the current block based on the residual information. Specifically, the decoding apparatus may derive a quantized transform coefficient based on the residual information. The quantized transform coefficient may have a one-dimensional vector form based on a coefficient scan order. The decoding apparatus may derive the transform coefficient based on a dequantization procedure for the quantized transform coefficient. The decoding apparatus may derive a residual sample based on the transform coefficient.
[0330] The decoding apparatus may generate a reconstructed sample based on an (intra) predicted sample and a residual sample, and may derive a reconstructed block or a reconstructed picture based on the reconstructed sample. Specifically, the decoding apparatus may generate a reconstructed sample based on a sum of an (intra) predicted sample and a residual sample. As described above, the decoding apparatus may then apply an in-loop filtering procedure, such as a deblocking filtering and / or an SAO procedure, to the reconstructed picture, if necessary, to improve subjective / objective image quality.
[0331] For example, a decoding device may decode a bitstream or encoded information to obtain video information including all or a part of the above-mentioned information (or syntax elements). Also, the bitstream or encoded information may be stored in a computer-readable storage medium and may be caused to perform the above-mentioned decoding method.
[0332] In the above embodiments, the method is described based on a flowchart as a series of steps or blocks, but the embodiments are not limited to the order of steps, and certain steps may occur in a different order or simultaneously with other steps than those described above. Also, those skilled in the art will understand that the steps shown in the flowcharts are not exclusive, and different steps may be included, or one or more steps of the flowcharts may be removed without affecting the scope of the embodiments of this document.
[0333] The methods according to the embodiments of the present document described above may be embodied in the form of software, and the encoding device and / or decoding device according to the present document may be included in a device that performs image processing, such as a TV, a computer, a smartphone, a set-top box, a display device, etc.
[0334] When the embodiments in this document are implemented in software, the methods described above may be implemented in modules (processes, functions, etc.) performing the functions described above. The modules 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 in various well-known ways. The processor may include an application-specific integrated circuit (ASIC), other chipsets, logic circuits, and / or data processing devices. The memory may include a read-only memory (ROM), a random access memory (RAM), a flash memory, a memory card, a storage medium, and / or other storage devices. That is, the embodiments described in this document may be implemented and performed on a processor, microprocessor, controller, or chip. For example, the functional units shown in each drawing may be implemented and performed on a computer, processor, microprocessor, controller, or chip. In this case, information on instructions or algorithms for implementation may be stored in a digital storage medium.
[0335] In addition, the decoding device and encoding device to which the embodiments of the present document are applied may be included in a multimedia broadcast transmitting / receiving device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video interactive device, a real-time communication device such as video communication, a mobile streaming device, a storage medium, a camcorder, a customized video (VoD) service providing device, an over-the-top video (OTT) device, an internet streaming service providing device, a three-dimensional (3D) video device, a virtual reality (VR) device, an argumente reality (AR) device, a video telephone video device, a transportation means terminal (e.g., a vehicle (including an autonomous vehicle) terminal, an airplane terminal, a ship terminal, etc.), and a medical video device, etc., and may be used to process a video signal or a data signal. For example, an over-the-top video (OTT) device may include a game console, a Blu-ray player, an internet access TV, a home theater system, a smartphone, a tablet PC, a digital video recorder (DVR), etc.
[0336] In addition, the processing method to which the embodiments of this document are 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 embodiments of this document may also be stored in a computer-readable recording medium. The computer-readable recording medium includes all kinds of storage devices and distributed storage devices in which computer-readable data is stored. The computer-readable recording medium may include, for example, a Blu-ray Disc (BD), a Universal Serial Bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. The computer-readable recording medium may also include a medium embodied in the form of a carrier wave (e.g., transmission via the Internet). In addition, a bitstream generated by the encoding method may be stored in a computer-readable recording medium or transmitted via a wired or wireless communication network.
[0337] Furthermore, the embodiments of the present document may be embodied in a computer program product by program code, the program code being executable by a computer in accordance with the embodiments of the present document. The program code may be stored on a carrier readable by a computer.
[0338] FIG. 17 illustrates an example of a content streaming system in which the embodiments disclosed herein can be applied.
[0339] Referring to FIG. 17, a content streaming system to which the embodiments of this document are applied may broadly include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.
[0340] The encoding server compresses content input from a multimedia input device such as a smartphone, camera, camcorder, etc. into digital data to generate a bitstream and transmits the bitstream to the streaming server. As another example, if a multimedia input device such as a smartphone, camera, camcorder, etc. directly generates a bitstream, the encoding server may be omitted.
[0341] The bitstream may be generated by an encoding method or a bitstream generation method to which an embodiment of this document is applied, and the streaming server may temporarily store the bitstream during the process of transmitting or receiving the bitstream.
[0342] The streaming server transmits multimedia data to a user device based on a user request via a web server, and the web server acts as a medium to inform the user of available services. When a user requests a desired service from the web server, the web server transmits the request to the streaming server, and the streaming server transmits multimedia data to the user. In this case, the content streaming system may include a separate control server, and in this case, the control server controls commands / responses between devices in the content streaming system.
[0343] 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, the streaming server may store the bitstream for a certain period of time in order to provide a smooth streaming service.
[0344] Examples of the user devices include mobile phones, smart phones, laptop computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation systems, slate PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glass, head mounted displays (HMDs)), digital TVs, desktop computers, digital signage, etc.
[0345] Each server in the content streaming system can be operated as a distributed server, in which case data received by each server can be processed in a distributed manner.
[0346] The claims described herein may be combined in various ways. For example, the technical features of the method claims herein may be combined and embodied as an apparatus, and the technical features of the apparatus claims herein may be combined and embodied as a method. In addition, the technical features of the method claims herein and the technical features of the apparatus claims herein may be combined and embodied as an apparatus, and the technical features of the method claims herein and the technical features of the apparatus claims herein may be combined and embodied as a method.
Claims
1. 1. A method for video decoding performed by a decoding device, comprising: obtaining video information including residual information via a bitstream; generating reconstructed luma samples and reconstructed chroma samples based on the residual information; deriving adaptive loop filter (ALF) filter coefficients for an ALF procedure on the reconstructed chroma samples; generating filtered reconstructed chroma samples based on the reconstructed chroma samples and the ALF filter coefficients; deriving cross-component filter coefficients for cross-component filtering; generating modified filtered reconstructed chroma samples based on the reconstructed luma samples, the filtered reconstructed chroma samples, and the cross-component filter coefficients; The video information includes a sequence parameter set (SPS), an adaptation parameter set (APS), and slice header information, The ALF data included in the APS includes flag information related to whether a cross-component filter is signaled; Based on the flag information, the ALF data includes information regarding the absolute value of the cross-component filter and information regarding the sign of the cross-component filter; The SPS includes an ALF enabled flag associated with whether the ALF procedure is enabled; Based on a determination that the ALF enable flag has a value of 1, the SPS includes a cross-component adaptive loop filter (CCALF) enable flag associated with whether the cross-component filtering is enabled; Based on a determination that the value of the ALF enabled flag in the SPS is 1, the slice header information includes an ALF enabled flag associated with whether the ALF is enabled; Based on a determination that the value of the ALF enabled flag included in the slice header information is 1 and the value of the CCALF enabled flag included in the SPS is 1, the slice header information includes information regarding whether the CCALF is enabled for the filtered reconstructed chroma samples; A method according to claim 1, wherein, based on the value of the information regarding whether the CCALF is available for the filtered reconstructed chroma sample being 1, the slice header information includes ID (identification) information of the APS associated with the CCALF for the filtered reconstructed chroma sample.
2. 1. A method of video encoding performed by an encoding device, comprising: deriving a residual sample for a current block; deriving transformation coefficients based on a transformation procedure for the residual samples; deriving quantized transform coefficients based on a quantization procedure for the transform coefficients; generating residual information associated with the quantized transform coefficients; generating a reconstruction sample based on the residual information; generating adaptive loop filter (ALF) related information and cross-component ALF (CCALF) related information for the reconstructed samples; encoding video information including the residual information, the ALF related information, and the CCALF related information; the reconstructed samples include reconstructed luma samples and reconstructed chroma samples; The video encoding method includes: deriving ALF filter coefficients for an ALF procedure on the reconstructed chroma samples; generating filtered reconstructed chroma samples based on the reconstructed chroma samples and the ALF filter coefficients; deriving cross-component filter coefficients for cross-component filtering; generating modified filtered reconstructed chroma samples based on the reconstructed luma samples, the filtered reconstructed chroma samples, and the cross-component filter coefficients; The video information includes a sequence parameter set (SPS), an adaptation parameter set (APS), and slice header information, The ALF data included in the APS includes flag information related to whether a cross-component filter is signaled; Based on the flag information, the ALF data includes information regarding the absolute value of the cross-component filter and information regarding the sign of the cross-component filter; The SPS includes an ALF enabled flag associated with whether the ALF procedure is enabled; Based on a determination that the ALF enable flag has a value of 1, the SPS includes a cross-component adaptive loop filter (CCALF) enable flag associated with whether the cross-component filtering is enabled; Based on a determination that the value of the ALF enabled flag in the SPS is 1, the slice header information includes an ALF enabled flag associated with whether the ALF is enabled; Based on the determination that the value of the ALF enabled flag included in the slice header information is 1 and the value of the CCALF enabled flag included in the SPS is 1, the slice header information includes information regarding whether the CCALF is enabled for the filtered reconstructed chroma samples; The method of claim 1, wherein based on the value of the information regarding whether the CCALF is available for the filtered reconstructed chroma sample being 1, the slice header information includes ID (identification) information of an adaptation parameter set (APS) associated with the CCALF for the filtered reconstructed chroma sample.
3. A method for transmitting data for video, comprising the steps of: generating a bitstream for the video; deriving a residual sample for a current block; deriving transformation coefficients based on a transformation procedure for the residual samples; deriving quantized transform coefficients based on a quantization procedure for the transform coefficients; generating residual information associated with the quantized transform coefficients; generating a reconstruction sample based on the residual information; generating adaptive loop filter (ALF) related information and cross-component ALF (CCALF) related information for the reconstructed samples; encoding video information including the residual information, the ALF related information, and the CCALF related information; transmitting the data including the bitstream; The video information includes a sequence parameter set (SPS), an adaptation parameter set (APS), and slice header information, The ALF data included in the APS includes flag information related to whether a cross-component filter is signaled; Based on the flag information, the ALF data includes information regarding the absolute value of the cross-component filter and information regarding the sign of the cross-component filter; The SPS includes an ALF enabled flag associated with whether the ALF procedure is enabled; Based on a determination that the ALF enable flag has a value of 1, the SPS includes a cross-component adaptive loop filter (CCALF) enable flag associated with whether cross-component filtering is enabled; Based on a determination that the value of the ALF enabled flag in the SPS is 1, the slice header information includes an ALF enabled flag associated with whether the ALF is enabled; Based on a determination that the value of the ALF enabled flag included in the slice header information is 1 and the value of the CCALF enabled flag included in the SPS is 1, the slice header information includes information regarding whether the CCALF is enabled for the filtered reconstructed chroma samples; The method of claim 1, wherein based on the value of the information regarding whether the CCALF is available for the filtered reconstructed chroma sample being 1, the slice header information includes ID (identification) information of an adaptation parameter set (APS) associated with the CCALF for the filtered reconstructed chroma sample.
Citation Information
Patent Citations
Image encoding device and image decoding device
JP2021034980A
Cross-component adaptive loop filtering based video coding apparatus and method
JP2022545747A
Video coding apparatus and method
JP2022545837A
Cross-component adaptive loop filter for chroma
WO2021032751A1
Cited By
Image coding device and method of filtering base
JP2025089401A