Image coding apparatus and method for controlling loop filtering

By efficiently applying deblocking, SAO, and ALF filtering and enabling in-loop filtering across virtual boundaries, the method addresses the inefficiencies in existing image/video compression techniques, achieving improved compression efficiency and visual quality.

JP7690664B2Active Publication Date: 2025-06-10LG ELECTRONICS INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2024139564
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-11-18
Filing Date
2024-08-21
Publication Date
2025-06-10
Estimated Expiration
2040-11-17

AI Technical Summary

Technical Problem

The increasing demand for high-resolution and high-quality images/videos, such as 4K or UHD, poses a challenge due to the higher information bits required for transmission and storage, leading to increased costs and inefficiencies in existing compression techniques.

Method used

The proposed method enhances image/video coding efficiency by efficiently applying deblocking, SAO, and ALF filtering, and allows for in-loop filtering across virtual boundaries, which can be controlled using a SPS virtual boundary enable flag.

Benefits of technology

This approach improves overall image/video compression efficiency, enhances subjective and objective visual quality, and optimizes hardware resource usage by efficiently performing in-loop filtering based on virtual boundaries.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007690664000040
    Figure 0007690664000040
  • Figure 0007690664000041
    Figure 0007690664000041
  • Figure 0007690664000042
    Figure 0007690664000042
Patent Text Reader

Abstract

To provide an image decoding method.SOLUTION: A method includes the steps of: acquiring image information; generating a residual sample; deriving a prediction sample; generating a reconstructed sample of a current picture based on the prediction sample and the residual sample; and generating a corrected reconstructed sample, the image information including SPS. Information related to a virtual boundary includes a virtual boundary enabled flag. The SPS includes an SPS virtual boundary present flag based on the virtual boundary enabled flag. Whether signaling of the information related to the virtual boundary is present in the SPS is determined based on the virtual boundary enabled flag. Whether an in-loop filtering process is performed across the virtual boundary is determined based on the virtual boundary enabled flag. The SPS includes information on the number of vertical virtual boundaries and the number of horizontal virtual boundaries, based on that a value of the SPS virtual boundary present flag is 1.SELECTED DRAWING: Figure 7
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This document relates to an image coding (encoding) apparatus and method for controlling loop filtering.

Background Art

[0002] In recent years, the demand for high-resolution and high-quality images / videos such as 4K or UHD (Ultra High Definition) images / videos of 8K or higher has been increasing in various fields. As the image / video data becomes higher in resolution and quality, the amount of information or bits transmitted relatively increases compared to existing image / video data. Therefore, when transmitting image data using a medium such as an existing wired or wireless broadband line, or storing image / video data using an existing storage medium, the transmission cost and storage cost increase.

[0003] In addition, in recent years, the interest and demand for immersive media such as VR (Virtual Reality), AR (Artificial Reality) content, and holograms have been increasing, and the broadcasting of images / videos having image characteristics different from real images, such as game images, has been increasing.

[0004] Accordingly, there is a need for a highly efficient image / video compression technique to effectively compress, transmit, store, and reproduce the information of high-resolution and high-quality images / videos having various characteristics as described above.

[0005] Specifically, there is a discussion on a plan for efficiently controlling loop filtering executed across a virtual boundary.

Summary of the Invention

Means for Solving the Problems

[0006] According to one embodiment of this document, a method and apparatus for enhancing the efficiency of image / video coding are provided.

[0007] According to one embodiment of this document, an efficient filtering application method and apparatus are provided.

[0008] According to one embodiment of this document, a method and apparatus for efficiently applying deblocking, SAO (Sample Adaptive Loop), and ALF (Adaptive Loop Filtering) are provided.

[0009] According to one embodiment of this document, in-loop filtering can be performed based on a virtual boundary.

[0010] According to one embodiment of this document, the SPS (Sequence Parameter Set) can have an SPS virtual boundary enable flag indicating whether in-loop filtering is performed across the virtual boundary.

[0011] According to one embodiment of this document, in-loop filtering can be performed across the virtual boundary based on the SPS virtual boundary enable flag.

[0012] According to one embodiment of this document, an encoding apparatus for performing video / image encoding is provided.

[0013] According to one embodiment of this document, a computer-readable digital storage medium storing encoded video / image information generated by the video / image encoding method disclosed in at least one of the embodiments of this document is provided.

[0014] According to one embodiment of this document, a computer-readable digital storage medium storing encoded information or encoded video / image information for performing the video / image decoding method disclosed in at least one of the embodiments of this document by a decoding device is provided.

Advantages of the Invention

[0015] According to one embodiment of this document, the overall image / video compression efficiency can be improved.

[0016] According to one embodiment of this document, the subjective / objective visual quality can be enhanced through efficient filtering.

[0017] The in-loop filtering procedure (process) based on the virtual boundary according to one embodiment of this document can save hardware resources.

[0018] According to one embodiment of this document, the in-loop filtering procedure based on the virtual boundary can be executed efficiently, and the filtering performance can be improved.

[0019] According to one embodiment of this document, the information for in-loop filtering based on the virtual boundary can be signaled efficiently.

Brief Description of the Drawings

[0020]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

DETAILED DESCRIPTION OF THE INVENTION

[0021] This document can be modified in various ways and can have various embodiments. Specific embodiments are illustrated in the drawings and will be described in detail. However, this is not intended to limit this document to specific embodiments. The terms commonly used in this specification are used only to describe specific embodiments and are not intended to limit the technical idea of this document. Singular expressions include plural expressions unless the context clearly indicates otherwise. Terms such as "including" or "having" in this specification are intended to specify the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, and it should be understood that the presence or addition possibility of one or more other features, numbers, steps, operations, components, parts, or combinations thereof is not precluded in advance.

[0022] On the one hand, each component in the drawings described in this document is independently illustrated for the convenience of explaining different characteristic functions, and it does not mean that each component is realized by separate hardware or separate software. For example, among the components, two or more components can be combined to form one component, and one component can also be divided into multiple components. As long as the embodiments in which the components are integrated and / or separated do not deviate from the essence of this document, they are included in the scope of rights of this document.

[0023] Hereinafter, with reference to the accompanying drawings, the preferred embodiments of this document will be described in more detail. Hereinafter, the same reference numerals will be used for the same components in the drawings, and redundant descriptions of the same components will be omitted.

[0024] This document relates to video / image coding. For example, the methods / embodiments disclosed in this document are related to the VVC (Versatile Video Coding) standard (ITU-T Rec.H.266), the next-generation video / image coding standard after VVC, or other video coding-related standards (for example, the HEVC (High Efficiency Video Coding) standard (ITU-T Rec.H.265), the EVC (Essential Video Coding) standard, the AVS2 standard, etc.).

[0025] This document presents various embodiments related to video / image coding, and unless otherwise stated, the above embodiments can also be executed in combination with each other.

[0026] In this document, "video" may mean a set of a series of "images" over time. "Picture" generally means a unit indicating one image in a specific time period, and "slice" / "tile" is a unit constituting a part of a picture in coding. A slice / tile may include one or more CTUs (Coding Tree Units). 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 include one or more tiles.

[0027] "Pixel" or "pel" may mean the smallest unit constituting one picture (or image). Also, the term "sample" may be used as a term corresponding to a pixel. A sample generally indicates a pixel or a pixel value, and can indicate only the pixel / pixel value of the luma component, or can also indicate only the pixel / pixel value of the chroma component. Alternatively, a sample can mean a pixel value in the spatial domain (domain), and when such a pixel value is converted to the frequency domain, it can also mean a conversion coefficient in the frequency domain.

[0028] "Unit" indicates a basic unit of image processing. A unit includes at least one of a specific area of a picture and information regarding the area. One unit includes one luma block and two chroma (e.g., cb, cr) blocks. A unit may be used interchangeably with terms such as "block" or "area" in some cases. In a general case, an M×N block includes a set (or array) of samples (or sample array) or transform coefficients composed of M columns and N rows.

[0029] In this document, " / " and "," are interpreted as "and / or". For example, "A / B" is interpreted as "A and / or B", and "A, B" is interpreted as "A and / or B". Additionally, "A / B / C" means "at least one of A, B, and / or C". Also, "A, B, C" also means "at least one of A, B, and / or C".

[0030] Additionally, in this document, "or" is interpreted as "and / or". For example, "A or B" can mean 1) only "A", 2) only "B", or 3) "A and B". In other words, "or" in this document can mean "additionally or alternatively".

[0031] In this specification, "at least one of A and B" can mean "only A", "only B", or "both A and B". Also, in this specification, expressions such as "at least one of A or B" and "at least one of A and / or B" can be interpreted in the same way as "at least one of A and B".

[0032] Also, in this specification, "at least one of A, B, and C" can mean "only A", "only B", "only C", or "any combination of A, B, and C". Also, "at least one of A, B, or C" or "at least one of A, B, and / or C" can mean "at least one of A, B, and C".

[0033] Also, the parentheses used in this specification can mean "for example". Specifically, when it is displayed as "prediction (intra prediction)", "intra prediction" can be proposed as an example of "prediction". In other words, the "prediction" in this specification is not limited to "intra prediction", and "intra prediction" can be proposed as an example of "prediction". Also, when it is displayed as "prediction (i.e., intra prediction)", "intra prediction" can be proposed as an example of "prediction".

[0034] The technical features separately described within one drawing in this specification may be realized separately or simultaneously.

[0035] FIG. 1 schematically shows an example of a video / image coding system to which this document can be applied.

[0036] As shown in FIG. 1, the video / image coding system can include a source device and a receiving device. The source device can transmit encoded video / image information or data to the receiving device via a digital storage medium or a network in file or streaming form.

[0037] The above source device can include a video source, an encoding device, and a transmitting unit. The above receiving device can include a receiving unit, a decoding device, and a renderer. The above encoding device can be referred to as a video / image encoding device, and the above decoding device can be referred to as a video / image decoding device. A transmitter can be provided in the encoding device. A receiver can be provided in the decoding device. The renderer can include a display unit, and the display unit can also be composed of a separate device or an external component.

[0038] The video source can obtain video / images through processes such as video / image capture, synthesis, or generation (processing, process). The video source can include a video / image capture device and / or a video / image generation device. The video / image capture device can include, for example, one or more cameras, a video / image archive containing previously captured video / images, etc. The video / image generation device can include, for example, a computer, a tablet, and a smartphone, etc., and can (electronically) generate video / images. For example, virtual video / images can be generated via a computer or the like, and in this case, the video / image capture process can be replaced by the process of generating related data.

[0039] The encoding device can encode input video / images. The encoding device can perform a series of procedures such as prediction, transformation, quantization, etc. for compression and coding efficiency. The encoded data (encoded video / image information) can be output in the form of a bitstream.

[0040] The transmitting unit can transmit the encoded video / image information or data output in bitstream form to the receiving unit of the receiving device via a digital storage medium or a network in file or streaming form. The digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitting unit can include elements for generating media files via a predetermined file format and can include elements for transmission via a broadcast / communication network. The receiving unit can receive / extract the above bitstream and transmit it to the decoding device.

[0041] The decoding device can decode the video / image by performing a series of procedures such as inverse quantization, inverse transformation, prediction, etc., corresponding to the operation of the encoding device.

[0042] The renderer can render the decoded video / image. The rendered video / image can be displayed via the display unit.

[0043] Figure 2 is a drawing schematically explaining the configuration of a video / image encoding device to which this document can be applied. Hereinafter, the video encoding device can include the image encoding device.

[0044] As shown in FIG. 2, the encoding device 200 can 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 can include an inter-prediction unit 221 and an intra-prediction unit 222. The residual processor 230 can include a transformer 232, a quantizer 233, a dequantizer 234, and an inverse transformer 235. The residual processor 230 can further include a subtractor (231). The adder 250 can be called a reconstructor or a reconstructed block generator. The above-described image partitioner 210, predictor 220, residual processor 230, entropy encoder 240, adder 250, and filter 260 can be constituted by one or more hardware components (for example, an encoder chip set or a processor) according to an embodiment. Further, the memory 270 can include a DPB (Decoded Picture Buffer) and can also be constituted by a digital storage medium. The above hardware component can further include the memory 270 as an internal / external component.

[0045] The image segmentation unit 210 can divide an input image (or picture, frame) input to the encoding device 200 into one or more processing units. As an example, the processing unit can be referred to as a coding unit (CU). In this case, the coding unit can be recursively divided from a coding tree unit (CTU) or a largest coding unit (LCU) by a QTBTTT (Quad-Tree Binary-Tree Ternary-Tree) structure. For example, one coding unit can be divided into a plurality of coding units with a deeper depth based on a quadtree (quad tree) structure, a binary tree (binary tree) structure, and / or a ternary tree (ternary) structure. In this case, for example, the quadtree structure can be applied first, and the binary tree structure and / or the ternary tree structure can be applied thereafter. Alternatively, the binary tree structure can also be applied first. The coding procedure according to the present disclosure can be performed based on the final coding unit that cannot be further divided. In this case, based on the coding efficiency according to the image characteristics, etc., the largest coding unit can be used as the final coding unit, or, if necessary, the coding unit can be recursively divided into coding units with a deeper depth so that a coding unit of an optimal size can be used as the final coding unit. Here, the coding procedure can include procedures such as prediction, transformation, and restoration described later. As another example, the processing unit can further include a prediction unit (PU: Prediction Unit) or a transform unit (TU: Transform Unit). In this case, the prediction unit and the transform unit can each be divided or partitioned from the final coding unit described above.The prediction unit can be a unit of sample prediction, and the conversion unit can be a unit for deriving a conversion coefficient and / or a unit for deriving a residual signal from the conversion coefficient.

[0046] The term "unit" can, in some cases, be used interchangeably with terms such as "block" or "area". In general, an M×N block can represent a set such as samples or transform coefficients consisting of M columns and N rows. Samples can generally represent pixels or pixel values, and can represent only the pixels / pixel values of the luma component, or only the pixels / pixel values of the chroma component. A sample can be used as a term corresponding to the pixels (or pels) that make up one picture (or image).

[0047] The subtraction unit 231 can subtract the prediction signal (predicted block, predicted sample, or predicted sample array) output from the prediction unit 220 from the 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 can perform a prediction on the block to be processed (hereinafter referred to as the current block), and generate a predicted block including predicted samples for the current block. The prediction unit 220 can determine whether intra prediction or inter prediction is applied in units of the current block or CU. The prediction unit can generate various pieces of information related to prediction, such as prediction mode information, and transmit them to the entropy encoding unit 240, as will be described later in the description of each prediction mode. The information related to prediction can be encoded by the entropy encoding unit 240 and output in the form of a bit stream.

[0048] The intra prediction unit 222 can predict the current block by referring to samples within the current picture. The samples to be referred to can be located adjacent to the current block or remotely located depending on the prediction mode. In intra prediction, the prediction mode can include a plurality of non-directional modes and a plurality of directional modes. The non-directional modes can include, for example, the DC mode and the planar mode. The directional modes can include, for example, 33 directional prediction modes or 65 directional prediction modes depending on the degree of fineness of the prediction direction. However, this is an example, and a greater or lesser number of directional prediction modes can be used depending on the setting. The intra prediction unit 222 can also determine the prediction mode to be applied to the current block using the prediction mode applied to the adjacent block.

[0049] The inter prediction unit 221 can derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, sub-blocks, or samples based on the correlation of the motion information between adjacent blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the adjacent blocks can 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 block can be the same or different. The temporal neighboring blocks can be called by names such as collocated reference blocks and collocated CUs (col CUs), and the reference picture including the temporal neighboring blocks can also be called a collocated picture (colPic). For example, the inter prediction unit 221 can construct a motion information candidate list based on adjacent blocks, and generate information indicating which candidate is used to derive the motion vector and / or reference picture index of the current block. Inter prediction can be performed based on various prediction modes. For example, in the skip mode and the merge mode, the inter prediction unit 221 can use the motion information of adjacent blocks as the motion information of the current block. In the skip mode, unlike the merge mode, the residual signal may not be transmitted.In the case of the Motion Vector Prediction (MVP) mode, the motion vector of an adjacent block is used as a motion vector predictor, and the motion vector of the current block can be indicated by signaling the motion vector difference.

[0050] The prediction unit 220 can generate a prediction signal based on various prediction methods described later. For example, the prediction unit can apply not only intra prediction or inter prediction for the prediction of one block, but also apply intra prediction and inter prediction simultaneously. This can be called Combined Inter and Intra Prediction (CIIP). In addition, the prediction unit can execute Intra Block Copy (IBC) for the prediction of a block. The intra block copy can be used for content image / video coding such as games, for example, like SCC (Screen Content Coding). IBC basically performs prediction within the current picture, but can be performed in the same way as inter prediction in terms of deriving a reference block within the current picture. That is, IBC can use at least one of the inter prediction techniques described in this document.

[0051] The prediction signal generated via the inter prediction unit 221 and / or the intra prediction unit 222 (including) can be used to generate a restored signal or can be used to generate a residual signal. The conversion unit 232 can apply a conversion technique to the residual signal to generate transform coefficients. For example, the conversion technique can include DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), GBT (Graph-Based Transform), or CNT (Conditionally Non-linear Transform), etc. Here, GBT means the conversion obtained from this graph when expressing the relationship information between pixels with a graph. CNT means the conversion obtained based on generating a prediction signal using all previously reconstructed pixels. Also, the conversion process may be applied to a pixel block having the same size of a square or may be applied to a block of a variable size that is not square.

[0052] The quantization unit 233 quantizes the transform coefficients and transmits them to the entropy encoding unit 240. The entropy encoding unit 240 can encode the quantized signal (information regarding the quantized transform coefficients) and output it as a bitstream. The information regarding the quantized transform coefficients can be referred to as residual information. The quantization unit 233 can reorder the block-form quantized transform coefficients in a one-dimensional vector form based on the coefficient scan order, and can also generate the information regarding the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form. The entropy encoding unit 240 can perform various encoding methods such as exponential Golomb, CAVLC (Context-Adaptive Variable Length Coding), CABAC (Context-Adaptive Binary Arithmetic Coding), etc. The entropy encoding unit 240 can also encode, together or separately, information necessary for video / image restoration (e.g., values of syntax elements) in addition to the quantized transform coefficients. The encoded information (e.g., encoded video / image information) can be transmitted or stored in the form of a bitstream in units of NAL (Network Abstraction Layer) units. The video / image information can further include information regarding various parameter sets such as an Adaptation Parameter Set (APS), a Picture Parameter Set (PPS), a Sequence Parameter Set (SPS), or a Video Parameter Set (VPS). Also, the video / image information can further include general constraint information. In this document, the signaling / transmitted information and / or syntax elements described later can be encoded through the above-described encoding procedure and included in the above bitstream. The above bitstream can be transmitted via a network or stored in a digital storage medium.Here, the network can include a broadcast network and / or a communication network, etc., and the digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. For the signal output from the entropy encoding unit 240, a transmission unit (not shown) for transmission and / or a storage unit (not shown) for storage can be configured as internal / external elements of the encoding device 200, or the transmission unit can also be included in the entropy encoding unit 240.

[0053] The quantized transform coefficients output from the quantization unit 233 can be used to generate a prediction signal. For example, by applying inverse quantization and inverse transformation to the quantized transform coefficients via the inverse quantization unit 234 and the inverse transformation unit 235, a residual signal (residual block or residual sample) can be restored. The addition unit 155 can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample, or reconstructed sample array) by adding the restored residual signal to the prediction signal output from the prediction unit 220. When there is no residual for the block to be processed, as in the case where the skip mode is applied, the predicted block can be used as the reconstructed block. The generated reconstructed signal can be used for intra prediction of the next block to be processed within the current picture, and as will be described later, can also be used for inter prediction of the next picture after being filtered.

[0054] On the other hand, LMCS (Luma Mapping with Chroma Scaling) can also be applied in the picture encoding and / or restoration process.

[0055] The filtering unit 260 can apply filtering to the restored signal to improve subjective / objective image quality. For example, the filtering unit 260 can apply various filtering methods to the restored picture to generate a modified restored picture, and store the modified restored picture in the memory 270, specifically, in the DPB of the memory 270. The various filtering methods can include, for example, deblocking filtering, Sample Adaptive Offset (SAO), adaptive loop filter, bilateral filter, and the like. The filtering unit 260 can 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 can be encoded by the entropy encoding unit 240 and output in the form of a bitstream.

[0056] The modified restored picture transmitted to the memory 270 can be used as a reference picture in the inter prediction unit 221. When inter prediction is applied through this, the encoding device can avoid prediction mismatches between the encoding device 100 and the decoding device, and can also improve the encoding efficiency.

[0057] The DPB of the memory 270 can store the modified restored picture for use as a reference picture in the inter prediction unit 221. The memory 270 can store the motion information of the blocks for which the motion information in the current picture has been derived (or encoded) and / or the motion information of the blocks in the already restored picture. The stored motion information can be transmitted to the inter prediction unit 221 for utilization as the motion information of spatially adjacent blocks or temporally adjacent blocks. The memory 270 can store the restored samples of the restored blocks in the current picture and transmit them to the intra prediction unit 222.

[0058] FIG. 3 is a drawing schematically explaining the configuration of a video / image decoding apparatus to which the present document can be applied.

[0059] As shown in FIG. 3, the decoding apparatus 300 can 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 can include an inter-predictor 331 and an intra-predictor 332. The residual processor 320 can include a dequantizer 321 and an inverse transformer 321. The above-described entropy decoder 310, residual processor 320, predictor 330, adder 340, and filter 350 can be configured by one hardware component (e.g., a decoder chipset or a processor) according to an embodiment. Also, the memory 360 can include a DPB (Decoded Picture Buffer) and can also be configured by a digital storage medium. The above hardware component can further include the memory 360 as an internal / external component.

[0060] If a bitstream including video / image information is input, the decoding device 300 can restore an image corresponding to the process in which the video / image information was processed by the encoding device in FIG. 3. For example, the decoding device 300 can derive units / blocks based on the block splitting related information obtained from the above bitstream. The decoding device 300 can perform decoding using the processing units applied in the encoding device. Therefore, the processing unit for decoding can be, for example, a coding unit, and the coding unit can be split from a coding tree unit or a maximum coding unit according to a quadtree structure, a binary tree structure, and / or a ternary tree structure. One or more transform units can be derived from the coding unit. Then, the restored image signal decoded and output via the decoding device 300 can be reproduced via a reproducing device.

[0061] The decoding device 300 can receive the signal output from the encoding device in FIG. 3 in the form of a bitstream, and the received signal can be decoded via the entropy decoding unit 310. For example, the entropy decoding unit 310 can parse the above bitstream to derive information (e.g., video / image information) necessary for image restoration (or picture restoration). The above video / image information can further include information regarding various parameter sets such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). Also, the above video / image information can further include general constraint information. The decoding device can further decode a picture based on the information regarding the above parameter sets and / or the above general constraint information. The signaling / received information and / or syntax elements described later in this document can be decoded via the above decoding procedure and obtained from the above bitstream. For example, the entropy decoding unit 310 can decode the information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output the value of the syntax element necessary for image restoration and the quantized value of the transform coefficient regarding the residual. More specifically, the CABAC entropy decoding method receives the bin corresponding to each syntax element in the bitstream, determines a context model using the syntax element information to be decoded, the decoding information of adjacent and the block to be decoded, or the information of the symbol / bin decoded in the previous step, predicts the occurrence probability of the bin by the determined context model, performs arithmetic decoding of the bin, and can generate a symbol corresponding to the value of each syntax element. At this time, after determining the context model, the CABAC entropy decoding method can update the context model using the information of the symbol / bin decoded for the context model of the next symbol / bin.Among the information decoded by the entropy decoding unit 310, the information related to prediction is provided to the prediction unit 330, and the residual information that has undergone entropy decoding by the entropy decoding unit 310, that is, the quantized transform coefficients and related parameter information, can be input to the inverse quantization unit 321. Also, among the information decoded by the entropy decoding unit 310, the information related to filtering can be provided to the filtering unit 350. On the other hand, a receiving unit (not shown) that receives the signal output from the encoding device can be further configured as an internal / external element of the decoding device 300, or the receiving unit can be a component of the entropy decoding unit 310. On the other hand, the decoding device according to this document can be called a video / image / picture decoding device, and the above decoding device can also be classified into an information decoder (video / image / picture information decoder) and a sample decoder (video / image / picture sample decoder). The above information decoder can include the above entropy decoding unit 310, and the above sample decoder can include at least one of the above inverse quantization unit 321, inverse transform unit 322, prediction unit 330, addition unit 340, filtering unit 350, and memory 360.

[0062] In the inverse quantization unit 321, the quantized transform coefficients can be inverse quantized to output transform coefficients. The inverse quantization unit 321 can reorder the quantized transform coefficients in a two-dimensional block form. In this case, the above reordering can be performed based on the coefficient scan order performed by the encoding device. The inverse quantization unit 321 can perform inverse quantization on the quantized transform coefficients using quantization parameters (for example, quantization step size information) to obtain transform coefficients.

[0063] In the inverse transform unit 322, the transform coefficients are inverse transformed to obtain a residual signal (residual block, residual sample array).

[0064] The prediction unit can perform prediction on the current block and generate a predicted block that includes a prediction sample for the current block. The prediction unit can determine whether intra prediction or inter prediction is to be applied to the current block based on the information regarding the prediction output from the entropy decoding unit 310, and can determine a specific intra / inter prediction mode.

[0065] The prediction unit can generate a prediction signal based on various prediction methods described later. For example, the prediction unit can not only apply intra prediction or inter prediction for predicting one block, but also apply intra prediction and inter prediction simultaneously. This can be called Combined Inter and Intra Prediction (CIIP). Also, the prediction unit can perform Intra Block Copy (IBC) for predicting a block. The intra block copy can be used for content image / video coding such as games, for example, like SCC (Screen Content Coding). IBC basically performs prediction within the current picture, but can be performed in the same way as inter prediction in terms of deriving a reference block within the current picture. That is, IBC can utilize at least one of the inter prediction techniques described in this document. The palette mode can be regarded as an example of intra coding or intra prediction.

[0066] The intra prediction unit 331 can predict the current block by referring to samples within the current picture. The samples to be referred to can be located adjacent to or away from the current block depending on the prediction mode. In intra prediction, the prediction mode can include a plurality of non - directional modes and a plurality of directional modes. The intra prediction unit 331 can also determine the prediction mode to be applied to the current block using the prediction mode applied to an adjacent block.

[0067] The inter prediction unit 332 can derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, sub-blocks, or samples based on the correlation of the motion information between adjacent blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the adjacent blocks can include spatial neighboring blocks existing in the current picture and temporal neighboring blocks existing in the reference picture. For example, the inter prediction unit 332 can construct a motion information candidate list based on the adjacent blocks, and derive the motion vector and / or reference picture index of the current block based on the received candidate selection information. Inter prediction can be performed based on various prediction modes, and the information regarding the prediction can include information indicating the mode of inter prediction for the current block.

[0068] The addition unit 340 can generate a restored signal (restored picture, restored block, restored sample array) by adding the obtained residual signal to the predicted signal (predicted block, predicted sample array) output from the prediction unit. When there is no residual for the block to be processed, as in the case where the skip mode is applied, the predicted block can be used as the restored block.

[0069] The addition unit 340 can be called a restoration unit or a restoration block generation unit. The generated restoration signal can be used for intra prediction of the next processing target block within the current picture, and as will be described later, can be output after filtering, or can also be used for inter prediction of the next picture.

[0070] On the other hand, LMCS (Luma Mapping with Chroma Scaling) can also be applied during the picture decoding process.

[0071] The filtering unit 350 can apply filtering to the restoration signal to improve the subjective / objective image quality. For example, the filtering unit 350 can apply various filtering methods to the restored picture to generate a modified restored picture, and can transmit the modified restored picture to the memory 360, specifically, to the DPB of the memory 360. The various filtering methods can include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.

[0072] The (modified) restored picture stored in the DPB of the memory 360 can be used as a reference picture in the inter prediction unit 332. The memory 360 can store the motion information of the block where the motion information within the current picture has been derived (or decoded) and / or the motion information of the blocks within the already restored picture. The stored motion information can be transmitted to the inter prediction unit 332 for utilization as the motion information of spatially adjacent blocks or temporally adjacent blocks. The memory 360 can store the restored samples of the restored blocks within the current picture and can transmit them to the intra prediction unit 331.

[0073] In this specification, the embodiments described in the prediction unit 330, inverse quantization unit 321, inverse transformation unit 322, filtering unit 350, etc. of the decoding apparatus 300 can each be applied in the same or corresponding manner to the prediction unit 220, inverse quantization unit 234, inverse transformation unit 235, filtering unit 260, etc. of the encoding apparatus 200.

[0074] As described above, in performing video coding, prediction is performed to increase the compression efficiency. Through this, a predicted block including prediction samples for the current block, which is the block to be coded, can be generated. Here, the predicted block includes prediction samples in the spatial domain (or pixel domain). The predicted block is derived in the same way in the encoding apparatus and the decoding apparatus, and the encoding apparatus can increase the image coding efficiency by signaling information (residual information) regarding the residual between the original block and the predicted block, which is not the original sample value of the original block, to the decoding apparatus. The decoding apparatus can derive a residual block including residual samples based on the residual information, and combine the residual block and the predicted block to generate a restored block including restored samples, and can generate a restored picture including the restored block.

[0075] The residual information can be generated through the conversion and quantization procedures. For example, the encoding device derives a residual block between the original block and the predicted block, executes a conversion procedure on the residual samples (residual sample array) included in the residual block to derive conversion coefficients, and executes a quantization procedure on the conversion coefficients to derive quantized conversion coefficients, so as to signal (via a bitstream) the relevant residual information to the decoding device. Here, the residual information can include information such as the value information, position information, conversion technique, conversion kernel, quantization parameter, etc. of the quantized conversion coefficients. The decoding device can execute an inverse quantization / inverse conversion procedure based on the residual information to derive residual samples (or a residual block). The decoding device can generate a restored picture based on the predicted block and the residual block. Also, the encoding device can inverse quantize / inverse convert the quantized conversion coefficients for reference in the inter prediction of subsequent pictures to derive a residual block, and generate a restored picture based on this.

[0076] In this document, at least one of quantization / inverse quantization and / or conversion / inverse conversion can be omitted. When the quantization / inverse quantization is omitted, the quantized conversion coefficients can be referred to as conversion coefficients. When the conversion / inverse conversion is omitted, the conversion coefficients can also be referred to as coefficients or residual coefficients, or, for the sake of uniformity of expression, can still be referred to as conversion coefficients.

[0077] In this document, the quantized transform coefficients and the transform coefficients can each be referred to as a transform coefficient and a scaled transform coefficient, respectively. In this case, the residual information can include information regarding the transform coefficient(s), and the information regarding the transform coefficient(s) can be signaled via a residual coding syntax. The transform coefficient can be derived based on the residual information (or the information regarding the transform coefficient(s)), and the scaled transform coefficient can be derived via an inverse transform (scaling) with respect to the transform coefficient. Based on an inverse transform (transformation) with respect to the scaled transform coefficient, a residual sample can be derived. This can be applied / expressed similarly in other parts of this document.

[0078] The prediction unit of the encoding / decoding device can derive a prediction sample by performing inter prediction in units of blocks. Inter prediction can indicate a prediction derived in a way that depends 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 can be derived (induced) based on a reference block (reference sample array) specified by a motion vector on a reference picture indicated by the index of the reference picture. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information of the current block can be predicted in units of blocks, sub-blocks, or samples based on the correlation of the motion information between adjacent blocks and the current block. The above motion information can include a motion vector and an index of a reference picture. The above motion information can further include information on the inter prediction type (L0 prediction, L1 prediction, Bi prediction, etc.). When inter prediction is applied, the adjacent blocks can include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. The reference picture including the above reference block and the reference picture including the above temporal neighboring block may be the same or different. The above temporal neighboring block may be called by names such as a collocated reference block or a collocated CU (colCU), and the reference picture including the above temporal neighboring block may also be called a collocated picture (colPic). For example, a candidate list of motion information can be configured based on the adjacent blocks of the current block, and flag or index information indicating which candidate is selected (used) can be signaled in order to derive the motion vector and / or the index of the reference picture of the current block.Inter prediction is performed based on various prediction modes. For example, in the case of the skip mode and the merge mode, the motion information of the current block may be the same as the motion information of the selected adjacent block. In the case of the skip mode, unlike the merge mode, the residual signal may not be transmitted. In the case of the motion vector prediction (MVP) mode, the motion vector of the selected adjacent block can be used as a motion vector predictor, and the motion vector difference can be signaled. In this case, the motion vector of the current block can be derived using the sum of the motion vector predictor and the motion vector difference.

[0079] The above motion information can include L0 motion information and / or L1 motion information according to the inter-prediction type (such as L0 prediction, L1 prediction, Bi prediction, etc.). The motion vector in the L0 direction can be called the L0 motion vector or MVL0, and the motion vector in the L1 direction can be called the L1 motion vector or MVL1. The prediction based on the L0 motion vector can be called L0 prediction, the prediction based on the L1 motion vector can be called L1 prediction, and the prediction based on both the above L0 motion vector and the above L1 motion vector can be called dual (Bi) prediction. Here, the L0 motion vector can indicate the motion vector related to the reference picture list L0 (L0), and the L1 motion vector can indicate the motion vector related to the reference picture list L1 (L1). The reference picture list L0 can include, as reference pictures, pictures that are earlier in output order than the above current picture, and the reference picture list L1 can include pictures that are later in output order than the above current picture. The above earlier pictures can be called forward (reference) pictures, and the above later pictures can be called backward (reference) pictures. The reference picture list L0 can further include, as reference pictures, pictures that are later in output order than the above current picture. In this case, the above earlier pictures are indexed first within the reference picture list L0, and the above later pictures can be indexed thereafter. The reference picture list L1 can further include, as reference pictures, pictures that are earlier in output order than the above current picture. In this case, the above later pictures are indexed first within the reference picture list 1, and the above earlier pictures can be indexed thereafter. Here, the output order can correspond to the POC (Picture Order Count) order (order).

[0080] FIG. 4 exemplarily shows a hierarchical structure for a coded image / video.

[0081] As shown in FIG. 4, the coded image / video is divided into a VCL (Video Coding Layer), which performs the decoding process of the image / video and handles itself, a lower system that transmits and stores the coded information, and a NAL (Network Abstraction Layer) that exists between the VCL and the lower system and is responsible for the network adaptation function.

[0082] In the VCL, VCL data including compressed image data (slice data) can be generated, or parameter sets including information such as a Picture Parameter Set (PPS), a Sequence Parameter Set (SPS), and a Video Parameter Set (VPS), or Supplemental Enhancement Information (SEI) messages that are additionally required in the decoding process of the image can be generated.

[0083] In the NAL, a NAL unit can be generated by adding header information (NAL unit header) to the RBSP (Raw Byte Sequence Payload) generated in the VCL. At this time, the RBSP means slice data, parameter sets, SEI messages, etc. generated in the VCL. The NAL unit header can include NAL unit type information specified by the RBSP data included in the corresponding NAL unit.

[0084] As shown in the above drawings, the NAL unit can be divided into a VCL NAL unit and a Non-VCL NAL unit by the RBSP generated in the VCL. The VCL NAL unit can mean a NAL unit including information related to the image (slice data), and the Non-VCL NAL unit can mean a NAL unit including information (parameter set or SEI message) required for decoding the image.

[0085] The above-mentioned VCL NAL units and Non-VCL NAL units can be transmitted via a network with header information attached according to the data standards of the lower-level system. For example, the NAL unit can be transformed into a data form of a predetermined standard such as the H.266 / VVC file format, RTP (Real-time Transport Protocol), TS (Transport Stream), etc., and transmitted via various networks.

[0086] As described above, the NAL unit type can be specified by the RBSP data structure included in the corresponding NAL unit, and information regarding such NAL unit type can be stored in the NAL unit header and signaled.

[0087] For example, depending on whether the NAL unit contains information related to an image (slice data), it can be roughly classified into a VCL NAL unit type and a Non-VCL NAL unit type. The VCL NAL unit type can be classified according to the nature and type of the picture included in the VCL NAL unit, and the Non-VCL NAL unit type can be classified according to the type of parameter set, etc.

[0088] The following is an example of the NAL unit type specified according to the type of parameter set included in the Non-VCL NAL unit type, etc.

[0089] - APS (Adaptation Parameter Set) NAL unit: Type for the NAL unit containing APS

[0090] - DPS (Decoding Parameter Set) NAL unit: Type for the NAL unit containing DPS

[0091] -VPS (Video Parameter Set) NAL unit: Type for NAL unit containing VPS

[0092] -SPS (Sequence Parameter Set) NAL unit: Type for NAL unit containing SPS

[0093] -PPS (Picture Parameter Set) NAL unit: Type for NAL unit containing PPS

[0094] -PH (Picture Header) NAL unit: Type for NAL unit containing PH

[0095] The above-mentioned NAL unit types have syntax information for the NAL unit types, and the above syntax information can be stored in the NAL unit header and signaled. For example, the above syntax information is nal_unit_type, and the NAL unit type can be specified by the nal_unit_type value.

[0096] On the other hand, as described above, one picture can include a plurality of slices, and one slice can include a slice header and slice data. In this case, one picture header can be further added for a plurality of slices (slice header and slice data set) within one picture. The above picture header (picture header syntax) can include information / parameters that are commonly applicable to the above picture. In this document, a slice can be mixed or replaced with a tile group. Also, in this document, a slice header can be mixed or replaced with a type group header.

[0097] The above slice header (slice header syntax, slice header information) can include information / parameters that are commonly applicable to the above slices. The above APS (APS syntax) or PPS (PPS syntax) can include information / parameters that are commonly applicable to one or more slices or pictures. The above SPS (SPS syntax) can include information / parameters that are commonly applicable to one or more sequences. The above VPS (VPS syntax) can include information / parameters that are commonly applicable to multi-layers. The above DPS (DPS syntax) can include information / parameters that are commonly applicable to the entire video. The above DPS can include information / parameters related to the concatenation (joining) of CVS (Coded Video Sequence). In this document, the high level syntax (HLS) can include at least one of the above APS syntax, PPS syntax, SPS syntax, VPS syntax, DPS syntax, picture header syntax, and slice header syntax.

[0098] In this document, the image / video information encoded from an encoding device and signaled in the form of a bitstream to a decoding device can include not only information related to partitioning within a picture, intra / inter prediction information, residual information, in-loop filtering information, etc., but also the information included in the above slice header, the information included in the above picture header, the information included in the above APS, the information included in the above PPS, the information included in the SPS, the information included in the VPS, and / or the information included in the DPS. Also, the above image / video information can further include the information of the NAL unit header.

[0099] On the one hand, in order to compensate for the difference between the original (original) image and the restored image due to errors occurring in the compression encoding process such as quantization, as described above, an in-loop filtering procedure can be executed on the restored sample or restored picture. As described above, in-loop filtering can be executed in the filter section of the encoding device and the filter section of the decoding device, and a deblocking filter, SAO, and / or an adaptive loop filter (ALF) can be applied. For example, the ALF procedure can be executed after the deblock filtering procedure and / or the SAO procedure are completed. However, also in this case, the deblock filtering procedure and / or the SAO procedure can be omitted.

[0100] Specific descriptions regarding picture restoration and filtering are described below. In image / video coding, a restored block can be generated based on intra prediction / inter prediction for each block unit, and a restored picture including the restored block can be generated. When the current picture / slice is an I picture / slice, the blocks included in the current picture / slice can be restored based only on intra prediction. On the other hand, when the current picture / slice is a P or B picture / slice, the blocks included in the current picture / slice can be restored based on intra prediction or inter prediction. In this case, intra prediction can be applied to some of the blocks within the current picture / slice, and inter prediction can also be applied to the remaining blocks.

[0101] Intra prediction can indicate a prediction that generates a prediction sample for a current block based on reference samples within a picture (hereinafter referred to as the current picture) to which the current block belongs. When intra prediction is applied to the current block, adjacent reference samples used for intra prediction of the current block can be derived. The adjacent reference samples of the current block can include a total of 2×nH samples adjacent to the left boundary of the current block of size nW×nH and adjacent to the bottom-left, samples adjacent to the top boundary of the current block and a total of 2×nW samples adjacent to the top-right, and 1 sample adjacent to the top-left of the current block. Alternatively, the adjacent reference samples of the current block can also include a plurality of rows of upper adjacent samples and a plurality of columns of left adjacent samples. Also, the adjacent reference samples of the current block can include a total of nH samples adjacent to the right boundary of the current block of size nW×nH, a total of nW samples adjacent to the bottom boundary of the current block, and 1 sample adjacent to the bottom-right of the current block.

[0102] However, some of the adjacent reference samples of the current block may not yet be decoded or may not be available. In this case, the decoder can substitute samples that are not available with samples that are available to form adjacent reference samples used for prediction. Alternatively, adjacent reference samples used for prediction can be formed through interpolation of available samples.

[0103] When an adjacent reference sample is derived, (i) a predicted sample can be derived based on the average or interpolation of the neighboring reference samples of the current block, and (ii) the predicted sample can also be derived based on the reference samples among the adjacent reference samples of the current block that exist in a specific (predicted) direction with respect to the predicted sample. In the case of (i), it is called a non-directional mode or a non-angle mode, and in the case of (ii), it can be called a directional mode or an angular mode. Also, based on the predicted sample of the current block among the above adjacent reference samples, the predicted sample can also be generated through interpolation between the second adjacent sample and the first adjacent sample located in the opposite direction of the prediction direction of the intra prediction mode of the current block. The above-mentioned case can be called Linear Interpolation Intra Prediction (LIP). Also, a chroma predicted sample can be generated based on luma samples using a linear model. In this case, it can be called the LM mode. Also, a temporary predicted sample of the current block is derived based on the filtered adjacent reference samples, and the predicted sample of the current block is derived by performing a weighted sum of at least one reference sample derived by the intra prediction mode among the existing adjacent reference samples, that is, the non-filtered adjacent reference samples and the temporary predicted sample. The above-mentioned case can be called PDPC (Position Dependent Intra Prediction). Also, intra prediction coding can be performed by selecting the reference sample line with the highest prediction accuracy (precision) from among the adjacent multiple reference sample lines of the current block and using the reference samples located in the prediction direction on the corresponding line, and signaling the reference sample line used at this time to the decoding device.In the above-described case, it can be called Multi-Reference Line (MRL) intra prediction or MRL-based intra prediction. Also, the current block can be divided into vertical or horizontal sub-partitions, and intra prediction can be performed based on the same intra prediction mode, and adjacent reference samples can be derived and used in units of the above sub-partitions. That is, in this case, the intra prediction mode for the current block is also applied to the above sub-partitions, and by deriving and using adjacent reference samples in units of the above sub-partitions, in some cases, the intra prediction performance can be improved. Such a prediction method can be called Intra Sub-Partitions (ISP) or ISP-based intra prediction. The above-described intra prediction methods can be called intra prediction types, distinguished from the intra prediction modes in Sections 1 and 2 of the table of contents. The above intra prediction types can be called by various terms such as intra prediction techniques or additional intra prediction modes. For example, the above intra prediction type (or additional intra prediction mode, etc.) can include at least one of the above-described LIP, PDPC, MRL, and ISP. A general intra prediction method excluding specific intra prediction types such as the above LIP, PDPC, MRL, and ISP can be called a normal intra prediction type. The normal intra prediction type can be generally applied when the above specific intra prediction types are not applied, and prediction can be performed based on the above-described intra prediction modes. On the other hand, if necessary, post-processing filtering for the derived prediction samples can also be performed.

[0104] Specifically, the intra prediction procedure can include an intra prediction mode / type determination step, an adjacent reference sample derivation step, and an intra prediction mode / type-based prediction sample derivation step. Also, if necessary, a post-processing filtering step for the derived prediction samples can be performed.

[0105] A restored picture modified by an in-loop filtering procedure is generated, and the modified restored picture is output as a decoded picture from the decoding device. It is also stored in the decoded picture buffer or memory of the encoding / decoding device and can be used as a reference picture in the inter-prediction procedure during picture encoding / decoding later. The in-loop filtering procedure includes, as described above, a deblocking filtering procedure, a SAO (Sample Adaptive Offset) procedure, and / or an ALF (Adaptive Loop Filter) procedure, etc. In this case, one or some of the deblocking filtering procedure, SAO (Sample Adaptive Offset) procedure, ALF (Adaptive Loop Filter) procedure, and bilateral filter procedure may be sequentially applied, or all of them may be sequentially applied. For example, after the deblocking filtering procedure is applied to the restored picture, the SAO procedure may be performed. Alternatively, for example, after the deblocking filtering procedure is applied to the restored picture, the ALF procedure may be performed. This is also done in the same way in the encoding device.

[0106] Deblocking filtering is a filtering technique that removes distortions occurring at the boundaries between blocks in the restored picture. The deblocking filtering procedure can, for example, derive a target boundary in the restored picture, determine the bs (boundary strength) for the target boundary, and perform deblocking filtering for the target boundary based on the bs. The bs can be determined based on, for example, the prediction modes of two adjacent blocks of the target boundary, the motion vector difference, whether the reference pictures are the same, and whether there are non-zero valid coefficients.

[0107] SAO is a method for compensating the offset difference between the restored picture and the original picture in sample units, and can be applied based on types such as, for example, Band Offset and Edge Offset. According to SAO, samples can be classified into different categories by each SAO type, and an offset value can be added to each sample based on the category. The filtering information for SAO can include information on whether SAO can be applied, SAO type information, SAO offset value information, etc. SAO can also be applied to the restored picture after the above deblocking filtering is applied.

[0108] ALF (Adaptive Loop Filter) is a technique for filtering in sample units based on filter coefficients according to the filter shape for the restored picture. The encoding device can determine whether ALF can be applied, the ALF shape and / or the ALF filtering coefficient, etc. through comparison between the restored picture and the original picture, and can signal it to the decoding device. That is, the filtering information for ALF can include information on whether ALF can be applied, ALF filter shape information, ALF filtering coefficient information, etc. ALF can also be applied to the restored picture after the above deblocking filtering is applied.

[0109] Figure 5 shows an example of the ALF filter shape.

[0110] (a) of FIG. 5 shows the filter shape of a 7x7 diamond, and (b) shows the filter shape of a 5x5 diamond. Cn within the filter shape in FIG. 5 indicates the filter coefficient. When n is the same for the above Cn, this indicates that the same filter coefficient can be assigned. In this document, the position and / or unit where the filter coefficient is assigned according to the filter shape of the ALF may be called a filter tab. At this time, one filter coefficient is assigned to each filter tab, and the form in which the filter tabs are arranged may correspond to the filter shape. The filter tab located at the center of the filter shape may be called the center filter tab. The same filter coefficient may be assigned to two filter tabs with the same n value that exist at positions corresponding to each other with respect to the center filter tab. For example, in the case of the filter shape of a 7x7 diamond, it includes 25 filter tabs, and since the filter coefficients from C0 to C11 are assigned in a centrally symmetric form, the filter coefficients of only 13 filter coefficients can be assigned to the above 25 filter tabs. Also, for example, in the case of the filter shape of a 5x5 diamond, it includes 13 filter tabs, and since the filter coefficients from C0 to C5 are assigned in a centrally symmetric form, the filter coefficients of only 7 filter coefficients can be assigned to the above 13 filter tabs. For example, in order to reduce the data amount of the information regarding the filter coefficients to be signaled, 12 out of the 13 filter coefficients for the filter shape of a 7x7 diamond are (explicitly) signaled, and 1 filter coefficient can be (implicitly) derived. Also, for example, 6 out of the 7 filter coefficients for the filter shape of a 5x5 diamond are (explicitly) signaled, and 1 filter coefficient can be (implicitly) derived.

[0111] FIG. 6 is a flowchart for explaining an encoding method based on filtering in an encoding device. The method of FIG. 6 can include steps S600 to S630.

[0112] In step S600, the encoding device can generate a reconstructed picture. The step S600 can be executed based on the above-described procedure for generating a reconstructed picture (or reconstructed sample).

[0113] In step S610, the encoding device can determine whether in-loop filtering is applied (across virtual boundaries) based on in-loop filtering related information. Here, the in-loop filtering may include at least one of the above-described deblock filtering, SAO, or ALF.

[0114] In step S620, the encoding device can generate a modified reconstructed picture (modified reconstructed sample) based on the above determination in step S610. Here, the modified reconstructed picture (modified reconstructed sample) may be a filtered reconstructed picture (filtered reconstructed sample).

[0115] In step S630, the encoding device can encode image / video information including in-loop filtering related information based on the in-loop filtering procedure.

[0116] FIG. 7 is a flowchart for explaining a decoding method based on filtering in a decoding device. The method of FIG. 7 can include steps S700 to S730.

[0117] In step S700, the decoding device can obtain image / video information including in-loop filtering related information from the bitstream. Here, the bitstream can be based on the encoded image / video information transmitted from the encoding device.

[0118] In step S710, the decoding device can generate a reconstructed picture. The step S710 can be executed based on the above-described procedure for generating a reconstructed picture (or reconstructed sample).

[0119] In step S720, the decoding device can determine whether loop filtering is to be applied (across the virtual boundary) based on loop filtering related information. Here, the loop filtering can include at least one of the above-described deblocking filtering, SAO, or ALF.

[0120] In step S730, the decoding device can generate a corrected reconstructed picture (corrected reconstructed sample) based on the above determination in step S720. Here, the corrected reconstructed picture (corrected reconstructed sample) can be a filtered reconstructed picture (filtered reconstructed sample).

[0121] As described above, loop filtering procedures can be applied to the reconstructed picture. In this case, a virtual boundary can be defined to further enhance the subjective / objective visual quality of the reconstructed picture, and the loop filtering procedure can also be applied across the virtual boundary. The virtual boundary can include discontinuous edges such as, for example, a 360-degree image, a VR image, or a PIP (Picture In Picture). For example, the virtual boundary can exist at a predetermined and agreed-upon position, and its presence and / or position can be signaled. As an example, the virtual boundary can be located at the fourth sample line above in the CTU row (specifically, for example, above the fourth sample line above in the CTU row). As another example, information regarding the presence and / or position of the virtual boundary may be signaled via HLS. The HLS can include, as described above, SPS, PPS, picture header, slice header, etc.

[0122] The following describes the high-level syntax signaling and semantics related to the embodiments of this document.

[0123] One embodiment of this document may include a method for controlling a loop filter. This method for controlling the loop filter can be applied to a reconstructed picture. An in-loop filter (loop filter) can be used for decoding an encoded bitstream. The loop filter may include the aforementioned deblocking, SAO, ALF. The SPS may include flags related to each of deblocking, SAO, ALF. The above flags can indicate whether each tool is available for coding of a CLVS (Coded Layer Video Sequence) and a CVS (Coded Video Sequence) that refer to the above SPS.

[0124] When the above loop filter is available for a CVS, the application of the loop filter can be controlled so as not to cross a specific boundary. For example, it can be controlled whether the above loop filter crosses a sub-picture boundary. Also, it can be controlled whether the above loop filter crosses a tile boundary. Along with this, it can be controlled whether the above loop filter crosses a virtual boundary. Here, the virtual boundary can be defined on a CTU based on the availability of a line buffer.

[0125] Related to whether an in-loop filtering procedure is executed across a virtual boundary, the in-loop filtering related information may include at least one of a virtual boundary enable flag of the SPS (virtual boundary enable flag within the SPS), a virtual boundary existence flag of the SPS, a virtual boundary existence flag of the picture header, a virtual boundary existence flag of the SPS picture header, and information regarding the position of the virtual boundary.

[0126] In the embodiments included in this document, the information regarding the position of the virtual boundary may include information regarding the x - coordinate of the vertical virtual boundary and / or information regarding the y - coordinate of the horizontal virtual boundary. Specifically, the information regarding the position of the virtual boundary may include information regarding the x - coordinate of the vertical virtual boundary and / or the y - coordinate of the horizontal virtual boundary in terms of luma sample units. Also, the information regarding the position of the virtual boundary may include information regarding the number of information (syntax elements) regarding the x - coordinate of the vertical virtual boundary existing in the SPS. Further, the information regarding the position of the virtual boundary may include information regarding the number of information (syntax elements) regarding the y - coordinate of the horizontal virtual boundary existing in the SPS. Alternatively, the information regarding the position of the virtual boundary may include information regarding the number of information (syntax elements) regarding the x - coordinate of the vertical virtual boundary existing in the picture header. Also, the information regarding the position of the virtual boundary may include information regarding the number of information (syntax elements) regarding the y - coordinate of the horizontal virtual boundary existing in the picture header.

[0127] The following table shows exemplary syntax and semantics of the SPS according to this embodiment.

[0128] [Table 1]

[0129] [Table 2]

[0130] The following table shows exemplary syntax and semantics of the PPS (Picture Parameter Set) according to this embodiment.

[0131] [Table 3]

[0132]

Table 4

[0133] The following table shows the exemplary syntax and semantics of the picture header according to this embodiment.

[0134]

Table 5-1

[0135]

Table 5-2

[0136]

Table 6-1

[0137]

Table 6-2

[0138] The following table shows the exemplary syntax and semantics of the slice header according to this embodiment.

[0139]

Table 7

[0140]

Table 8

[0141] The following describes the signaling of information regarding the virtual boundaries that can be used in in-loop filtering.

[0142] In an existing design, in order to disable a loop filter across a virtual boundary, i) the virtual boundary presence flag of the SPS (sps_loop_filter_across_virtual_boundaries_disabled_present_flag) is set to 0, and for all picture headers, the virtual boundary presence flag of the PH (ph_loop_filter_across_virtual_boundaries_disabled_present_flag) exists and is set to 0, or ii) the virtual boundary presence flag of the SPS (sps_loop_filter_across_virtual_boundaries_disabled_present_flag) is set to 1, and the information regarding the number of vertical virtual boundaries of the SPS (sps_num_ver_vertical_boudnaries) and the information regarding the number of horizontal virtual boundaries of the SPS (sps_num_hor_vertical_boudnaries) can both be set to 0.

[0143] In the existing design, according to the above ii), when the virtual boundary presence flag of the SPS (sps_loop_filter_across_virtual_boundaries_disabled_present_flag) is set to 1 and the decoder anticipates the signaling for the position of the virtual boundary, problems may be caused in the decoding procedure.

[0144] The embodiments described in the following paragraphs can propose solutions to solve the above-mentioned problems. The embodiments may be applied independently. Alternatively, at least two or more embodiments may be combined and applied.

[0145] In one embodiment of this document, whether a syntax element for indicating a virtual boundary is included in the SPS can be controlled by a flag. For example, the number of the above flags can be two (for example, SPS virtual boundaries enabled flag, SPS virtual boundaries present flag).

[0146] In an example according to this embodiment, the SPS virtual boundaries enabled flag may be referred to as sps_loop_filter_across_virtual_boundaries_disabled_flag (or sps_virtual_boundaries_enabled_flag). The SPS virtual boundaries enabled flag can indicate whether a feature for disabling the loop filter across the virtual boundary is enabled.

[0147] In an example according to this embodiment, the SPS virtual boundaries present flag may be referred to as sps_loop_filter_across_virtual_boundaries_disabled_present_flag (or sps_virtual_boundaries_present_flag). The SPS virtual boundaries present flag can indicate whether signaling information for the virtual boundary is included in the SPS or the Picture Header (PH).

[0148] In an example according to this embodiment, when the SPS virtual boundaries enabled flag (sps_loop_filter_across_virtual_boundaries_disabled_flag) is 1 and the SPS virtual boundaries present flag (sps_loop_filter_across_virtual_boundaries_disabled_present_flag) is 0, signaling information for disabling the loop filter across the virtual boundary may be included in the picture header.

[0149] In an example according to this embodiment, when information regarding the position of a virtual boundary (for example, a vertical virtual boundary, a horizontal virtual boundary) is included in the SPS, it may be restricted such that the sum of the number of vertical virtual boundaries and the number of horizontal virtual boundaries is greater than 0.

[0150] In an example according to this embodiment, a variable indicating whether a filter is invalidated by a virtual boundary for the current picture may be derived. For example, the variable may include VirtualBoundairesDisabledFlag.

[0151] As one case in this illustration, when the virtual boundary enable flag (sps_loop_filter_across_virtual_boundaries_disabled_flag) of the SPS is 1 and the virtual boundary presence flag (sps_loop_filter_across_virtual_boundaries_disabled_present_flag) of the SPS is 1, VirtualBoundairesDisabledFlag may be 1.

[0152] As another case in this illustration, when the virtual boundary enable flag (sps_loop_filter_across_virtual_boundaries_disabled_flag) of the SPS is 1, the virtual boundary presence flag (sps_loop_filter_across_virtual_boundaries_disabled_present_flag) of the SPS is 0, and the sum of information regarding the number of vertical virtual boundaries (for example, ph_num_ver_virtual_boundaries) and information regarding the number of horizontal virtual boundaries (for example, ph_num_hor_virtual_boundaries) is greater than 0, VirtualBoundairesDisabledFlag may be 1.

[0153] In other cases in this illustration, VirtualBoundairesDisabledFlag may be 0.

[0154] The following table shows an exemplary syntax of SPS according to this embodiment.

[0155]

Table 9

[0156] The following table shows exemplary semantics regarding the syntax elements included in the above syntax.

[0157]

Table 10

[0158] The following table shows an exemplary syntax of the header information (picture header) according to this embodiment.

[0159]

Table 11

[0160] The following table shows exemplary semantics regarding the syntax elements included in the above syntax.

[0161]

Table 12

[0162] In the embodiments related to Tables 9 to 12, the image information encoded by the encoding device and / or the image information obtained via the bitstream received from the encoding device by the decoding device may include a Sequence Parameter Set (SPS) and a Picture Header (PH). The SPS may include a sps_loop_filter_across_virtual_boundaries_disabled_flag. The SPS may include a sps_loop_filter_across_virtual_boundaries_disabled_present_flag based on the sps_loop_filter_across_virtual_boundaries_disabled_flag.

[0163] For example, the SPS may include the sps_loop_filter_across_virtual_boundaries_disabled_present_flag when the value of the sps_loop_filter_across_virtual_boundaries_disabled_flag is 1. Based on the sps_loop_filter_across_virtual_boundaries_disabled_flag and the sps_loop_filter_across_virtual_boundaries_disabled_present_flag, the SPS may include information regarding the number of vertical virtual boundaries of the SPS (sps_num_ver_virtual_boundaries), information regarding the positions of the vertical virtual boundaries of the SPS (sps_virtual_boundaries_pos_x[i]), information regarding the number of horizontal virtual boundaries of the SPS (sps_num_hor_virtual_boundaries), and information regarding the positions of the horizontal virtual boundaries of the SPS (sps_virtual_boundaries_pos_y[i]). For example, the SPS may include the information regarding the number of vertical virtual boundaries of the SPS, the information regarding the positions of the vertical virtual boundaries of the SPS, the information regarding the number of horizontal virtual boundaries of the SPS, and the information regarding the positions of the horizontal virtual boundaries of the SPS when the value of the sps_loop_filter_across_virtual_boundaries_disabled_flag is 1 and the value of the sps_loop_filter_across_virtual_boundaries_disabled_present_flag is 1.

[0164] In one example, the number of pieces of information regarding the position of the vertical virtual boundary of the SPS can be determined based on the information regarding the number of vertical virtual boundaries of the SPS, and the number of pieces of information regarding the position of the horizontal virtual boundary of the SPS can be determined based on the information regarding the number of horizontal virtual boundaries of the SPS. The picture header may include information (ph_num_ver_virtual_boundaries) regarding the number of vertical virtual boundaries of the PH, information (ph_virtual_boundaries_pos_x[i]) regarding the position of the vertical virtual boundary of the PH, information (ph_num_hor_virtual_boundaries) regarding the number of horizontal virtual boundaries of the PH, and information (ph_virtual_boundaries_pos_y[i]) regarding the position of the horizontal virtual boundary of the PH based on the virtual boundary enable flag and the SPS virtual boundary presence flag.

[0165] For example, when the value of the virtual boundary enable flag is 1 and the value of the SPS virtual boundary presence flag is 0, the picture header may include information regarding the number of vertical virtual boundaries of the PH, information regarding the position of the vertical virtual boundary of the PH, information regarding the number of horizontal virtual boundaries of the PH, and information regarding the position of the horizontal virtual boundary of the PH. In one example, the number of pieces of information regarding the position of the vertical virtual boundary of the PH can be determined based on the information regarding the number of vertical virtual boundaries of the PH, and the number of pieces of information regarding the position of the horizontal virtual boundary of the PH can be determined based on the information regarding the number of horizontal virtual boundaries of the PH.

[0166] In another embodiment of this document, each of the header information (picture header) of the pictures referring to the SPS may include the virtual boundary existence flag ph_loop_filter_across_virtual_boundaries_disabled_present_flag (or ph_virtual_boundaries_present_flag) of the PH. This embodiment can also be described together with the virtual boundary enable flag (sps_loop_filter_across_virtual_boundaries_disabled_flag) and the virtual boundary existence flag (sps_loop_filter_across_virtual_boundaries_disabled_present_flag) of the SPS as in the previous embodiments.

[0167] In an example according to this embodiment, when the virtual boundary enable flag (sps_loop_filter_across_virtual_boundaries_disabled_flag) of the SPS is 1 and the virtual boundary existence flag (sps_loop_filter_across_virtual_boundaries_disabled_present_flag) of the SPS is 0, each of the header information (picture header) of the pictures referring to the SPS may include the virtual boundary existence flag ph_loop_filter_across_virtual_boundaries_disalbed_present_flag (or ph_virtual_boundaries_present_flag) of the PH.

[0168] In an example according to this embodiment, when information regarding the position of the virtual boundary (e.g., vertical virtual boundary, horizontal virtual boundary) is included in the SPS, the sum of the number of vertical virtual boundaries and the number of horizontal virtual boundaries may be restricted to be greater than 0.

[0169] In an example according to this embodiment, a variable indicating whether the filter is disabled by a virtual boundary for the current picture can be derived. For example, the variable may include VirtualBoundairesDisabledFlag.

[0170] As one case in this example, when the virtual boundary enable flag (sps_loop_filter_across_virtual_boundaries_disabled_flag) of the SPS is 1 and the virtual boundary presence flag (sps_loop_filter_across_virtual_boundaries_disabled_present_flag) of the SPS is 1, VirtualBoundairesDisabledFlag can be 1.

[0171] As another case in this example, when the virtual boundary enable flag (sps_loop_filter_across_virtual_boundaries_disabled_flag) of the SPS is 1 and the virtual boundary presence flag (ph_loop_filter_across_virtual_boundaries_disabled_present_flag) of the PH is 1, VirtualBoundairesDisabledFlag can be 1.

[0172] In other cases in this example, VirtualBoundairesDisabledFlag can be 0.

[0173] The following table shows an exemplary syntax of the SPS according to this embodiment.

[0174]

Table 13

[0175] The following table shows exemplary semantics regarding the syntax elements included in the above syntax.

[0176]

Table 14

[0177] The following table shows an exemplary syntax of the header information (picture header) according to this embodiment.

[0178]

Table 15

[0179] The following table shows exemplary semantics regarding the syntax elements included in the above syntax.

[0180]

Table 16-1

[0181]

Table 16-2

[0182] In the embodiments related to Tables 13 to 16, the image information encoded by the encoding device and / or the image information obtained via the bitstream received from the encoding device by the decoding device may include a Sequence Parameter Set (SPS) and a Picture Header (PH). The above SPS may include a virtual boundary enable flag (sps_loop_filter_across_virtual_boundaries_disabled_flag). The above SPS may include an SPS virtual boundary presence flag (sps_loop_filter_across_virtual_boundaries_disabled_present_flag) based on the above virtual boundary enable flag. For example, the above SPS may include the SPS virtual boundary presence flag when the value of the above virtual boundary enable flag is 1. The above SPS may include information regarding the number of vertical virtual boundaries of the SPS (sps_num_ver_virtual_boundaries), information regarding the positions of the vertical virtual boundaries of the SPS (sps_virtual_boundaries_pos_x[i]), information regarding the number of horizontal virtual boundaries of the SPS (sps_num_hor_virtual_boundaries), and information regarding the positions of the horizontal virtual boundaries of the SPS (sps_virtual_boundaries_pos_y[i]) based on the above virtual boundary enable flag and the above SPS virtual boundary presence flag.

[0183] For example, when the value of the virtual boundary enable flag of the SPS is 1 and the value of the virtual boundary existence flag of the SPS is 1, the SPS may include information on the number of vertical virtual boundaries of the SPS, information on the positions of the vertical virtual boundaries of the SPS, information on the number of horizontal virtual boundaries of the SPS, and information on the positions of the horizontal virtual boundaries of the SPS. In one example, the number of pieces of information on the positions of the vertical virtual boundaries of the SPS can be determined based on the information on the number of vertical virtual boundaries of the SPS, and the number of pieces of information on the positions of the horizontal virtual boundaries of the SPS can be determined based on the information on the number of horizontal virtual boundaries of the SPS. The picture header may include a virtual boundary existence flag of the PH based on the virtual boundary enable flag and the virtual boundary existence flag of the SPS.

[0184] For example, when the value of the virtual boundary enable flag of the SPS is 1 and the value of the virtual boundary existence flag of the SPS is 0, the picture header may include the virtual boundary existence flag of the PH. The picture header may include information on the number of vertical virtual boundaries of the PH (ph_num_ver_virtual_boundaries), information on the positions of the vertical virtual boundaries of the PH (ph_virtual_boundaries_pos_x[i]), information on the number of horizontal virtual boundaries of the PH (ph_num_hor_virtual_boundaries), and information on the positions of the horizontal virtual boundaries of the PH (ph_virtual_boundaries_pos_y[i]) based on the virtual boundary existence flag of the PH.

[0185] For example, when the value of the virtual boundary existence flag of the PH is 1, the picture header may include information on the number of vertical virtual boundaries of the PH, information on the positions of the vertical virtual boundaries of the PH, information on the number of horizontal virtual boundaries of the PH, and information on the positions of the horizontal virtual boundaries of the PH. In one example, the number of pieces of information on the positions of the vertical virtual boundaries of the PH can be determined based on the information on the number of vertical virtual boundaries of the PH, and the number of pieces of information on the positions of the horizontal virtual boundaries of the PH can be determined based on the information on the number of horizontal virtual boundaries of the PH.

[0186] In another embodiment of this document, whether a syntax element for indicating a virtual boundary is included in the SPS can be controlled by a flag. For example, the number of the above flags can be two (for example, SPS virtual boundaries present flag, SPS PH virtual boundaries present flag).

[0187] In an example according to this embodiment, the SPS virtual boundaries present flag may be referred to as sps_loop_filter_across_virtual_boundaries_disabled_present_flag (or sps_virtual_boundaries_present_flag). The SPS virtual boundaries present flag can indicate whether information about virtual boundaries is included in the SPS.

[0188] In an example according to this embodiment, the SPS PH virtual boundaries present flag may be referred to as sps_ph_loop_filter_across_virtual_boundaries_disabled_present_flag. The SPS PH virtual boundaries present flag can indicate whether information about virtual boundaries is included in the Picture Header (PH).

[0189] In an example according to this embodiment, when the SPS virtual boundaries present flag (sps_loop_filter_across_virtual_boundaries_disabled_present_flag) is 1, the SPS PH virtual boundaries present flag (sps_ph_loop_filter_across_virtual_boundaries_disabled_present_flag) does not exist and may be restricted to be inferred to 0.

[0190] In an example according to this embodiment, when the virtual boundary existence flag of the SPS PH (sps_ph_loop_filter_across_virtual_boundaries_disabled_present_flag) is 1, signaling information for disabling the loop filter across the virtual boundary may be included in the picture header.

[0191] The following table shows an exemplary syntax of the SPS according to this embodiment.

[0192] [Table 17]

[0193] The following table shows exemplary semantics regarding the syntax elements included in the above syntax.

[0194] [Table 18]

[0195] The following table shows an exemplary syntax of the header information (picture header) according to this embodiment.

[0196] [Table 19]

[0197] The following table shows exemplary semantics regarding the syntax elements included in the above syntax.

[0198] [Table 20-1]

[0199] [Table 20-2]

[0200] In the embodiments related to Tables 17 to 20, the image information encoded by the encoding device and / or the image information obtained via the bitstream received from the encoding device by the decoding device may include a Sequence Parameter Set (SPS) and a Picture Header (PH). The SPS may include a virtual boundary existence flag of the SPS (sps_loop_filter_across_virtual_boundaries_disabled_present_flag). Based on the virtual boundary existence flag of the SPS, the SPS may include information regarding the number of vertical virtual boundaries of the SPS (sps_num_ver_virtual_boundaries), information regarding the positions of the vertical virtual boundaries of the SPS (sps_virtual_boundaries_pos_x[i]), information regarding the number of horizontal virtual boundaries of the SPS (sps_num_hor_virtual_boundaries), and information regarding the positions of the horizontal virtual boundaries of the SPS (sps_virtual_boundaries_pos_y[i]).

[0201] For example, when the value of the virtual boundary existence flag of the SPS is 1, the SPS may include information regarding the number of vertical virtual boundaries of the SPS, information regarding the positions of the vertical virtual boundaries of the SPS, information regarding the number of horizontal virtual boundaries of the SPS, and information regarding the positions of the horizontal virtual boundaries of the SPS. In one example, the number of information regarding the positions of the vertical virtual boundaries of the SPS can be determined based on the information regarding the number of vertical virtual boundaries of the SPS, and the number of information regarding the positions of the horizontal virtual boundaries of the SPS can be determined based on the information regarding the number of horizontal virtual boundaries of the SPS. The SPS may include a virtual boundary existence flag of the SPS PH based on the virtual boundary existence flag of the SPS.

[0202] For example, when the value of the virtual boundary existence flag of the above SPS is 0, the above SPS may include the virtual boundary existence flag of the SPS PH. The above picture header may include the virtual boundary existence flag of the PH based on the virtual boundary existence flag of the above SPS PH. For example, when the value of the virtual boundary existence flag of the above SPS PH is 1, the above picture header may include the virtual boundary existence flag of the above PH. The above picture header may include information regarding the number of vertical virtual boundaries of the PH (ph_num_ver_virtual_boundaries), information regarding the positions of the vertical virtual boundaries of the PH (ph_virtual_boundaries_pos_x[i]), information regarding the number of horizontal virtual boundaries of the PH (ph_num_hor_virtual_boundaries), and information regarding the positions of the horizontal virtual boundaries of the PH (ph_virtual_boundaries_pos_y[i]) based on the virtual boundary existence flag of the above PH.

[0203] For example, when the value of the virtual boundary existence flag of the above picture header is 1, the above picture header may include information regarding the number of vertical virtual boundaries of the above PH, information regarding the positions of the vertical virtual boundaries of the above PH, information regarding the number of horizontal virtual boundaries of the above PH, and information regarding the positions of the horizontal virtual boundaries of the above PH. In one example, the number of information regarding the positions of the vertical virtual boundaries of the above PH can be determined based on the information regarding the number of vertical virtual boundaries of the above PH, and the number of information regarding the positions of the horizontal virtual boundaries of the above PH can be determined based on the information regarding the number of horizontal virtual boundaries of the above PH.

[0204] In another embodiment of this document, when gradual decoding refresh (GDR) is available (that is, when the value of the gdr_enabled_flag is 1), the feature that the loop filter is disabled at the virtual boundary is enabled, and the information of the virtual boundary may be signaled (may be included) in the picture header.

[0205] In another embodiment of this document, when the function of disabling the loop filter across the virtual boundary is enabled, information regarding the signaling of the position of the virtual boundary may be included in one or more parameter sets. For example, when the function of disabling the loop filter across the virtual boundary is enabled, information regarding the signaling of the position of the virtual boundary may be included in the SPS and the picture header.

[0206] In this embodiment, when the virtual boundary enable flag (sps_loop_filter_across_virtual_boundaries_disabled_flag) of the SPS is 1 and the signaling information regarding the position of the virtual boundary is included in one or more parameter sets, it is as follows.

[0207] a) The signaling information regarding the position of the virtual boundary may be included only in the SPS, only in the picture header, or in both the SPS and the picture header.

[0208] b) The derivation of the VirtualBoundariesDisabledFlag for each picture is as follows.

[0209] - When sps_loop_filter_across_virtual_boundaries_disabled_flag is 0, the VirtualBoundariesDisabledFlag may be set to 0.

[0210] - In another case in this exemplification, when the information regarding the position of the virtual boundary is not signaled in all of the SPS or the picture header associated with the picture, the VirtualBoundariesDisabledFlag may be set to 0.

[0211] - In other cases in this example (when the position of the virtual boundary is signaled only in the SPS, only in the picture header, or signaled in both the SPS and the picture header), the VirtualBoundariesDisabledFlag may be set to 1.

[0212] c) The virtual boundaries applied to a picture may include the union of the virtual boundaries signaled in the parameter sets directly or indirectly referenced by the picture. For example, the above virtual boundaries may include the virtual boundaries signaled in the SPS (if they exist). For example, the above virtual boundaries may include the virtual boundaries signaled in the picture header associated with the picture (if they exist).

[0213] d) Limitations may be applied so as not to exceed the maximum number of virtual boundaries per picture or pre-defined values. For example, the above pre-defined value may be 8.

[0214] e) The information regarding the position of the virtual boundaries signaled in the picture header (if any) may be restricted to not be the same as the information regarding the position of the virtual boundaries included in other parameter sets (e.g., SPS or PPS).

[0215] - As an alternative, for the position of a certain virtual boundary applied to the current picture, the position of the above virtual boundary (e.g., the position of the same virtual boundary signaled in the SPS and the picture header associated with the picture) may be included in two different parameter sets.

[0216] f) If the virtual boundary existence flag of the SPS (sps_loop_filter_across_virtual_boundaries_disabled_present_flag) is 1, the virtual boundary existence flag of the SPS PH (sps_ph_loop_filter_across_virtual_boundaries_disabled_present_flag) does not exist and may be restricted to be inferred as 0.

[0217] The following table shows an exemplary syntax of the SPS according to this embodiment.

[0218] [Table 21]

[0219] The following table shows exemplary semantics regarding the syntax elements included in the above syntax.

[0220] [Table 22]

[0221] The following table shows an exemplary syntax of the header information (picture header) according to this embodiment.

[0222] [Table 23]

[0223] The following table shows exemplary semantics regarding the syntax elements included in the above syntax.

[0224] [Table 24-1]

[0225]

Table 24-2

[0226] In the embodiments related to Tables 21 to 24, the image information encoded by the encoding device and / or the image information obtained via the bitstream received from the encoding device by the decoding device may include a Sequence Parameter Set (SPS) and a Picture Header (PH). The SPS may include a sps_loop_filter_across_virtual_boundaries_disabled_flag. The SPS may include a sps_loop_filter_across_virtual_boundaries_disabled_present_flag based on the sps_loop_filter_across_virtual_boundaries_disabled_flag. For example, the SPS may include the sps_loop_filter_across_virtual_boundaries_disabled_present_flag when the value of the sps_loop_filter_across_virtual_boundaries_disabled_flag is 1. The SPS may include information about the number of vertical virtual boundaries of the SPS (sps_num_ver_virtual_boundaries), information about the positions of the vertical virtual boundaries of the SPS (sps_virtual_boundaries_pos_x[i]), information about the number of horizontal virtual boundaries of the SPS (sps_num_hor_virtual_boundaries), and information about the positions of the horizontal virtual boundaries of the SPS (sps_virtual_boundaries_pos_y[i]) based on the sps_loop_filter_across_virtual_boundaries_disabled_flag and the sps_loop_filter_across_virtual_boundaries_disabled_present_flag.

[0227] For example, when the value of the virtual boundary enable flag is 1 and the value of the virtual boundary existence flag of the SPS is 1, the SPS may include information regarding the number of vertical virtual boundaries of the SPS, information regarding the positions of the vertical virtual boundaries of the SPS, information regarding the number of horizontal virtual boundaries of the SPS, and information regarding the positions of the horizontal virtual boundaries of the SPS. In one example, the number of information regarding the positions of the vertical virtual boundaries of the SPS can be determined based on the information regarding the number of vertical virtual boundaries of the SPS, and the number of information regarding the positions of the horizontal virtual boundaries of the SPS can be determined based on the information regarding the number of horizontal virtual boundaries of the SPS. The picture header may include a virtual boundary existence flag of the PH based on the virtual boundary enable flag.

[0228] For example, when the value of the virtual boundary enable flag is 1, the picture header may include a virtual boundary existence flag of the PH. The picture header may include information regarding the number of vertical virtual boundaries of the PH (ph_num_ver_virtual_boundaries), information regarding the positions of the vertical virtual boundaries of the PH (ph_virtual_boundaries_pos_x[i]), information regarding the number of horizontal virtual boundaries of the PH (ph_num_hor_virtual_boundaries), and information regarding the positions of the horizontal virtual boundaries of the PH (ph_virtual_boundaries_pos_y[i]) based on the virtual boundary existence flag of the PH. For example, when the value of the virtual boundary existence flag of the PH is 1, the picture header may include information regarding the number of vertical virtual boundaries of the PH, information regarding the positions of the vertical virtual boundaries of the PH, information regarding the number of horizontal virtual boundaries of the PH, and information regarding the positions of the horizontal virtual boundaries of the PH. In one example, the number of information regarding the positions of the vertical virtual boundaries of the PH can be determined based on the information regarding the number of vertical virtual boundaries of the PH, and the number of information regarding the positions of the horizontal virtual boundaries of the PH can be determined based on the information regarding the number of horizontal virtual boundaries of the PH.

[0229] In another embodiment of this document, although based on the foregoing embodiments, loop filtering can be executed by not imposing the restriction that the sum of the number of vertical virtual boundaries and the number of horizontal virtual boundaries is greater than zero.

[0230] In another embodiment of this document, information regarding virtual boundaries can be signaled in both SPS and PH. In an example of this embodiment, when the virtual boundary enable flag (sps_loop_filter_across_virtual_boundaries_disabled_flag) of the SPS is 1, information regarding the number of vertical virtual boundaries, information regarding the number of horizontal virtual boundaries, and / or information regarding the position of the virtual boundaries can be included in the SPS. Along with this, when the virtual boundary enable flag (sps_loop_filter_across_virtual_boundaries_disabled_flag) of the SPS is 1, information regarding the number of vertical virtual boundaries, information regarding the number of horizontal virtual boundaries, and / or information regarding the delta value of the position of the virtual boundaries (delta value of the position of the virtual boundaries) can be included in the picture header. The delta value of the position of the virtual boundaries can refer to the difference between the positions of the virtual boundaries. The picture header can also include information regarding the sign of the position of the virtual boundaries.

[0231] According to an example related to this embodiment, in order to derive the position of the virtual boundaries for each picture, when the delta value of the position of the virtual boundaries does not exist in the picture header, the information regarding the position of the virtual boundaries signaled in the SPS can be used for loop filtering. When the delta value of the position of the virtual boundaries exists in the picture header, the position of the virtual boundaries can be derived based on the sum between the information regarding the position of the virtual boundaries signaled in the SPS and the related delta value.

[0232] The following table shows an exemplary syntax of the SPS according to this embodiment.

[0233]

Table 25

[0234] The following table shows exemplary semantics for the syntax elements included in the above syntax.

[0235] [Table 26]

[0236] The following table shows exemplary syntax of the header information (picture header) according to this embodiment.

[0237] [Table 27]

[0238] The following table shows exemplary semantics for the syntax elements included in the above syntax.

[0239] [Table 28-1]

[0240] [Table 28-2]

[0241] In the embodiments related to Tables 25 to 28, the image information encoded by the encoding device and / or the image information obtained via the bitstream received from the encoding device by the decoding device may include a Sequence Parameter Set (SPS) and a Picture Header (PH). The SPS may include a sps_loop_filter_across_virtual_boundaries_disabled_flag. The SPS may include information about the number of vertical virtual boundaries of the SPS (sps_num_ver_virtual_boundaries), information about the positions of the vertical virtual boundaries of the SPS (sps_virtual_boundaries_pos_x[i]), information about the number of horizontal virtual boundaries of the SPS (sps_num_hor_virtual_boundaries), and information about the positions of the horizontal virtual boundaries of the SPS (sps_virtual_boundaries_pos_y[i]) based on the virtual boundary enable flag. For example, when the value of the virtual boundary enable flag is 1, the SPS may include information about the number of horizontal virtual boundaries of the SPS, information about the positions of the horizontal virtual boundaries of the SPS, information about the number of vertical virtual boundaries of the SPS, and information about the positions of the vertical virtual boundaries of the SPS.

[0242] In one example, the number of information regarding the position of the horizontal virtual boundary of the SPS can be determined based on the information regarding the number of horizontal virtual boundaries of the SPS, and the number of information regarding the position of the vertical virtual boundary of the SPS can be determined based on the information regarding the number of vertical virtual boundaries of the SPS. The picture header may include a virtual boundary presence flag of the PH based on the virtual boundary enable flag. For example, when the value of the virtual boundary enable flag is 1, the picture header may include the virtual boundary presence flag of the PH. The picture header may include information regarding a delta value of the position of the horizontal virtual boundary of the PH (ph_virtual_boundaries_pos_x_delta[i]), information regarding a sign of the position of the horizontal virtual boundary of the PH (ph_virtual_boundaries_pos_x_sign[i]), information regarding a delta value of the position of the vertical virtual boundary of the PH (ph_virtual_boundaries_pos_y_delta[i]), and information regarding a sign of the position of the vertical virtual boundary of the PH (ph_virtual_boundaries_pos_y_sign[i]) based on the virtual boundary presence flag of the PH.

[0243] For example, when the value of the virtual boundary presence flag of the PH is 1, the picture header may include information regarding a delta value of the position of the vertical virtual boundary of the PH, information regarding a sign of the position of the vertical virtual boundary of the PH, information regarding a delta value of the position of the horizontal virtual boundary of the PH, and information regarding a sign of the position of the horizontal virtual boundary of the PH. In one example, based on the information regarding the number of vertical virtual boundaries of the SPS, the number of information regarding the delta value of the position of the vertical virtual boundary of the PH and the number of information regarding the sign of the position of the vertical virtual boundary of the PH can be determined, and based on the information regarding the number of horizontal virtual boundaries of the SPS, the number of information regarding the delta value of the position of the horizontal virtual boundary of the PH and the number of information regarding the sign of the position of the horizontal virtual boundary of the PH can be determined.

[0244] In yet other embodiments of this document, signaling of information regarding the position of the virtual boundary for each picture is described. In one example, if information regarding the position of the virtual boundary is included in the SPS and information regarding the delta value of the position of the virtual boundary is not included in the picture header, the information regarding the position of the virtual boundary included in the SPS may be used for loop filtering. If information regarding the position of the virtual boundary is not included in the SPS and information regarding the delta value of the position of the virtual boundary is included in the picture header, the information regarding the position of the virtual boundary included in the picture header may be used for loop filtering. If information regarding the position of the virtual boundary is included in the SPS and information regarding the delta value of the position of the virtual boundary is included in the picture header, the position of the virtual boundary may be derived based on the sum of the information regarding the position of the virtual boundary signaled in the SPS and the related delta value. If information regarding the position of the virtual boundary is not included in the SPS and information regarding the delta value of the position of the virtual boundary is not included in the picture header, the virtual boundary may not be applied to the picture.

[0245] The following table shows an exemplary syntax of the SPS according to this embodiment.

[0246] [Table 29]

[0247] The following table shows exemplary semantics regarding the syntax elements included in the above syntax.

[0248] [Table 30]

[0249] The following table shows an exemplary syntax of the header information (picture header) according to this embodiment.

[0250]

Table 31

[0251] The following table shows exemplary semantics regarding the syntax elements included in the above syntax.

[0252]

Table 32-1

[0253]

Table 32-2

[0254] In embodiments related to Tables 29 to 32, the image information encoded by the encoding device and / or the image information obtained via the bitstream received from the encoding device by the decoding device may include a Sequence Parameter Set (SPS) and a Picture Header (PH).

[0255] The above SPS may include a virtual boundary enable flag (sps_loop_filter_across_virtual_boundaries_disabled_flag). The above SPS may include an SPS virtual boundary presence flag (sps_loop_filter_across_virtual_boundaries_disabled_present_flag) based on the above virtual boundary enable flag. For example, when the value of the above virtual boundary enable flag is 1, the above SPS may include the SPS virtual boundary presence flag. The above SPS may include information regarding the number of SPS vertical virtual boundaries (sps_num_ver_virtual_boundaries), information regarding the positions of the SPS vertical virtual boundaries (sps_virtual_boundaries_pos_x[i]), information regarding the number of SPS horizontal virtual boundaries (sps_num_hor_virtual_boundaries), and information regarding the positions of the SPS horizontal virtual boundaries (sps_virtual_boundaries_pos_y[i]) based on the above virtual boundary enable flag and the above SPS virtual boundary presence flag.

[0256] For example, when the value of the above virtual boundary enable flag is 1 and the value of the above SPS virtual boundary presence flag is 1, the above SPS may include information regarding the number of the above horizontal virtual boundaries, information regarding the positions of the above horizontal virtual boundaries, information regarding the number of the above vertical virtual boundaries, and information regarding the positions of the above vertical virtual boundaries. In one example, the number of information regarding the positions of the above horizontal virtual boundaries can be determined based on the information regarding the number of the above horizontal virtual boundaries, and the number of information regarding the positions of the above vertical virtual boundaries can be determined based on the information regarding the number of the above vertical virtual boundaries. The above picture header may include a PH virtual boundary presence flag based on the above virtual boundary enable flag.

[0257] For example, when the value of the virtual boundary enable flag is 1, the picture header may include the virtual boundary presence flag of the PH. The picture header may include information on the number of vertical virtual boundaries of the PH (ph_num_ver_virtual_boundaries) based on the virtual boundary presence flag of the PH and information on the number of vertical virtual boundaries of the SPS. For example, when the value of the virtual boundary presence flag of the PH is 1 and the value of the information on the number of vertical virtual boundaries of the SPS is 0, the picture header may include information on the number of vertical virtual boundaries of the PH. In one example, the picture header may include information on the delta value of the position of the vertical virtual boundary of the PH (ph_virtual_boundaries_pos_x_delta[i]) and information on the sign of the position of the vertical virtual boundary of the PH (ph_virtual_boundaries_pos_x_sign[i]) based on the information on the number of vertical virtual boundaries of the PH. In one example, based on the information on the number of vertical virtual boundaries of the PH, the number of information on the delta value of the position of the vertical virtual boundary of the PH and the number of information on the sign of the position of the vertical virtual boundary of the PH can be determined. The picture header may include information on the number of horizontal virtual boundaries of the PH (ph_num_hor_virtual_boundaries) based on the virtual boundary presence flag of the PH and information on the number of horizontal virtual boundaries of the SPS.

[0258] For example, when the value of the virtual boundary existence flag of the PH is 1 and the value of the information regarding the number of horizontal virtual boundaries of the SPS is 0, the picture header may include information regarding the number of horizontal virtual boundaries of the PH. In one example, based on the information regarding the number of horizontal virtual boundaries of the PH, the picture header may include information regarding the delta value of the position of the horizontal virtual boundary of the PH (ph_virtual_boundaries_pos_y_delta[i]) and information regarding the sign of the position of the horizontal virtual boundary of the PH (ph_virtual_boundaries_pos_y_sign[i]). In one example, based on the information regarding the number of horizontal virtual boundaries of the PH, the number of information regarding the delta value of the position of the horizontal virtual boundary of the PH and the number of information regarding the sign of the position of the horizontal virtual boundary of the PH can be determined.

[0259] Together with the above table, according to the embodiments of this document, the coding device can efficiently signal the information necessary to control the in-loop filtering performed across the virtual boundary. In one example, information related to whether in-loop filtering can be used across the virtual boundary can be signaled.

[0260] FIG. 8 and FIG. 9 schematically show an example of a video / image encoding method and related components according to the embodiments of this document.

[0261] The method disclosed in FIG. 8 can be executed by the encoding device disclosed in FIG. 2 or FIG. 9. Specifically, for example, S800 and S810 in FIG. 8 can be executed by the residual processing unit 230 of the encoding device in FIG. 9, S820 and / or S830 in FIG. 8 can be executed by the filtering unit 260 of the encoding device in FIG. 9, and S840 in FIG. 8 can be executed by the entropy encoding unit 240 of the encoding device in FIG. 9. Also, although not shown in FIG. 8, prediction samples or prediction-related information can be derived by the prediction unit 220 of the encoding device in FIG. 8, and a bitstream can be generated from the residual information or the prediction-related information by the entropy encoding unit 240 of the encoding device. The method disclosed in FIG. 8 may include the embodiments described above in this document.

[0262] Referring to FIG. 8, the encoding device can derive residual samples (S800). The encoding device can derive residual samples for the current block, and the residual samples for the current block can be derived based on the original samples and the prediction samples of the current block. Specifically, the encoding device can derive the prediction samples of the current block based on the prediction mode. In this case, various prediction methods disclosed in this document, such as inter prediction or intra prediction, can be applied. Residual samples can be derived based on the prediction samples and the original samples.

[0263] The encoding device can derive transform coefficients. The encoding device can derive 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.

[0264] The encoding device can derive quantized transform coefficients. The encoding device can derive quantized transform coefficients based on a quantization procedure for the transform coefficients. The quantized transform coefficients may have the form of a one-dimensional vector based on the coefficient scan order.

[0265] The encoding device can generate residual information (S810). The encoding device can generate residual information based on the residual samples for the current block. The encoding device can generate residual information indicating the quantized transform coefficients. The residual information can be generated through various encoding methods such as exponential Golomb, CAVLC, CABAC.

[0266] The encoding device can generate restored samples. The encoding device can generate restored samples based on the residual information. The restored samples can be generated by adding the residual samples based on the residual information to the predicted samples. Specifically, the encoding device can perform prediction (intra or inter prediction) for the current block and generate restored samples based on the original samples and the predicted samples generated from the prediction.

[0267] The restored samples may include restored luma samples and restored chroma samples. Specifically, the residual samples may include residual luma samples and residual chroma samples. The residual luma samples can be generated based on the original luma samples and the predicted luma samples. The residual chroma samples can be generated based on the original chroma samples and the predicted chroma samples. The encoding device can derive transform coefficients (luma transform coefficients) for the residual luma samples and / or transform coefficients (chroma transform coefficients) for the residual chroma samples. The quantized transform coefficients may include quantized luma transform coefficients and / or quantized chroma transform coefficients.

[0268] The encoding device can determine whether the in-loop filtering procedure is executed across a virtual boundary (S820). Here, the virtual boundary can be the same as the virtual boundary described above. Also, the in-loop filtering procedure may include at least one of a deblocking procedure, an SAO procedure, or an ALF procedure.

[0269] The encoding device can generate virtual boundary-related information (S830). The encoding device can generate virtual boundary-related information based on the determination in the step of S820 above. The virtual boundary-related information may be included in the in-loop filtering-related information. Here, the in-loop filtering-related information may refer to the information used to execute the in-loop filtering procedure. For example, the virtual boundary-related information may include information regarding the virtual boundary described in this document (such as the virtual boundary enable flag of the SPS, the virtual boundary enable flag of the picture header, the virtual boundary existence flag of the SPS, the virtual boundary existence flag of the picture header, information regarding the position of the virtual boundary, etc.).

[0270] The encoding device can encode video / image information (S840). The image information may include residual information, prediction-related information, and / or in-loop filtering-related information. The encoded video / image information can be output in the form of a bitstream. The bitstream can be transmitted to the decoding device via a network or a storage medium.

[0271] The image / video information can include various information according to the embodiments of this document. For example, the image / video information may include the information disclosed in at least one of Tables 1 to 32 described above.

[0272] In one embodiment, the image information may include an SPS (Sequence Parameter Set) and picture header information that references the SPS. The virtual boundary related information may include a virtual boundary enable flag (or the virtual boundary enable flag of the SPS). Based on the virtual boundary enable flag, it can be determined whether the signaling of the virtual boundary related information exists in the SPS or the picture header information. The in-loop filtering procedure can be executed across the virtual boundary (or may not be executed across the virtual boundary) based on the virtual boundary enable flag. For example, the virtual boundary enable flag can indicate whether it is possible to disable the in-loop filtering procedure across the virtual boundary.

[0273] In one embodiment, the SPS includes the virtual boundary enable flag and the virtual boundary existence flag of the SPS. Based on the virtual boundary existence flag, it can be determined whether information regarding the position of the virtual boundary and information regarding the number of virtual boundaries are included in the SPS.

[0274] In one embodiment, based on the value of the virtual boundary existence flag of the SPS being 1, the SPS may include information regarding the number of vertical virtual boundaries.

[0275] In one embodiment, the SPS may include information regarding the position of the vertical virtual boundaries. Also, based on the information regarding the number of vertical virtual boundaries, the number of information regarding the position of the vertical virtual boundaries can be determined.

[0276] In one embodiment, based on the value of the virtual boundary existence flag of the SPS being 1, the SPS may include information regarding the number of horizontal virtual boundaries.

[0277] In one embodiment, the SPS may include information regarding the position of the horizontal virtual boundaries. Also, based on the information regarding the number of horizontal virtual boundaries, the number of information regarding the position of the horizontal virtual boundaries can be determined.

[0278] In one embodiment, based on the value of the virtual boundary enable flag being 1 and the value of the virtual boundary existence flag of the SPS being 0, the picture header information may include a virtual boundary existence flag of the picture header.

[0279] In one embodiment, based on the value of the virtual boundary existence flag of the picture header being 1, the picture header information may include information regarding the number of vertical virtual boundaries.

[0280] In one embodiment, the picture header information may include information regarding the position of the vertical virtual boundary. Also, based on the information regarding the number of vertical virtual boundaries, the number of information regarding the position of the vertical virtual boundary can be determined.

[0281] In one embodiment, based on the value of the virtual boundary existence flag of the picture header being 1, the picture header information may include information regarding the number of horizontal virtual boundaries.

[0282] In one embodiment, the picture header information may include information regarding the position of the horizontal virtual boundary. Also, based on the information regarding the number of horizontal virtual boundaries, the number of information regarding the position of the horizontal virtual boundary can be determined.

[0283] In one embodiment, based on the SPS including information regarding the position of the vertical virtual boundary and information regarding the position of the horizontal virtual boundary, the sum of the number of vertical virtual boundaries and the number of horizontal virtual boundaries may be greater than 0.

[0284] In one embodiment, the in-loop filtering related information (and / or virtual boundary related information) may further include a virtual boundary presence flag in the SPS, a virtual boundary presence flag in the picture header, and a Gradual Decoding Refresh (GDR) enable flag. For example, based on the value of the GDR enable flag being 1, the value of the virtual boundary enable flag (virtual boundary enable flag) in the SPS may be 1, the value of the virtual boundary presence flag in the SPS may be 0, and the value of the virtual boundary presence flag in the picture header may be 1 (signaling of virtual boundary information may be present in the picture header).

[0285] FIG. 10 and FIG. 11 schematically show an example of a video / image decoding method and related components according to an embodiment of this document.

[0286] The method disclosed in FIG. 10 can be executed by the decoding device disclosed in FIG. 3 or FIG. 11. Specifically, for example, S1000 in FIG. 10 can be executed by the entropy decoding unit 310 of the decoding device, S1010 can be executed by the residual processing unit 320 and / or the addition unit 340 of the decoding device, and S1020 can be executed by the filtering unit 350 of the decoding device. The method disclosed in FIG. 10 may include the embodiments described above in this document.

[0287] Referring to FIG. 10, the decoding device can receive / acquire video / image information (S1000). The video / image information may include residual information, prediction related information, and / or in-loop filtering related information. The decoding device can receive / acquire the image / video information via a bitstream.

[0288] The image / video information may include various information according to the embodiments of this document. For example, the image / video information may include the information disclosed in at least one of Tables 1 to 32 described above.

[0289] The decoding device can derive the quantized transform coefficients. The decoding device can derive the quantized transform coefficients based on the residual information. The quantized transform coefficients may have a form of a one-dimensional vector based on the coefficient scan order. The quantized transform coefficients may include quantized luma transform coefficients and / or quantized chroma transform coefficients.

[0290] The decoding device can derive the transform coefficients. The decoding device can derive the transform coefficients based on an inverse quantization procedure for the quantized transform coefficients. The decoding device can derive the luma transform coefficients via inverse quantization based on the quantized luma transform coefficients. The decoding device can derive the chroma transform coefficients via inverse quantization based on the quantized chroma transform coefficients.

[0291] The decoding device can generate / derive residual samples. The decoding device can derive the residual samples based on an inverse transform procedure for the transform coefficients. The decoding device can derive the residual luma samples via an inverse transform procedure based on the luma transform coefficients. The decoding device can derive the residual chroma samples via an inverse transform procedure based on the chroma transform coefficients.

[0292] The decoding device can generate / deduce restored samples (S1010). For example, the decoding device can generate / deduce restored luma samples and / or restored chroma samples. The decoding device can generate restored luma samples and / or restored chroma samples based on the residual information. The decoding device can generate restored samples based on the residual information. The restored samples may include restored luma samples and / or restored chroma samples. The luma component of the restored samples may correspond to the restored luma samples, and the chroma component of the restored samples may correspond to the restored chroma samples. The decoding device can generate predicted luma samples and / or predicted chroma samples through a prediction procedure. The decoding device can generate restored luma samples based on the predicted luma samples and the residual luma samples. The decoding device can generate restored chroma samples based on the predicted chroma samples and the residual chroma samples.

[0293] The decoding device can generate modified (filtered) restored samples (S1020). The decoding device can generate modified restored samples based on an in-loop filtering procedure for the restored samples. The decoding device can generate modified restored samples based on in-loop filtering related information. The decoding device can use a deblocking procedure, an SAO procedure, and / or an ALF procedure to generate the modified restored samples.

[0294] In one embodiment, the image information may include SPS and picture header information referring to the SPS. The virtual boundary related information may include a virtual boundary enable flag (or a virtual boundary presence flag in the SPS). Based on the virtual boundary enable flag, it can be determined whether the signaling of the virtual boundary related information exists in the SPS or the picture header information. The in-loop filtering procedure can be executed across the virtual boundary (or may not be executed without crossing it) based on the virtual boundary enable flag. For example, the virtual boundary enable flag can indicate whether it is possible to invalidate the in-loop filtering procedure across the virtual boundary.

[0295] In one embodiment, the SPS may include a virtual boundary enable flag and / or a virtual boundary presence flag in the SPS. Based on the virtual boundary presence flag in the SPS, it can be determined whether the information regarding the position of the virtual boundary and the information regarding the number of the virtual boundaries are included in the SPS.

[0296] In one embodiment, based on the value of the virtual boundary presence flag in the SPS being 1, the SPS may include information regarding the number of vertical virtual boundaries.

[0297] In one embodiment, the SPS may include information regarding the position of the vertical virtual boundaries. Also, based on the information regarding the number of the vertical virtual boundaries, the number of the information regarding the position of the vertical virtual boundaries can be determined.

[0298] In one embodiment, based on the value of the virtual boundary presence flag in the SPS being 1, the SPS may include information regarding the number of horizontal virtual boundaries.

[0299] In one embodiment, the SPS may include information regarding the position of the horizontal virtual boundaries. Also, based on the information regarding the number of the horizontal virtual boundaries, the number of the information regarding the position of the horizontal virtual boundaries can be determined.

[0300] In one embodiment, based on the value of the virtual boundary enable flag being 1 and the value of the virtual boundary presence flag of the SPS being 0, the picture header information may include a virtual boundary presence flag of the picture header.

[0301] In one embodiment, based on the value of the virtual boundary presence flag of the picture header being 1, the picture header information may include information regarding the number of vertical virtual boundaries.

[0302] In one embodiment, the picture header information may include information regarding the position of the vertical virtual boundaries. Also, based on the information regarding the number of the vertical virtual boundaries, the number of the information regarding the position of the vertical virtual boundaries can be determined.

[0303] In one embodiment, based on the value of the virtual boundary presence flag of the picture header being 1, the picture header information may include information regarding the number of horizontal virtual boundaries.

[0304] In one embodiment, the picture header information may include information regarding the position of the horizontal virtual boundaries. Also, based on the information regarding the number of the horizontal virtual boundaries, the number of the information regarding the position of the horizontal virtual boundaries can be determined.

[0305] In one embodiment, based on the SPS including information regarding the position of the vertical virtual boundaries and information regarding the position of the horizontal virtual boundaries, the sum of the number of the vertical virtual boundaries and the number of the horizontal virtual boundaries may be greater than 0.

[0306] In one embodiment, the in-loop filtering related information (and / or virtual boundary related information) may further include a virtual boundary presence flag in the SPS, a virtual boundary presence flag in the picture header, and a Gradual Decoding Refresh (GDR) enable flag. For example, based on the value of the GDR enable flag being 1, the value of the virtual boundary enable flag (virtual boundary enable flag) in the SPS may be 1, the value of the virtual boundary presence flag in the SPS may be 0, and the value of the virtual boundary presence flag in the picture header may be 1 (signaling of virtual boundary information may exist in the picture header).

[0307] When there are residual samples for the current block, the decoding device can receive information regarding the residual for the current block. The information regarding the residual can include transform coefficients regarding the residual samples. The decoding device can derive the residual samples (or, an array of residual samples) for the current block based on the residual information. Specifically, the decoding device can derive the quantized transform coefficients based on the residual information. The quantized transform coefficients can have a one-dimensional vector form based on the coefficient scan order. The decoding device can derive the transform coefficients based on an inverse quantization procedure for the quantized transform coefficients. The decoding device can derive the residual samples based on the transform coefficients.

[0308] The decoding device can generate restored samples based on (intra) prediction samples and residual samples, and can derive a restored block or a restored picture based on the restored samples. Specifically, the decoding device can generate restored samples based on the sum of the (intra) prediction samples and the residual samples. Thereafter, as described above, the decoding device can apply in-loop filtering procedures such as deblocking filtering and / or SAO procedures to the restored picture, if necessary, to improve subjective / objective picture quality.

[0309] For example, the decoding device can decode a bitstream or encoded information and obtain image information including all or part of the aforementioned information (or syntax elements). Further, the bitstream or encoded information can be stored in a computer-readable storage medium, and the aforementioned decoding method can be performed.

[0310] In the foregoing embodiments, the method is described based on a flowchart as a series of steps or blocks, but the corresponding embodiments are not limited to the order of the steps, and a certain step can occur in an order different from that of the steps described above or simultaneously with different steps. Also, those skilled in the art can understand that the steps shown in the flowchart are not exclusive, and different steps may be included, or one or more steps of the flowchart can be deleted without affecting the scope of the embodiments of this document.

[0311] The method according to the foregoing embodiments of this document can be implemented in the form of software, and the encoding device and / or decoding device according to this document can be included in devices that perform image processing, such as TVs, computers, smartphones, set-top boxes, display devices, etc.

[0312] In this document, when an embodiment is implemented by software, the above-described method can be implemented by modules (processes, functions, etc.) that perform the above-described functions. The modules can be stored in a memory and executed by a processor. The memory may be inside or outside the processor and may be connected to the processor by various well-known means. The processor can include an ASIC (Application-Specific Integrated Circuit), other chip sets, logic circuits, and / or data processing devices. The memory can include a ROM (Read-Only Memory), a RAM (Random Access Memory), a flash memory, a memory card, a storage medium, and / or other storage devices. That is, the embodiments described in this document can be implemented and performed on a processor, a microprocessor, a controller, or a chip. For example, the functional units shown in each drawing can be implemented and performed on a computer, a processor, a microprocessor, a controller, or a chip. In this case, information for implementation (e.g., information on instructions) or an algorithm can be stored in a digital storage medium.

[0313] In addition, the decoding device and encoding device to which the embodiments of this document are applied may include a multimedia broadcast transceiver, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video conferencing device, a real-time communication device such as video communication, a mobile streaming device, a storage medium, a camcorder, a video-on-demand (VoD) service providing device, an OTT video (Over The Top video) device, an Internet streaming service providing device, a three-dimensional (3D) video device, a VR (Virtual Reality) device, an AR (Augmented Reality) device, a picture phone video device, a transportation means terminal (e.g., a vehicle terminal including an autonomous driving vehicle, an airplane terminal, a ship terminal, etc.) and a medical video device, etc., and can be used to process video signals or data signals. For example, the OTT video (Over The Top video) device may include a game console, a Blu-ray player, an Internet access TV, a home theater system, a smartphone, a tablet PC, a DVR (Digital Video Recorder), etc.

[0314] In addition, the processing method to which the embodiments of this document are applied can be produced in the form of a program executed by a computer and can be stored in a recording medium readable by a computer. Multimedia data having a data structure according to the embodiments of this document can also be stored in a recording medium readable by a computer. The above-mentioned recording medium readable by a computer includes all types of storage devices and distributed storage devices in which data readable by a computer is stored. The above-mentioned recording medium readable by a computer can include, for example, Blu-ray Disc (BD), Universal Serial (General-Purpose Serial) Bus (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage devices. In addition, the above-mentioned recording medium readable by a computer includes a medium realized in the form of a carrier wave (for example, transmission via the Internet). Also, a bitstream generated by an encoding method can be stored in a recording medium readable by a computer or transmitted via a wired or wireless communication network.

[0315] In addition, the embodiments of this document can be realized by a computer program product with program code, and the above program code can be executed by a computer according to the embodiments of this document. The above program code can be stored on a carrier readable by a computer.

[0316] FIG. 12 shows an example of a content streaming system to which the embodiments disclosed in this document can be applied.

[0317] Referring to FIG. 12, the content streaming system to which the embodiments of this document are applied can generally include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.

[0318] The above encoding server compresses the content input from multimedia input devices such as smartphones, cameras, and camcorders into digital data to generate a bitstream, and plays the role of transmitting this to the above streaming server. As another example, when multimedia input devices such as smartphones, cameras, and camcorders directly generate a bitstream, the above encoding server may be omitted.

[0319] The above bitstream can be generated by an encoding method or a method for generating a bitstream to which the embodiments of this document are applied, and the above streaming server can temporarily store the above bitstream in the process of transmitting or receiving the above bitstream.

[0320] The above streaming server transmits multimedia data to a user device based on a user request via a web server, and the above web server plays the role of a medium for informing the user of what services are available. If the user requests a desired service from the above web server, the above web server transmits this to the streaming server, and the above streaming server transmits multimedia data to the user. At this time, the above content streaming system can include another control server, and in this case, the above control server plays the role of controlling commands / responses between each device in the above content streaming system.

[0321] The above streaming server can receive content from a media storage device (repository) and / or an encoding server. For example, when receiving content from the above encoding server, the above content can be received in real time. In this case, in order to provide a smooth streaming service, the above streaming server can store the above bitstream for a certain period of time.

[0322] In the example of the above user device, there may be a mobile phone, a smart phone, a laptop computer, a digital broadcast terminal, a PDA (Personal Digital Assistants), a PMP (Portable Multimedia Player), a navigation device, a slate PC, a tablet PC, an ULTRABOOK (registered trademark), a wearable device (for example, a smartwatch (watch-type terminal), a smart glass (glass-type terminal), an HMD (Head Mounted Display)), a digital TV, a desktop computer, a digital signature (signi), etc.

[0323] Each server in the above content streaming system can be operated as a distributed server, and in this case, the data received by each server can be distributedly processed.

[0324] The claims described in this specification can be combined in various ways. For example, the technical features of the method claims in this specification can be combined and realized as a device, and the technical features of the device claims in this specification can be combined and realized as a method. Also, the technical features of the method claims in this specification and the technical features of the device claims can be combined and realized as a device, and the technical features of the method claims in this specification and the technical features of the device claims can be combined and realized as a method.

Claims

1. An image decoding method performed by a decoding device, comprising: obtaining image information via a bitstream, the image information including residual information, information related to a virtual boundary and prediction related information; generating residual samples based on the residual information; deriving a prediction sample based on the prediction-related information; generating reconstructed samples of a current picture based on the prediction samples and the residual samples; generating modified reconstructed samples based on an in-loop filtering procedure on the reconstructed samples; The image information includes a sequence parameter set (SPS) and picture header information that references the SPS, the information related to the virtual boundary includes a virtual boundary enable flag; The SPS includes an SPS virtual boundary presence flag based on the virtual boundary enable flag; determining whether the signaling of the information related to the virtual boundary is present in the SPS or the picture header information based on the virtual boundary enable flag; determining whether the in-loop filtering procedure is enabled across the virtual boundary based on the virtual boundary enable flag; The method of claim 1, wherein the SPS includes information regarding a position of a vertical virtual boundary and information regarding a position of a horizontal virtual boundary based on a value of the SPS virtual boundary present flag being one.

2. 1. An image encoding method performed by an encoding device, comprising: deriving prediction related information for a current block; generating a predicted sample for the current block based on the prediction related information; deriving residual samples for the current block based on the prediction samples; generating residual information based on the residual samples for the current block; generating reconstructed samples for a current picture based on the prediction samples and the residual samples; determining whether an in-loop filtering procedure is enabled across a virtual boundary; generating information related to the virtual boundary based on the determination; and encoding image information including the prediction related information, the residual information and the information related to the virtual boundary, The image information includes a sequence parameter set (SPS) and picture header information that references the SPS, the information related to the virtual boundary includes a virtual boundary enable flag; The SPS includes an SPS virtual boundary presence flag based on the virtual boundary enable flag; determining whether the signaling of the information related to the virtual boundary is present in the SPS or the picture header information based on the virtual boundary enable flag; determining a value of the virtual boundary enable flag based on whether the in-loop filtering procedure is enabled across the virtual boundary; The method of claim 1, wherein a value of the SPS virtual border present flag is determined to be equal to 1 based on if information regarding a position of a vertical virtual border and information regarding a position of a horizontal virtual border are included in the SPS.

3. A method for transmitting data relating to an image, comprising the steps of: obtaining a bitstream of the image, the bitstream comprising: deriving prediction related information for a current block; generating a predicted sample for the current block based on the prediction related information; deriving residual samples for the current block based on the prediction samples; generating residual information based on the residual samples for the current block; generating reconstructed samples for a current picture based on the prediction samples and the residual samples; determining whether an in-loop filtering procedure is enabled across a virtual boundary; generating information related to the virtual boundary based on the determination; encoding image information including the prediction related information, the residual information and the information related to the virtual boundary; transmitting the data including the bitstream; The image information includes a sequence parameter set (SPS) and picture header information that references the SPS, the information related to the virtual boundary includes a virtual boundary enable flag; The SPS includes an SPS virtual boundary presence flag based on the virtual boundary enable flag; determining whether the signaling of the information related to the virtual boundary is present in the SPS or the picture header information based on the virtual boundary enable flag; determining a value of the virtual boundary enable flag based on whether the in-loop filtering procedure is enabled across the virtual boundary; The method of claim 1, wherein a value of the SPS virtual border present flag is determined to be equal to 1 based on if information regarding a position of a vertical virtual border and information regarding a position of a horizontal virtual border are included in the SPS.

Citation Information

Patent Citations

  • Encoder and decoder, encoding method and decoding method for versatile spatial partitioning of coded pictures

    WO2020011796A1

  • Handling video unit boundaries and virtual boundaries

    WO2020249123A1

  • Method for efficient signaling of virtual boundary for loop filtering control

    WO2020263769A1