METHOD AND DEVICE FOR VIDEO INFORMATION SIGNALING APPLICABLE AT THE IMAGE LEVEL OR SEGMENT LEVEL
Patent Information
- Application Number
- MX2022006966
- Authority / Receiving Office
- MX · MX
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-12-12
- Filing Date
- 2022-06-08
- Publication Date
- 2026-02-25
- Estimated Expiration
- 2040-12-10
AI Technical Summary
The increasing demand for high-resolution and high-quality images leads to higher transmission and storage costs due to larger information sizes, necessitating more efficient image compression techniques.
A method and device for signaling image information at an image or segment level, allowing tools to be applied at either a picture or segment level, enhancing image coding efficiency through indication information and tool signaling in headers.
Enhances overall image/video compression efficiency and decoding efficiency by optimizing tool application at the appropriate level.
Smart Images

Figure MX431678B0
Abstract
Description
METHOD AND DEVICE FOR INFORMATION SIGNALING VIDEO APPLICABLE AT IMAGE LEVEL OR SEGMENT LEVEL BACKGROUND OF THE INVENTION Field of Invention [1] This description refers to an image coding technology and, more specifically, to a method and device for signaling image (or video) information applicable at an image level or a segment level in an image coding system. Related Technique [2] Recently, the demand for high-resolution, high-quality images, such as High Definition (HD) and Ultra High Definition (UHD) images, has been increasing in various fields. As the resolution and quality of image data increase, the size of the information, or bit size, transmitted increases compared to existing image data. Therefore, when image data is transmitted using the same medium, such as a conventional (or existing) wired / wireless broadband line, or when a conventional (or existing) storage medium is used to store image data, the transmission and storage costs can increase. [3] Therefore, a technique is required to MA / high-efficiency image compression to effectively transmit or store and reproduce (or reproduce) high-quality, high-resolution image information. SUMMARY OF THE DESCRIPTION Technical Objectives [4] A technical objective of the present description is to provide a method and apparatus for increased image coding efficiency. [5] Another technical objective of the present description is to provide a method and device for image (or video) information signaling applicable at an image level or a segment level. [6] Yet another technical objective of the present description is to provide a method and device for performing block-current decoding based on picture (or video) information that is applicable at a picture level or a segment level. Technical Solutions [7] Pursuant to one embodiment of the present description, a method of image decoding performed by a decoding apparatus is provided herein. The method may include the steps of obtaining indication information that indicates whether at least one tool for a current block is applied at an image level or a segment level, and determining whether the information ML / related to at least one tool is present in an image header or in a segment header based on indication information, analyzing the information related to at least one tool from the image header or segment header based on determination, and decoding the current block based on the information related to at least one tool. [8] Pursuant to another embodiment of the present description, a method of image encoding performed by an encoding apparatus is provided herein. The method may include the steps of generating indication information that indicates whether at least one tool being applied to a current block is applied at an image level or a segment level, generating information related to at least one tool, and encoding the indication information and image information that includes the information related to at least one tool. In the present document, the indication information indicates whether the information related to at least one tool is present in an image header or a segment header. [9] Pursuant to yet another embodiment of the present description, a computer-readable digital recording medium is hereby provided having encoded image information stored therein that MA / permits an image decoding method to be performed by a decoding apparatus. The image decoding method in accordance with the modality may include the steps of obtaining indication information that indicates whether at least one tool being applied to a current block is applied at an image level or a segment level, determining whether information related to at least one tool is present in an image header or a segment header based on the indication information, analyzing the information related to at least one tool from the image header or segment header based on the determination, and decoding the current block based on the information related to at least one tool. EFFECTS OF THE DESCRIPTION
[10] In accordance with this specification, the overall image / video compression efficiency can be increased.
[11] In accordance with this specification, image decoding efficiency can be increased based on indication information that indicates whether at least one tool for a current block is applied to an image level or a segment level. BRIEF DESCRIPTION OF THE FIGURES
[12] Figure 1 schematically illustrates a MA / example of a video / image encoding system to which the present description is applicable.
[13] Figure 2 is a diagram that schematically illustrates a configuration of a video / image encoding apparatus to which the present description is applicable.
[14] Figure 3 is a diagram that schematically illustrates a configuration of a video / image decoding apparatus to which the present description is applicable.
[15] Figure 4 illustrates an exemplary hierarchical structure of encoded data.
[16] Figure 5 is a flowchart illustrating a method for performing unblocking filtration in accordance with a modality.
[17] Figure 6 is a flowchart that schematically illustrates an example of an ALF procedure.
[18] Figures 7a and 7b illustrate an example of a filter form for ALF.
[19] Figure 8 is a flowchart illustrating an operation of an image encoding apparatus in conformity with a modality.
[20] Figure 9 is a block diagram illustrating a configuration of an encoding apparatus MA / image in accordance with a modality.
[21] Figure 10 is a flowchart illustrating an operation of an image decoding apparatus in accordance with a modality.
[22] Figure 11 is a block diagram illustrating a configuration of an image decoding apparatus in accordance with a modality.
[23] Figure 12 shows an example of a continuous content transmission system to which the modalities described in this specification can be applied. DESCRIPTION OF THE ILLUSTRATIVE MODALITIES
[24] The present description may be modified in various ways, and the drawings describe and illustrate the specific ways in which it is described. However, the ways in which it is described are not intended to limit the description. The terms used in the following description are employed to describe only specific ways in which it is described, but are not intended to limit the description. An expression of a singular number includes an expression of the plural number, provided that it is clearly read differently. Terms such as "includes" and "has" are intended to indicate that there are features, numbers, steps, operations, elements, components, or combinations thereof used in the following description and, therefore, must MA / It is understood that the possibility of the existence or addition of one or more different characteristics, numbers, steps, operations, elements, components or combinations is not excluded.
[25] Furthermore, each configuration in the drawings described herein is a separate illustration to explain functions as distinct features, and does not imply that each configuration is implemented using mutually different hardware or software. For example, two or more of the configurations may be combined to form a single configuration, and a configuration may also be divided into multiple configurations. Without departing from the substance of this document, the ways in which the configurations are combined and / or separated are included within the scope of the claims.
[26] In the present description, the term A or B may mean only A, only B, or both A and B. In other words, in the present description, A or B may be interpreted to indicate A and / or B. For example, in the present description, the term A, B, or C may mean only A, only B, only C, or any combination of A, B, C.
[27] A slash / or a comma used in this description may mean and / or. For example, A / B can mean A and / or B. Therefore, A / B can mean only A, only B, or both A and B. For example, A, B, C can mean A, B, or C.
[28] In this specification, at least one of A and B may mean only A, only B, or both A and B. Furthermore, in this specification, the expression at least one of A or B or at least one of A and / or B may be interpreted the same as at least one of A and B.
[29] Furthermore, in this specification, at least one of A, B and C may mean only A, only B, only C, or any combination of A, B and C. In addition, at least one of A, B or C or at least one of A, B and / or C may mean at least one of A, B and C.
[30] Furthermore, the parentheses used in this specification may mean, for example. Specifically, in the case where "prediction" is expressed (intra-prediction), it may be indicated that "intra-prediction" is proposed as an example of a prediction. In other words, the term "prediction" in this specification is not limited to "intra-prediction," and it may be indicated that "intra-prediction" is proposed as an example of a prediction. Moreover, even in the case where "prediction" is expressed (i.e., "intra-prediction"), it may be indicated that "intra-prediction" is proposed as an example of a prediction.
[31] In this specification, the ML / Technical characteristics explained individually in a drawing can be implemented individually, or they can be implemented simultaneously.
[32] Hereafter, a preferred embodiment of the present description will be described in more detail with reference to the accompanying drawings. Hereafter, the same reference numbers will be used to indicate the same configuration elements within the drawings, and overlapping (or repetitive) descriptions of the same element configuration(s) will be omitted for simplicity.
[33] Figure 1 schematically illustrates an example of a video / image coding system to which the present description is applicable.
[34] With reference to Figure 1, a video / image coding system may include a first device (a source device) and a second device (a receiving device). The source device may transmit coded video / image information or data to the receiving device via a digital storage medium or network in the form of a file or continuous stream.
[35] The source device may include a video source, an encoding device, and a transmitter. The receiving device may include a receiver, a decoding device, and a renderer. The device of The encoding unit may be called a video / image encoding device, and the decoding unit may be called a video / image decoding device. The transmitter may be included in the encoding unit. The receiver may be included in the decoding unit. The renderer may include a display, and the display may be configured as a separate device or an external component.
[36] The video source may acquire video / images through a video / image capture, synthesis, or generation process. The video source may include a video / image capture device and / or a video / image generation device. The video / image capture device may include, for example, one or more cameras, video / image files containing previously captured video / images, and the like. The video / image generation device may include, for example, computers, tablets, and smartphones, and may generate (electronically) video / images. For example, a virtual video / image may be generated via a computer or similar device. In this case, the video / image capture process may be replaced by a related data generation process.
[37] The encoding device can encode the input video / image. The encoding device can ML / performs a series of procedures such as prediction, transformation, and quantization for compaction and coding efficiency. The encoded data (video / image information) can be output as a bitstream.
[38] The transmitter can transmit the image / encoded image information or data output as a bitstream to the receiver of the receiving device via a digital storage medium or a network in the form of a file or stream. The digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, and the like. The transmitter can include a component for generating a multimedia file using a predetermined file format and can include a component for transmission over a broadcast / communication network. The receiver can receive / extract the bitstream and transmit the received bitstream to the decoding device.
[39] The decoding apparatus can decode the video / image by performing a series of procedures such as dequantization, inverse transformation, and prediction corresponding to the operation of the encoding apparatus.
[40] The renderer can render the decoded video / image. The rendered video / image can ML / to be shown through the screen.
[41] This specification pertains to video / image coding. For example, the method / example described in this specification may be applied to a method described in a Versatile Video Coding (VVC) standard, an Essential Video Coding (EVC) standard, an AOMedia Video 1 (AVI) standard, a 2nd generation audio and video coding standard (AVS2), or other next-generation video / image coding standard(s) (e.g., H.267 or H.268, and so forth).
[42] This document suggests several video / image encoding methods, and the above methods may also be performed in combination with each other unless otherwise specified.
[43] In this document, a video may refer to a series of images over time. An image generally refers to the unit that represents an image in a particular time frame, and a segment / tile refers to the unit that constitutes a part of the image in terms of encoding. A segment / tile may include one or more encoding tree units (CTUs). An image may consist of one or more segments / tiles.
[44] A mosaic is a rectangular region of CTUs within a particular mosaic column and row of A mosaic is a particular mosaic within an image. A mosaic column is a rectangular region of CTUs with a height equal to the image height and a width specified by syntax elements in the image parameter set. A mosaic row is a rectangular region of CTUs with a width specified by syntax elements in the image parameter set and a height equal to the image height. A mosaic sweep is a specific sequential ordering of CTUs that divide an image, in which the CTUs are ordered consecutively in a CTU raster sweep within a mosaic, while the mosaics within an image are ordered consecutively in a raster sweep of the image mosaics. A segment can include a plurality of whole (or complete) mosaics or a plurality of consecutive (or contiguous) arrays of CTUs within a mosaic of an image that can be included in a NAL unit.In this specification, a mosaic group and a segment may be used interchangeably. For example, in this specification, a mosaic group / mosaic group header may be referred to as a segment / segment header.
[45] However, an image can be divided into two or more sub-images. A sub-image can be a rectangular region of one or more segments within an image. MA /
[46] A pixel or pei can mean a smaller unit that constitutes a frame (or image). Also, 'sample' can be used as a term corresponding to a pixel. A sample, in general, can represent a pixel or a pixel value, and can represent only a pixel / pixel value of a luma component or only a pixel / pixel value of a chroma component.
[47] A unit can represent a basic image processing unit. The unit can include at least one specific region of the image and information related to that region. A unit can include one luma block and two chroma blocks (e.g., cb, cr). The unit can be used interchangeably with terms such as block or area in some cases. In a general case, an M*N block can include samples (or sample arrays) or a set (or array) of transformation coefficients with M columns and N rows.
[48] Figure 2 is a diagram that schematically illustrates a configuration of a video / image encoding apparatus to which the present description may be applied. Hereafter, a video encoding apparatus may include an image encoding apparatus.
[49] Referring to Figure 2, the coding apparatus 200 may include a partitioner of ML / images 210, a predictor 220, a residual processor 230, and an entropy encoder 240, an adder 250, a filter 260 and a memory 270. The predictor 220 may include an inter-predictor 221 and an intra-predictor 222. The residual processor 230 may include a transformer 232, a quantizer 233, a dequantizer 234 and an inverse transformer 235. The residual processor 230 may further include a subtractor 231. The adder 250 may be referred to as a reconstructor or reconstructed block generator. The image partitioner 210, predictor 220, residual processor 230, entropy encoder 240, adder 250, and filter 260 may be configured by one or more hardware components (e.g., encoder chipsets or processors) according to a modality. In addition, memory 270 may include a decoded image buffer (DPB) or may be configured by a digital storage medium.The hardware component may also include the 270 memory as an internal / external component.
[50] The image partitioner 210 can divide an input image (or, picture, frame) for the encoding apparatus 200 into one or more processing units. As an example, the processor can be named the encoding unit (CU). In this case, the encoding unit can be recursively partitioned according to ML / with a quad binary tree structure (QTBTTT) starting from a coding tree unit (CTU) or the largest coding unit (LCU). For example, a coding unit can be divided into a plurality of coding units of greater depth based on a quad tree structure, a binary tree structure, and / or a ternary tree structure. In this case, for example, the quad tree structure is applied first, and the binary tree structure and / or the ternary tree structure can be applied subsequently. Alternatively, the binary tree structure can also be applied first. A coding procedure according to the present description can be carried out based on a final coding unit that is no longer divided.In this case, the largest encoding unit can be used as the final encoding unit based on its coding efficiency in accordance with the image characteristics. Alternatively, if necessary, the encoding unit can be recursively divided into deeper encoding units, and an optimally sized encoding unit can be used as the final encoding unit. The encoding procedure here may include a prediction, transformation, and reconstruction procedure, which will be described later. As another example, the processor may include... ML / also a prediction unit (PU) or a transformation unit (TU). In this case, the prediction unit and the transformation unit can be divided or partitioned from the aforementioned final encoding unit. The prediction unit can be a sample prediction unit, and the transformation unit can be a unit for deriving a transformation coefficient and / or a unit for deriving a residual signal from the transformation coefficient.
[51] In certain cases, the unit can be used interchangeably with the term block or area. In a general case, an MxN block can represent a set of samples or transformation coefficients composed of M columns and N rows. A sample can generally represent a pixel or a pixel value, can represent only a pixel / pixel value of a luma component, or can represent only a pixel / pixel value of a chroma component. A sample can be used as a term corresponding to a frame (or image) for a pixel or a pixel.
[52] In the encoding apparatus 200, a prediction signal (predicted block, prediction sample matrix) generated from the Inter predictor 221 or the intra predictor 222 is subtracted from an input image signal (original block, sample matrix) MA / original) to generate a residual block of residual signal (residual sample matrix), and the generated residual signal is transmitted to transformer 232. In this case, as shown, a part for subtracting a prediction signal (predicted block, prediction sample matrix) from the input image signal (original block, original sample matrix) in encoder 200 can be called a subtractor 231. The predictor can perform prediction on a block that will be processed (later referred to as a current block) and generate a predicted block that includes prediction samples for the current block. The predictor can determine whether intra-prediction or inter-prediction is applied within a current block or CU base.As described later in the description of each prediction mode, the predictor can generate various prediction-related information, such as prediction mode information, and transmit the generated information to the entropy encoder 240. The prediction information can be encoded in the entropy encoder 240 and generated in the form of a bit stream.
[53] The intra-predictor 222 can predict a current block with reference to samples within a current image. The referenced samples can be located near the current block, or they can also be located far from the current block depending on the prediction mode. MA / The prediction modes in intra-prediction can include multiple non-directional and directional modes. Non-directional modes can include, for example, a DC mode or a planar mode. Directional modes can include, for example, 33 or 65 directional prediction modes, depending on the level of precision required for the prediction direction. However, this is for illustrative purposes, and the number of directional prediction modes used may vary depending on the configuration. Intra-predictor 222 can also determine the prediction mode applied to the current block using the prediction mode applied to the nearest block.
[54] Interpredictor 221 can induce a predicted block of the current block based on a reference block (reference sample array) specified by a motion vector in a reference image. Currently, in order to reduce the amount of motion information transmitted in interprediction mode, the motion information can be predicted in units of a block, a sub-block, or a sample based on the correlation of motion information between the neighboring block and the current block. The motion information can include a motion vector and a reference image index. The motion information can also include information from MA / interprediction direction (LO prediction, Ll prediction, Bi prediction, or similar). In the case of interprediction, the neighbor block may include a spatial near block existing in the current image and a temporal near block existing in the reference image. The reference image that includes the reference block and the reference image that includes the temporal near block may also be the same, or they may be different. The temporal near block may be called a colocated reference block, a colocated CU (colCU), or something similar, and the reference image that includes the temporal near block may also be called a colocated image (colPic).For example, the interpredictor 221 can configure a list of motion information candidates based on nearby blocks and generate information indicating which candidate is used to derive the motion vector and / or reference image index of the current block. Interprediction can be performed based on various prediction modes. For example, in the case of a skip mode and a combination mode, the interpredictor 221 can use the motion information of the neighboring block as the motion information of the current block. In the skip mode, the residual signal may not be transmitted, unlike in combination mode. A motion vector prediction mode. MA / (MVP) can indicate the movement vector of the current block using the movement vector of the nearby block as a predictor of the movement vector, and signaling a movement vector difference.
[55] Predictor 220 can generate a prediction signal based on several prediction methods, which are described below. For example, the predictor can apply either intra-prediction or inter-prediction to predict a block, or it can simultaneously apply both intra-prediction and inter-prediction. This can be called combined inter- and intra-prediction (CIIP). Furthermore, the predictor can rely on either an intra-block copy (IBC) prediction mode or a palette mode for predicting a block. The IBC prediction mode or the palette mode can be used for image / video encoding of game content or similar applications, such as screen content coding (SCC). IBC essentially performs the prediction on the current image, but it can be implemented similarly to inter-prediction, where a reference block is derived from the current image.In other words, IBC can use at least one of the inter-prediction techniques described herein. Palette mode can be considered an example of intra- or intra-prediction coding. When palette mode is applied, a sample value within an image can be selected based on information from the palette table and the palette index.
[56] The prediction signal generated by the predictor (including the inter-predictor 221 and / or the intra-predictor 222) can be used to generate a reconstructed signal or a residual signal. The transformer 232 can generate transformation coefficients by applying a transformation technique to the residual signal. For example, the transformation technique can include at least a discrete cosine transform (DCT), a discrete sine transform (DST), a Karhunen-Loève transform (KLT), a graph-based transform (GBT), or a conditionally nonlinear transform (CNT). Here, GBT means a transformation obtained from a graph when the pixel relationship information is represented by the graph. CNT refers to the transformation generated based on a prediction signal generated using all previously reconstructed pixels.Furthermore, the transformation process can be applied to blocks of square pixels that are the same size, or it can be applied to blocks that are of a variable size instead of square.
[57] The quantizer 233 can quantize the transformation coefficients and transmit them to the entropy encoder 240 and the entropy encoder 240 can MA / encode the quantized signal (information about the quantized transformation coefficients) and output a bit stream. The information about the quantized transformation coefficients can be called residual information. The quantizer 233 can rearrange block-type quantized transformation coefficients into a one-dimensional vector form based on a coefficient sweep order and generate information about the quantized transformation coefficients based on the quantized transformation coefficients in one-dimensional vector form. Information about the transformation coefficients can be generated. The entropy encoder 240 can perform various encoding methods such as, for example, exponential Golomb, context-adaptive variable-length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), and similar methods.The 240 entropy encoder can encode information necessary for video / image reconstruction other than quantized transformation coefficients (e.g., syntax element values, and so on), either together or separately. The encoded information (e.g., encoded video / image information) can be transmitted or stored in NAL (Network Abstraction Layer) units as a bitstream. The video / image information can also include... MA / information about various parameter sets such as an Adaptive Parameter Set (APS), an Image Parameter Set (PPS), a Sequence Parameter Set (SPS), or a Video Parameter Set (VPS). Additionally, the video / image information may also include general restriction information. In this description, information and / or syntax elements transmitted / signaled from the encoding device to the decoding device may be included in the video / image information. The video / image information may be encoded using the encoding procedure described above and included in the bitstream. The bitstream may be transmitted over a network or stored on a digital storage medium.The network may include a transmission network and / or a communication network, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, and the like. A transmitter (not shown) that transmits a signal output from the entropy encoder 240 and / or a storage unit (not shown) that stores the signal may be included as an internal / external element of the encoding apparatus 200, and alternatively, the transmitter may be included in the entropy encoder 240.
[58] The transformation coefficients The quantized MLs emitted from quantizer 233 can be used to generate a prediction signal. For example, the residual signal (residual block or residual samples) can be reconstructed by applying dequantization and inverse transformation to the quantized transformation coefficients via dequantizer 234 and inverse transformer 235. Adder 250 adds the reconstructed residual signal to the prediction signal output, from inter-predictor 221 or intra-predictor 222, to generate a reconstructed signal (reconstructed image, reconstructed block, reconstructed sample matrix). If there are no residuals for the block to be processed, as in the case of skipping mode, the predicted block can be used as the reconstructed block. Adder 250 can be referred to as a reconstructor or reconstructed block generator.The reconstructed signal generated can be used for intra-prediction of a subsequent block to be processed in the current image and can be used for inter-prediction of a subsequent image through filtering as described below.
[59] Meanwhile, luma mapping with chroma scaling (LMCS) can be applied during the encoding and / or reconstruction of an image.
[60] Filter 260 can improve subjective / objective image quality by applying filtering to the signal ML / reconstructed. For example, filter 260 can generate a modified reconstructed image by applying various filtering methods to the reconstructed image and store the modified reconstructed image in memory 270, specifically in a DPB of memory 270. The various filtering methods may include, for example, unlock filtering, sample-adaptive shift (SAO), adaptive loop filtering, bilateral filtering, and the like. Filter 260 can generate various types of filtering-related information and transfer the generated information to entropy encoder 290 as described later in the description of each filtering method. The filtering-related information can be encoded by entropy encoder 290 and output as a bitstream.
[61] The modified reconstructed image transmitted to memory 270 can be used as a reference image in the inter-predictor 221. When inter-prediction is applied through the encoding apparatus, the prediction mismatch between the encoding apparatus 200 and the decoding apparatus 300 can be avoided, and the encoding efficiency can be improved.
[62] The DPB of memory 270 can store the modified reconstructed image for use as a reference image in interpredictor 221. Memory 270 can ML / stores motion information from a block from which the motion information of the current image is derived (or encoded) and / or motion information from blocks in the already reconstructed image. The stored motion information can be transferred to the inter-predictor 221 to be used as spatial near block motion information or temporal near block motion information. Memory 270 can store reconstructed samples of reconstructed blocks in the current image and can transfer the reconstructed samples to the intra-predictor 222.
[63] Figure 3 is a diagram to schematically explain the configuration of a video / image decoding device to which the description in this document can be applied.
[64] Referring to Figure 3, the decoding apparatus 300 may include and be configured with an entropy decoder 310, a residual processor 320, a predictor 330, an adder 340, a filter 350, and a memory 360. The predictor 330 may include an inter-predictor 331 and an intra-predictor 332. The residual processor 320 may include a dequantizer 321 and an inverse transformer 322. The entropy decoder 310, the residual processor 320, the predictor 330, the adder 340, and the filter 350, which have been described above, ML / can be configured by one or more hardware components (e.g., decoder chipsets or processors) depending on the mode. Additionally, the 360 memory can include a decoded image buffer (DPB) and can be configured by a digital storage medium. The hardware component can also include the 360 memory as an internal or external component.
[65] When the bitstream containing the video / image information is input, the decoding apparatus 300 can reconstruct the image in response to a process in which the video / image information is processed in the encoding apparatus illustrated in Figure 2. For example, the decoding apparatus 300 can derive the units / blocks based on the block-splitting information acquired from the bitstream. The decoding apparatus 300 can perform the decoding using the processing unit applied to the encoding apparatus. Therefore, the processing unit for decoding can be, for example, an encoding unit, and the encoding unit can be divided according to the quad-tree structure, the binary tree structure, and / or the ternary tree structure of the encoding tree unit or the maximum encoding unit. One or more transformation units ML / can be derived from the encoding unit. In addition, the reconstructed image signal, decoded and output via the decoding unit 300, can be reproduced via a playback device.
[66] The decoding apparatus 300 can receive a signal output from the encoding apparatus of Figure 2 in the form of a bitstream, and the received signal can be decoded by the entropy decoder 310. For example, the entropy decoder 310 can analyze the bitstream to obtain information (e.g., video / image information) necessary for frame (or image) reconstruction. The video / image information can further include information about various parameter sets, such as an adaptation parameter set (APS), an image parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information can also include general constraint information. The decoding apparatus can further decode the image based on the parameter set information and / or the general constraint information.The signaled / received information and / or the syntax elements described later in this description can be decoded using the decoding procedure and obtained from the bitstream. For example, the entropy decoder 310. ML / decodes the information in the bitstream based on an encoding method such as exponential Golomb encoding, CAVLC, or CABAC, and generates syntax elements necessary for image reconstruction and quantized values of transformation coefficients for residues. More specifically, the CABAC entropy decoding method can receive a bin corresponding to each syntax element in the bitstream, determine a context model using target decoding syntax element information, decoding information from a target decoding block, or information from a symbol / bin decoded in a previous stage, and perform arithmetic decoding on the bin by predicting a probability of occurrence of a bin according to the determined context model, and generate a symbol corresponding to the value of each syntax element.In this case, the CABAC entropy decoding method can update the context model using the decoded symbol / bin information for a subsequent symbol / bin context model after determining the context model. Prediction-related information between the information decoded by entropy decoder 310 can be provided to the predictor (the inter-predictor 332 and the intra-predictor 331), and the residual value at which the entropy decoding was performed in the decoder. MA / entropy 310, i.e., the quantized transformation coefficients and related parameter information, can be input into the residual processor 320. The residual processor 320 can derive the residual signal (the residual block, the residual samples, the residual sample matrix). Furthermore, filtering information between the information decoded by the entropy decoder 310 can be provided to the filter 350. Meanwhile, a receiver (not shown) for receiving a signal output from the encoding apparatus can be further configured as an internal / external element of the decoder apparatus 300, or the receiver can be a component of the entropy decoder 310.Meanwhile, the decoding apparatus according to the present description may be called a video / image / picture decoder, and the decoding apparatus may be classified into an information decoder (video / image / picture information decoder) and a sample decoder (video / image / picture sample decoder). The information decoder may include the entropy decoder 310, and the sample decoder may include at least one of the following: the dequantizer 321, the inverting transformer 322, the adder 340, the filter 350, the memory 360, the inter-predictor 332, and the intra-predictor 331. MA /
[67] The dequantizer 321 can dequantize the quantized transformation coefficients to output the transformation coefficients. The dequantizer 321 can rearrange the quantized transformation coefficients into a two-dimensional block form. In this case, the rearrangement can be performed based on a coefficient scan order performed by the encoding apparatus. The dequantizer 321 can perform the dequantization of the quantized transformation coefficients using a quantization parameter (e.g., quantization step size information) and acquire the transformation coefficients.
[68] The inverting transformer 322 inversely transforms the transformation coefficients to acquire the residual signal (residual block, residual sample matrix)
[69] Predictor 330 can perform the prediction of the current block and generate a predicted block including the prediction samples of the current block. The predictor can determine whether intra-prediction or inter-prediction is applied to the current block based on information about the prediction output of entropy decoder 310, and determine a specific intra / inter-prediction mode.
[70] The 320 predictor can generate a prediction signal based on several prediction methods, which are described below. For example, the predictor can apply either intra-prediction or inter-prediction to predict a block, or it can simultaneously apply both intra- and inter-prediction. This can be called combined inter- and intra-prediction (CIIP). Furthermore, the predictor can rely on either an intra-block copy (IBC) prediction mode or a palette mode for predicting a block. The IBC prediction mode or the palette mode can be used for image / video encoding of game content or similar applications, such as screen content coding (SCC). IBC essentially performs the prediction on the current image, but it can be implemented similarly to inter-prediction, where a reference block is derived from the current image.In other words, IBC can use at least one of the inter-prediction techniques described herein. Palette mode can be considered an example of intra- or intra-prediction coding. When palette mode is applied, a sample value within an image can be selected based on information from the palette table and the palette index.
[71] Intra predictor 331 can predict the current block by referencing the samples in the image ML / current. The referenced samples may be located in close proximity to the current block or may be separated according to the prediction mode. In intra-prediction, the prediction modes may include a plurality of non-directional modes and a plurality of directional modes. The intra-predictor 331 may determine the prediction mode applied to the current block using a prediction mode applied to a neighboring block.
[72] Interpredictor 332 can derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector in a reference image. In this case, in order to reduce the amount of motion information transmitted in interprediction mode, the motion information can be predicted in block units, sub-blocks, or samples based on the correlation of motion information between the neighboring block and the current block. The motion information can include a motion vector and a reference image index. The motion information can also include interprediction direction information (LO prediction, Ll prediction, Bi prediction, and so on). In the case of interprediction, the neighboring block can include a spatial neighbor block present in the current image and a temporal neighbor block present in the reference image. For example, the ML / inter predictor 332 can configure a candidate list of motion information based on neighboring blocks and derive a motion vector of the current block and / or a reference image index based on the received candidate selection information. Inter prediction can be performed based on various prediction modes, and the information in the prediction can include information indicating an inter prediction mode for the current block.
[73] Adder 340 can generate a reconstructed signal (reconstructed image, reconstructed block, or reconstructed sample array) by adding the obtained residual signal to the prediction signal (predicted block or predicted sample array) emitted by predictor 330. If there are no residuals for the target processing block, as in the case of an override mode, the predicted block can be used as the reconstructed block.
[74] Adder 340 may be called a reconstructor or reconstructed block generator. The generated reconstructed signal can be used for intra-prediction of the next block to be processed in the current image, and as described later, it can also be output through filtering or used for inter-prediction of the next image.
[75] Meanwhile, in the process of decoding ML / of the image, a luma mapping with chroma scaling (LMCS) can also be applied.
[76] Filter 350 can improve the subjective / objective image quality by applying filtering to the reconstructed signal. For example, Filter 350 can generate a modified reconstructed image by applying various filtering methods to the reconstructed image and store the modified reconstructed image in memory 360, specifically in a DPB of memory 360. The various filtering methods may include, for example, unlock filtering, adaptive sample shifting, an adaptive loop filter, a bilateral filter, and the like.
[77] The reconstructed (modified) image stored in the DPB of memory 360 can be used as a reference image in inter-predictor 331. Memory 360 can store the motion information of the block from which the motion information of the current image is derived (or decoded) and / or the motion information of blocks in the already reconstructed image. The stored motion information can be transferred to inter-predictor 331 to be used as motion information for the near spatial block or motion information for the near temporal block. Memory 360 can store reconstructed samples of reconstructed blocks in the current image and transfer the reconstructed samples to intra-predictor 332. ML /
[78] In the present document, the modalities described in filter 260, inter-predictor 221, and intra-predictor 222 of the coding apparatus 200 may be the same as, or respectively applied to correspond to, filter 350, inter-predictor 332, and intra-predictor 331 of the coding apparatus 300. The same may also apply to inter-predictor 332 and intra-predictor 331.
[79] Meanwhile, as previously described, prediction is performed during video encoding to improve compression efficiency. This involves generating a predicted block that includes prediction samples for a current block as a block to be encoded (i.e., a target encoding block). Here, the predicted block includes prediction samples in a spatial domain (or pixel domain). The predicted block is derived in the same way in both an encoding and a decoding apparatus. The encoding apparatus can signal information (residual information) about the difference between the original block and the predicted block, instead of an original sample value from an original block, to the decoding apparatus, thereby increasing image encoding efficiency. The decoding apparatus can derive a residual block that includes samples MA / residuals based on residual information, add the residual block and the predicted block to generate reconstructed blocks that include reconstructed samples, and generate a reconstructed image that includes the reconstructed blocks.
[80] Residual information can be generated through a transformation and quantization procedure. For example, the encoding apparatus can derive a residual block between the original block and the predicted block, perform a transformation procedure on residual samples (residual sample array) included in the residual block to derive transformation coefficients, perform a quantization procedure on the transformation coefficients to derive quantized transformation coefficients, and signal the related residual information to the decoding apparatus (via a bitstream). Here, the residual information can include value information of the quantized transformation coefficients, location information, a transformation technique, a transformation kernel, a quantization parameter, and the like.The decoding apparatus can perform a dequantization / reverse transformation procedure based on the residual information and derive residual samples (or residual blocks). The decoding apparatus can generate one. MA / Reconstructed image based on the predicted block and the residual block. Furthermore, as a reference for the interprediction of a subsequent image, the encoding device can also dequantize / inversely transform the quantized transformation coefficients to obtain a residual block and generate a reconstructed image based on that block.
[81] Figure 4 exemplifies a hierarchical structure for a coded data.
[82] With reference to Figure 4, the encoded data can be divided into a video encoding layer (VCL), which handles the encoding processing of a video / image and the video / image itself, and a Network Abstraction Layer (NAL), which exists between the VCL and a subsystem that stores and transmits the encoded video / image.
[83] The VCL can generate a parameter set (image parameter set (PPS), sequence parameter set (SPS), video parameter set (VPS), and so on) that corresponds to a sequence and image header, and so on, and a Supplemental Enhancement Information (SEI) message that is additionally required in the video / image encoding process. The SEI message is separate from the video / image information (segment data). The VCL that includes MA / The information in the video / image is configured from segment data and a segment header. Meanwhile, a segment header can be referred to as a mosaic group header, and segment data can be referred to as mosaic group data.
[84] In the NAL, an NAL unit can be generated by adding header information (NAL unit header) to a raw bit sequence payload (RBSP) generated in a VCL. In this case, the RBSP refers to segment data, parameter set, SEI message, and so forth, generated in the VCL. The NAL unit header can include NAL unit type information specified in accordance with RBSP data included in the corresponding NAL unit.
[85] A NAL unit performs a mapping role of an image encoded to a bit sequence of a subsystem, such as a file format, Real-Time Transport Protocol (RTF), transport stream (TS), and so forth.
[86] As shown in the figure, the NAL unit can be classified as a VCL NAL unit and a non-VCL NAL unit according to the RBSP generated in the VCL. The VCL NAL unit can mean an NAL unit that includes image information (segment data) in the image, and the non-VCL NAL unit can mean a unit MA / of NAL that includes information (parameter set or SEL message) required to decode the image.
[87] The VCL NAL unit and the non-VCL NAL unit described above can be transmitted over a network by combining the header information in accordance with the subsystem's data standard. For example, the NAL unit can be transformed into a data format of a predetermined standard such as an H.266 / VVC file format, a Real-Time Transport (RTF) protocol, a Transport Stream (TS), and so on, and transmitted across various networks.
[88] As described above, the NAL unit can be specified with the NAL type unit in accordance with the RBSP data structure included in the corresponding NAL unit, and the information in the NAL type unit can be stored and pointed to in the NAL unit header.
[89] For example, the NAL unit can be classified into a VCL NAL unit type and a non-VCL NAL unit type according to whether the NAL unit includes information (segment data) about an image. The VCL NAL unit type can be classified according to the nature and type of images included in the VCL NAL unit, and the non-VCL NAL unit type can be classified according to parameter set types.
[90] The following is an example of a NAL unit type that is specified in accordance with a parameter set type that is included in a non-VCL NAL unit type. For example, the NAL unit type may be specified as an Adaptation Parameter Set (APS) NAL unit, which is a NAL unit type that includes APS, a Decoding Parameter Set (DPS) NAL unit, which is a NAL unit type that includes DPS, a Video Parameter Set (VPS) NAL unit, which is a NAL unit type that includes VPS, a Sequence Parameter Set (SPS) NAL unit, which is a NAL unit type that includes SPS, and a Picture Parameter Set (PPS) NAL unit, which is a NAL unit type that includes PPS.
[91] The NAL unit types mentioned above may have syntax information for the NAL unit type, and the syntax information may be stored and referenced in an NAL unit header. For example, the syntax information may be nal_unit type, and NAL unit types may be specified by a nal_unit_type value.
[92] Meanwhile, as described above, an image may include a plurality of segments, and a segment may include a header of MA / segment and segment data. In this case, an image header can be added to multiple segments (a segment header and a segment data set) within an image. The image header (image header syntax) can include information / parameters commonly applicable to the image. The segment header (segment header syntax) can include information / parameters commonly applicable to the segment. The APS (APS syntax) or PPS (PPS syntax) can include information / parameters commonly applicable to one or more segments or images. The SPS (SPS syntax) can include information / parameters commonly applicable to one or more sequences. The VPS (VPS syntax) can include information / parameters commonly applied to multiple layers. The DPS (DPS syntax) can include information / parameters commonly applied to the entire video.The DPS may include information / parameters related to the concatenation of a coded video sequence (CVS). The high-level syntax (HLS) in this document may include at least one of the following syntaxes: APS, PPS, SPS, VPS, DPS, and segment header.
[93] In this document, the image / image information encoded from the apparatus The ML / encoding signal sent to the decoding device as a bitstream includes not only information related to image partitioning, intra / inter prediction, residual information, filtering information within the loop, and so on, but also information contained in a segment header, APS, PPS, SPS, VPS, and / or DPS. Furthermore, the image / image information may include NAL unit header information.
[94] Meanwhile, as described above, in order to improve subjective / objective image quality, the encoding / decoding apparatus can perform an in-loop filtering procedure on a reconstructed image. A modified reconstructed image can be generated through the in-loop filtering procedure, and the modified reconstructed image can be generated from the decoding apparatus as a decoded image and can also be stored in the decoded image buffer or memory of the encoding / decoding apparatus. Additionally, in a subsequent process, the modified reconstructed image can be used as a reference image in an interprediction procedure. ML / when encoding / decoding is performed. As described above, the filtering procedure within the loop may include an unlocking filtering procedure, a sample adaptive compensation (SAO) procedure, and / or an adaptive loop filter (ALF) procedure. In this case, one or part of the unlocking filtering procedure, the sample adaptive compensation (SAO) procedure, and the adaptive loop filter (ALF) procedure may be applied sequentially, or all of the procedures may be applied sequentially. For example, after applying the unlocking filtering procedure to a reconstructed image, the SAO procedure may be performed. Alternatively, for example, after applying the unlocking filtering procedure to the reconstructed image, the ALF procedure may be performed. This may be done identically in the encoding apparatus.
[95] The unlocking filtering procedure is a procedure that removes some distortion generated in a reconstructed image at a boundary between blocks. For example, the unlocking filtering procedure can derive a target boundary from the reconstructed image, determine a boundary intensity (bS) for the target boundary, and perform unlocking filtering for the ML / 6. Target limit based on the determined bS. The bS can be determined based on the prediction modes of two blocks being adjacent to the target block, a difference in motion vector, whether or not the reference image is the same, whether or not there is a non-zero significant coefficient, and so on.
[96] The SAO procedure is a method for compensating for differences between a reconstructed image and an original image in sample units. For example, the SAO procedure can be applied according to a type of compensation, such as band compensation, border compensation, and so on. According to the SAO, a sample can be classified into different categories according to the SAO type, and a compensation value can be added to each sample according to the category. The filtering information for the SAO can include information about whether or not the SAO is being applied, information about the SAO type, and information about the SAO compensation value. For example, the SAO can be applied to a reconstructed image after the application of unlock filtering.
[97] The adaptive loop filter (ALF) procedure is a procedure for filtering a reconstructed image in sample units, based on a coefficient ML / filter according to a filter configuration. The encoding device can compare the reconstructed image with the original image to determine whether or not ALE is applied, the ALE configuration, and / or the ALE filtering coefficient, and so on, and can signal the reconstructed image to the encoding device. That is, the filtering information in the ALE procedure can include information on whether or not ALE is applied, ALE configuration information, ALE filtering coefficient information, and so on. The ALF procedure can be applied to a reconstructed image after the application of unlocking filtering.
[98] Figure 5 is a flow diagram illustrating a method for performing unblocking filtration in accordance with a modality.
[99] As described above, the encoding / decoding apparatus can reconstruct an image in block units. Block distortion can occur at a boundary between blocks within the reconstructed image. Therefore, in order to remove the block distortion that occurs at the boundary between blocks within the reconstructed image, the encoding and decoding apparatus can use an unblocking filter.
[100] Therefore, the apparatus of The ML / encoding / decoding device can derive a boundary between blocks that have undergone unlock filtering within the reconstructed image. This boundary, which has undergone unlock filtering, can be referred to as an edge. Furthermore, this boundary can be of two different types: a vertical boundary and a horizontal boundary. The vertical boundary can also be referred to as a vertical edge, and the horizontal boundary as a horizontal edge. The encoding / decoding device can perform unlock filtering on both the vertical and horizontal edges.
[101] For example, the encoding / decoding apparatus can derive a target boundary that is being processed when filtered from the reconstructed image (S510).
[102] Additionally, the decoding apparatus / decoding device can determine a limit strength (bS) for a limit that has unlock filtering performed on it (S520). The bS can also be indicated as a limit filter strength. For example, one can assume a case where a value of ML / bS for a boundary (block edge) between block P and block Q. In this case, the encoding / decoding device can obtain a bS value for a boundary (block edge) between block P and block Q based on block P and block Q. For example, bS can be determined according to the table shown below.
[103] [Table 1] The variable bS [ xD¡ ][ vD ] is derived as follows: - If cldx is equal to 0 and both samples Pq and qo are in a coding block with intra bdpcm flag equal to 1, bS[ xD¡ ][ yD, ] sets equal to 0. - Otherwise, if the sample Po θ fio is in the encoding block of a coding unit encoded with intra-prediction mode bS[ xDj ][ yDj ] is set equal to 2. - Otherwise, if the block border is also a transform block border and the sample p0o q0 is in an encoding block with ciip flag equal to 1, bS[ xD¡ ][ yD;] is set equal to 2. - Otherwise, if the block boundary is also a transformation block boundary and the sample p0o q0 is in a transformation block which contains one or more non-zero transformation coefficient levels, bS[ xD, ][ yDi ] is set equal to 1. - Otherwise, if the prediction mode of the encoding subblock containing sample p0 is different from the prediction mode of the encoding subblock containing sample qo, bS[ xDj ][ yD> ] is set equal to 1. - Otherwise, if cldx is equal to 0 and one or more of the following conditions are true, bS[ xD¡ ][ yD, ] is set equal to 1: - The encoding subblock containing sample Po and the encoding subblock containing sample qo are both encoded in IBC prediction mode, and the absolute difference between the horizontal or vertical component of the motion vectors used in the prediction of the two encoding subblocks is greater than or equal to 4 in quarter luma sample units. - For the prediction of the encoding subblock containing the sample ρθ, different reference images or a different number of motion vectors are used than for the prediction of the encoding subblock containing the sample q0. - A movement vector is used to predict the encoding subblock containing sample p0 and a movement vector is used to predict the encoding subblock containing sample q0 and the absolute difference between the horizontal or vertical component of the movement vectors used is greater than or equal to 4 in units of quarter luma samples. - Two motion vectors and two different reference images are used to predict the encoding subblock containing sample Pq; two motion vectors for the same two reference images are used to predict the encoding subblock ML / containing sample q(, and the absolute difference between the horizontal or vertical component of the two motion receptors used in predicting the two encoding subblocks for the same reference image is greater than or equal to 4 in units of quarter luma samples. - Two motion detectors for the same reference image are used to predict the encoding subblock containing sample pq. Two motion detectors for the same reference image are used to predict the encoding subblock containing sample qy. And both of the following conditions are true: - The absolute difference between the horizontal or vertical component of list 0 of motion rulers used in the prediction of the two coding subblocks is greater than or equal to 4 in luma sample quarters. or the absolute difference between the horizontal or vertical component of list 1 of motion rulers used in the prediction of the two coding subblocks is greater than or equal to 4 in luma sample quarter units. - The absolute difference between the horizontal or vertical component or list 0 of the motion vector used in the prediction of the coding subblock containing sample Po and list 1 of the motion vector used in the prediction of the coding subblock containing sample q0 is greater than or equal to 4 in units of quarter luma samples. or the absolute difference between the horizontal or vertical component of list 1 of the motion vector used in the prediction of the coding subblock containing sample Pq and list 0 of the motion vector used in the prediction of the coding subblock containing sample q0 is greater than or equal to 4 in units of quarter luma samples. - Otherwise, the variable b$[ xDi j[ yDj I is set equal to 0.
[104]
[105] Here, p can denote a block sample P that is adjacent to the target unlocking filter boundary, and q can denote a block sample Q that is adjacent to the target unlocking filter boundary.
[106] Additionally, for example, pO can indicate a sample of a block that is adjacent to a left or upper side of the unlocking filter target boundary 10, and qO can indicate a sample of a block that is adjacent to a right or lower side of the unlocking filter target boundary. For example, if one direction of the target boundary is vertical (i.e., if the target boundary is a vertical boundary), the MA / pO can indicate a sample of a block that is adjacent to the left side of the target unblocking filtration boundary, and qO can indicate a sample of a block that is adjacent to the right side of the target unblocking filtration boundary. Alternatively, for example, if one direction of the target boundary is horizontal (i.e., if the target boundary is a horizontal boundary), pO can indicate a sample of a block that is adjacent to the upper side of the target unblocking filtration boundary, and qO can indicate a sample of a block that is adjacent to the lower side of the target unblocking filtration boundary.
[107] Referring again to Figure 5, the encoding / decoding apparatus can perform blocking filtering based on bS (S530). For example, when the bS value is equal to 0, unblocking filtering is not applied to the target boundary. Meanwhile, based on the determined bS value, the filter that is applied to the boundary between blocks can be determined. The filter can be categorized as a strong filter and a weak filter. Performing filtering using different filters for each of a boundary position with a high probability of block distortion occurring at it and a boundary position with a low probability of block distortion occurring at it within the ML / reconstructed image, the encoding / decoding apparatus can increase encoding efficiency.
[108] Figure 6 is a flowchart that schematically illustrates an example of an ALF procedure. The ALF procedure (or process) described in Figure 6 can be performed on an encoding apparatus and a decoding apparatus. In this document, the encoding apparatus may include the encoding apparatus and / or the decoding apparatus.
[109] With reference to Figure 6, the encoding apparatus derives a filter for ALF (S610). The filter may include filter coefficients. The encoding apparatus can determine whether ALF is applied, and when it is determined to apply ALF, it can derive a filter that includes filter coefficients for ALF. The information for deriving a filter (coefficients) for ALF may be referred to as an ALF parameter. The information itself regarding whether ALF is applied (i.e., ALF enabled flag) and ALF data for deriving the filter may be signaled from the encoding apparatus to the decoding apparatus. ALF data may include information for deriving a filter for ALF. Also, for example, for hierarchical control of ALF, an ALF enabled flag may be signaled in the SPS, image header, segment header, and / or level of ML / CTB, respectively.
[110] In order to derive the filter for the ALF, the activity and / or directivity of the current block (or ALF target block) is derived, and the filter can be derived based on the activity and / or directivity. For example, the ALF process can be applied to 4x4 block units (based on luma components). The current block or the ALF target block can be, for example, a CU, or it can be a 4x4 block within a CU. Specifically, for example, the filters for ALF can be derived based on first filters derived from information included in the ALF data and second, predefined filters, and the encoding apparatus can select one of the filters based on the activity and / or directivity. The encoding apparatus can use filter coefficients included in the selected filter for the ALF.
[111] The coding apparatus performs filter-based filtration (S620). Modified reconstructed samples can be derived based on filtration. For example, the filter coefficients in the filter can be ordered or assigned according to a filter configuration, and filtration can be performed on reconstructed samples in the current block. Here, the reconstructed samples in the current block can be samples reconstructed after the filtering process of MA / unlock and the SAO process are completed. For example, a filter configuration can be used, or a filter configuration can be selected and used from among a plurality of preset filter configurations. For example, a filter configuration applied to the luma component and a filter configuration applied to the chroma component can be different. For example, a 7x7 rhombus filter configuration can be used for the luma component, and a 5x5 rhombus filter configuration can be used for the chroma component.
[112] Figures 7a and 7b illustrate an example of a filter shape for ALF. CO~C11 from (Figure 7a) and C0~C5 from (Figure 7b) can be filter coefficients that are position-dependent within each filter configuration.
[113] Figure 7a shows the configuration of a 7x7 rhombus filter, and Figure 7b shows the configuration of a 5x5 rhombus filter. In Figure 8, Cn in the filter configuration represents a filter coefficient. When n in Cn is the same, this indicates that the same filter coefficients can be assigned. In this document, a position and / or unit to which filter coefficients are assigned according to the ALF filter configuration may be referred to as a derivation of ML / filter. In this case, a filter coefficient can be assigned to each filter branch, and the arrangement of the filter branches can correspond to a filter configuration. A filter branch located in the center of the filter configuration can be referred to as a central filter branch. The same filter coefficients can be assigned to two filter branches of the same n value that exist in positions corresponding to each other with respect to the central filter branch. For example, in the case of a 7x7 rhombus filter configuration, 25 filter branches are included, and since the filter coefficients C0 to C11 are assigned in a centrally symmetric manner, the filter coefficients can be assigned to 25 filter branches using only 13 filter coefficients.Also, for example, in the case of a 5x5 rhombus filter configuration, 13 filter branches are included, and since the filter coefficients C0 to C5 are assigned in a centrally symmetric manner, the filter coefficients can be assigned to the 13 filter branches using only 7 filter coefficients. For example, in order to reduce the amount of information indicated in filter coefficients, 12 filter coefficients out of 13 filter coefficients for the 7x7 rhombus filter configuration can be (explicitly) indicated, and one filter coefficient. ML / can be derived (implicitly). Also, for example, 6 filter coefficients out of 7 filter coefficients for a 5x5 rhombus filter configuration can be pointed out (explicitly) and a filter coefficient can be derived (implicitly).
[114] Pursuant to one modality of this document, the ALF parameter used for the ALF process may be signaled through an Adaptive Parameter Set (APS). The ALF parameter may be derived from the filter information for the ALF or from ALF data.
[115] ALF is a type of in-loop filtering technique that can be applied to video / image encoding as described above. ALF can be implemented using a Wiener-based adaptive filter. This can be done to minimize the mean squared error (MSE) between the original samples and the decoded (or reconstructed) samples. A high-level design for an ALF tool may incorporate accessible syntax elements from the SPS and / or segment header (or mosaic group header).
[116] Meanwhile, an image header includes syntax elements that are applied to the image header, and the syntax elements can be applied to all segments of an image that are related to MA / the image header. When a specific syntax element is applied only to a specific segment, the specific syntax segment must be pointed out from a segment header and not from the image header.
[117] In the prior art, signaling a control flag and parameters to enable or disable multiple image encoding or decoding tools existed in the image header and were overridden in the segment header. This method provides flexibility, allowing tool control to be performed at both the image and segment levels. However, when using this method, since the segment header is required to be checked after the image header is checked, this method can load the decoder.
[118] Accordingly, the modality described herein proposes indication information that shows whether or not at least one tool is being applied at an image level or a segment level. At this point, the indication information can be included in either a Sequence Parameter Set (SPS) or an Image Parameter Set (PPS). That is, when a specific tool is activated (or enabled) within a CLVS, an indication or flag will show whether or not the specific tool is being applied at an image level or a MA / segment level can be signaled from a parameter set, such as SPS or PPS. Although the indicator or flag may correspond to a tool, this description is not limited to that. For example, an indicator or flag to show whether or not all tools, and not just a specific tool, are being applied at an image level or segment level can be signaled from a parameter set, such as SPS or PPS.
[119] Although the control flag and parameters for enabling or disabling tools can be set at either the image or segment level, the signaling does not occur at both levels. For example, if you receive signaling information indicating whether or not a specific tool is being applied at the image level, the control flag and parameters for enabling or disabling that tool can only be set at the image level. Similarly, if you receive signaling information indicating whether or not a specific tool is being applied at the segment level, the control flag and parameters for enabling or disabling that tool can only be set at the segment level.
[120] Additionally, for example, a tool that is designated to be applied to an image level from a specific parameter set may be designated to be applied to a segment level from another parameter set of the same type.
[121] For example, a PPS syntax that includes indication information may be as shown below in the following table.
[122] [Table 2] pic_parameter_set_rbsp{) ! Descriptor rpljpresent injph flag u(l) sao_present_inj>hflag u( 1 > alf_present_in_ph_flag u(l) deblocking_filter_con trolj resen t_flag u(l) yes( deblocking_filter_control_present_flag) ¡ deblockingfilterjphoverrideenabled _flag u(l) deblockiugfiltershoverrideenabledflag u(l) ppsdeblockingfllterdisabled _flag u(l) si( !pps_deblocking_filter_disabled_flag ) { pps_beta_oííset_div2 se(v) pps_tc_offset_div2 se(v) 1 í cons t ants lite headerjar ains en abled flag u(H
[123] The semantics of syntax elements included in the syntax of Table 2 may, for example, be indicated as shown below in Table 3. ML /
[124] [Table 3] rpl_present_in_ph_flag equal to 1 specifies that reference image list signaling may be present in PHs referencing PPS. rpl_present_in_phflag equal to 0 specifies that reference image list signaling may be present in segment headers referencing PPS. `sao_present_in_ph_flag` equal to 1, which specifies the syntax elements to enable the use of SAO, may be present in PHs that reference PPS. `sao_present_in_phflag` equal to 0, which specifies the syntax elements to enable the use of SAO, may be present in segment headers that reference PPS. `alf_present_in_ph_flag` equal to 1, which specifies the syntax elements to enable the use of ALF, may be present in PHs that reference PPS. `alf_present_in_ph_flag` equal to 0, which specifies the syntax elements to enable the use of ALF, may be present in segment headers that reference PPS. deblocking_filter_ph_override_enabled flag equal to 1 specifies the presence of pic deblocking filter override flag in the PHs that refer to the PPS. The `deblocking_filter_ph_override_enabled_flag` flag, set to 0, specifies the absence of the `pic_deblocking_filter_override_flag` flag in PHs that refer to the PPS. When it is not present, the value of the `deblocking_filter_ph_override_enabled` flag is inferred to be 0. The `deblocking filter sh override enabled` flag set to 1 specifies the presence of the `slice_deblocking_filter_override_flag` in segment headers that refer to the PPS. The `deblocking filter sh override enabled` flag set to 0 specifies the absence of the `slice_deblocking_filter_override_flag` in segment headers that refer to the PPS. When it is not present, the value of the `deblocking filter sh override enabled` flag is inferred to be 0. It is a bitstream shaping requirement that the value of deblocking filter ph override enabled-flag and deblocking filter sh override enabled-flag must not both be equal to 1.
[125] With reference to the tables presented above, indication information may include a flag indicating whether or not the signaling of a reference image list is applied at an image level or a segment level. For example, the indication information may designate whether the information related to the signaling of a reference image list is present (or exists) in the image header or is present (or exists) in the segment header. For example, the flag may be indicated as rpl_present_in_ph_flag. Based on a case where a value of MA / the corresponding flag is equal to 1, the information related to the signaling of a reference image list is present in the image header. And, based on a case where a value of the corresponding flag is equal to 0, the information related to the signaling of a reference image list is present in the segment header.
[126] Additionally, the indicator information may include a flag that indicates whether or not an Adaptive Sample Compensation (ASC) procedure is being applied at an image level or at a segment level. For example, the indicator information may designate whether the ASC-related information is present in the image header or in the segment header. For example, the flag may be indicated as sao_present_in_ph_flag. Based on a case where the corresponding flag value is 1, the ASC-related information is present in the image header. And, based on a case where the corresponding flag value is 0, the ASC-related information is present in the segment header.
[127] Additionally, the indication information may include a flag indicating whether or not a procedure Adaptive Loop Filter (ALF) MA is being applied at the image level or at the segment level. For example, the indicator information can specify whether ALF-related information is present in the image header or in the segment header. For example, the flag can be indicated as alf_present_in_ph_flag. If the flag value is 1, ALF-related information is present in the image header. If the flag value is 0, ALF-related information is present in the segment header.
[128] Additionally, the indication information may include at least one flag indicating whether or not the unblocking procedure is being applied at an image level or at a segment level. For example, based on at least one flag, information related to the unblocking procedure may be present (or may exist) in either the image header and a segment header. For example, at least one flag may be indicated as `deblocking filter ph override enabled flag` or `deblocking_filter_sh_override_enabled_flag`. For example, based on a case where the value of at least one flag is MA / equal to 1, a flag indicating whether or not a parameter related to the unlocking procedure is present in the image header may be present in the image header. And, based on a case where the value of at least one flag is equal to 0, a flag indicating whether or not a parameter related to the unlocking procedure is present in the image header may not be present in the image header.
[129] Alternatively, based on a case where at least one flag value is equal to 1, a flag indicating whether or not a parameter related to the unlocking procedure is present in the segment header may be present. And, based on a case where at least one flag value is equal to 0, a flag indicating whether or not a parameter related to the unlocking procedure is present in the segment header may not be present. At this point, the values of `deblocking_filter_ph_override_enabled_flag` and `deblocking_filter_sh_override_enabled_flag` may not both be equal to 1.
[130] Meanwhile, an image syntax header can be as shown below in the following table. M L /
[131] [Table 4] picWre_header_¡bsp( ) i Descriptor si( rpl_preseLtt__injph_flag ) ¡ para( i = 0: i - 2; i-+ i j si( num_ief_pic_lists_in_sps[ i j - 0 && !pps_ief_pic_list_sps_idc[ i ] && í i == 0 ( i == 1 && rpll_idx_present_flas ) ) ) pie rpl sps flag[ i ] 0(1} si( pic_rpl_sps_flag[ i ] i ! si( mim ref pic Íistj in spsf i ] > 1 && (i == 0 / (i == 1 && rpll_idx_present_flag ) )) pic_rpl_idx[ i ] U(V> ¡ además reijic list stnictí i. num_ref_pic_lists_ín_sps[ i ] ) para( j = 0; j ' NuniLtrpEntiies[ i ][ Rplsldx[ i ] ]; j-*—) 1 si( ltrp_in_sltce_lieader_ílag[ i ][ Rplsldx[ i ] 1 1 pícpoclsbltf i ][ j ] IKV) pie delta pocmsbpreseutflagf i ][ j ] 0(1) si( pic_deltaj?oc_nisb_prese!it_flag[ i ][j ] ) pic delta poe msb eycle lt[ i ][ j ] ue(v) ¡ sí( sps_sao_enabled_ilag && sao_present_in_ph_flag ) ¡ picsaohiniaenabledflag u( 1} si( ChromaArrayType ’= 0 ) pie sao chroina enabled flag Ul 1) si( sps_alf_enabled_flag && alfj3resent_in_ph_ñag ) ¡ picalfenabledílag u( 1) yes( pic_alf_eaabled_flag ); picnumalfapsidsluma u(3) para( i = 0: ip¡c_mun_alf_aps_idsjuma: i+~ ) pie alf aps id iumai i ] 11(3) si( CluomaArrayType '= 0 ) picalfchromaidc υ(2) si( pícalfcliromaidc ) pic_alf_aps_id_chiOma 11(3) yes( deWocking_filterjph_ovemde_enabled_flag ) J pic_deblocking_filter_override_present_flag u(l) yes( pie debíocking filier overnde present ílag 1 ' picdeblockingfllteroverrideflag u( 1) yes( pie_deMocking_filterovemde_flag ) ' pie deblocking Bíter disabled flag U( 1) yes( ipic_deblocking_filtei_disñbied_fiag ) ; pic_beta_offset_div2 se(v) pie te offset div2 se(v) í 1 i • • 1
[132]
[133] The semantics of the syntax elements included in the syntax of Tabla 4 can, for example, be 5 indicated as shown below in Tabla 5. ML /
[134] [Table 5] pic_deblocking_filter_ovemde_present_flag equal to 1 specifies that pic_deblocking_filter_ovemde_flag is present in the PH. pic_deblocking_filter_ovemde_present_flag equal to 0 specifies that pic_deblocking_filter_ovemde_flag is not present in the PH. When pic_deblocking_filter_ovemde_present_flag is not present, it is inferred by being equal to 0. The `pic_deblockingjfilter_override_flag` flag equal to 1 specifies that the unlocking parameters are present in the PH. The `pic_deblockingjfilter_override_flag` flag equal to 0 specifies that the unlocking parameters are not present in the PH. When they are not present, the value of `pic_deblockingjfilter_override_flag` is inferred to be equal to 0. `picdebiockmg_filter_disabled_flag` equal to 1 specifies that the unblocking filter operation is not applied to the segments associated with the PH. `pic_deblocking_filter_disabled_flag` equal to 0 specifies that the unblocking filter operation is applied to the segments associated with the PH. When `pic_deblocking_filter_disabled_flag` is not present, it is inferred to be equal to `pps_deblocking_filter disabled flag`. The `pip_beta_offset_div2` and `pic_tc_offset_div2` parameters specify the unlock parameter offsets for β and tC (divided by 2) for the segments associated with the PH. The values of `pic_beta_offset_div2` and `pic_tc_offset_div2` must both be in the range of -6 to 6, inclusive. When they are not present, the values of `pic_beta_offset_div2` and `pic_tc_offset_div2` are inferred to be equal to `pps_beta_offset_div2` and `pps_tc_offsecdiv2`, respectively.
[135] With reference to the tables presented above, when the value of deblocking_filter_ph_override_enabled_flag, which corresponds to a flag indicating whether or not the unblocking procedure is being applied at the image level, is equal to 1, pic_deblocking_filter_override_present_flag may be set. When the value of pic_deblocking_filter_override_present_flag is equal to 1, the deblocking filter override flag, which corresponds to a flag indicating whether or not a parameter related to the unblocking procedure is present in the image header, may be present in the image header. Alternatively, when a value of the deblocking filter override present flag is equal to 0, the pic_deblocking_filter_override_flag, which corresponds to a flag indicating whether or not a parameter related to the unblocking procedure is present in the image header, may not be present in the image header.
[136] Additionally, when the value of the `pic_deblocking_filter_override_flag`, which corresponds to a flag indicating whether or not a parameter related to the unlocking procedure is present in the image header, is equal to 1, the unlocking parameters may or may not be present in the image header. And, when the value of the `pie deblocking filter override flag`, which corresponds to a flag indicating whether or not a parameter related to the unlocking procedure is present in the image header, is equal to 0, the unlocking parameters may or may not be present in the image header.
[137] Additionally, when the value of pic_deblocking_filter_disabled_flag is equal to 1, an unblocking filter may not be applied to segments that are related to the image header. And, when the value of pic_deblocking_filter_disabled_flag is equal to 0, a ML / unblocking filter can be applied to segments that are related to the image header.
[138] Additionally, pic_beta_offset_div2 and pic_tc_offset_div2 can respectively designate unlock parameter offset for β and tC (value divided by 2) for image header-related segments. The values of pic_beta_offset_div2 and pic_tc_offset_div2 can all be within a range of 6 to 6.
[139] Meanwhile, a segment header syntax can be as shown below in the following table. MA /
[140] [Table 6] slice_header() { Descriptor ... sí( !ípl_present_in_ph_flag &&( (nal_umt_type 1= IDR_W_RADL && nal_unit_ty pe ’= IDR_N_LP) i | sps_idr_ipl_present_ñag ) ) { para( i = 0; i < 2; i++ ) { si( num_ref_pic_lists_in_sps[ i ] > 0 && !pps_ref_pic_list_sps_idcf ¿ ] && (i == 0 i| ( i == 1 && rpll_idxj>resent_flag^ ) )) slice_rpl_sps_Oag[ i ] sí( slice_rpl_sps_flag[ i ]) { sí( aum_ref_pic_lists_iti_sps[ i ] > 1 && (i == 0 H (i == 1 && rpll_idx_present_flag ) )) síice_rpl_idx[ i ] U(v)} además ief_pic_iíst_stiuct( i, nmn_ref_pic_lists_in_sps[ i ] ) para( j = 0; j < NumLtrpEntnesf i ][ Rplsldxf i ] ];j++ ) { si( ltrp_m_sHce_header_flag[ i ][ Rplsldxf i ] ]) siice_poc_Jsb_lt[ i ][j ] O) stice_delta_poc_msb_present_flag[ i ][ j ] sí( slice_delta_poc_msb_preseat_flag[ i ][ j ] ) sKce_delta_poc_msb_cycle_lt[ i JO ]} 1 J} sí( rpl_present_in_ph_flag 11 ((nal_unit_type != IDR_W_RADL && nal_umt_ty pe ’= IDR_N_LP ) i: spsgdr_rpl_present_fiag )) { sí( ( slice_type != I && num_ref_entnes[ 0 ][ Rplsldxf 0 ] ] > 1 ) i: ( s!ice_type = - B && num_ref_entfies[ 1 ][ Rplsldxf 1)01))( num_ref_idx_active_override_flag <0 sí( aum_ref_idx__actíve_ovemde_flag ) para( i = 0; i < ( slicejype = = B ? 2: 1 ); i-H- ) sí( nutn_ref_entries[ i ][ Rplsldxf i ] ] > 1 ) numrefidxactneminusl [ i ] MU; ΜΛ / }} si( sps_sao_enabled_flag && !sao_present_in_ph_flag ) { slice_sao_hima_flag <1) sí( ChromaArrayiype != 0 ) slice_sao_chroma_flag} sí( sps_alf_enabled_ñag && !alf_present_m_ph_flag ) { slice alf enabled flag <0 si( süce_alf_etiabled_flag ) { slice num alf aps ids luma <3) para( i = 0; i < slice_ntnn_alf_aps_ids_luma: i++ ) slice aif aps id luma[ i ] u(3) sí( ChicmaAirayType != 0 ) slic€_alf_chroma_idc u(2) sí( slicealfcliromaidc ) slice_alf_aps_id_clnOiiia <3>} γ i sí( deblocking filter sh ovemde enabled flag) slice_deblocking_fiKer_override_flag sí( slice_deblocking_filter_ovenide_flag ) { slice_ <ieblockin^filter_disabied_flag <1) si( !slice_deblockjng_filter_disabled_sag ) { slicebetaoosetdivl se(v) slice_tc_offset_div2 s<v)} f ...}
[141]
[142] The semantics of the syntax elements included in the syntax of Table 6 may, for example, ML / be indicated as shown below in Table 7.
[143] [Table 7] slice_deblocking_filter_override_present_flag equal to 1 specifies that slice_deblocking_filter_override_flag is present in the segment. slice_deblocking_filter_override_present_flag equal to 0 specifies that slice deblocking_filter_override_flag is not present in the segment. When slice deblocking_filter_override_present_flag is not present, it is inferred by being equal to 0. The `slice_deblocking_filter_override_flag` flag, set to 1, specifies that the deblocking parameters are present in the segment. A `slice_deblocking_filter_override_flag` flag, set to 0, specifies that the deblocking parameters are not present in the segment. When they are not present, the value of `slice_deblocking_filter_override_flag` is inferred from the `slice_deblocking_filter_override_flag` being 0. `slice_deblocking_filter_disabled_flag` equal to 1 specifies that the deblocking filter operation is not applied to the segment. `slice_deblocking_filter_disabled_flag` equal to 0 specifies that the deblocking filter operation is applied to the segment. When `slice_deblocking_filter_disabled_flag` is not present, it is inferred from being equal to `pps_deblocking_filter_disabled_flag`. slice_bda_offset_dtv2 and sltce_te_offsrt_dtv2 specify the unlock parameter offsets for β and t (divided by 2) the segment. The values of slice_beta_offset_div2 and pic_tc_offset_div2 must both be in the range of -6 to 6, inclusive. When they are not present, the values of slice_beta_offset_dtv2 and pic_tc_offset_div2 are inferred to be equal to pps_beta_of_dtv2 and pps_beta_of_dtv2, respectively.
[144] With reference to the tables presented above, when the value of `deblocking_filter_sh_override_enabled_flag`, which corresponds to a flag indicating whether or not the unblocking procedure is being applied at the segment level, is equal to 1, the `slice deblocking filter override present flag` may be flagged. When the value of `slice_deblocking_filter_override_present_flag` is equal to 1, the `slice deblocking filter override flag`, which corresponds to a flag indicating whether or not a parameter related to the unblocking procedure is present in the segment header, may be present in the segment header.Alternatively, when a slice deblocking filter override_present flag value is equal to 0, slice_deblocking_filter_override_flag, which corresponds to a flag indicating whether or not a parameter related to the unblocking procedure is present in the segment header, may not be present in the segment header.
[145] Additionally, when the slice_deblocking_filter_override_flag, which is a flag indicating whether or not a parameter related to the unlocking procedure is present in the segment header, is set to 1, the unlocking parameters may be present (or may not exist) in the segment header. And, when the slice deblocking filter override flag, which is a flag indicating whether or not a parameter related to the unlocking procedure is present in the segment header, is set to 0, the unlocking parameters may not be present (or may not exist) in the segment header.
[146] Additionally, when the value of slice_deblocking_filter_disabled_flag is equal to 1, an unblocking filter may not be applied to slices that are related to the segment header. And, when the value of slice_deblocking_filter_disabled_flag is equal to 0, ML / an unlocking filter can be applied to segments that are related to the segment header.
[147] Additionally, slice_beta_offset_div2 and slice_tc_offset_div2 can respectively designate unlock parameter offset for β and tC (value divided by 2) for segments. The values of slice_beta_offset_div2 and slice_tc_offset_div2 can all be within a range of -6 to 6.
[148] Figure 8 is a flowchart illustrating an operation of a modality-compliant image coding apparatus, and Figure 9 is a block diagram illustrating a configuration of a modality-compliant image coding apparatus.
[149] The method described in Figure 8 can be implemented by the encoding apparatus described in Figure 2 or Figure 9. S810 and S820 of Figure 8 can be implemented by the image predictor 220, the residual processor 230, or the filter 260 shown in Figure 2, and S830 of Figure 8 can be implemented by the entropy encoder 240 shown in Figure 2. Furthermore, the operations in accordance with S810 to S830 are based in part on the description presented above in Figure 1 to Figures 7a and 7b. Therefore, the detailed description that overlaps with the description in Figure 1 to Figures 7a and 7b is also relevant. MA / Figures 7a and 7b will be omitted or presented briefly for simplicity.
[150] With reference to Figure 8, a modality conformity encoding apparatus may generate indication information indicating whether at least one tool being applied to a current block is applied at an image level or a segment level (S810).
[151] For example, the encoding apparatus's image predictor 220 can generate indication information that includes a flag indicating whether the signaling of a reference image list is applied at an image level or a segment level. For example, based on a case where the flag value is 1, the information related to the signaling of a reference image list may be present in the image header. And, based on a case where the flag value is 0, the information related to the signaling of a reference image list may be present in the segment header.
[152] For example, the encoding apparatus's filter 260 can generate indicator information that includes a flag indicating whether an Adaptive Sample Compensation (ASC) procedure is applied at an image level or a segment level. For example, based on a In the case where a flag value is equal to 1, information related to the SAO procedure may be present in the image header. And, based on a case where a flag value is equal to 0, information related to the SAO procedure may be present in the segment header.
[153] For example, the encoding apparatus's filter 260 can generate indicator information, including a flag that indicates whether an Adaptive Loop Filter (ALF) procedure is applied at an image level or a segment level. For example, if the flag value is 1, the ALF procedure information may be present in the image header. If the flag value is 0, the ALF procedure information may be present in the segment header.
[154] Alternatively, for example, the encoding apparatus's filter 260 may generate indication information that includes at least one flag indicating whether an unlock procedure is applied at an image level or a segment level. Based on at least one flag, information related to the unlock procedure may be present in one of an image header and one of a segment header. For example, based on a case where MA / If at least one flag has a value of 1, a flag indicating whether parameters related to the unlocking procedure are present in the image header may be present in the image header. And, based on a case where at least one flag has a value of 0, a flag indicating whether parameters related to the unlocking procedure are present in the image header may not be present in the image header.
[155] The modality-compliant coding apparatus may generate information related to at least one tool (S820). For example, the coding apparatus's image predictor 220 may generate information related to the reference image list signaling. Alternatively, for example, the coding apparatus's filter 260 may generate at least one of the information related to the SAO procedure, the information related to the ALF procedure, and the information related to the unlocking procedure.
[156] The modality-compliant coding apparatus may encode indication information and image information, including information related to at least one tool (S830). Additionally, the image information may include prediction information. MA / for the current block. The prediction information may include information about an inter-prediction mode or an intra-prediction mode being performed in the current block. Additionally, the image information may include residual information generated from the original samples by the encoding apparatus's residual processor 230.
[157] Meanwhile, the bitstream containing the encoded image information can be transmitted to the decoding device via a network or a (digital) storage medium. Here, the network may include a broadcast network and / or a communications network, and so on, and the digital storage medium may include various storage media, such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, and so on.
[158] Figure 10 is a flowchart illustrating an operation of a modality-compliant image decoding apparatus, and Figure 11 is a block diagram illustrating a configuration of a modality-compliant image decoding apparatus.
[159] The method described in Figure 10 can be implemented by the decoding apparatus described in Figure 3 or Figure 11. More specifically, S1010 to S1030 can be implemented by the entropy decoder 310 shown in Figure 3. Additionally, S1040 can be implemented by the predictor 330, the residual processor 320, the filter 350, or the adder 340 shown in Figure 3. Furthermore, the operations in accordance with S1010 to S1040 are based in part on the description presented earlier in Figure 1 to Figures 7a-7b. Therefore, the detailed description that overlaps with the description in Figure 1 to Figures 7a-7b will be omitted or presented briefly for simplicity.
[160] A modality-compliant decoding apparatus may obtain indication information that shows whether at least one tool for a current block is applied at an image level or a segment level (S1010). For example, the indication information may include a flag indicating whether signaling from a reference image list for a current block is applied at an image level or a segment level. For example, the indication information may include a flag indicating whether an Adaptive Sample Compensation (ASC) procedure is applied at an image level or a segment level. For example, the indication information may include a flag indicating whether an Adaptive Loop Filter (ALF) procedure is applied at an image level or a segment level. Alternatively, for example, the indication information ML / may include at least one flag indicating whether an unlocking procedure is applied at an image level or a segment level.
[161] The modality-compliant decoding apparatus can determine whether information relating to at least one tool is present in an image header or segment header based on indication information (S1020).
[162] For example, based on a case where a flag value indicating whether a reference image list signaling is applied at an image level or a segment level is equal to 0, it can be determined that the information related to the reference image list signaling is present in the image header. And, based on a case where a flag value is equal to 0, it can be determined that the information related to the reference image list signaling is present in the segment header.
[163] For example, based on a case where the value of a flag indicating whether the SAO procedure is applied at an image level or a segment level is equal to 0, it can be determined that information related to the SAO procedure is present in the image header. And, based on a case where the flag value is equal to 0, it can be determined that the information related ML / with the SAO procedure is present in the segment header.
[164] For example, based on a case where the value of a flag indicating whether the ALF procedure is applied at an image level or a segment level is equal to 0, it can be determined that information related to the ALF procedure is present in the image header. And, based on a case where the value of the flag is equal to 0, it can be determined that information related to the ALF procedure is present in the segment header.
[165] Alternatively, for example, based on at least one flag indicating whether the unlocking procedure is applied at an image level or a segment level, information related to the unlocking procedure may be present in one of the image headers and one of the segment headers. For example, based on a case where at least one flag is set to 1, it can be determined that a flag indicating whether parameters related to the unlocking procedure are present in the image header. And, based on a case where at least one flag is set to 0, it can be determined that a flag indicating whether parameters related to the unlocking procedure are present in the segment header. The image ML / flag is not present in the image header. Alternatively, for example, based on a case where at least one flag has a value of 1, it can be determined that a flag indicating whether parameters related to the unlocking procedure are present in the segment header is present in the segment header. And, based on a case where at least one flag has a value of 0, it can be determined that a flag indicating whether parameters related to the unlocking procedure are present in the segment header is not present in the segment header.
[166] The modality-compliant decoding apparatus can analyze information related to at least one tool from the image header or the determination-based segment header (S1030).
[167] The modality-compliant decoding apparatus can decode the current block based on information related to at least one tool (S1040). For example, based on information related to the signaling of a reference picture list, which receives and analyzes one of the picture headers and the segment header, the decoding apparatus's predictor 330 can perform prediction on the current block. For example, based on information related to a ML / SAO procedure, which receives and analyzes one of the image headers and one of the segment headers, the decoding unit's filter 350 can perform an SAO procedure for reconstructed samples. For example, based on information related to an ALF procedure, which receives and analyzes one of the image headers and one of the segment headers, the decoding unit's filter 350 can perform an ALF procedure for reconstructed samples. Alternatively, for example, based on information related to an unlock procedure, which receives and analyzes one of the image headers and one of the segment headers, the decoding unit's filter 350 can perform an unlock procedure for reconstructed samples.
[168] Although the methods have been described on the basis of a flowchart in which the steps or blocks are listed sequentially in the ways described above, the steps in this document are not limited to a specific order, and a given step may be performed in a different step, in a different order, or simultaneously with respect to that described above. Furthermore, those skilled in the art will understand that the steps in flowcharts are not exclusive and that other steps may be included or one or more steps may be omitted. MA / of the flowchart without affecting the scope of this description.
[169] The method mentioned above as described herein may be in the form of software, and the encoding and / or decoding apparatus as described herein may be included in a device for performing image processing, e.g., a television, a computer, a smartphone, a set-top box, a display device, or the like.
[170] When the modes of the present description are implemented by software, the method mentioned can be implemented through a module (process or function) that performs the function mentioned. The module can be stored in memory and executed by a processor. The memory can be installed inside or outside the processor and can be connected to the processor by various known means. The processor can include an Application-Specific Integrated Circuit (ASIC), other chipsets, a logic circuit, and / or a data processing device. The memory can include read-only memory (ROM), random-access memory (RAM), flash memory, a memory card, a storage medium, and / or another storage device. In other words, the modes according to the present description can be implemented and executed on a processor, a MA / microprocessor, a controller, or a chip. For example, the functional units illustrated in the respective figures can be implemented and executed on a computer, a processor, a microprocessor, a controller, or a chip. In this case, information about the implementation (e.g., instruction information) or the algorithms can be stored on a digital storage medium.
[171] Furthermore, the decoding apparatus and the encoding apparatus to which the modality(ies) of this document apply may be included in a multimedia broadcasting transceiver, a mobile communication terminal, a home theater video device, a digital cinema video device, a surveillance camera, a video chat device, and a real-time communication device such as video communication, a mobile real-time content streaming device, a storage medium, a video camera, a video-on-demand (VoD) service provider, an over-the-top (OTT) video streaming device, an internet real-time content streaming service provider, a 3D video device, a virtual reality (VR) device, an augmented reality (AR) device, a telephone video imaging device, a vehicle terminal (e.g., MA / a vehicle terminal (including an autonomous vehicle), an aircraft terminal, or a ship terminal) and a medical video device; and can be used to process an image or data signal. For example, an OTT video device might include a game console, a Blu-ray player, an internet-connected television, a home theater system, a smartphone, a tablet, and a digital video recorder (DVR).
[172] Furthermore, the processing method to which the modality(ies) of this document apply can be produced in the form of a program executed by a computer and can be stored on a computer-readable recording medium. Multimedia data having a data structure in accordance with the modality(ies) of this document can also be stored on the computer-readable recording medium. The computer-readable recording medium includes all types of storage devices and distributed storage devices on which computer-readable data is stored. The computer-readable recording medium may include, for example, a Blu-ray disc (BD), a Universal Serial Bus (USB), a ROM, a PROM, an EPROM, an EEPROM, RAM, a CD-ROM, magnetic tape, a floppy disk, and an optical data storage device. The computer-readable recording medium also includes embedded media. MA / in carrier wave form (e.g., transmission over the Internet). In addition, a bit stream generated by the encoding method can be stored on a computer-readable recording medium or transmitted over a wired or wireless communication network.
[173] Furthermore, the modality(ies) of this document may be incorporated as a computer program product based on program code, and the program code may be executed on a computer in accordance with the modality(ies) of this document. The program code may be stored on a computer-readable medium.
[174] Figure 12 shows an example of a continuous content transmission system to which the modalities described in this specification can be applied.
[175] With reference to Figure 12, the continuous content transmission system to which the modality(ies) of this document are applied may broadly include an encoding server, a continuous transmission server, a network server, a media storage, a user device, and a multimedia input device.
[176] The encoding server works to compress the contents entered into digital data by Multimedia input devices, such as smartphones, cameras, camcorders, and similar devices, generate a bitstream and transmit it to the real-time content streaming server. As another example, if the multimedia input device, such as a smartphone, camera, camcorder, or similar device, directly generates a bitstream, the encoding server can be bypassed.
[177] The bitstream may be generated through an encoding method or a bitstream generation method to which the modalities of this document apply. And the real-time content streaming server may temporarily store the bitstream during a bitstream transmission or reception process.
[178] The continuous-stream real-time content streaming server transmits multimedia data to the user's computer based on a user request via the web server, which acts as an intermediary informing the user of available services. When the user requests a desired service, the web server forwards the request to the real-time content streaming server, and the real-time content streaming server then transmits the multimedia data to the user. In this sense, the real-time content streaming system may include a server of MA / separate control, and in this case, the control server functions to control the commands / responses between the respective equipment of the real-time content transmission system.
[179] The real-time content streaming server can receive content from the media storage and / or the encoding server. For example, if the content is received from the encoding server, it can be received in real time. In this case, the real-time content streaming server can store the bitstream for a predetermined period of time to provide the real-time content streaming service without interruption.
[180] For example, the user's equipment may include a mobile phone, a smartphone, a laptop computer, a digital broadcast terminal, a personal digital assistant (PDA), a portable media player (PMP), a navigation device, a slate PC, a tablet PC, an ultrabook, a wearable device (for example, a watch-type terminal (smartwatch), a glass-type terminal (smart glass), a head-mounted display (HMD)), a digital television, a desktop computer, a digital signage device, or the like.
[181] Each of the system's servers ML / real-time content transmission can be operated as a distributed server, and in this case, the data received by each server can be processed in a distributed manner.
[182] The claims of this description can be combined in various ways. For example, the technical features of the method claims of this description can be combined to be implemented or carried out in an apparatus, and the technical features of the apparatus claims can be combined to be implemented or carried out in a method. Furthermore, the technical features of the method claim(s) and the apparatus claim(s) can be combined to be implemented or carried out in an apparatus. Additionally, the technical features of the method claim(s) and the apparatus claim(s) can be combined to be implemented or carried out in a method.
Claims
CLAIMS 1. An image decoding method carried out by a decoding apparatus, the method comprising: obtaining indication information indicating whether at least one tool for a current block is applied at an image level or a segment level; determining in which header between an image header and a segment header the information relating to at least one tool is present; analyzing the information relating to at least one tool from the image header or the segment header based on the determination; and decoding the current block based on the information relating to at least one tool.
2. The image decoding method of claim 1, wherein the indication information is included in one of a Sequence Parameter Set (SPS) or an Image Parameter Set (EPS).
3. The image decoding method of claim 1, wherein the indication information includes a first flag indicating whether the signaling of a reference image list is applied to an image level or a segment level, wherein, based on the case where the value of the first flag is equal to 1, the information relating to the ML / reference image list signaling is present in the image header, and wherein, based on the case where the value of the first flag is equal to 0, the information relating to the reference image list signaling is present in the segment header.
4. The image decoding method of claim 1, wherein the indication information includes a second flag indicating whether a Sample Adaptive Compensation (SAO) procedure is applied to an image level or a segment level, wherein, based on the case where the value of the second flag is equal to 1, the information relating to the SAO procedure is present in the image header, and wherein, based on the case where the value of the second flag is equal to 0, the information relating to the SAO procedure is present in the segment header.
5. The image decoding method of claim 1, wherein the indication information includes a third flag indicating whether an Adaptive Loop Filter (ALF) procedure is applied to an image level or a segment level, wherein based on the case where the value of the third flag is equal to 1, the information relating to the ALF procedure is present in the image header, and wherein based on the case where the value of the third flag is equal to 0, the information relating to the ALF procedure is present in the segment header.
6. The image decoding method of claim 1, wherein the indication information includes at least a fourth flag indicating whether an unlocking procedure is applied to an image level or a segment level, wherein based on at least a fourth flag, the information relating to the unlocking procedure is present in one of the image header or the segment header.
7. The image decoding method of claim 6, wherein based on a case where the value of one of at least a fourth flag is equal to 1, a flag indicating whether parameters related to the unlocking procedure are present in the image header is present in the image header, and wherein based on a case where the value of one of at least a fourth flag is equal to 0, the flag indicating whether parameters related to the ML / unlocking procedure are present in the image header is not present in the image header.
8. An image coding method performed by an coding apparatus, the method comprising: generating indication information that indicates whether at least one tool being applied to a current block is applied at an image level or a segment level; generating information related to at least one tool; and encoding image information that includes the indication information and the information related to at least one tool, wherein the indication information indicates in which header between an image header and a segment header the information related to at least one tool is present.
9. The image coding method of claim 8, wherein the indication information is included in one of a Sequence Parameter Set (SPS) or an Image Parameter Set (PPS).
10. The image encoding method of claim 8, wherein the indication information includes a first flag indicating whether the signaling of a reference image list is applied at an MA / image level or at a segment level, wherein based on a case where the value of the first flag is equal to 1, the information relating to the signaling of the reference image list is present in the image header, and wherein based on a case where the value of the first flag is equal to 0, the information relating to the signaling of the reference image list is present in the segment header.
11. The image encoding method of claim 8, wherein the indication information includes a second flag indicating whether a Sample Adaptive Compensation (SAO) procedure is applied to an image level or a segment level, wherein based on a case where the value of the second flag is equal to 1, the information relating to the SAO procedure is present in the image header, and wherein based on a case where the value of the second flag is equal to 0, the information relating to the SAO procedure is present in the segment header.
12. The image encoding method of claim 8, wherein the indication information includes a third flag indicating whether an MA / Adaptive Loop Filter (ALF) procedure is applied to an image level or a segment level, wherein based on a case where the value of the third flag is equal to 1, the information relating to the ALF procedure is present in the image header, and wherein based on a case where the value of the third flag is equal to 0, the information relating to the ALF procedure is present in the segment header.
13. The image encoding method of claim 8, wherein the indication information includes at least a fourth flag indicating whether an unlocking procedure is applied to an image level or a segment level, wherein based on at least a fourth flag, the information relating to the unlocking procedure is present in one of the image header and the segment header.
14. The image encoding method of claim 13, wherein based on a case where the value of one of at least a fourth flag is equal to 1, a flag indicating whether the parameters related to the unlocking procedure are present in the image header is present in the image header, and MA / wherein based on a case where the value of one of at least a fourth flag is equal to 0, the flag indicating whether the parameters related to the unlocking procedure are present in the image header is not present in the image header.
15. A computer-readable digital storage medium that stores encoded image information causing an image decoding method to be performed by a decoding apparatus, wherein the image decoding method comprises: obtaining indication information that indicates whether at least one tool for a current block is applied at an image level or a segment level; determining in which header between an image header and a segment header the information relating to at least one tool is present; parsing the information relating to at least one tool from the image header or segment header based on the determination; and decoding the current block based on the information relating to at least one tool.