Image encoding / decoding method and device for signaling hls, and computer-readable recording medium in which bitstream is stored
The image encoding/decoding method efficiently manages LMCS to enhance encoding/decoding efficiency and reduce costs in high-resolution video transmission/storage by signaling HLS and transmitting bitstreams for decoding and restoration.
Patent Information
- Application Number
- KR1020237024595
- Authority / Receiving Office
- KR · KR
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-04-02
- Filing Date
- 2021-03-26
- Publication Date
- 2026-11-05
- Estimated Expiration
- 2041-03-26
AI Technical Summary
The increasing demand for high-resolution, high-quality video has led to higher transmission and storage costs due to the increased amount of information, necessitating improved video compression technology.
An image encoding/decoding method and apparatus that efficiently signal High Level Syntax (HLS) by managing luma mapping with chroma scaling (LMCS) through first and second information, allowing or restricting LMCS based on sequence parameter sets, and transmitting a bitstream for decoding and image restoration.
Enhances encoding/decoding efficiency and reduces transmission/storage costs by effectively signaling HLS, enabling improved image restoration.
Smart Images

Figure 112023079082982-PAT00001_ABST
Abstract
Description
Technology Field
[0001] The present disclosure relates to an image encoding / decoding method and apparatus, and more specifically, to an image encoding / decoding method and apparatus for signaling High Level Syntax (HLS), and a computer-readable recording medium storing a bitstream generated by the image encoding method / apparatus of the present disclosure. Background Technology
[0002] Recently, the demand for high-resolution, high-quality video, such as HD (High Definition) and UHD (Ultra High Definition), has been increasing across various fields. As video data becomes higher in resolution and quality, the relative amount of information or bits transmitted increases compared to conventional video data. This increase in the amount of transmitted information or bits leads to higher transmission and storage costs.
[0003] Accordingly, high-efficiency video compression technology is required to effectively transmit, store, and play back high-resolution, high-quality video information. The problem to be solved
[0004] The present disclosure aims to provide an image encoding / decoding method and apparatus with improved encoding / decoding efficiency.
[0005] In addition, the present disclosure aims to provide an image encoding / decoding method and apparatus that improve encoding / decoding efficiency by efficiently signaling HLS.
[0006] In addition, the present disclosure aims to provide a method for transmitting a bitstream generated by an image encoding method or device according to the present disclosure.
[0007] In addition, the present disclosure aims to provide a recording medium storing a bitstream generated by an image encoding method or device according to the present disclosure.
[0008] In addition, the present disclosure aims to provide a recording medium storing a bitstream that is received and decoded by an image decoding device according to the present disclosure and used for image restoration.
[0009] The technical problems to be solved in this disclosure are not limited to those mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art to which this disclosure belongs from the description below. means of solving the problem
[0010] A video decoding method performed by a video decoding device according to one aspect of the present disclosure comprises the steps of obtaining first information indicating whether LMCS (luma mapping with chroma scaling) is restricted, obtaining second information indicating whether LMCS is allowed for a current video sequence, and restoring a current picture within the current video sequence based on the second information, wherein the value of the second information may be determined based on the value of the first information.
[0011] In the image decoding method of the present disclosure, based on the first information having a value indicating that the LMCS is restricted, the second information may have a value indicating that the LMCS for the current video sequence is not allowed.
[0012] In the image decoding method of the present disclosure, the first information can be obtained from a syntax structure that signals general restriction information.
[0013] In the image decoding method of the present disclosure, the second information can be obtained from the Sequence Parameter Set (SPS).
[0014] An image decoding device according to another aspect of the present disclosure comprises a memory and at least one processor, wherein the at least one processor obtains first information indicating whether LMCS (luma mapping with chroma scaling) is restricted, obtains second information indicating whether LMCS is allowed for a current video sequence, restores a current picture within the current video sequence based on the second information, and the value of the second information may be determined based on the value of the first information.
[0015] A video encoding method performed by a video encoding device according to another aspect of the present disclosure comprises: a step of encoding first information indicating whether LMCS (luma mapping with chroma scaling) is restricted; a step of encoding second information indicating whether LMCS is allowed for a current video sequence; and a step of encoding a current picture within the current video sequence based on the second information, wherein the value of the second information may be determined based on the value of the first information.
[0016] In the image encoding method of the present disclosure, based on the first information having a value indicating that the LMCS is restricted, the second information may have a value indicating that the LMCS for the current video sequence is not allowed.
[0017] In the image encoding method of the present disclosure, the first information may be encoded in a syntax structure that signals general restriction information.
[0018] In the image encoding method of the present disclosure, the second information can be encoded in a Sequence Parameter Set (SPS).
[0019] A transmission method according to another aspect of the present disclosure can transmit a bitstream generated by the image encoding device or image encoding method of the present disclosure.
[0020] A computer-readable recording medium according to another aspect of the present disclosure can store a bitstream generated by the image encoding method or image encoding device of the present disclosure.
[0021] The features briefly summarized above regarding the present disclosure are merely exemplary aspects of the detailed description of the present disclosure that follows and do not limit the scope of the present disclosure. Effects of the invention
[0022] According to the present disclosure, an image encoding / decoding method and apparatus with improved encoding / decoding efficiency may be provided.
[0023] In addition, according to the present disclosure, an image encoding / decoding method and apparatus capable of improving encoding / decoding efficiency by efficiently signaling HLS may be provided.
[0024] Additionally, according to the present disclosure, a method for transmitting a bitstream generated by an image encoding method or device according to the present disclosure may be provided.
[0025] Additionally, according to the present disclosure, a recording medium storing a bitstream generated by an image encoding method or device according to the present disclosure may be provided.
[0026] Additionally, according to the present disclosure, a recording medium storing a bitstream that is received and decoded by an image decoding device according to the present disclosure and used for image restoration may be provided.
[0027] The effects obtainable from the present disclosure are not limited to those mentioned above, and other unmentioned effects will be clearly understood by those skilled in the art to which the present disclosure pertains from the description below. Brief explanation of the drawing
[0028] FIG. 1 is a schematic diagram illustrating a video coding system to which an embodiment according to the present disclosure can be applied. FIG. 2 is a schematic diagram illustrating an image encoding device to which an embodiment according to the present disclosure can be applied. FIG. 3 is a schematic diagram illustrating an image decoding device to which an embodiment according to the present disclosure can be applied. FIG. 4 shows an example of a schematic picture decoding procedure to which the embodiment(s) of the present disclosure are applicable. FIG. 5 shows an example of a schematic picture encoding procedure to which the embodiment(s) of the present disclosure are applicable. Figure 6 is a diagram showing an example of a hierarchical structure for coded images / videos. FIG. 7 is a diagram illustrating an example of a syntax structure that signals information indicating whether the LMCS is restricted as general restriction information. FIG. 8 is a diagram for explaining the operation of an image encoding device according to an embodiment described with reference to FIG. 7. FIG. 9 is a diagram for explaining the operation of an image decoding device according to an embodiment described with reference to FIG. 7. FIG. 10 is a diagram illustrating an example of additional information signaled in relation to LMCS. FIG. 11 is a drawing illustrating a content streaming system to which an embodiment of the present disclosure can be applied. Specific details for implementing the invention
[0029] Hereinafter, embodiments of the present disclosure are described in detail with reference to the attached drawings so that those skilled in the art can easily implement them. However, the present disclosure may be embodied in various different forms and is not limited to the embodiments described herein.
[0030] In describing the embodiments of the present disclosure, detailed descriptions of known configurations or functions are omitted if it is determined that such descriptions could obscure the essence of the present disclosure. Additionally, parts of the drawings unrelated to the description of the present disclosure have been omitted, and similar parts are denoted by similar reference numerals.
[0031] In the present disclosure, when a component is described as being "connected," "combined," or "joined" with another component, this may include not only a direct connection but also an indirect connection in which another component exists in between. Furthermore, when a component is described as "comprising" or "having" another component, this means that, unless specifically stated otherwise, it does not exclude the other component but may include an additional component.
[0032] In the present disclosure, terms such as first, second, etc. are used solely for the purpose of distinguishing one component from another and do not limit the order or importance of the components unless specifically stated otherwise. Accordingly, within the scope of the present disclosure, a first component in one embodiment may be referred to as a second component in another embodiment, and likewise, a second component in one embodiment may be referred to as a first component in another embodiment.
[0033] In this disclosure, distinct components are intended to clearly describe their respective features and do not imply that the components are separate. That is, multiple components may be integrated to form a single hardware or software unit, or a single component may be distributed to form multiple hardware or software units. Accordingly, such integrated or distributed embodiments are included within the scope of this disclosure, unless otherwise noted.
[0034] In the present disclosure, the components described in various embodiments do not necessarily mean essential components, and some may be optional components. Accordingly, embodiments consisting of a subset of the components described in one embodiment are also included within the scope of the present disclosure. Furthermore, embodiments including additional components in addition to the components described in various embodiments are also included within the scope of the present disclosure.
[0035] The present disclosure relates to the encoding and decoding of images, and the terms used in the present disclosure may have the ordinary meanings commonly used in the technical field to which the present disclosure belongs, unless newly defined in the present disclosure.
[0036] In the present disclosure, "picture" generally refers to a unit representing a single image of a specific time period, and a slice / tile is an encoding unit constituting a part of the picture, and a picture may be composed of one or more slices / tiles. Additionally, a slice / tile may include one or more coding tree units (CTUs).
[0037] In the present disclosure, "pixel" or "pel" may refer to the smallest unit constituting a picture (or image). Additionally, "sample" may be used as a term corresponding to pixel. A sample may generally represent a pixel or a pixel value, may represent only the pixel / pixel value of the luminance component, or may represent only the pixel / pixel value of the chroma component.
[0038] In this disclosure, "unit" may represent a basic unit of image processing. A unit may include at least one of a specific area of a picture and information related to that area. Depending on the case, the term "unit" may be used interchangeably with terms such as "sample array," "block," or "area." In general, an MxN block may include samples (or sample arrays) or a set (or array) of transform coefficients consisting of M columns and N rows.
[0039] In the present disclosure, "current block" may mean one of "current coding block," "current coding unit," "block to be encoded," "block to be decoded," or "block to be processed." When prediction is performed, "current block" may mean "current prediction block" or "block to be predicted." When transformation (inverse transformation) / quantization (inverse quantization) is performed, "current block" may mean "current transformation block" or "block to be transformed." When filtering is performed, "current block" may mean "block to be filtered."
[0040] In the present disclosure, "current block" may mean a block comprising both a luminous component block and a chroma component block, or "luma block of the current block," unless explicitly stated as a chroma block. The luminous component block of the current block may be expressed by including an explicit description of a luminous component block, such as "luma block" or "current luminous block." Additionally, the chroma component block of the current block may be expressed by including an explicit description of a chroma component block, such as "chroma block" or "current chroma block."
[0041] In the present disclosure, “A or B” may mean “only A,” “only B,” or “both A and B.” Alternatively, in the present disclosure, “A or B” may be interpreted as “A and / or B.” For example, in the present disclosure, “A, B or C” may mean “only A,” “only B,” “only C,” or “any combination of A, B and C.”
[0042] A slash ( / ) or a comma used in the present disclosure may mean “and / or.” For example, “A / B” may mean “A and / or B.” Accordingly, “A / B” may mean “only A,” “only B,” or “both A and B.” For example, “A, B, C” may mean “A, B or C.”
[0043] In the present disclosure, “at least one of A and B” may mean “only A,” “only B,” or “both A and B.” Additionally, in the present disclosure, the expressions “at least one of A or B” or “at least one of A and / or B” may be interpreted as synonymous with “at least one of A and B.”
[0044] Additionally, in the present disclosure, “at least one of A, B and C” may mean “only A,” “only B,” “only C,” or “any combination of A, B and C.” Additionally, “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.”
[0045] Additionally, parentheses used in the present disclosure may mean “for example.” Specifically, where indicated as “prediction (intra-prediction),” “intra-prediction” may be proposed as an example of “prediction.” In other words, the “prediction” of the present disclosure is not limited to “intra-prediction,” and “intra-prediction” may be proposed as an example of “prediction.” Furthermore, even where indicated as “prediction (i.e., intra-prediction),” “intra-prediction” may be proposed as an example of “prediction.”
[0046] Technical features described individually within one drawing in this disclosure may be implemented individually or simultaneously.
[0047] Video Coding System Overview
[0048] FIG. 1 illustrates a video coding system according to the present disclosure.
[0049] A video coding system according to one embodiment may include an encoding device (10) and a decoding device (20). The encoding device (10) may transmit encoded video and / or image information or data to the decoding device (20) via a digital storage medium or network in the form of a file or streaming.
[0050] An encoding device (10) according to one embodiment may include a video source generation unit (11), an encoding unit (12), and a transmission unit (13). A decoding device (20) according to one embodiment may include a receiving unit (21), a decoding unit (22), and a rendering unit (23). The encoding unit (12) may be called a video / image encoding unit, and the decoding unit (22) may be called a video / image decoding unit. The transmission unit (13) may be included in the encoding unit (12). The receiving unit (21) may be included in the decoding unit (22). The rendering unit (23) may include a display unit, and the display unit may be composed of a separate device or an external component.
[0051] The video source generation unit (11) can acquire video / image through a process of capturing, synthesizing, or generating video / image. The video source generation unit (11) 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, a video / image archive containing previously captured video / image, etc. The video / image generation device may include, for example, a computer, a tablet, and a smartphone, etc., and can generate video / image (electronically). For example, a virtual video / image may be generated through a computer, etc., in which case the video / image capture process may be replaced by a process of generating related data.
[0052] The encoding unit (12) can encode the input video / image. The encoding unit (12) can perform a series of procedures such as prediction, conversion, and quantization for compression and encoding efficiency. The encoding unit (12) can output the encoded data (encoded video / image information) in the form of a bitstream.
[0053] The transmission unit (13) can transmit encoded video / image information or data output in the form of a bitstream to the receiving unit (21) of the decoding device (20) via a digital storage medium or network in the form of a file or streaming. The digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmission unit (13) may include elements for creating a media file through a predetermined file format and elements for transmission via a broadcasting / communication network. The receiving unit (21) can extract / receive the bitstream from the storage medium or network and transmit it to the decoding unit (22).
[0054] The decoding unit (22) can decode the video / image by performing a series of procedures such as inverse quantization, inverse transformation, and prediction corresponding to the operation of the encoding unit (12).
[0055] The rendering unit (23) can render the decoded video / image. The rendered video / image can be displayed through the display unit.
[0056] Overview of the video encoding device
[0057] FIG. 2 is a schematic diagram illustrating an image encoding device to which an embodiment according to the present disclosure can be applied.
[0058] As illustrated in FIG. 2, the image encoding device (100) may include an image segmentation unit (110), a subtraction unit (115), a conversion unit (120), a quantization unit (130), an inverse quantization unit (140), an inverse conversion unit (150), an addition unit (155), a filtering unit (160), a memory (170), an inter prediction unit (180), an intra prediction unit (185), and an entropy encoding unit (190). The inter prediction unit (180) and the intra prediction unit (185) may be collectively referred to as the "prediction unit." The conversion unit (120), the quantization unit (130), the inverse quantization unit (140), and the inverse conversion unit (150) may be included in the residual processing unit. The residual processing unit may further include a subtraction unit (115).
[0059] All or at least some of the plurality of components constituting the image encoding device (100) may be implemented as a single hardware component (e.g., an encoder or a processor) according to the embodiment. Additionally, the memory (170) may include a decoded picture buffer (DPB) and may be implemented by a digital storage medium.
[0060] The image segmentation unit (110) can divide an input image (or picture, frame) input to an image encoding device (100) into one or more processing units. For example, the processing unit may be called a coding unit (CU). A coding unit may be obtained by recursively dividing a coding tree unit (CTU) or a largest coding unit (LCU) according to a QT / BT / TT (Quad-tree / binary-tree / ternary-tree) structure. For example, a single coding unit may be divided into multiple coding units of a deeper depth based on a quad-tree structure, a binary-tree structure, and / or a ternary-tree structure. For the division of the coding unit, a quad-tree structure may be applied first, and a binary-tree structure and / or a ternary-tree structure may be applied later. A coding procedure according to the present disclosure may be performed based on the final coding unit that is no longer divided. The maximum coding unit may be used directly as the final coding unit, or a lower-depth coding unit obtained by dividing the maximum coding unit may be used as the final coding unit. Here, the term "coding procedure" may include procedures such as prediction, transformation, and / or restoration described below. As another example, the processing unit of the coding procedure may be a Prediction Unit (PU) or a Transform Unit (TU). The Prediction Unit and the Transform Unit may each be divided or partitioned from the final coding unit. The Prediction Unit may be a unit for sample prediction, and the Transform Unit may be a unit for deriving transformation coefficients and / or a unit for deriving a residual signal from transformation coefficients.
[0061] The prediction unit (inter prediction unit (180) or intra prediction unit (185)) can perform a prediction for a block to be processed (current block) and generate a predicted block containing prediction samples for said current block. The prediction unit can determine whether intra prediction is applied or inter prediction is applied at the current block or CU level. The prediction unit can generate various information regarding the prediction of the current block and transmit it to the entropy encoding unit (190). The information regarding the prediction can be encoded in the entropy encoding unit (190) and output in the form of a bitstream.
[0062] The intra prediction unit (185) can predict the current block by referring to samples within the current picture. The referenced samples may be located near the current block or away from it, depending on the intra prediction mode and / or intra prediction technique. The intra prediction modes may include a plurality of non-directional modes and a plurality of directional modes. The non-directional modes may include, for example, a DC mode and a Planar mode. The directional modes may include, for example, 33 directional prediction modes or 65 directional prediction modes, depending on the degree of fineness of the prediction direction. However, this is merely an example, and depending on the settings, more or fewer directional prediction modes may be used. The intra prediction unit (185) may also determine the prediction mode applied to the current block by using the prediction mode applied to the surrounding blocks.
[0063] The inter prediction unit (180) can derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. At this time, to reduce the amount of motion information transmitted in the inter prediction mode, motion information can be predicted in blocks, sub-blocks, or samples based on the correlation of motion information between neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include information on the inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, neighboring blocks may include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. The reference picture containing the reference blocks and the reference picture containing the temporal neighboring blocks may be the same or different from each other. The temporal neighboring blocks may be referred to by names such as collocated reference block, collocated CU (colCU), etc. A reference picture containing the aforementioned temporal surrounding blocks may be called a collocated picture (colPic). For example, the inter prediction unit (180) may construct a list of motion information candidates based on surrounding blocks and generate information indicating which candidate is used to derive the motion vector and / or reference picture index of the current block. Inter prediction may be performed based on various prediction modes, for example, in the case of skip mode and merge mode, the inter prediction unit (180) may use the motion information of surrounding blocks as motion information of the current block. In the case of skip mode, unlike merge mode, a residual signal may not be transmitted.In the motion vector prediction (MVP) mode, the motion vectors of surrounding blocks are used as motion vector predictors, and the motion vector of the current block can be signaled by encoding the motion vector difference and an indicator for the motion vector predictor. The motion vector difference can represent the difference between the current block's motion vector and the motion vector predictor.
[0064] The prediction unit may generate a prediction signal based on various prediction methods and / or prediction techniques described below. For example, the prediction unit may apply intra prediction or inter prediction for the prediction of the current block, as well as apply intra prediction and inter prediction simultaneously. A prediction method that applies intra prediction and inter prediction simultaneously for the prediction of the current block may be called combined inter and intra prediction (CIIP). Additionally, the prediction unit may perform intra block copy (IBC) for the prediction of the current block. Intra block copy can be used for content video / video coding, such as in games, for example, screen content coding (SCC). IBC is a method that predicts the current block using a pre-recovered reference block within the current picture located at a predetermined distance from the current block. When IBC is applied, the location of the reference block within the current picture can be encoded as a vector (block vector) corresponding to the aforementioned predetermined distance. Although IBC basically performs prediction within the current picture, it can be performed similarly to inter prediction in that it derives the reference block within the current picture. That is, the IBC may use at least one of the inter-prediction techniques described in the present disclosure.
[0065] The prediction signal generated through the prediction unit can be used to generate a restoration signal or to generate a residual signal. The subtraction unit (115) can generate a residual signal (residual signal, residual block, residual sample array) by subtracting the prediction signal (predicted block, prediction sample array) output from the prediction unit from the input image signal (original block, original sample array). The generated residual signal can be transmitted to the conversion unit (120).
[0066] The transformation unit (120) can generate transform coefficients by applying a transformation technique to a residual signal. For example, the transformation technique may include at least one of a Discrete Cosine Transform (DCT), a Discrete Sine Transform (DST), a Karhunen-Loeve Transform (KLT), a Graph-Based Transform (GBT), or a Conditionally Non-linear Transform (CNT). Here, GBT refers to a transformation obtained from a graph when the relationship information between pixels is represented as a graph. CNT refers to a transformation obtained based on a prediction signal generated using all previously reconstructed pixels. The transformation process may be applied to a block of pixels of the same size in a square, or to a block of variable size that is not square.
[0067] The quantization unit (130) can quantize the transformation coefficients and transmit them to the entropy encoding unit (190). The entropy encoding unit (190) can encode the quantized signal (information regarding the quantized transformation coefficients) and output it as a bitstream. The information regarding the quantized transformation coefficients may be called residual information. The quantization unit (130) can rearrange the block-shaped quantized transformation coefficients into a one-dimensional vector form based on the coefficient scan order, and can also generate information regarding the quantized transformation coefficients based on the one-dimensional vector-shaped quantized transformation coefficients.
[0068] The entropy encoding unit (190) can perform various encoding methods, such as, for example, exponential Golomb, CAVLC (context-adaptive variable length coding), CABAC (context-adaptive binary arithmetic coding), etc. The entropy encoding unit (190) may encode information required for video / image restoration (e.g., values of syntax elements) together or separately, in addition to quantized transform coefficients. The encoded information (e.g., encoded video / image information) may be transmitted or stored in the form of a bitstream in units of NAL (network abstraction layer) units. The video / image information may further include information regarding various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). Additionally, the video / image information may further include general constraint information. The signaling information, transmitted information, and / or syntax elements mentioned in the present disclosure may be encoded through the encoding procedure described above and included in the bitstream.
[0069] The above bitstream may be transmitted via a network or stored in a digital storage medium. Here, the network may include a broadcasting network and / or a communication network, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmission unit (not shown) for transmitting a signal output from the entropy encoding unit (190) and / or a storage unit (not shown) for storing it may be provided as an internal / external element of the video encoding device (100), or the transmission unit may be provided as a component of the entropy encoding unit (190).
[0070] The quantized transformation coefficients output from the quantization unit (130) can be used to generate a residual signal. For example, a residual signal (residual block or residual samples) can be restored by applying inverse quantization and inverse transformation to the quantized transformation coefficients through the inverse quantization unit (140) and the inverse transformation unit (150).
[0071] The adder (155) can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the reconstructed residual signal to the prediction signal output from the inter prediction unit (180) or the intra prediction unit (185). In cases where there is no residual for the block to be processed, such as when a skip mode is applied, the predicted block can be used as the reconstructed block. The adder (155) may be called a reconstructed unit or a reconstructed block generation unit. The generated reconstructed signal can be used for intra prediction of the next block to be processed within the current picture, and can also be used for inter prediction of the next picture after undergoing filtering as described below.
[0072] Meanwhile, LMCS (luma mapping with chroma scaling) may be applied during the picture encoding and / or restoration process.
[0073] The filtering unit (160) can improve subjective / objective image quality by applying filtering to the restored signal. For example, the filtering unit (160) can generate a modified restored picture by applying various filtering methods to the restored picture, and can store the modified restored picture in memory (170), specifically in the DPB of memory (170). The various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc. The filtering unit (160) can generate various information regarding filtering and transmit it to the entropy encoding unit (190), as described below in the description of each filtering method. The information regarding filtering can be encoded in the entropy encoding unit (190) and output in the form of a bitstream.
[0074] The modified restored picture transmitted to the memory (170) can be used as a reference picture in the inter-prediction unit (180). Through this, when inter-prediction is applied, the image encoding device (100) can avoid prediction mismatches between the image encoding device (100) and the image decoder, and can also improve encoding efficiency.
[0075] The DPB in memory (170) can store a modified restored picture to be used as a reference picture in the inter prediction unit (180). Memory (170) can store motion information of blocks from which motion information is derived (or encoded) in the current picture and / or motion information of blocks in the picture that have already been restored. The stored motion information can be transmitted to the inter prediction unit (180) to be used as motion information of spatially surrounding blocks or motion information of temporally surrounding blocks. Memory (170) can store restoration samples of restored blocks in the current picture and transmit them to the intra prediction unit (185).
[0076] Overview of the video decoder
[0077] FIG. 3 is a schematic diagram illustrating an image decoding device to which an embodiment according to the present disclosure can be applied.
[0078] As illustrated in FIG. 3, the image decoding device (200) may be configured to include an entropy decoding unit (210), an inverse quantization unit (220), an inverse transform unit (230), an adder unit (235), a filtering unit (240), a memory (250), an inter prediction unit (260), and an intra prediction unit (265). The inter prediction unit (260) and the intra prediction unit (265) may be collectively referred to as the "prediction unit." The inverse quantization unit (220) and the inverse transform unit (230) may be included in the residual processing unit.
[0079] All or at least some of the plurality of components constituting the video decoding device (200) may be implemented as a single hardware component (e.g., a decoder or a processor) according to the embodiment. Additionally, the memory (250) may include a DPB and may be implemented by a digital storage medium.
[0080] A video decoding device (200) that receives a bitstream containing video / image information can restore an image by performing a process corresponding to the process performed by the video encoding device (100) of FIG. 2. For example, the video decoding device (200) can perform decoding using a processing unit applied in the video encoding device. Thus, the processing unit for decoding may be, for example, a coding unit. The coding unit may be a coding tree unit or may be obtained by dividing a maximum coding unit. And, the restored image signal decoded and output through the video decoding device (200) can be played back through a playback device (not shown).
[0081] The image decoding device (200) can receive a signal output from the image encoding device of FIG. 2 in the form of a bitstream. The received signal can be decoded through an entropy decoding unit (210). For example, the entropy decoding unit (210) can parse the bitstream to derive information necessary for image restoration (or picture restoration) (e.g., video / image information). The video / image information may further include information regarding various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). Additionally, the video / image information may further include general constraint information. The image decoding device may additionally utilize the information regarding the parameter sets and / or the general constraint information to decode the image. The signaling information, received information, and / or syntax elements mentioned in the present disclosure may be obtained from the bitstream by being decoded through the decoding procedure. For example, the entropy decoding unit (210) can decode information within the bitstream based on coding methods such as exponential chord coding, CAVLC, or CABAC, and output the values of syntax elements required for image restoration and the quantized values of transformation coefficients regarding residuals. More specifically, the CABAC entropy decoding method can receive a bin corresponding to each syntax element in the bitstream, determine a context model using information on the syntax element to be decoded and the decoding information of the surrounding block and the block to be decoded or the information of the symbol / bin decoded in the previous step, predict the probability of occurrence of the bin according to the determined context model, and perform arithmetic decoding of the bin to generate a symbol corresponding to the value of each syntax element.At this time, the CABAC entropy decoding method can update the context model using the decoded symbol / bin information for the context model of the next symbol / bin after determining the context model. Among the information decoded in the entropy decoding unit (210), information regarding prediction is provided to the prediction unit (inter prediction unit (260) and intra prediction unit (265)), and residual values, i.e., quantized transformation coefficients and related parameter information, for which entropy decoding was performed in the entropy decoding unit (210) can be input to the inverse quantization unit (220). Additionally, among the information decoded in the entropy decoding unit (210), information regarding filtering can be provided to the filtering unit (240). Meanwhile, a receiving unit (not shown) that receives a signal output from a video encoding device may be additionally provided as an internal / external element of the video decoding device (200), or the receiving unit may be provided as a component of the entropy decoding unit (210).
[0082] Meanwhile, the image decoding device according to the present disclosure may be referred to as a video / image / picture decoding device. The image decoding device may include an information decoder (video / image / picture information decoder) and / or a sample decoder (video / image / picture sample decoder). The information decoder may include an entropy decoding unit (210), and the sample decoder may include at least one of an inverse quantization unit (220), an inverse transform unit (230), an adder (235), a filtering unit (240), a memory (250), an inter prediction unit (260), and an intra prediction unit (265).
[0083] In the inverse quantization unit (220), the quantized transform coefficients can be inversely quantized to output transform coefficients. The inverse quantization unit (220) can rearrange the quantized transform coefficients into a two-dimensional block form. In this case, the rearrangement can be performed based on the coefficient scan order performed by the image encoding device. The inverse quantization unit (220) can perform inverse quantization on the quantized transform coefficients using quantization parameters (e.g., quantization step size information) and obtain transform coefficients.
[0084] In the inverse conversion unit (230), the conversion coefficients can be inversely converted to obtain a residual signal (residual block, residual sample array).
[0085] The prediction unit performs a prediction for the current block and can generate a predicted block containing prediction samples for the current block. Based on information regarding the prediction output from the entropy decoding unit (210), the prediction unit can determine whether an intra prediction or an inter prediction is applied to the current block and can determine a specific intra / inter prediction mode (prediction technique).
[0086] The fact that the prediction unit can generate a prediction signal based on various prediction methods (techniques) described below is the same as mentioned in the description of the prediction unit of the image encoding device (100).
[0087] The intra prediction unit (265) can predict the current block by referring to samples within the current picture. The description of the intra prediction unit (185) can be applied in the same way to the intra prediction unit (265).
[0088] The inter prediction unit (260) can derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. At this time, to reduce the amount of motion information transmitted in the inter prediction mode, motion information can be predicted in blocks, sub-blocks, or samples based on the correlation of motion information between neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include information on the inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, neighboring blocks may include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. For example, the inter prediction unit (260) may construct a motion information candidate list based on the neighboring blocks and derive the motion vector and / or reference picture index of the current block based on the received candidate selection information. Inter-prediction can be performed based on various prediction modes (techniques), and information regarding the prediction may include information indicating the mode (technique) of inter-prediction for the current block.
[0089] The adder (235) can generate a restoration signal (restored picture, restored block, restored sample array) by adding the acquired residual signal to the prediction signal (predicted block, predicted sample array) output from the prediction unit (including the inter prediction unit (260) and / or the intra prediction unit (265)). In cases where there is no residual for the block to be processed, such as when a skip mode is applied, the predicted block can be used as the restoration block. The description of the adder (155) can be applied equally to the adder (235). The adder (235) may be called a restoration unit or a restoration block generation unit. The generated restoration signal can be used for intra prediction of the next block to be processed within the current picture, and can also be used for inter prediction of the next picture after undergoing filtering as described below.
[0090] Meanwhile, LMCS (luma mapping with chroma scaling) can be applied during the picture decoding process.
[0091] The filtering unit (240) can improve subjective / objective image quality by applying filtering to the restored signal. For example, the filtering unit (240) can generate a modified restored picture by applying various filtering methods to the restored picture, and can store the modified restored picture in memory (250), specifically in the DPB of memory (250). The various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.
[0092] The (modified) restored picture stored in the DPB of the memory (250) can be used as a reference picture in the inter-prediction unit (260). The memory (250) can store motion information of blocks from which motion information within the current picture has been derived (or decoded) and / or motion information of blocks within the picture that have already been restored. The stored motion information can be transmitted to the inter-prediction unit (260) to be used as motion information of spatially surrounding blocks or motion information of temporally surrounding blocks. The memory (250) can store restoration samples of blocks restored within the current picture and transmit them to the intra-prediction unit (265).
[0093] In this specification, the embodiments described in the filtering unit (160), inter prediction unit (180), and intra prediction unit (185) of the image encoding device (100) may be applied to the filtering unit (240), inter prediction unit (260), and intra prediction unit (265) of the image decoding device (200) in the same or corresponding manner.
[0094] General Video / Video Coding Procedure
[0095] In video coding, the pictures constituting the video can be encoded / decoded according to a series of decoding orders. The picture order corresponding to the output order of the decoded pictures can be set differently from the aforementioned decoding order, and based on this, not only forward prediction but also reverse prediction can be performed during inter-prediction.
[0096] FIG. 4 shows an example of a schematic picture decoding procedure to which the embodiment(s) of the present disclosure are applicable.
[0097] Each procedure illustrated in FIG. 4 can be performed by the image decoding device of FIG. 3. For example, step S410 can be performed by an entropy decoding unit (210), step S420 can be performed in a prediction unit including an intra prediction unit (265) and an inter prediction unit (260), step S430 can be performed in a residual processing unit including an inverse quantization unit (220) and an inverse transform unit (230), step S440 can be performed in an adder (235), and step S450 can be performed in a filtering unit (240). Step S410 may include an information decoding procedure described in the present disclosure, step S420 may include an inter / intra prediction procedure described in the present disclosure, step S430 may include a residual processing procedure described in the present disclosure, step S440 may include a block / picture restoration procedure described in the present disclosure, and step S450 may include an in-loop filtering procedure described in the present disclosure.
[0098] Referring to FIG. 4, the picture decoding procedure may include, schematically as shown in the description of FIG. 3, a procedure for obtaining image / video information (through decoding) from a bitstream (S410), a picture restoration procedure (S420–S440), and an in-loop filtering procedure for the restored picture (S450). The picture restoration procedure may be performed based on prediction samples and residual samples obtained through the inter / intra prediction (S420) and residual processing (S430, inverse quantization and inverse transformation of quantized transformation coefficients) processes described in the present disclosure. A modified restored picture may be generated through an in-loop filtering procedure on the restored picture generated through the above picture restoration procedure, and the modified restored picture may be output as a decoded picture and may also be stored in the decoded picture buffer or memory (250) of the decoding device and used as a reference picture in the inter-prediction procedure during subsequent picture decoding. In some cases, the above in-loop filtering procedure may be omitted, in which case the restored picture may be output as a decoded picture and may also be stored in the decoded picture buffer or memory (250) of the decoding device and used as a reference picture in the inter-prediction procedure during subsequent picture decoding. As described above, the above in-loop filtering procedure (S450) may include a deblocking filtering procedure, a sample adaptive offset (SAO) procedure, an adaptive loop filter (ALF) procedure and / or a bilateral filter procedure, and some or all of these may be omitted. In addition, one or some of the above deblocking filtering procedure, SAO (sample adaptive offset) procedure, ALF (adaptive loop filter) procedure, and bilateral filter procedure may be applied sequentially, or all of them may be applied sequentially.For example, the SAO procedure may be performed after a deblocking filtering procedure is applied to the restored picture. Alternatively, for example, the ALF procedure may be performed after a deblocking filtering procedure is applied to the restored picture. This can be performed in the same way in the encoding device.
[0099] FIG. 5 shows an example of a schematic picture encoding procedure to which the embodiment(s) of the present disclosure are applicable.
[0100] Each procedure illustrated in FIG. 5 may be performed by the image encoding device of FIG. 2. For example, step S510 may be performed in a prediction unit including an intra prediction unit (185) or an inter prediction unit (180), step S520 may be performed in a residual processing unit including a conversion unit (120) and / or a quantization unit (130), and step S530 may be performed in an entropy encoding unit (190). Step S510 may include the inter / intra prediction procedure described in the present disclosure, step S520 may include the residual processing procedure described in the present disclosure, and step S530 may include the information encoding procedure described in the present disclosure.
[0101] Referring to FIG. 5, the picture encoding procedure may include not only a procedure for encoding information for picture restoration (e.g., prediction information, residual information, partitioning information, etc.) in a general manner as described in FIG. 2 and outputting it in the form of a bitstream, but also a procedure for generating a restored picture for the current picture and a procedure for applying in-loop filtering to the restored picture (optional). The encoding device may derive (modified) residual samples from quantized transform coefficients through the inverse quantization unit (140) and the inverse transform unit (150), and may generate a restored picture based on the prediction samples, which are the output of step S510, and the (modified) residual samples. The restored picture thus generated may be identical to the restored picture generated by the decoding device described above. A modified restored picture can be generated through an in-loop filtering procedure for the above restored picture, which can be stored in a decoded picture buffer or memory (170), and, as in the case of a decoding device, can be used as a reference picture in an inter-prediction procedure during the encoding of the picture thereafter. As described above, depending on the case, some or all of the in-loop filtering procedure may be omitted. When the in-loop filtering procedure is performed, (in-loop) filtering-related information (parameters) can be encoded in the entropy encoding unit (190) and output in the form of a bitstream, and the decoding device can perform the in-loop filtering procedure in the same way as the encoding device based on the filtering-related information.
[0102] Through this in-loop filtering procedure, noise generated during image / video coding, such as blocking artifacts and ringing artifacts, can be reduced, and subjective and objective visual quality can be enhanced. Furthermore, by performing the in-loop filtering procedure in both the encoding and decoding units, they can derive identical prediction results, increase the reliability of picture coding, and reduce the amount of data that must be transmitted for picture coding.
[0103] As described above, the picture restoration procedure can be performed in the encoding device as well as the decoding device. Restoration blocks can be generated based on intra prediction / inter prediction for each block, and a restored picture containing the restoration blocks can be generated. If the current picture / slice / tile group is the I picture / slice / tile group, the blocks included in the current picture / slice / tile group can be restored based solely on intra prediction. Meanwhile, if the current picture / slice / tile group is the P or B picture / slice / tile group, the blocks included in the current picture / slice / tile group can be restored based on intra prediction or inter prediction. In this case, inter prediction may be applied to some blocks within the current picture / slice / tile group, and intra prediction may be applied to the remaining blocks. The color component of the picture may include a luminance component and a chroma component, and unless explicitly limited in the present disclosure, the methods and embodiments proposed in the present disclosure may be applied to the luminance component and the chroma component.
[0104] Examples of coding hierarchy and structure
[0105] The coded video / image according to the present disclosure can be processed, for example, according to the coding layer and structure described below.
[0106] Figure 6 is a diagram showing an example of a hierarchical structure for coded images / videos.
[0107] The coded image / video can be divided into a video coding layer (VCL) that handles the decoding processing of the image / video and the image / video itself, a subsystem that transmits and stores the encoded information, and a network abstraction layer (NAL) that exists between the VCL and the subsystem and is responsible for network adaptation functions.
[0108] In VCL, VCL data containing compressed image data (slice data) can be generated, or parameter sets containing information such as Picture Parameter Set (PPS), Sequence Parameter Set (SPS), and Video Parameter Set (VPS), or SEI (Supplemental Enhancement Information) messages that are additionally required in the decoding process of the image can be generated.
[0109] In NAL, a NAL unit can be created by adding header information (NAL unit header) to the Raw Byte Sequence Payload (RBSP) generated in VCL. In this case, the RBSP refers to slice data, parameter sets, SEI messages, etc. generated in VCL. The NAL unit header may include NAL unit type information specified according to the RBSP data included in the NAL unit.
[0110] As shown in FIG. 6, NAL units can be classified into VCL NAL units and Non-VCL NAL units depending on the type of RBSP generated in VCL. A VCL NAL unit may refer to a NAL unit containing information about an image (slice data), and a Non-VCL NAL unit may refer to a NAL unit containing information necessary to decode an image (parameter set or SEI message).
[0111] The aforementioned VCL NAL unit and Non-VCL NAL unit can be transmitted over a network with header information attached according to the data specifications of the underlying system. For example, the NAL unit can be transformed into a data format of a specified specification, such as H.266 / VVC file format, RTP (Real-time Transport Protocol), TS (Transport Stream), etc., and transmitted over various networks.
[0112] As described above, the NAL unit type can be determined based on the RBSP data structure included in the NAL unit, and information regarding this NAL unit type can be stored in the NAL unit header and signaled. For example, depending on whether the NAL unit includes information about the image (slice data), it can be broadly classified into VCL NAL unit types and Non-VCL NAL unit types. VCL NAL unit types can be classified according to the nature and type of the picture included in the VCL NAL unit, and Non-VCL NAL unit types can be classified according to the type of parameter set.
[0113] The following lists examples of NAL unit types specified according to the parameter sets / types of information included in the Non-VCL NAL unit type.
[0114] - DCI (Decoding capability information) NAL unit type (NUT): Type for the NAL unit containing DCI
[0115] - VPS (Video Parameter Set) NUT: Type for the NAL unit containing the VPS
[0116] - SPS(Sequence Parameter Set) NUT: Type for NAL unit containing SPS
[0117] - PPS(Picture Parameter Set) NUT: Type for NAL unit containing PPS
[0118] - APS (Adaptation Parameter Set) NUT: Type for NAL unit containing APS
[0119] - PH (Picture header) NUT: Type for NAL unit including picture header
[0120] The above-described NAL unit types have syntax information for the NAL unit type, and said syntax information can be stored in the NAL unit header and signaled. For example, said syntax information may be nal_unit_type, and NAL unit types can be specified using the nal_unit_type value.
[0121] Meanwhile, a single picture may include multiple slices, and a single slice may include a slice header and slice data. In this case, an additional picture header may be added for multiple slices (slice header and slice data set) within a single picture. The picture header (picture header syntax) may include information / parameters that can be commonly applied to the picture. The slice header (slice header syntax) may include information / parameters that can be commonly applied to the slice. The APS (APS syntax) or PPS (PPS syntax) may include information / parameters that can be commonly applied to one or more slices or pictures. The SPS (SPS syntax) may include information / parameters that can be commonly applied to one or more sequences. The VPS (VPS syntax) may include information / parameters that can be commonly applied to multiple layers. The above DCI may include information / parameters related to decoding capability.
[0122] In the present disclosure, the high-level syntax (HLS) may include at least one of the APS syntax, PPS syntax, SPS syntax, VPS syntax, DCI syntax, picture header syntax, and slice header syntax. Additionally, in the present disclosure, the low-level syntax (LLS) may include, for example, slice data syntax, CTU syntax, encoding unit syntax, translation unit syntax, etc.
[0123] Meanwhile, the image / video information encoded from an encoding device to a decoder in the present disclosure and signaled in the form of a bitstream includes not only information related to picture partitioning, intra / inter prediction information, residual information, in-loop filtering information, etc., but may also include information of the slice header, information of the picture header, information of the APS, information of the PPS, information of the SPS, information of the VPS, and / or information of the DCI. Additionally, the image / video information may further include general constraint information and / or information of the NAL unit header.
[0124] High level syntax signaling and semantics
[0125] As described above, the image / video information according to the present disclosure may include High Level Syntax (HLS). An image encoding method and / or an image decoding method may be performed based on the image / video information.
[0126] The present disclosure includes various configurations for improving the signaling of high-level syntax.
[0127] Configuration 1: If Reference Picture Resampling (RPR) is not available, the picture sizes of all pictures within a Coder Layer Video Sequence (CLVS) may be restricted to be the same. In this disclosure, RPR may mean, for example, scaling a reference picture because the size of the reference picture and the current picture are different. Additionally, a CLVS may be understood as a bitstream or image / video information containing a sequence of encoded pictures belonging to the same layer. More specifically, if RPR is not available, the picture sizes (i.e., pic_width_in_luma_samples and pic_height_in_luma_samples) signaled in all PPSs referencing the same SPS may be restricted to be the same. In the present disclosure, pic_width_in_luma_samples and pic_height_in_luma_samples may each mean the picture width in luma sample units and the picture height in luma sample units.
[0128] Configuration 2: Where a picture with nuh_layer_id layerA references a parameter set with nuh_layer_id layerB, and layerA and layerB are different, layerB may be restricted to being a direct reference layer or an indirect reference layer of layerA. In the present disclosure, nuh_layer_id may mean an identifier of the layer to which the NAL unit belongs or an identifier of the layer to which the NAL unit transmitting the parameter set applies.
[0129] Configuration 3: When RPR is not available, the nuh_layer_id of the PPS and the nuh_layer_id of the SPS referenced by the PPS are identical, and sps_video_parameter_set_id is 0, pic_width_in_luma_samples and pic_width_in_luma_samples signaled in all PPSs within the CLVS may be restricted to be identical to pic_width_max_in_luma_samples and pic_height_max_in_luma_samples, respectively. In this disclosure, pic_width_max_in_luma_samples and pic_height_max_in_luma_samples may mean the maximum picture width in lumina sample units and the maximum picture height in lumina sample units, respectively. Additionally, in this disclosure, sps_video_parameter_set_id may be an identifier for the video parameter set (VPS) referenced by the SPS. As described above, VPS includes information / parameters that can be applied commonly to multiple layers. Additionally, sps_video_parameter_set_id being 0 may mean that the SPS does not refer to the VPS. Therefore, sps_video_parameter_set_id being 0 may mean that the sequence referencing the SPS consists of a single layer rather than multiple layers.
[0130] Configuration 4: Alternatively, if RPR is not available, and the nuh_layer_id of the PPS and the nuh_layer_id of the SPS referenced by the PPS are the same, and the layer is not referenced by another layer, the pic_width_in_luma_samples and pic_width_in_luma_samples signaled by all PPSs in CLVS may be restricted to be the same as pic_width_max_in_luma_samples and pic_height_max_in_luma_samples, respectively.
[0131] Configuration 5: As another alternative, if RPR is not available, it may be limited to having at least one PPS that references an SPS, such that pic_width_in_luma_samples and pic_width_in_luma_samples are identical to pic_width_max_in_luma_samples and pic_height_max_in_luma_samples, respectively.
[0132] Configuration 6: As general constraint information, constraint flags for LMCS may be signaled. For example, no_lmcs_constraint_flag may be signaled via the general_constaint_info() syntax structure. no_lmcs_constraint_flag may restrict the application of LMCS. For example, no_lmcs_constraint_flag may specify whether sps_lmcs_enabled_flag has a value of 0. In this disclosure, LMCS may be a collective term for the luma mapping process and the chroma scaling process. For example, the luma mapping process and / or the chroma scaling process may be performed before in-loop filtering. For example, the luma mapping process may be a process performed on the prediction block of the current luma block to generate a prediction block having a changed dynamic range. In this case, the current luma block may be restored based on the prediction block having the changed dynamic range. In addition, for example, the chroma scaling process may be a process of scaling the chroma component residual signal based on the relationship between the luminance component signal and the chroma component signal. In this case, the current chroma block can be restored based on the scaled chroma component residual signal.
[0133] An embodiment according to the present disclosure may include at least one of the above components. The components may be applied individually or in combination with other components.
[0134] Hereinafter, embodiments of the present disclosure including at least one of the above configurations will be described.
[0135] According to one embodiment of the present disclosure, restrictions on the syntax element sps_seq_parameter_set_id within a sequence parameter set (SPS) may be modified. sps_seq_parameter_set_id may provide an identifier for the SPS to be referenced by other syntax elements. SPS NAL units may share a range of values for the same sps_seq_parameter_set_id regardless of the nuh_layer_id value.
[0136] According to the present embodiment, when the value of nuh_layer_id of a specific SPS NAL unit is denoted as spsLayerId and the value of nuh_layer_id of a specific VCL NAL unit is denoted as vclLayerId, the specific VCL NAL unit may be restricted from referencing the specific SPS NAL unit unless one of the following conditions (condition 1 and condition 2) is satisfied.
[0137] - Condition 1: spsLayerId and vclLayerId are identical
[0138] - Condition 2: DependencyFlag[vclLayerId][spsLayerId] is 1
[0139] In the present disclosure, DependencyFlag[i][j] may indicate whether the hierarchy of index j is a (direct or indirect) referenced hierarchy of the hierarchy of index i. For example, DependencyFlag[i][j] of a first value (e.g., 0) may indicate that the hierarchy of index j is not a referenced hierarchy of the hierarchy of index i. Additionally, DependencyFlag[i][j] of a second value (e.g., 1) may indicate that the hierarchy of index j is a referenced hierarchy of the hierarchy of index i.
[0140] According to another embodiment of the present disclosure, the constraints on the syntax element pps_pic_parameter_set_id within the picture parameter set (PPS) may be modified. pps_pic_parameter_set_id may provide an identifier for the PPS to be referenced by other syntax elements. PPS NAL units may share a range of values for the same pps_pic_parameter_set_id regardless of the nuh_layer_id value.
[0141] According to the present embodiment, when the value of nuh_layer_id of a specific PPS NAL unit is denoted as ppsLayerId and the value of nuh_layer_id of a specific VCL NAL unit is denoted as vclLayerId, the specific VCL NAL unit may be restricted from referencing the specific PPS NAL unit unless one of the following conditions (condition 3 and condition 4) is satisfied.
[0142] - Condition 3: ppsLayerId and vclLayerId are identical
[0143] - Condition 4: DependencyFlag[vclLayerId][ppsLayerId] is 1
[0144] According to another embodiment of the present disclosure, the limitation on the syntax element adaptation_parameter_set_id within the adaptation parameter set (APS) may be modified. The adaptation_parameter_set_id may provide an identifier for the APS to be referenced by other syntax elements.
[0145] According to the present embodiment, when the value of nuh_layer_id of a specific APS NAL unit is denoted as apsLayerId and the value of nuh_layer_id of a specific VCL NAL unit is denoted as vclLayerId, the specific VCL NAL unit may be restricted from referencing the specific APS NAL unit unless one of the following conditions (condition 5 and condition 6) is satisfied.
[0146] - Condition 5: apsLayerId and vclLayerId are identical
[0147] - Condition 6: DependencyFlag[vclLayerId][apsLayerId] is 1
[0148] According to another embodiment of the present disclosure, limitations on the syntax elements pic_width_in_luma_samples and pic_height_in_luma_samples within the PPS may be modified. pic_width_in_luma_samples may represent the lumina sample unit width of the decoded picture referencing the PPS. pic_width_in_luma_samples cannot be greater than pic_width_max_in_luma_samples. Additionally, pic_height_in_luma_samples may represent the lumina sample unit height of the decoded picture referencing the PPS. pic_height_in_luma_samples cannot be greater than pic_height_max_in_luma_samples.
[0149] According to the present embodiment, when res_change_in_clvs_allowed_flag is 0, the values of pic_width_in_luma_samples and pic_height_in_luma_samples may be restricted to be the same for all PPS referenced by encoded pictures within the CLVS (first restriction). In the present disclosure, res_change_in_clvs_allowed_flag may be information indicating whether an RPR is available. For example, res_change_in_clvs_allowed_flag of a first value (e.g., 0) may indicate that an RPR is not available. Additionally, res_change_in_clvs_allowed_flag of a second value (e.g., 1) may indicate that an RPR is available.
[0150] Additionally, according to the present embodiment, when res_change_in_clvs_allowed_flag is 0 and sps_video_parameter_set_id is 0, the value of pic_width_in_luma_samples may be limited to be equal to the value of pic_width_max_in_luma_samples and the value of pic_height_in_luma_samples may be limited to be equal to the value of pic_height_max_in_luma_samples (second limitation).
[0151] According to the present embodiment, the first limitation and the second limitation may be applied individually or in combination.
[0152] According to another embodiment of the present disclosure, information indicating whether the LMCS is restricted may be signaled as general restriction information.
[0153] FIG. 7 is a diagram illustrating an example of a syntax structure that signals information indicating whether the LMCS is restricted as general restriction information.
[0154] As illustrated in FIG. 7, for example, no_lmcs_constraint_flag may be transmitted as information indicating whether the LMCS is restricted. In this case, the information indicating whether the LMCS is restricted may be included in and signaled within the general_constraint_info() syntax structure that signals general restriction information.
[0155] According to the present embodiment, no_lmcs_constraint_flag of the first value (e.g., 1) may restrict sps_lmcs_enabled_flag to have a value of 0. Additionally, no_lmcs_constraint_flag of the second value (e.g., 0) may indicate that the above restriction is not imposed. In the above, sps_lmcs_enabled_flag is information signaled at a higher level (e.g., SPS) and may be an example of information indicating whether LMCS is available. For instance, sps_lmcs_enabled_flag of the first value (e.g., 1) may indicate that LMCS is currently available for CLVS, and sps_lmcs_enabled_flag of the second value (e.g., 0) may indicate that LMCS is currently not available for CLVS. When LMCS is available, additional information related to LMCS may be signaled. If LMCS is not available, signaling of information related to LMCS may be omitted.
[0156] As described above, general constraint information can be signaled by being included in the general_constraint_info() syntax structure. The general_constraint_info() syntax structure exists within the profile tier level (PTL) syntax structure and can provide information regarding additional constraints or limits for specific profiles, tiers, and levels.
[0157] FIG. 8 is a diagram for explaining the operation of an image encoding device according to an embodiment described with reference to FIG. 7.
[0158] After determining whether the LMCS is restricted, the video encoding device can encode no_lmcs_constraint_flag (S810). When the LMCS is restricted, the video encoding device can encode no_lmcs_constraint_flag of a first value (e.g., 1). Or, when the LMCS is not restricted, the video encoding device can encode no_lmcs_constraint_flag of a second value (e.g., 0). The video encoding device can encode no_lmcs_constraint_flag as general restriction information in the general_constraint_info() syntax structure. For example, the video encoding device can set the LMCS to be restricted through signaling of no_lmcs_constraint_flag even when the current profile, tier, and level allow the LMCS. This allows for the setting of a more diverse encoding environment.
[0159] The video encoding device determines the value of no_lmcs_constraint_flag (S820), and if the value is a second value (e.g., 0) (S820-No), it can determine whether LMCS is available for the current CLVS (S830). If LMCS is available for the current CLVS (S830-Yes), the video encoding device can encode sps_lmcs_enabled_flag of a first value (e.g., 1) (S840). If the value of no_lmcs_constraint_flag is a first value (e.g., 1) (S820-Yes) or if LMCS is not available for the current CLVS (S830-No), the video encoding device can encode sps_lmcs_enabled_flag of a second value (e.g., 0) (S850). The video encoding device can, for example, encode sps_lmcs_enabled_flag within the SPS.
[0160] If sps_lmcs_enabled_flag has a first value (e.g., 1), the video encoding device may encode additional information related to LMCS (not shown). If sps_lmcs_enabled_flag has a second value (e.g., 0), the video encoding device may omit signaling of additional information related to LMCS (not shown). Based on sps_lmcs_enabled_flag and / or additional information related to LMCS, the video encoding device may perform encoding / decoding for the current picture included in the current sequence by performing or not performing LMCS.
[0161] FIG. 9 is a diagram for explaining the operation of an image decoding device according to an embodiment described with reference to FIG. 7.
[0162] The video decoder can obtain sps_lmcs_enabled_flag from the bitstream (S910). For example, the video decoder can obtain and decode sps_lmcs_enabled_flag from the SPS. At this time, sps_lmcs_enabled_flag may be encoded by the method described with reference to FIG. 8.
[0163] The image decoder can determine whether sps_lmcs_enabled_flag is a first value (e.g., 1) (S920). If sps_lmcs_enabled_flag is the first value (e.g., 1) (S920-Yes), the image decoder can obtain additional information related to LMCS from the bitstream (S940). In this case, the image decoder can restore the current picture by performing LMCS based on the information obtained related to LMCS (not shown). If sps_lmcs_enabled_flag is a second value (e.g., 0) (S920-No), the image decoder can omit parsing the additional information related to LMCS (S930). In this case, the image decoder can restore the current picture without performing LMCS (not shown).
[0164] The sps_lmcs_enabled_flag received by the image decoder is encoded by the method described with reference to FIG. 8. That is, the image decoder receives the sps_lmcs_enabled_flag encoded based on no_lmcs_constraint_flag at the image decoder. Therefore, the image decoder can obtain the sps_lmcs_enabled_flag encoded with an accurate value according to the present disclosure without determining whether no_lmcs_constraint_flag is a first value (e.g., 1).
[0165] However, the operation of the image decoder is not limited to the above example, and the image decoder may infer the value of sps_lmcs_enabled_flag based on no_lmcs_constraint_flag. For example, if the value of no_lmcs_constraint_flag is a first value (e.g., 1), the image decoder may infer sps_lmcs_enabled_flag as a second value (e.g., 0).
[0166] Additionally, although not illustrated in FIG. 9, the image decoder can obtain no_lmcs_constraint_flag from the bitstream. Based on the obtained no_lmcs_constraint_flag, the image decoder can infer sps_lmcs_enabled_flag as described above and efficiently perform device initialization, including enabling / disabling LMCS-related modules. For example, the image decoder can initialize the device to restrict LMCS based on no_lmcs_constraint_flag, even if the current profile, tier, and level allow LMCS. This enables the configuration of a wider variety of decoding environments.
[0167] FIG. 10 is a diagram illustrating an example of additional information signaled in relation to LMCS.
[0168] As shown in FIG. 10, when sps_lmcs_enabled_flag is a first value (e.g., 1), additional information related to LMCS, such as ph_lmcs_enabled_flag, ph_lmcs_aps_id, and ph_chroma_residual_scale_flag, can be signaled in the picture header syntax structure.
[0169] ph_lmcs_enabled_flag may be information indicating whether LMCS is available for the current picture. For example, ph_lmcs_enabled_flag of a first value (e.g., 1) may indicate that LMCS is available for the current picture. Additionally, ph_lmcs_enabled_flag of a second value (e.g., 0) may indicate that LMCS is not available for the current picture.
[0170] ph_lmcs_aps_id can be signaled when ph_lmcs_enabled_flag is the first value (e.g., 1). ph_lmcs_aps_id may represent the identifier of an APS associated with the LMCS that the current picture references.
[0171] ph_chroma_residual_scale_flag may be signaled when ph_lmcs_enabled_flag is a first value (e.g., 1) and chroma components are present in the picture (ChromaArrayType != 0). ph_chroma_residual_scale_flag may be information indicating whether a chroma scaling process is available for the current picture. For example, ph_chroma_residual_scale_flag of a first value (e.g., 1) may indicate that a chroma scaling process is available for the current picture. Additionally, ph_chroma_residual_scale_flag of a second value (e.g., 0) may indicate that a chroma scaling process is not available for the current picture.
[0172] Additional information related to LMCS following sps_lmcs_enabled_flag of the first value (e.g., 1) is not limited to the example described with reference to FIG. 10. For example, other information other than that described with reference to FIG. 10 may be signaled as additional information related to LMCS. Furthermore, the syntax structure in which additional information related to LMCS is signaled is not limited to picture header syntax structures, and may be signaled through higher-level syntax structures such as PPS or slice headers, for example.
[0173] According to the embodiment described with reference to FIGS. 7 to 10, when no_lmcs_constraint_flag is a first value (e.g., 1), the video decoder can know that the use of the LMCS tool is restricted for the current bitstream or CVS, even in the case of a profile where LMCS is allowed. Accordingly, the video decoder that receives no_lmcs_constraint_flag of the first value (e.g., 1) can adjust the initialization / configuration of the device. For example, the video decoder can be initialized so that the module for LMCS is not activated.
[0174] According to the embodiment described with reference to FIGS. 7 to 10, the video encoding device can signal whether LMCS is restricted for the current bitstream by transmitting no_lmcs_constraint_flag, and the video decoding device can check whether LMCS is restricted for the current bitstream by parsing no_lmcs_constraint_flag. That is, by signaling information regarding whether LMCS is restricted as general restriction information, the video encoding device and / or the video decoding device can perform device initialization more quickly and have the effect of setting various encoding / decoding environments.
[0175] As described above, general constraint information is transmitted by being included in the PTL syntax structure, and typically, the PTL syntax structure may exist in the DCI or SPS. If no_lmcs_constraint_flag exists in the PTL within the DCI, no_lmcs_constraint_flag may be applied as a constraint on the entire bitstream. On the other hand, if no_lmcs_constraint_flag exists in the PTL within the SPS, no_lmcs_constraint_flag may be applied as a constraint on the pictures within the CVS associated with the SPS. That is, by adjusting the location (DCI or SPS) where the general constraint information is transmitted, the range in which the constraint on the LMCS based on the value of no_lmcs_constraint_flag is applied may be adaptively set.
[0176] According to the embodiment described with reference to FIGS. 7 to 10, by transmitting no_lmcs_constraint_flag as general restriction information, the location where the general restriction information is signaled can be controlled, and accordingly, the range to which the restriction applies can be adaptively selected, thereby enabling more accurate and efficient signaling.
[0177] The exemplary methods of the present disclosure are described as a series of operations for clarity of description, but this is not intended to limit the order in which the steps are performed, and if necessary, each step may be performed simultaneously or in a different order. To implement the method according to the present disclosure, additional steps may be included in addition to the steps exemplified, steps excluding some steps and including the remaining steps, or steps excluding some steps and including additional steps.
[0178] In the present disclosure, an image encoding device or an image decoding device performing a predetermined operation (step) may perform an operation (step) to check the conditions or circumstances for performing the said operation (step). For example, if it is stated that a predetermined operation is performed when a predetermined condition is satisfied, the image encoding device or the image decoding device may perform an operation to check whether the said predetermined condition is satisfied, and then perform the said predetermined operation.
[0179] The various embodiments of the present disclosure are not intended to list all possible combinations but to describe representative aspects of the present disclosure, and the matters described in the various embodiments may be applied independently or in combination of two or more.
[0180] In addition, various embodiments of the present disclosure may be implemented by hardware, firmware, software, or a combination thereof. In the case of implementation by hardware, it may be implemented by one or more ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processors), DSPDs (Digital Signal Processing Devices), PLDs (Programmable Logic Devices), FPGAs (Field Programmable Gate Arrays), general processors, controllers, microcontrollers, microprocessors, etc.
[0181] In addition, the video decoding device and video encoding device to which the embodiments of the present disclosure are applied may be included in multimedia broadcasting transmission and reception devices, mobile communication terminals, home cinema video devices, digital cinema video devices, surveillance cameras, video conversation devices, real-time communication devices such as video communication, mobile streaming devices, storage media, camcorders, Video on Demand (VoD) service providers, Over-the-top video (OTT) devices, internet streaming service providers, three-dimensional (3D) video devices, video phone video devices, and medical video devices, and may be used to process video signals or data signals. For example, Over-the-top video (OTT) devices may include game consoles, Blu-ray players, internet-connected TVs, home theater systems, smartphones, tablet PCs, Digital Video Recorders (DVRs), etc.
[0182] FIG. 11 is a drawing illustrating a content streaming system to which an embodiment of the present disclosure can be applied.
[0183] As illustrated in FIG. 11, a content streaming system to which an embodiment of the present disclosure is applied may largely include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.
[0184] The above encoding server compresses content input from multimedia input devices, such as smartphones, cameras, and camcorders, into digital data to generate a bitstream and transmits it to the streaming server. As another example, if multimedia input devices, such as smartphones, cameras, and camcorders, generate the bitstream directly, the encoding server may be omitted.
[0185] The bitstream may be generated by a video encoding method and / or video encoding device to which an embodiment of the present disclosure is applied, and the streaming server may temporarily store the bitstream during the process of transmitting or receiving the bitstream.
[0186] The streaming server transmits multimedia data to a user device based on a user request through a web server, and the web server can act as a medium to inform the user of available services. When a user requests a desired service from the web server, the web server transmits it to the streaming server, and the streaming server can transmit multimedia data to the user. At this time, the content streaming system may include a separate control server, and in this case, the control server can perform the role of controlling commands and responses between each device within the content streaming system.
[0187] The streaming server can receive content from a media storage and / or an encoding server. For example, when receiving content from the encoding server, the content can be received in real time. In this case, to provide a seamless streaming service, the streaming server can store the bitstream for a certain period of time.
[0188] Examples of the above user devices may include mobile phones, smartphones, laptop computers, digital broadcasting terminals, PDAs (personal digital assistants), PMPs (portable multimedia players), navigation systems, slate PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glasses, HMDs (head-mounted displays)), digital TVs, desktop computers, digital signage, etc.
[0189] Each server within the above-mentioned content streaming system can be operated as a distributed server, and in this case, data received from each server can be processed in a distributed manner.
[0190] The scope of the present disclosure includes software or machine-executable instructions (e.g., operating system, application, firmware, program, etc.) that enable an operation according to a method of various embodiments to be executed on a device or computer, and a non-transitory computer-readable medium on which such software or instructions, etc. are stored and executable on a device or computer. Industrial applicability
[0191] An embodiment according to the present disclosure can be used to encode / decode images.
Claims
Claim 1 An image decoding device comprising a memory and at least one processor, wherein the at least one processor obtains a first syntax element indicating whether LMCS (luma mapping with chroma scaling) is restricted from a syntax structure that signals general restriction information - said syntax structure is included in a bitstream; obtains a second syntax element indicating whether LMCS is allowed for a current video sequence from said bitstream; and restores a current picture within the current video sequence based on said second syntax element, wherein the value of said second syntax element is determined based on the value of said first syntax element. Claim 2 A video encoding device comprising a memory and at least one processor, wherein the at least one processor encodes a first syntax element indicating whether LMCS (luma mapping with chroma scaling) is restricted into a syntax structure that signals general restriction information - said syntax structure is included in a bitstream, encodes a second syntax element indicating whether LMCS is allowed for a current video sequence into said bitstream, and encodes a current picture within the current video sequence based on said second syntax element, wherein the value of said second syntax element is determined based on the value of said first syntax element. Claim 3 A computer-readable recording medium storing a bitstream generated by the image encoding device of paragraph 2.
